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 the Provider-initiated Scenario, a Provider System invokes a CTM Service using the CDS Hooks specification to request clinical trial matching support for an individual patient currently under provider review in the context of a clinical workflow. The CTM Service evaluates the available patient data and returns a CDS Hooks response containing one or more cards that communicate potential trial matches, informational messages, or warnings.
The Provider-initiated Scenario is intended to support near-real-time clinical trial matching within provider workflow while keeping the initial implementation simple and interoperable.
This scenario is limited to provider-initiated trial matching for a single, identified patient in the context of a provider workflow.
This scenario defines:
This scenario does not define:
{baseURL}/cds-services./cds-services/{serviceId}.Prior to invoking a CTM CDS Hooks service, the Provider System discovers available CDS services through the CDS Hooks discovery endpoint located at {baseURL}/cds-services.
The CTM Matching Service SHALL expose a CDS Hooks discovery endpoint so Provider Systems can know which services are available and how to invoke them.
GET {baseUrl}/cds-services with the list of CDS services it offers, as defined by the CDS Hooks discovery specification.hook, id, and a human-readable description, and SHOULD include a title.prefetch templates it expects, so Provider Systems know which CTM-relevant data to supply (see Prefetch Model).POST {baseUrl}/cds-services/{id} using the id obtained from discovery.Discovery lets the prefetch templates documented in this guide be communicated by the service itself, keeping the Provider System and CTM Matching Service aligned on the expected CTM-relevant data.
The recommended hook is patient-view.
The patient-view hook is invoked when a user opens a patient record. Its standard context includes userId, patientId, and an optional encounterId. This aligns well with the CTM goal of surfacing trial matching information when a clinician is reviewing a patient chart.
A Provider System implementing the Provider-initiated Scenario:
patient-view hook for USCDI+ CTM V1A CTM Matching Service implementing the Provider-initiated Scenario:
A USCDI+ CTM V1 Provider-initiated Scenario request SHALL include:
hookhookInstancecontext.patientIdcontext.userIdA USCDI+ CTM V1 Provider-initiated Scenario CDS Hooks request SHOULD include CTM-relevant data using one of the following approaches:
prefetchA USCDI+ CTM V1 Provider-initiated Scenario CDS Hooks request MAY also include:
context.encounterIdfhirServerfhirAuthorizationThe Provider-initiated Scenario is prefetch-recommended for USCDI+ CTM V1.
The preferred approach is for the Provider System to execute FHIR queries in advance and include the results using CDS Hooks prefetch. This aligns with standard CDS Hooks behavior and supports lower-latency implementations.
The transmitted data is intended to represent the USCDI+ CTM V1 baseline data elements defined by the USCDI+ CTM Data Mapping.
The examples below illustrate two complete CDS Hooks service definitions that advertise prefetch expectations through the CDS Hooks discovery endpoint. They are intended to show realistic implementation patterns. They are not mandatory, not exhaustive, and not the only valid way to structure CTM prefetch.
Implementations may use fewer keys, different key names, or more specific query patterns, provided the exchanged data remains aligned with the profiles, terminologies, and cardinalities defined in the USCDI+ CTM Data Mapping.
For the supported FHIR resource types, expected profiles, and related search parameters, see the CTM Provider FHIR Server CapabilityStatement.
More specific queries may improve performance and reduce unnecessary data exchange. Where a CTM service needs additional or narrower data after the hook request, the service may use CDS Hooks authorization-token-based FHIR resource access within the authorized scope and dataset boundaries supported by this guide.
Use a minimal prefetch template like the following example when an implementation wants a lightweight first-pass workflow. This pattern is appropriate when the CTM service only needs core patient demographic context up front and will either return a limited result or request additional in-scope data later through authorized FHIR access when available.
{
"services": [
{
"hook": "patient-view",
"id": "ctm-demographics-screen",
"title": "CTM Demographics Screen",
"description": "Lightweight provider-initiated CTM service for initial screening using patient demographic context.",
"prefetch": {
"patient": "Patient/{{context.patientId}}"
}
}
]
}
Use more extensive prefetch data like the example below when an implementation wants the Provider System to supply a broader but still targeted set of CTM-relevant data during the initial hook request. This pattern is appropriate when the CTM service expects to screen for potential trial matches in one round-trip without relying on broad, unfiltered history retrieval.
{
"services": [
{
"hook": "patient-view",
"id": "ctm-trial-screen-detailed",
"title": "CTM Trial Screening Service",
"description": "Provider-initiated CTM service that screens an individual patient using targeted CTM-relevant data.",
"prefetch": {
"patient": "Patient/{{context.patientId}}",
"conditions-cancer-B-cell-acute-lymphoblastic-leukemia": "Condition?patient={{context.patientId}}&category=http://terminology.hl7.org/CodeSystem/condition-category|problem-list-item&code=http://snomed.info/sct|277571004",
"observations-performance": "Observation?patient={{context.patientId}}&code=http://loinc.org|89247-1,http://loinc.org|89243-0,http://loinc.org|89246-3",
"observations-smoking": "Observation?patient={{context.patientId}}&code=http://loinc.org|72166-2",
"observations-laboratory": "Observation?patient={{context.patientId}}&category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory",
"observations-pregnancy-status": "Observation?patient={{context.patientId}}&code=http://loinc.org|82810-3",
"observations-comorbidities": "Observation?patient={{context.patientId}}&code=http://snomed.info/sct|398192003",
"observations-stage-group": "Observation?patient={{context.patientId}}&code=http://loinc.org|21908-9,http://loinc.org|21902-2,http://loinc.org|21914-7",
"observations-tnm-t": "Observation?patient={{context.patientId}}&code=http://loinc.org|21905-5,http://loinc.org|21899-0,http://loinc.org|21911-3",
"observations-tnm-n": "Observation?patient={{context.patientId}}&code=http://loinc.org|21906-3,http://loinc.org|21900-6,http://loinc.org|21912-1",
"observations-tnm-m": "Observation?patient={{context.patientId}}&code=http://loinc.org|21907-1,http://loinc.org|21901-4,http://loinc.org|21913-9",
"medication-administrations-oncology-cyclophosphamide": "MedicationAdministration?patient={{context.patientId}}&code=http://www.nlm.nih.gov/research/umls/rxnorm|3002&_include=MedicationAdministration:medication",
"procedures-radiotherapy": "Procedure?patient={{context.patientId}}&code=http://snomed.info/sct|1217123003",
"procedures-defib-implant": "Procedure?patient={{context.patientId}}&code=http://www.ama-assn.org/go/cpt|33249"
}
}
]
}
The exact key names above are illustrative. Implementations MAY use different prefetch key names, but the CTM Matching Service and Provider System SHOULD document the keys they support.
If the prefetched content is not sufficient for a particular CTM service, the CTM service may use CDS Hooks authorization-token-based FHIR resource access to request additional data after the hook request. Any such follow-up retrieval should remain within the authorized scope and within the dataset boundaries supported by this guide. See CDS Hooks Guidance for FHIR Resource Access.
This additional retrieval mechanism is optional. Implementations are encouraged to use prefetch for the baseline CTM-relevant content and reserve follow-up FHIR access for cases where additional detail is needed.
For each CTM data element included in prefetch:
The baseline resource set is outlined in the Capability Statement page.
The CTM Matching Service SHALL return a standard CDS Hooks response with one or more cards. Guidance and examples for CDS Hooks cards are provided in the IG: CDS Hooks Card Guidance for USCDI+ CTM.
For the Provider-initiated Scenario:
The Provider-initiated Scenario SHALL treat missing data as missing, not as a negative clinical assertion.