Skip to content

Commit b198d13

Browse files
committed
updated pickle cache
1 parent 4650c2b commit b198d13

189 files changed

Lines changed: 46 additions & 11 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cdisc_rules_engine/services/cache/cache_populator_service.py

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -311,14 +311,31 @@ async def _async_get_rules_by_catalog(self, catalog_link: str) -> List[dict]:
311311

312312
async def _get_codelist_term_maps(self) -> List[dict]:
313313
"""
314-
For each CT package in CDISC library,
315-
generate a map of codelist to codelist term. Ex:
314+
For each CT package in CDISC library, creates mapping with:
315+
1. Submission value lookup: Map of submission values to codelist/term IDs
316+
2. Full codelist data: Complete metadata and terms keyed by codelist ID
316317
{
317-
"package": "sdtmct-2021-12-17"
318-
"C123": {
319-
"extensible": True,
320-
"allowed_terms": ["TEST", "HOUR"]
321-
}
318+
"package": "adamct-2024-03-29",
319+
"submission_lookup": {
320+
"GAD02PC": {"codelist": "C172334", "term": "N/A"}, # this is at codelist level
321+
"GAD02TS": {"codelist": "C172334", "term": "C172451"}, # this is at term level
322+
"C172334": {
323+
"definition": "A parameter code codelist for the Generalized Anxiety Disorder - 7 Version 2 Questionnaire
324+
(GAD-7 V2) to support the calculation of total score in ADaM.",
325+
"extensible": False,
326+
"name": "Generalized Anxiety Disorder - 7 Version 2 Questionnaire Parameter Code",
327+
"preferredTerm": "CDISC ADaM Generalized Anxiety Disorder-7 Version 2 Questionnaire Parameter
328+
Code Terminology",
329+
"submissionValue": "GAD02PC",
330+
"synonyms": ["Generalized Anxiety Disorder - 7 Version 2 Questionnaire Parameter Code"],
331+
"terms": [{
332+
"conceptId": "C172451",
333+
"definition": "Generalized Anxiety Disorder - 7 Version 2 - Total score used for analysis.",
334+
"preferredTerm": "Generalized Anxiety Disorder - 7 Version 2 - Total Score for Analysis",
335+
"submissionValue": "GAD02TS",
336+
"synonyms": ["GAD02-Total Score - Analysis"],
337+
"extensible": False
338+
}]
322339
}
323340
"""
324341
packages = self.library_service.get_all_ct_packages()

cdisc_rules_engine/services/cdisc_library_service.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,20 +134,38 @@ def get_all_analysis_ig_standards(self) -> List[dict]:
134134
def get_codelist_terms_map(self, package_version: str) -> dict:
135135
uri = f"/mdr/ct/packages/{package_version}"
136136
package = self._client.get_api_json(uri)
137-
codelist_map = {"package": package_version}
137+
codelist_map = {"package": package_version, "submission_lookup": {}}
138138
for codelist in package.get("codelists"):
139-
terms_map = {
139+
codelist_id = codelist.get("conceptId")
140+
codelist_map[codelist_id] = {
141+
"definition": codelist.get("definition"),
140142
"extensible": codelist.get("extensible", "").lower() == "true",
143+
"name": codelist.get("name"),
144+
"preferredTerm": codelist.get("preferredTerm"),
145+
"submissionValue": codelist.get("submissionValue"),
146+
"synonyms": codelist.get("synonyms", []),
141147
"terms": [],
142148
}
149+
codelist_map["submission_lookup"][codelist.get("submissionValue")] = {
150+
"codelist": codelist_id,
151+
"term": "N/A",
152+
}
143153
for term in codelist.get("terms", []):
154+
term_id = term.get("conceptId")
144155
term_info = {
156+
"conceptId": term_id,
157+
"definition": term.get("definition"),
145158
"preferredTerm": term.get("preferredTerm"),
146159
"submissionValue": term.get("submissionValue"),
147160
"synonyms": term.get("synonyms", []),
161+
"extensible": codelist.get("extensible", "").lower() == "true",
148162
}
149-
terms_map["terms"].append(term_info)
150-
codelist_map[codelist.get("conceptId")] = terms_map
163+
codelist_map[codelist_id]["terms"].append(term_info)
164+
if term.get("submissionValue"):
165+
codelist_map["submission_lookup"][term["submissionValue"]] = {
166+
"codelist": codelist_id,
167+
"term": term_id,
168+
}
151169
return codelist_map
152170

153171
def get_variable_codelists_map(self, standard_type: str, version: str) -> dict:

0 commit comments

Comments
 (0)