USCDI+ Clinical Trials Matching Implementation Guide
0.1.0
⚠️ This is a developmental version of the guide and is under active development. Content may change at any time without notice. No official release has been made. The final base canonical URL and hosting location have not yet been determined. This guide should not be used for production implementations.
In this interaction, a CTM service uses FHIR query interactions identifying a cohort of patients at a provider's FHIR-endpoint based on the CTM-defined eligibility criteria. The resulting patient data set is used to retrieve patient data from a provider’s FHIR endpoint. The CTM service may temporarily store or process this data to execute eligibility matching logic.
The IG intentionally does not prescribe a single cohort definition language or algorithm. A CTM Service MAY define or derive a candidate cohort through:
Group resources that identify in-scope patientsWhen a CTM cohort is represented explicitly, the CTM Service SHOULD consider using a FHIR Group resource as the exchange-facing representation of the candidate cohort. This pattern is similar to the mCODE approach for identifying in-scope cancer patients, where Data Senders use Group.code and support a query such as GET [base]/Group?code=C19700 to identify the applicable patient group. In CTM, the specific Group.code, membership criteria, and population semantics are implementation-defined unless otherwise constrained by a CTM use case or profile.
The Provider FHIR server is not required to understand external cohort-definition languages. The Provider's responsibility is to expose the CTM-relevant FHIR resources and search capabilities needed to retrieve candidate patient data. Where the Provider FHIR server supports Group, it MAY expose CTM-relevant candidate cohorts as Group resources and allow clients to retrieve referenced Patient resources using standard FHIR search patterns.
After candidate patients have been identified, the CTM Matching Service SHALL be able to retrieve the baseline CTM data elements from the baseline resource set outlined in the Capability Statement page.
The queries below are illustrative examples showing how the minimum CTM data elements MAY be retrieved. Specific codes and parameters for these queries are implementation-defined.
| Data element / retrieval purpose | Example search query |
|---|---|
| Patient | GET Patient/[id]GET [base]/Patient?_id=[id] |
| Clinical Performance Status and Clinical Performance Status Assessment Date | GET [base]/Observation?patient=[id]&code=http://loinc.org|89247-1,http://loinc.org|89243-0,http://loinc.org|89246-3 |
| Smoking Status | GET [base]/Observation?patient=[id]&code=http://loinc.org|72166-2 |
| Laboratory Test, Laboratory Date and Time, Values/Results, Reference Range, and Unit of Measure | GET [base]/Observation?patient=[id]&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory |
| Pregnancy Status | GET [base]/Observation?patient=[id]&code=http://loinc.org|82810-3 |
| Comorbid Conditions | GET [base]/Observation?patient=[id]&code=http://snomed.info/sct|398192003 |
| General Stage | GET [base]/Observation?patient=[id]&code=http://loinc.org|21908-9,http://loinc.org|21902-2,http://loinc.org|21914-7 |
| TNM - T Category | GET [base]/Observation?patient=[id]&code=http://loinc.org|21905-5,http://loinc.org|21899-0,http://loinc.org|21911-3 |
| TNM - N Category | GET [base]/Observation?patient=[id]&code=http://loinc.org|21906-3,http://loinc.org|21900-6,http://loinc.org|21912-1 |
| TNM - M Category | GET [base]/Observation?patient=[id]&code=http://loinc.org|21907-1,http://loinc.org|21901-4,http://loinc.org|21913-9 |
| Date of Diagnosis and Problems (example condition: B-cell acute lymphoblastic leukemia) | GET [base]/Condition?patient=[id]&category=http://terminology.hl7.org/CodeSystem/condition-category|problem-list-item&code=http://snomed.info/sct|277571004 |
| Histology, Primary Site, Metastasis Anatomic Site, and Recurrence Anatomic Site | GET [base]/Condition?patient=[id] |
| Procedure and Procedure Date (example procedure: radiotherapy) | GET [base]/Procedure?patient=[id]&code=http://snomed.info/sct|1217123003 |
| Procedure and Procedure Date (example procedure: defibrillator implant) | GET [base]/Procedure?patient=[id]&code=http://www.ama-assn.org/go/cpt|33249 |
| Medication and Medication Administered Date (example medication: cyclophosphamide) | GET [base]/MedicationAdministration?patient=[id]&code=http://www.nlm.nih.gov/research/umls/rxnorm|3002&_include=MedicationAdministration:medication |
Sponsor-initiated Trial uses the same profile strategy defined in the USCDI+ CTM V1 data mappings:
Detailed authorization requirements for Sponsor-initiated Trial Matching are out of scope for this Implementation Guide. Implementations that use backend system-to-system access SHOULD follow the SMART on FHIR Backend Services authorization model, including appropriate client authentication, access token use, least-privilege scopes, and access limited to the resources and operations needed for the interaction.
Sponsor-initited Trial Matching SHALL treat incomplete search results as incomplete data, not as evidence that a clinical fact is false.
searchset Bundle means no matching resource was returned by that query, not necessarily the patient does not have the clinical fact.