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.
Official URL: http://fhir.org/guides/onc/ctm/CapabilityStatement/CTMMatchingService
|
Version: 0.1.0 | |
| Parent: |
Computable Name: CTMMatchingService |
|
Requirements for the CTM Matching Service participating in USCDI+ CTM. This CapabilityStatement primarily applies to Sponsor-initiated Trial Matching, where the CTM Matching Service acts as a FHIR RESTful client and retrieves CTM-relevant data from a Provider FHIR Server. In Provider-initiated Trial Matching, the CTM Matching Service acts as a CDS Hooks service and responds to requests from the Provider System; that CDS Hooks behavior is described elsewhere in this guide and is not fully represented by this CapabilityStatement.
| Mode | Client |
|---|---|
| Documentation | Sponsor-initiated Trial Matching: the CTM Matching Service acts as the FHIR RESTful client. It initiates authorized FHIR read and search requests to the Provider FHIR Server and retrieves the baseline USCDI+ CTM resource types needed for matching. Provider-initiated Trial Matching: the CTM Matching Service acts as a CDS Hooks service that responds to a request sent by the Provider System / CDS Client and returns CDS Hooks cards. That CDS Hooks interaction is referenced here for context but is specified elsewhere in the guide. |
| Description | For Sponsor-initiated Trial Matching, backend FHIR access should use the deployment's approved authorization approach, such as SMART Backend Services or an equivalent system-to-system authorization mechanism. For Provider-initiated Trial Matching, optional follow-up FHIR retrieval may occur only if the Provider System supplies the necessary FHIR server and authorization context. This CapabilityStatement does not define CDS Hooks security behavior in detail. |
|---|
Patient
| Name | Type | Documentation | Level |
|---|---|---|---|
| _id | token | Retrieve a known patient by logical id. | Supported |
| identifier | token | Retrieve a patient by business identifier when needed. | Supported |
Condition
| Name | Type | Documentation | Level |
|---|---|---|---|
| patient | reference | Primary patient-level retrieval parameter. | Supported |
| category | token | Used for problem-list condition context when supported. | Supported |
| code | token | Used when implementations support more specific condition filtering. | Supported |
Observation
| Name | Type | Documentation | Level |
|---|---|---|---|
| patient | reference | Primary patient-level retrieval parameter. | Supported |
| code | token | Used to retrieve specific CTM observation types. | Supported |
| category | token | Used to distinguish laboratory observations when supported. | Supported |
| date | date | May be used to refine timing or recency. | Supported |
MedicationAdministration
| Name | Type | Documentation | Level |
|---|---|---|---|
| patient | reference | Primary patient-level retrieval parameter. | Supported |
| status | token | May be used to refine administrations when supported. | Supported |
| code | token | May be used when implementations support medication-specific filtering. | Supported |
| medication.code | token | Chained search across the medication reference into the Medication resource, e.g. MedicationAdministration?medication.code=..., to retrieve administrations by medication identity. | Supported |
Medication
No search parameters are stated for this resource type
Procedure
| Name | Type | Documentation | Level |
|---|---|---|---|
| patient | reference | Primary patient-level retrieval parameter. | Supported |
| code | token | May be used when implementations support more specific procedure filtering. | Supported |
| date | date | May be used to refine timing. | Supported |
| CapabilityStatement |
| id : CTMMatchingService |
| url : http://fhir.org/guides/onc/ctm/CapabilityStatement/CTMMatchingService |
| version : 0.1.0 |
| name : CTMMatchingService |
| title : CTM Matching Service CapabilityStatement |
| status : active |
| date : 2026-04-15 |
| description : Requirements for the CTM Matching Service participating in USCDI+ CTM. This CapabilityStatement primarily applies to Sponsor-initiated Trial Matching, where the CTM Matching Service acts as a FHIR RESTful client and retrieves CTM-relevant data from a Provider FHIR Server. In Provider-initiated Trial Matching, the CTM Matching Service acts as a CDS Hooks service and responds to requests from the Provider System; that CDS Hooks behavior is described elsewhere in this guide and is not fully represented by this CapabilityStatement. |
| kind : requirements |
| fhirVersion : 4.0.1 |
| format : json |
| format : xml |
| rest |
| mode : client |
| documentation : Sponsor-initiated Trial Matching: the CTM Matching Service acts as the FHIR RESTful client. It initiates authorized FHIR read and search requests to the Provider FHIR Server and retrieves the baseline USCDI+ CTM resource types needed for matching. Provider-initiated Trial Matching: the CTM Matching Service acts as a CDS Hooks service that responds to a request sent by the Provider System / CDS Client and returns CDS Hooks cards. That CDS Hooks interaction is referenced here for context but is specified elsewhere in the guide. |
| security |
| description : For Sponsor-initiated Trial Matching, backend FHIR access should use the deployment's approved authorization approach, such as SMART Backend Services or an equivalent system-to-system authorization mechanism. For Provider-initiated Trial Matching, optional follow-up FHIR retrieval may occur only if the Provider System supplies the necessary FHIR server and authorization context. This CapabilityStatement does not define CDS Hooks security behavior in detail. |
| resource |
| type : Patient |
| supportedProfile : http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient|6.1.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-patient|4.0.0 |
| documentation : Baseline USCDI+ CTM patient identity and demographic context for Sponsor-initiated retrieval. In the Provider-initiated scenario, equivalent patient context is commonly supplied through prefetch. |
| interaction |
| code : read |
| interaction |
| code : search-type |
| searchParam |
| name : _id |
| type : token |
| documentation : Retrieve a known patient by logical id. |
| searchParam |
| name : identifier |
| type : token |
| documentation : Retrieve a patient by business identifier when needed. |
| resource |
| type : Condition |
| supportedProfile : http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition-problems-health-concerns|6.1.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-primary-cancer-condition|4.0.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-secondary-cancer-condition|4.0.0 |
| documentation : Baseline CTM condition context including diagnosis, disease-site, and histology context. The Provider-initiated prefetch often separates condition content into problem-list and site-oriented groupings. |
| interaction |
| code : read |
| interaction |
| code : search-type |
| searchParam |
| name : patient |
| type : reference |
| documentation : Primary patient-level retrieval parameter. |
| searchParam |
| name : category |
| type : token |
| documentation : Used for problem-list condition context when supported. |
| searchParam |
| name : code |
| type : token |
| documentation : Used when implementations support more specific condition filtering. |
| resource |
| type : Observation |
| supportedProfile : http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab|6.1.0 |
| supportedProfile : http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-pregnancystatus|6.1.0 |
| supportedProfile : http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus|6.1.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-ecog-performance-status|4.0.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-karnofsky-performance-status|4.0.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-lansky-play-performance-status|4.0.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-comorbidities|4.0.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-stage|4.0.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-tnm-primary-tumor-category|4.0.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-tnm-regional-nodes-category|4.0.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-tnm-distant-metastases-category|4.0.0 |
| documentation : Baseline CTM observation content including performance status, smoking status, laboratory data, pregnancy status, comorbidities, general and TNM staging. The Provider-initiated prefetch uses observation-specific templates aligned to the USCDI+ CTM data model. |
| interaction |
| code : read |
| interaction |
| code : search-type |
| searchParam |
| name : patient |
| type : reference |
| documentation : Primary patient-level retrieval parameter. |
| searchParam |
| name : code |
| type : token |
| documentation : Used to retrieve specific CTM observation types. |
| searchParam |
| name : category |
| type : token |
| documentation : Used to distinguish laboratory observations when supported. |
| searchParam |
| name : date |
| type : date |
| documentation : May be used to refine timing or recency. |
| resource |
| type : MedicationAdministration |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-administration|4.0.0 |
| documentation : Baseline CTM medication administration content. Medication identity is resolved through the referenced Medication resource, either by chaining on the medication reference or by a separate Medication read. |
| interaction |
| code : read |
| interaction |
| code : search-type |
| searchParam |
| name : patient |
| type : reference |
| documentation : Primary patient-level retrieval parameter. |
| searchParam |
| name : status |
| type : token |
| documentation : May be used to refine administrations when supported. |
| searchParam |
| name : code |
| type : token |
| documentation : May be used when implementations support medication-specific filtering. |
| searchParam |
| name : medication.code |
| type : token |
| documentation : Chained search across the medication reference into the Medication resource, e.g. MedicationAdministration?medication.code=..., to retrieve administrations by medication identity. |
| resource |
| type : Medication |
| supportedProfile : http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication|6.1.0 |
| documentation : Referenced Medication identity supporting MedicationAdministration. Retrieved by read only; there is no direct Medication search. Medication-based filtering of administrations is expressed through chained search on MedicationAdministration. |
| interaction |
| code : read |
| resource |
| type : Procedure |
| supportedProfile : http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure|6.1.0 |
| supportedProfile : http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-radiotherapy-course-summary|4.0.0 |
| documentation : Baseline CTM procedure content including general procedures and radiotherapy-related details. The Provider-initiated may represent these through procedures and procedures-radiotherapy prefetch groupings. |
| interaction |
| code : read |
| interaction |
| code : search-type |
| searchParam |
| name : patient |
| type : reference |
| documentation : Primary patient-level retrieval parameter. |
| searchParam |
| name : code |
| type : token |
| documentation : May be used when implementations support more specific procedure filtering. |
| searchParam |
| name : date |
| type : date |
| documentation : May be used to refine timing. |
| CapabilityStatement.id[0] | CTMMatchingService |
| CapabilityStatement.url[0] | http://fhir.org/guides/onc/ctm/CapabilityStatement/CTMMatchingService |
| CapabilityStatement.version[0] | 0.1.0 |
| CapabilityStatement.name[0] | CTMMatchingService |
| CapabilityStatement.title[0] | CTM Matching Service CapabilityStatement |
| CapabilityStatement.status[0] | active |
| CapabilityStatement.date[0] | 2026-04-15 |
| CapabilityStatement.description[0] | Requirements for the CTM Matching Service participating in USCDI+ CTM. This CapabilityStatement primarily applies to Sponsor-initiated Trial Matching, where the CTM Matching Service acts as a FHIR RESTful client and retrieves CTM-relevant data from a Provider FHIR Server. In Provider-initiated Trial Matching, the CTM Matching Service acts as a CDS Hooks service and responds to requests from the Provider System; that CDS Hooks behavior is described elsewhere in this guide and is not fully represented by this CapabilityStatement. |
| CapabilityStatement.kind[0] | requirements |
| CapabilityStatement.fhirVersion[0] | 4.0.1 |
| CapabilityStatement.format[0] | json |
| CapabilityStatement.format[1] | xml |
| CapabilityStatement.rest[0].mode[0] | client |
| CapabilityStatement.rest[0].documentation[0] | Sponsor-initiated Trial Matching: the CTM Matching Service acts as the FHIR RESTful client. It initiates authorized FHIR read and search requests to the Provider FHIR Server and retrieves the baseline USCDI+ CTM resource types needed for matching. Provider-initiated Trial Matching: the CTM Matching Service acts as a CDS Hooks service that responds to a request sent by the Provider System / CDS Client and returns CDS Hooks cards. That CDS Hooks interaction is referenced here for context but is specified elsewhere in the guide. |
| CapabilityStatement.rest[0].security[0].description[0] | For Sponsor-initiated Trial Matching, backend FHIR access should use the deployment's approved authorization approach, such as SMART Backend Services or an equivalent system-to-system authorization mechanism. For Provider-initiated Trial Matching, optional follow-up FHIR retrieval may occur only if the Provider System supplies the necessary FHIR server and authorization context. This CapabilityStatement does not define CDS Hooks security behavior in detail. |
| CapabilityStatement.rest[0].resource[0].type[0] | Patient |
| CapabilityStatement.rest[0].resource[0].supportedProfile[0] | http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient|6.1.0 |
| CapabilityStatement.rest[0].resource[0].supportedProfile[1] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-patient|4.0.0 |
| CapabilityStatement.rest[0].resource[0].documentation[0] | Baseline USCDI+ CTM patient identity and demographic context for Sponsor-initiated retrieval. In the Provider-initiated scenario, equivalent patient context is commonly supplied through prefetch. |
| CapabilityStatement.rest[0].resource[0].interaction[0].code[0] | read |
| CapabilityStatement.rest[0].resource[0].interaction[1].code[0] | search-type |
| CapabilityStatement.rest[0].resource[0].searchParam[0].name[0] | _id |
| CapabilityStatement.rest[0].resource[0].searchParam[0].type[0] | token |
| CapabilityStatement.rest[0].resource[0].searchParam[0].documentation[0] | Retrieve a known patient by logical id. |
| CapabilityStatement.rest[0].resource[0].searchParam[1].name[0] | identifier |
| CapabilityStatement.rest[0].resource[0].searchParam[1].type[0] | token |
| CapabilityStatement.rest[0].resource[0].searchParam[1].documentation[0] | Retrieve a patient by business identifier when needed. |
| CapabilityStatement.rest[0].resource[1].type[0] | Condition |
| CapabilityStatement.rest[0].resource[1].supportedProfile[0] | http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition-problems-health-concerns|6.1.0 |
| CapabilityStatement.rest[0].resource[1].supportedProfile[1] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-primary-cancer-condition|4.0.0 |
| CapabilityStatement.rest[0].resource[1].supportedProfile[2] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-secondary-cancer-condition|4.0.0 |
| CapabilityStatement.rest[0].resource[1].documentation[0] | Baseline CTM condition context including diagnosis, disease-site, and histology context. The Provider-initiated prefetch often separates condition content into problem-list and site-oriented groupings. |
| CapabilityStatement.rest[0].resource[1].interaction[0].code[0] | read |
| CapabilityStatement.rest[0].resource[1].interaction[1].code[0] | search-type |
| CapabilityStatement.rest[0].resource[1].searchParam[0].name[0] | patient |
| CapabilityStatement.rest[0].resource[1].searchParam[0].type[0] | reference |
| CapabilityStatement.rest[0].resource[1].searchParam[0].documentation[0] | Primary patient-level retrieval parameter. |
| CapabilityStatement.rest[0].resource[1].searchParam[1].name[0] | category |
| CapabilityStatement.rest[0].resource[1].searchParam[1].type[0] | token |
| CapabilityStatement.rest[0].resource[1].searchParam[1].documentation[0] | Used for problem-list condition context when supported. |
| CapabilityStatement.rest[0].resource[1].searchParam[2].name[0] | code |
| CapabilityStatement.rest[0].resource[1].searchParam[2].type[0] | token |
| CapabilityStatement.rest[0].resource[1].searchParam[2].documentation[0] | Used when implementations support more specific condition filtering. |
| CapabilityStatement.rest[0].resource[2].type[0] | Observation |
| CapabilityStatement.rest[0].resource[2].supportedProfile[0] | http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab|6.1.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[1] | http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-pregnancystatus|6.1.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[2] | http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus|6.1.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[3] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-ecog-performance-status|4.0.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[4] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-karnofsky-performance-status|4.0.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[5] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-lansky-play-performance-status|4.0.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[6] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-comorbidities|4.0.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[7] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-stage|4.0.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[8] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-tnm-primary-tumor-category|4.0.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[9] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-tnm-regional-nodes-category|4.0.0 |
| CapabilityStatement.rest[0].resource[2].supportedProfile[10] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-tnm-distant-metastases-category|4.0.0 |
| CapabilityStatement.rest[0].resource[2].documentation[0] | Baseline CTM observation content including performance status, smoking status, laboratory data, pregnancy status, comorbidities, general and TNM staging. The Provider-initiated prefetch uses observation-specific templates aligned to the USCDI+ CTM data model. |
| CapabilityStatement.rest[0].resource[2].interaction[0].code[0] | read |
| CapabilityStatement.rest[0].resource[2].interaction[1].code[0] | search-type |
| CapabilityStatement.rest[0].resource[2].searchParam[0].name[0] | patient |
| CapabilityStatement.rest[0].resource[2].searchParam[0].type[0] | reference |
| CapabilityStatement.rest[0].resource[2].searchParam[0].documentation[0] | Primary patient-level retrieval parameter. |
| CapabilityStatement.rest[0].resource[2].searchParam[1].name[0] | code |
| CapabilityStatement.rest[0].resource[2].searchParam[1].type[0] | token |
| CapabilityStatement.rest[0].resource[2].searchParam[1].documentation[0] | Used to retrieve specific CTM observation types. |
| CapabilityStatement.rest[0].resource[2].searchParam[2].name[0] | category |
| CapabilityStatement.rest[0].resource[2].searchParam[2].type[0] | token |
| CapabilityStatement.rest[0].resource[2].searchParam[2].documentation[0] | Used to distinguish laboratory observations when supported. |
| CapabilityStatement.rest[0].resource[2].searchParam[3].name[0] | date |
| CapabilityStatement.rest[0].resource[2].searchParam[3].type[0] | date |
| CapabilityStatement.rest[0].resource[2].searchParam[3].documentation[0] | May be used to refine timing or recency. |
| CapabilityStatement.rest[0].resource[3].type[0] | MedicationAdministration |
| CapabilityStatement.rest[0].resource[3].supportedProfile[0] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-administration|4.0.0 |
| CapabilityStatement.rest[0].resource[3].documentation[0] | Baseline CTM medication administration content. Medication identity is resolved through the referenced Medication resource, either by chaining on the medication reference or by a separate Medication read. |
| CapabilityStatement.rest[0].resource[3].interaction[0].code[0] | read |
| CapabilityStatement.rest[0].resource[3].interaction[1].code[0] | search-type |
| CapabilityStatement.rest[0].resource[3].searchParam[0].name[0] | patient |
| CapabilityStatement.rest[0].resource[3].searchParam[0].type[0] | reference |
| CapabilityStatement.rest[0].resource[3].searchParam[0].documentation[0] | Primary patient-level retrieval parameter. |
| CapabilityStatement.rest[0].resource[3].searchParam[1].name[0] | status |
| CapabilityStatement.rest[0].resource[3].searchParam[1].type[0] | token |
| CapabilityStatement.rest[0].resource[3].searchParam[1].documentation[0] | May be used to refine administrations when supported. |
| CapabilityStatement.rest[0].resource[3].searchParam[2].name[0] | code |
| CapabilityStatement.rest[0].resource[3].searchParam[2].type[0] | token |
| CapabilityStatement.rest[0].resource[3].searchParam[2].documentation[0] | May be used when implementations support medication-specific filtering. |
| CapabilityStatement.rest[0].resource[3].searchParam[3].name[0] | medication.code |
| CapabilityStatement.rest[0].resource[3].searchParam[3].type[0] | token |
| CapabilityStatement.rest[0].resource[3].searchParam[3].documentation[0] | Chained search across the medication reference into the Medication resource, e.g. MedicationAdministration?medication.code=..., to retrieve administrations by medication identity. |
| CapabilityStatement.rest[0].resource[4].type[0] | Medication |
| CapabilityStatement.rest[0].resource[4].supportedProfile[0] | http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication|6.1.0 |
| CapabilityStatement.rest[0].resource[4].documentation[0] | Referenced Medication identity supporting MedicationAdministration. Retrieved by read only; there is no direct Medication search. Medication-based filtering of administrations is expressed through chained search on MedicationAdministration. |
| CapabilityStatement.rest[0].resource[4].interaction[0].code[0] | read |
| CapabilityStatement.rest[0].resource[5].type[0] | Procedure |
| CapabilityStatement.rest[0].resource[5].supportedProfile[0] | http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure|6.1.0 |
| CapabilityStatement.rest[0].resource[5].supportedProfile[1] | http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-radiotherapy-course-summary|4.0.0 |
| CapabilityStatement.rest[0].resource[5].documentation[0] | Baseline CTM procedure content including general procedures and radiotherapy-related details. The Provider-initiated may represent these through procedures and procedures-radiotherapy prefetch groupings. |
| CapabilityStatement.rest[0].resource[5].interaction[0].code[0] | read |
| CapabilityStatement.rest[0].resource[5].interaction[1].code[0] | search-type |
| CapabilityStatement.rest[0].resource[5].searchParam[0].name[0] | patient |
| CapabilityStatement.rest[0].resource[5].searchParam[0].type[0] | reference |
| CapabilityStatement.rest[0].resource[5].searchParam[0].documentation[0] | Primary patient-level retrieval parameter. |
| CapabilityStatement.rest[0].resource[5].searchParam[1].name[0] | code |
| CapabilityStatement.rest[0].resource[5].searchParam[1].type[0] | token |
| CapabilityStatement.rest[0].resource[5].searchParam[1].documentation[0] | May be used when implementations support more specific procedure filtering. |
| CapabilityStatement.rest[0].resource[5].searchParam[2].name[0] | date |
| CapabilityStatement.rest[0].resource[5].searchParam[2].type[0] | date |
| CapabilityStatement.rest[0].resource[5].searchParam[2].documentation[0] | May be used to refine timing. |