Skip to content

Commit f888a4a

Browse files
committed
Added CADS clinical dataset filters with symbolic criteria mapping and join helpers
- Introduced joins to CADS sub-tables: staging scan, metastasis, tumour, and treatment - Replaced improper f-strings with standard strings for static SQL fragments
1 parent 70c6231 commit f888a4a

File tree

1 file changed

+31
-16
lines changed

1 file changed

+31
-16
lines changed

utils/oracle/subject_selection_query_builder.py

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2362,38 +2362,38 @@ def _add_criteria_cads_asa_grade(self) -> None:
23622362
self._add_join_to_latest_episode()
23632363
self._add_join_to_cancer_audit_dataset()
23642364
self.sql_where.append(
2365-
f"AND cads.asa_grade_id = ASAGradeType.by_description_case_insensitive(self.criteria_value).id"
2365+
"AND cads.asa_grade_id = ASAGradeType.by_description_case_insensitive(self.criteria_value).id"
23662366
)
23672367

23682368
def _add_criteria_cads_staging_scans(self) -> None:
23692369
self._add_join_to_latest_episode()
23702370
self._add_join_to_cancer_audit_dataset()
23712371
self._add_join_to_cancer_audit_dataset_staging_scan()
23722372
self.sql_where.append(
2373-
f"AND cads.staging_scans_done_id = YesNoType.by_description_case_insensitive(self.criteria_value).id"
2373+
"AND cads.staging_scans_done_id = YesNoType.by_description_case_insensitive(self.criteria_value).id"
23742374
)
23752375

23762376
def _add_criteria_cads_type_of_scan(self) -> None:
23772377
self._add_join_to_latest_episode()
23782378
self._add_join_to_cancer_audit_dataset()
23792379
self._add_join_to_cancer_audit_dataset_staging_scan()
23802380
self.sql_where.append(
2381-
f"AND dcss.type_of_scan_id = ScanType.by_description_case_insensitive(self.criteria_value).id"
2381+
"AND dcss.type_of_scan_id = ScanType.by_description_case_insensitive(self.criteria_value).id"
23822382
)
23832383

23842384
def _add_criteria_cads_metastases_present(self) -> None:
23852385
self._add_join_to_latest_episode()
23862386
self._add_join_to_cancer_audit_dataset()
23872387
self.sql_where.append(
2388-
f"AND cads.metastases_found_id = MetastasesPresentType.by_description_case_insensitive(self.criteria_value).id"
2388+
"AND cads.metastases_found_id = MetastasesPresentType.by_description_case_insensitive(self.criteria_value).id"
23892389
)
23902390

23912391
def _add_criteria_cads_metastases_location(self) -> None:
23922392
self._add_join_to_latest_episode()
23932393
self._add_join_to_cancer_audit_dataset()
23942394
self._add_join_to_cancer_audit_dataset_metastasis()
23952395
self.sql_where.append(
2396-
f"AND dcm.location_of_metastasis_id = MetastasesLocationType.by_description_case_insensitive(self.criteria_value).id"
2396+
"AND dcm.location_of_metastasis_id = MetastasesLocationType.by_description_case_insensitive(self.criteria_value).id"
23972397
)
23982398

23992399
def _add_criteria_cads_metastases_other_location(self, other_location: str) -> None:
@@ -2408,83 +2408,98 @@ def _add_criteria_cads_final_pre_treatment_t_category(self) -> None:
24082408
self._add_join_to_latest_episode()
24092409
self._add_join_to_cancer_audit_dataset()
24102410
self.sql_where.append(
2411-
f"AND cads.final_pre_treat_t_category_id = FinalPretreatmentTCategoryType.by_description_case_insensitive(self.criteria_value).id"
2411+
"AND cads.final_pre_treat_t_category_id = FinalPretreatmentTCategoryType.by_description_case_insensitive(self.criteria_value).id"
24122412
)
24132413

24142414
def _add_criteria_cads_final_pre_treatment_n_category(self) -> None:
24152415
self._add_join_to_latest_episode()
24162416
self._add_join_to_cancer_audit_dataset()
24172417
self.sql_where.append(
2418-
f"AND cads.final_pre_treat_n_category_id = FinalPretreatmentNCategoryType.by_description_case_insensitive(self.criteria_value).id"
2418+
"AND cads.final_pre_treat_n_category_id = FinalPretreatmentNCategoryType.by_description_case_insensitive(self.criteria_value).id"
24192419
)
24202420

24212421
def _add_criteria_cads_final_pre_treatment_m_category(self) -> None:
24222422
self._add_join_to_latest_episode()
24232423
self._add_join_to_cancer_audit_dataset()
24242424
self.sql_where.append(
2425-
f"AND cads.final_pre_treat_m_category_id = FinalPretreatmentMCategoryType.by_description_case_insensitive(self.criteria_value).id"
2425+
"AND cads.final_pre_treat_m_category_id = FinalPretreatmentMCategoryType.by_description_case_insensitive(self.criteria_value).id"
24262426
)
24272427

24282428
def _add_criteria_cads_treatment_received(self) -> None:
24292429
self._add_join_to_latest_episode()
24302430
self._add_join_to_cancer_audit_dataset()
24312431
self.sql_where.append(
2432-
f"AND cads.treatment_received_id = YesNoType.by_description_case_insensitive(self.criteria_value).id"
2432+
"AND cads.treatment_received_id = YesNoType.by_description_case_insensitive(self.criteria_value).id"
24332433
)
24342434

24352435
def _add_criteria_cads_reason_no_treatment_received(self) -> None:
24362436
self._add_join_to_latest_episode()
24372437
self._add_join_to_cancer_audit_dataset()
24382438
self.sql_where.append(
2439-
f"AND cads.reason_no_treatment_id = ReasonNoTreatmentReceivedType.by_description_case_insensitive(self.criteria_value).id"
2439+
"AND cads.reason_no_treatment_id = ReasonNoTreatmentReceivedType.by_description_case_insensitive(self.criteria_value).id"
24402440
)
24412441

24422442
def _add_criteria_cads_tumour_location(self) -> None:
24432443
self._add_join_to_latest_episode()
24442444
self._add_join_to_cancer_audit_dataset()
24452445
self._add_join_to_cancer_audit_dataset_tumour()
24462446
self.sql_where.append(
2447-
f"AND dctu.location_id = LocationType.by_description_case_insensitive(self.criteria_value).id"
2447+
"AND dctu.location_id = LocationType.by_description_case_insensitive(self.criteria_value).id"
24482448
)
24492449

24502450
def _add_criteria_cads_tumour_height_of_tumour_above_anal_verge(self) -> None:
24512451
self._add_join_to_latest_episode()
24522452
self._add_join_to_cancer_audit_dataset()
24532453
self._add_join_to_cancer_audit_dataset_tumour()
24542454
self.sql_where.append(
2455-
f"AND dctu.height_above_anal_verge = {self.criteria_value}"
2455+
"AND dctu.height_above_anal_verge = {self.criteria_value}"
24562456
)
24572457

24582458
def _add_criteria_cads_tumour_previously_excised_tumour(self) -> None:
24592459
self._add_join_to_latest_episode()
24602460
self._add_join_to_cancer_audit_dataset()
24612461
self._add_join_to_cancer_audit_dataset_tumour()
24622462
self.sql_where.append(
2463-
f"AND dctu.recurrence_id = PreviouslyExcisedTumourType.by_description_case_insensitive(self.criteria_value).id"
2463+
"AND dctu.recurrence_id = PreviouslyExcisedTumourType.by_description_case_insensitive(self.criteria_value).id"
24642464
)
24652465

24662466
def _add_criteria_cads_treatment_type(self) -> None:
24672467
self._add_join_to_latest_episode()
24682468
self._add_join_to_cancer_audit_dataset()
24692469
self._add_join_to_cancer_audit_dataset_treatment()
24702470
self.sql_where.append(
2471-
f"AND dctr.treatment_category_id = TreatmentType.by_description_case_insensitive(self.criteria_value).id"
2471+
"AND dctr.treatment_category_id = TreatmentType.by_description_case_insensitive(self.criteria_value).id"
24722472
)
24732473

24742474
def _add_criteria_cads_treatment_given(self) -> None:
24752475
self._add_join_to_latest_episode()
24762476
self._add_join_to_cancer_audit_dataset()
24772477
self._add_join_to_cancer_audit_dataset_treatment()
24782478
self.sql_where.append(
2479-
f"AND dctr.treatment_procedure_id = TreatmentGiven.by_description_case_insensitive(self.criteria_value).id"
2479+
"AND dctr.treatment_procedure_id = TreatmentGiven.by_description_case_insensitive(self.criteria_value).id"
24802480
)
24812481

24822482
def _add_criteria_cads_cancer_treatment_intent(self) -> None:
24832483
self._add_join_to_latest_episode()
24842484
self._add_join_to_cancer_audit_dataset()
24852485
self._add_join_to_cancer_audit_dataset_treatment()
24862486
self.sql_where.append(
2487-
f"AND dctr.treatment_intent_id = CancerTreatmentIntent.by_description_case_insensitive(self.criteria_value).id"
2487+
"AND dctr.treatment_intent_id = CancerTreatmentIntent.by_description_case_insensitive(self.criteria_value).id"
2488+
)
2489+
2490+
def _add_join_to_cancer_audit_dataset_staging_scan(self) -> None:
2491+
self.sql_from.append(
2492+
"INNER JOIN data_cancer_audit_dataset_staging_scan dcss ON dcss.cancer_audit_dataset_id = cads.cancer_audit_dataset_id"
2493+
)
2494+
2495+
def _add_join_to_cancer_audit_dataset_metastasis(self) -> None:
2496+
self.sql_from.append(
2497+
"INNER JOIN data_cancer_audit_dataset_metastasis dcm ON dcm.cancer_audit_dataset_id = cads.cancer_audit_dataset_id"
2498+
)
2499+
2500+
def _add_join_to_cancer_audit_dataset_tumour(self) -> None:
2501+
self.sql_from.append(
2502+
"INNER JOIN data_cancer_audit_dataset_tumour dctu ON dctu.cancer_audit_dataset_id = cads.cancer_audit_dataset_id"
24882503
)
24892504

24902505
def _add_criteria_subject_hub_code(self, user: "User") -> None:

0 commit comments

Comments
 (0)