@@ -5,15 +5,13 @@ import (
5
5
"log"
6
6
7
7
"github.com/uc-cdis/cohort-middleware/utils"
8
- "gorm.io/gorm"
9
8
)
10
9
11
10
type CohortDataI interface {
12
11
RetrieveDataBySourceIdAndCohortIdAndConceptIdsOrderedByPersonId (sourceId int , cohortDefinitionId int , conceptIds []int64 ) ([]* PersonConceptAndValue , error )
13
12
RetrieveCohortOverlapStats (sourceId int , caseCohortId int , controlCohortId int , otherFilterConceptIds []int64 , filterCohortPairs []utils.CustomDichotomousVariableDef ) (CohortOverlapStats , error )
14
13
RetrieveDataByOriginalCohortAndNewCohort (sourceId int , originalCohortDefinitionId int , cohortDefinitionId int ) ([]* PersonIdAndCohort , error )
15
- RetrieveHistogramDataBySourceIdAndCohortIdAndConceptDefsAndCohortPairs (sourceId int , cohortDefinitionId int , histogramConceptId int64 , filterConceptIdsAndValues []utils.CustomConceptVariableDef , filterCohortPairs []utils.CustomDichotomousVariableDef ) ([]* PersonConceptAndValue , error )
16
- RetrieveHistogramDataBySourceIdAndCohortIdAndConceptDefsPlusCohortPairs (sourceId int , cohortDefinitionId int , filterConceptDefsAndCohortPairs []interface {}) ([]* PersonConceptAndValue , error )
14
+ RetrieveHistogramDataBySourceIdAndCohortIdAndConceptIdsAndCohortPairs (sourceId int , cohortDefinitionId int , histogramConceptId int64 , filterConceptIdsAndValues []utils.CustomConceptVariableDef , filterCohortPairs []utils.CustomDichotomousVariableDef ) ([]* PersonConceptAndValue , error )
17
15
RetrieveBarGraphDataBySourceIdAndCohortIdAndConceptIds (sourceId int , conceptId int64 ) ([]* NominalGroupData , error )
18
16
RetrieveHistogramDataBySourceIdAndConceptId (sourceId int , histogramConceptId int64 ) ([]* PersonConceptAndValue , error )
19
17
}
@@ -99,44 +97,7 @@ func (h CohortData) RetrieveDataBySourceIdAndCohortIdAndConceptIdsOrderedByPerso
99
97
return cohortData , meta_result .Error
100
98
}
101
99
102
- func (h CohortData ) RetrieveHistogramDataBySourceIdAndCohortIdAndConceptDefsPlusCohortPairs (sourceId int , cohortDefinitionId int , filterConceptDefsAndCohortPairs []interface {}) ([]* PersonConceptAndValue , error ) {
103
- var dataSourceModel = new (Source )
104
- omopDataSource := dataSourceModel .GetDataSource (sourceId , Omop )
105
- resultsDataSource := dataSourceModel .GetDataSource (sourceId , Results )
106
- finalCohortAlias := "final_cohort_alias"
107
- histogramConcept , err := utils .CheckAndGetLastCustomConceptVariableDef (filterConceptDefsAndCohortPairs )
108
- if err != nil {
109
- log .Fatalf ("failed: %v" , err )
110
- return nil , err
111
- }
112
- // get the observations for the subjects and the concepts, to build up the data rows to return:
113
- var cohortData []* PersonConceptAndValue
114
- session := resultsDataSource .Db .Session (& gorm.Session {})
115
- err = session .Transaction (func (query * gorm.DB ) error { // TODO - rename query?
116
- query , tmpTableName := QueryFilterByConceptDefsPlusCohortPairsHelper (query , sourceId , cohortDefinitionId , filterConceptDefsAndCohortPairs , omopDataSource , resultsDataSource , finalCohortAlias )
117
- if tmpTableName != "" {
118
- query = query .Select ("distinct(" + tmpTableName + ".person_id), " + tmpTableName + ".observation_concept_id as concept_id, " + tmpTableName + ".value_as_number as concept_value_as_number" )
119
- } else {
120
- query = query .Select ("distinct(observation.person_id), observation.observation_concept_id as concept_id, observation.value_as_number as concept_value_as_number" ).
121
- Joins ("INNER JOIN " + omopDataSource .Schema + ".observation_continuous as observation" + omopDataSource .GetViewDirective ()+ " ON " + finalCohortAlias + ".subject_id = observation.person_id" ).
122
- Where ("observation.observation_concept_id = ?" , histogramConcept .ConceptId ).
123
- Where ("observation.value_as_number is not null" )
124
- }
125
-
126
- query , cancel := utils .AddTimeoutToQuery (query )
127
- defer cancel ()
128
- meta_result := query .Scan (& cohortData )
129
- return meta_result .Error
130
- })
131
- if err != nil {
132
- log .Fatalf ("Transaction failed: %v" , err )
133
- return nil , err
134
- }
135
- return cohortData , err
136
- }
137
-
138
- // DEPRECATED - USE RetrieveHistogramDataBySourceIdAndCohortIdAndConceptDefsPlusCohortPairs instead.
139
- func (h CohortData ) RetrieveHistogramDataBySourceIdAndCohortIdAndConceptDefsAndCohortPairs (sourceId int , cohortDefinitionId int , histogramConceptId int64 , filterConceptDefs []utils.CustomConceptVariableDef , filterCohortPairs []utils.CustomDichotomousVariableDef ) ([]* PersonConceptAndValue , error ) {
100
+ func (h CohortData ) RetrieveHistogramDataBySourceIdAndCohortIdAndConceptIdsAndCohortPairs (sourceId int , cohortDefinitionId int , histogramConceptId int64 , filterConceptIdsAndValues []utils.CustomConceptVariableDef , filterCohortPairs []utils.CustomDichotomousVariableDef ) ([]* PersonConceptAndValue , error ) {
140
101
var dataSourceModel = new (Source )
141
102
omopDataSource := dataSourceModel .GetDataSource (sourceId , Omop )
142
103
resultsDataSource := dataSourceModel .GetDataSource (sourceId , Results )
@@ -149,7 +110,7 @@ func (h CohortData) RetrieveHistogramDataBySourceIdAndCohortIdAndConceptDefsAndC
149
110
Where ("observation.observation_concept_id = ?" , histogramConceptId ).
150
111
Where ("observation.value_as_number is not null" )
151
112
152
- query = QueryFilterByConceptDefsHelper (query , sourceId , filterConceptDefs , omopDataSource , resultsDataSource .Schema , "unionAndIntersect" )
113
+ query = QueryFilterByConceptIdsAndValuesHelper (query , sourceId , filterConceptIdsAndValues , omopDataSource , resultsDataSource .Schema , "unionAndIntersect.subject_id " )
153
114
query , cancel := utils .AddTimeoutToQuery (query )
154
115
defer cancel ()
155
116
meta_result := query .Scan (& cohortData )
0 commit comments