@@ -48,16 +48,44 @@ def api_cohd():
4848 return redirect ("https://cohd.smart-api.info/" , code = 302 )
4949
5050
51+ @app .route ('/api/metadata/datasets' )
52+ def api_metadata_datasets ():
53+ return query_cohd_mysql .query_db_datasets ()
54+
55+
56+ @app .route ('/api/metadata/domainCounts' )
57+ def api_metadata_domainCounts ():
58+ dataset_id = query_cohd_mysql .get_arg_dataset_id (request .args )
59+ return query_cohd_mysql .query_db_domain_counts (dataset_id )
60+
61+
62+ @app .route ('/api/metadata/domainPairCounts' )
63+ def api_metadata_domainPairCounts ():
64+ dataset_id = query_cohd_mysql .get_arg_dataset_id (request .args )
65+ return query_cohd_mysql .query_db_domain_pair_counts (dataset_id )
66+
67+
68+ @app .route ('/api/metadata/patientCount' )
69+ def api_metadata_patientCount ():
70+ dataset_id = query_cohd_mysql .get_arg_dataset_id (request .args )
71+ return query_cohd_mysql .query_db_patient_count (dataset_id )
72+
73+
5174@app .route ('/api/omop/findConceptIDs' )
5275@app .route ('/api/v1/omop/findConceptIDs' )
5376def api_omop_reference ():
54- return api_call ('omop' , 'findConceptIDs' )
77+ query = request .args .get ('q' )
78+ dataset_id = query_cohd_mysql .get_arg_dataset_id (request .args )
79+ domain_id = request .args .get ('domain' )
80+ min_count = request .args .get ('min_count' )
81+ return query_cohd_mysql .query_db_find_concept_ids (dataset_id , query , domain_id , min_count )
5582
5683
5784@app .route ('/api/omop/concepts' )
5885@app .route ('/api/v1/omop/concepts' )
5986def api_omop_concepts ():
60- return api_call ('omop' , 'concepts' )
87+ query = request .args .get ('q' )
88+ return query_cohd_mysql .query_db_concepts (query )
6189
6290
6391@app .route ('/api/omop/conceptAncestors' )
@@ -95,25 +123,6 @@ def api_omop_xrefFromOMOP():
95123 return api_call ('omop' , 'xrefFromOMOP' )
96124
97125
98- @app .route ('/api/metadata/datasets' )
99- def api_metadata_datasets ():
100- return api_call ('metadata' , 'datasets' )
101-
102-
103- @app .route ('/api/metadata/domainCounts' )
104- def api_metadata_domainCounts ():
105- return api_call ('metadata' , 'domainCounts' )
106-
107-
108- @app .route ('/api/metadata/domainPairCounts' )
109- def api_metadata_domainPairCounts ():
110- return api_call ('metadata' , 'domainPairCounts' )
111-
112-
113- @app .route ('/api/metadata/patientCount' )
114- def api_metadata_patientCount ():
115- return api_call ('metadata' , 'patientCount' )
116-
117126
118127@app .route ('/api/frequencies/singleConceptFreq' )
119128@app .route ('/api/v1/frequencies/singleConceptFreq' )
@@ -160,6 +169,11 @@ def api_association_relativeFrequency():
160169 return api_call ('association' , 'relativeFrequency' )
161170
162171
172+ @app .route ('/api/association/mcq' )
173+ def api_association_mcq ():
174+ return api_call ('association' , 'mcq' )
175+
176+
163177@app .route ('/api/temporal/conceptAgeCounts' )
164178def api_temporal_conceptAgeCounts ():
165179 return api_call ('temporal' , 'conceptAgeCounts' )
@@ -306,7 +320,8 @@ def api_call(service=None, meta=None, query=None, version=None):
306320 elif service == 'association' :
307321 if meta == 'chiSquare' or \
308322 meta == 'obsExpRatio' or \
309- meta == 'relativeFrequency' :
323+ meta == 'relativeFrequency' or \
324+ meta == 'mcq' :
310325 result = query_cohd_mysql .query_db (service , meta , request .args )
311326 else :
312327 result = 'meta not recognized' , 400
0 commit comments