This page is part of the US Core (v1.0.0: STU1) based on FHIR R3. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions
This section outlines conformance requirements for the US Core Servers and Client applications, identifying the specific profiles that need to be supported, the specific RESTful operations that need to be supported, and the search parameters that need to be supported. Note: The individual US Core profiles identify the structural constraints, terminology bindings and invariants, however, implementers must refer to the conformance requirements for details on the RESTful operations, specific profiles and the search parameters applicable to each of the US Core actors.
Contents
The Section describes the expected capabilities of the US Core Server actor which is responsible for providing responses to the queries submitted by the US Core Requestors. The complete list of FHIR profiles, RESTful operations, and search parameters supported by US Core Servers are defined. Systems implementing this capability statement should meet the ONC 2015 Common Clinical Data Set (CCDS) access requirement for Patient Selection 170.315(g)(7) and Application Access - Data Category Request 170.315(g)(8). US Core Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.
Description:
The US Core Server SHALL:
The US Core Server SHOULD:
meta.profile
attribute for each instance.US Core Servers SHALL:
Authorization: Bearer {server-specific-token-here}
HTTP 401
Unauthorized response code.Summary of US Core search criteria
Specific server search capabilities are described in detail in each of the resource sections below.
Resource Type | Supported Profiles | Supported Searches | Supported Includes |
---|---|---|---|
Patient | US Core Patient Profile | name , family , given , identifier , gender , birthdate , name + gender , name + birthdate , family + gender , given + gender | |
AllergyIntolerance | US Core AllergyIntolerance Profile | patient | |
CarePlan | US Core CarePlan Profile | patient , category , status , date, patient + category , patient + category + date , patient + category + status , patient + category + status + date | |
CareTeam | US Core CareTeam Profile | patient , status, patient + status | |
Condition | US Core Condition Profile | patient , category , clinicalstatus, patient + clinicalstatus , patient + category | |
Device | US Core Device Profile | patient | |
DiagnosticReport | US Core DiagnosticReport Profile | patient , category , code , date, patient + category , patient + category + date , patient + category + code, patient + category + code + date | |
Goal | US Core Goal Profile | patient , date, patient + date | |
Immunization | US Core Immunization Profile | patient | |
Location | US Core Location Profile | name , address | |
Medication | US Core Medication Profile | ||
MedicationStatement | US Core MedicationStatement Profile | patient | MedicationStatement.medication |
MedicationRequest | US Core MedicationRequest Profile | patient | MedicationRequest.medication |
Observation | US Core Result Observation Profile, Vital Signs Profile, US Core Smoking Status Observation Profile | patient , category , code , date, patient + category , patient + category + date , patient + category + code, patient + category + code + date | |
Organization | US Core Organization Profile | identifier , name , address | |
Practitioner | US Core Practitioner Profile | identifier , name | |
Procedure | US Core Procedure Profile | patient , date , patient + date |
Supported Profiles: US Core Patient Profile
Search Criteria:
GET [base]/Patient/[id]
.
GET [base]/Patient?identifier=[system]|[code]
birthdate
GET [base]/Patient?name=[name]&gender=[gender]
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | name | string |
SHALL | identifier | token |
SHALL | family + gender | string + token |
SHALL | given + gender | string + token |
SHALL | name + gender | string + token |
SHALL | name + birthdate | string + date |
Supported Profiles: US Core AllergyIntolerance Profile
Search Criteria:
Get [base]/AllergyIntolerance?patient=[id]
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | patient | reference |
Supported Profiles: US Core CarePlan Profile
Search Criteria:
Get [base]/CarePlan?patient=[id]&category=assess-plan
Get [base]/CarePlan?patient=[id]&category=assess-plan&date=[date]
Get [base]/CarePlan?patient=[id]&category=assess-plan&status=active
Get [base]/CarePlan?patient=[id]&category=assess-plan&status=active&date=[date]
Search Parameters:
Conformance | Parameter | Type | Modifiers |
---|---|---|---|
SHALL | patient + category | reference + token | |
SHALL | patient + category + date | reference + token + date | date modifiers ‘ge’,‘le’,’gt’,’lt’ |
SHOULD | patient + category + status | reference + token | |
SHOULD | patient + category + date + status | reference + token + date | date modifiers ‘ge’,‘le’,’gt’,’lt’ |
Supported Profiles: US Core CareTeam Profile
Search Criteria:
Get [base]/CareTeam?patient=[id]&status=active
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | patient + status | reference + token |
Supported Profiles: US Core Condition Profile
Search Criteria:
Get [base]/Condition?patient=[id]
Get [base]/Condition?patient=[id]&clinicalstatus=active,recurrance,remission
Get [base]/Condition?patient=[id]&category=[problem|health-concern]
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | patient | reference |
SHOULD | patient + category | reference + token |
SHOULD | patient + clinicalstatus | reference + token |
Supported Profiles: US Core Device Profile
Search Criteria:
Get [base]/Device?patient=[id]
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | patient | reference |
Supported Profiles: US Core DiagnosticReport Profile
Search Criteria:
Get [base]/DiagnosticReport?patient=[id]&category=LAB
GET [base]/DiagnosticReport?patient=[id]&category=LAB&date=[date]{&date=[date]}
GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC]
GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC1{,LOINC2,LOINC3,…}]&date=[date]{&date=[date]}
Search Parameters:
Conformance | Parameter | Type | Modifiers |
---|---|---|---|
SHALL | patient + category | reference + token | |
SHALL | patient + category + code | reference + token | |
SHALL | patient + category + date | reference + token + date | date modifiers ‘ge’,‘le’,’gt’,’lt’ |
SHOULD | patient + category + code + date | reference + token + date | date modifiers ‘ge’,‘le’,’gt’,’lt’ |
Supported Profiles: US Core Goal Profile
Search Criteria:
Get [base]/Goal?patient=[id]
GET [base]/Goal?patient=[id]&date=[date]{&date=[date]}
Search Parameters:
Conformance | Parameter | Type | Modifiers |
---|---|---|---|
SHALL | patient | reference | |
SHALL | patient + date | reference + date | date modifiers ‘ge’,‘le’,’gt’,’lt’ |
Supported Profiles: US Core Immunization Profile
Search Criteria:
Get [base]/Immunization?patient=[id]
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | patient | reference |
Supported Profiles: US Core Location Profile
Search Criteria:
Get [base]/Location?name=[string]
GET [base]/Location?address=[string]
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | name | string |
SHALL | address | string |
Supported Profiles: US Core Medication Profile
The MedicationStatement and MedicationRequest resources can represent a medication, using an external reference to a Medication resource. If an external Medication Resource is used in a MedicationStatement or a MedicationRequest, then the READ and SEARCH Criteria SHALL be supported.
Supported Profiles: US Core MedicationStatement Profile
Search Criteria:
The MedicationStatement resources can represent a medication using either a code or refer to the Medication resource. When referencing a Medication resource, the resource may be contained or an external resource. The server application MAY choose any one way or more than one method, but if an external reference to Medication is used, the server SHALL support the _include
parameter for searching this element. The client application must support all methods.
A server SHALL be capable of returning all medications for a patient using one of or both:
GET /MedicationStatement?patient=[id]
GET /MedicationStatement?patient=[id]&_include=MedicationStatement:medication
Search Parameters:
Conformance | Parameter | Type | _include(see documentation) |
---|---|---|---|
SHALL | patient | reference | MedicationStatement:medication |
Supported Profiles: US Core MedicationRequest Profile
Search Criteria:
The MedicationRequest resources can represent a medication using either a code or refer to the Medication resource. When referencing a Medication resource, the resource may be contained or an external resource. The server application MAY choose any one way or more than one method, but if an external reference to Medication is used, the server SHALL support the _include
parameter for searching this element. The client application must support all methods.
A server SHALL be capable of returning all medications for a patient using one of or both:
GET /MedicationRequest?patient=[id]
GET /MedicationRequest?patient=[id]&_include=MedicationRequest:medication
Search Parameters:
Conformance | Parameter | Type | _include(see documentation) |
---|---|---|---|
SHALL | patient | reference | MedicationRequest:medication |
Supported Profiles: 1. US Core Result Observation Profile
Search Criteria:
A server SHALL be capable of returning all of a patient’s laboratory results queried by category using:
GET [base]/Observation?patient=[id]&category=laboratory
A server SHALL be capable of returning all of a patient’s laboratory results queried by category code and date range using:
GET [base]/Observation?patient=[id]&category=laboratory&date=[date]{&date=[date]}
A server SHALL be capable of returning all of a patient’s laboratory results queried by category and code using:
GET [base]/Observation?patient=[id]&category=laboratory&code=[LOINC]
A server SHOULD be capable of returning all of a patient’s laboratory results queried by category and one or more codes and date range using:
GET [base]/Observation?patient=[id]&category=laboratory&code=[LOINC1{,LOINC2,LOINC3,...}]&date=[date]{&date=[date]}
Search Criteria
A server SHALL be capable of returning all of a patient’s vital signs that it supports using:
GET [base]/Observation?patient=[id]&category=vital-signs
A server SHALL be capable of returning all of a patient’s vital signs queried by date range using:
GET [base]/Observation?patient=[id]&category=vital-signs&date=[date]{&date=[date]}
A server SHALL be capable of returning any of a patient’s vital signs queried by one or more of the codes listed below using:
GET [base]/Observation?patient=[id]&code[vital sign LOINC{,LOINC2,LOINC3,…}]
A server SHOULD be capable of returning any of a patient’s vital signs queried by one or more of the codes listed below and date range using:
GET [base]/Observation?patient=[id]&code=[LOINC{,LOINC2…}]vital-signs&date=[date]{&date=[date]}
Search Criteria:
A server SHALL be capable of returning a patient’s smoking status using:
GET [base]/Observation?patient=[id]&code=72166-2
Search Parameters:
Conformance | Parameter | Type | Modifiers |
---|---|---|---|
SHALL | patient + category | reference + token | |
SHALL | patient + category + code | reference + token | |
SHALL | patient + category + date | reference + token + date | date modifiers ‘ge’,‘le’,’gt’,’lt’ |
SHOULD | patient + category + code + date | reference + token + date | date modifiers ‘ge’,‘le’,’gt’,’lt’ |
Supported Profiles: US Core Organization Profile
Search Criteria:
`GET [base]/Organization?identifier=[system] | [code]’ |
GET [base]/Organization?name=[string]
GET [base]/Organization?address=[string]
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | identifier | token |
SHALL | name | string |
SHALL | address | string |
Supported Profiles: US Core Practitioner Profile
Search Criteria:
GET [base]/Practitioner?identifier=[system]|[code]
GET [base]/Practitioner?family=[string]&given=[string]
Search Parameters:
Conformance | Parameter | Type |
---|---|---|
SHALL | identifier | token |
SHALL | name | string |
Supported Profiles: US Core Procedure Profile
Search Criteria:
A server SHALL be capable of returning a patient’s procedures using:
GET/Procedure?patient=[id]
A server SHALL be capable of returning all of a patient’s procedures over a specified time period using:
GET /Procedure?patient=[id]&date=[date]{&date=[date]}
Search Parameters:
Conformance | Parameter | Type | Modifiers |
---|---|---|---|
SHALL | patient | reference | |
SHALL | patient + date | reference + date | date modifiers ‘ge’,‘le’,’gt’,’lt’ |
The Section describes the expected capabilities of the US Core Client which is responsible for creating and initiating the queries for information about an individual patient. The complete list of FHIR profiles, RESTful operations, and search parameters supported by US Core Servers are defined in the Conformance requirements for the US Core Server section. US Core Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.
Description:
The US Core Client SHOULD:
security:
The US Core Client SHALL:
Contents:
Supported Profiles: US Core Patient Profile
Search Criteria:
A client SHOULD be capable of connecting to a server and fetching a patient using:
GET [base]/Patient/[id]
.
A client SHOULD be capable of connecting to a server and fetching a patient by identifier using
GET [base]/Patient?identifier=[system]|[code]
birthdate
GET [base]/Patient?family=[name]&?given=[name]&gender=[gender]
Supported Profiles: US Core AllergyIntolerance Profile
Search Criteria:
Get [base]/AllergyIntolerance?patient=[id]
Supported Profiles: US Core CarePlan Profile
Search Criteria:
Get [base]/CarePlan?patient=[id]&category=assess-plan
Get [base]/CarePlan?patient=[id]&category=assess-plan&date=[date]
Get [base]/CarePlan?patient=[id]&category=assess-plan&status=active
Get [base]/CarePlan?patient=[id]&category=assess-plan&status=active&date=[date]
Supported Profiles: US Core CareTeam Profile
Search Criteria:
Get [base]/CareTeam?patient=[id]&status=active
Supported Profiles: US Core Condition Profile
Search Criteria:
Get [base]/Condition?patient=[id]
Get [base]/Condition?patient=[id]&clinicalstatus=active,recurrance,remission
Get [base]/Condition?patient=[id]&category=[problem|health-concern]
Supported Profiles: US Core Device Profile
Search Criteria:
Get [base]/Device?patient=[id]
Supported Profiles: US Core DiagnosticReport Profile
Search Criteria:
Get [base]/DiagnosticReport?patient=[id]&category=LAB
GET [base]/DiagnosticReport?patient=[id]&category=LAB&date=[date]{&date=[date]}
GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC]
GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC1{,LOINC2,LOINC3,…}]&date=[date]{&date=[date]}
Supported Profiles: US Core Goal Profile
Search Criteria:
Get [base]/Goal?patient=[id]
GET [base]/Goal?patient=[id]&date=[date]{&date=[date]}
Supported Profiles: US Core Immunization Profile
Search Criteria:
Get [base]/Immunization?patient=[id]
Supported Profiles: US Core Location Profile
Search Criteria:
Get [base]/Location?name=[string]
GET [base]/Location?address=[string]
Supported Profiles: US Core Medication Profile
The MedicationStatement and MedicationRequest resources can represent a medication, using an external reference to a Medication resource. If an external Medication Resource is used in a MedicationStatement or a MedicationRequest, then the READ and SEARCH Criteria SHOULD be supported.
Supported Profiles: US Core MedicationStatement Profile
Search Criteria:
The MedicationStatement resources can represent a medication using either a code or refer to the Medication resource. When referencing a Medication resource, the resource may be contained or an external resource. IF, an external reference to Medication is used, the server SHALL support the _include
parameter for searching this element. The client application SHALL support all methods.
A client SHOULD be capable of connecting to a server and fetching all medications for a patient using both:
GET /MedicationStatement?patient=[id]
and
GET /MedicationStatement?patient=[id]&_include=MedicationStatement:medication
Supported Profiles: US Core MedicationRequest Profile
Search Criteria:
The MedicationRequest resources can represent a medication using either a code or refer to the Medication resource. When referencing a Medication resource, the resource may be contained or an external resource. If, an external reference to Medication is used, the server SHALL support the _include
parameter for searching this element. The client application SHALL support all methods.
A client SHOULD be capable of connecting to a server and fetching all medications for a patient using both:
GET /MedicationRequest?patient=[id]
and
GET /MedicationRequest?patient=[id]&_include=MedicationRequest:medication
Supported Profiles: 1. US Core Result Observation Profile
Search Criteria:
A client SHOULD be capable of connecting to a server and fetching all of a patient’s laboratory results queried by category using:
GET [base]/Observation?patient=[id]&category=laboratory
A client SHOULD be capable of connecting to a server and fetching all of a patient’s laboratory results queried by category code and date range using:
GET [base]/Observation?patient=[id]&category=laboratory&date=[date]{&date=[date]}
A client SHOULD be capable of connecting to a server and fetching all of a patient’s laboratory results queried by category and code using:
GET [base]/Observation?patient=[id]&category=laboratory&code=[LOINC]
A client SHOULD be capable of connecting to a server and fetching all of a patient’s laboratory results queried by category and one or more codes and date range using:
GET [base]/Observation?patient=[id]&category=laboratory&code=[LOINC1{,LOINC2,LOINC3,...}]&date=[date]{&date=[date]}
Search Criteria
A client SHOULD be capable of connecting to a server and fetching all of a patient’s vital signs that it supports using:
GET [base]/Observation?patient=[id]&category=vital-signs
A client SHOULD be capable of connecting to a server and fetching all of a patient’s vital signs queried by date range using:
GET [base]/Observation?patient=[id]&category=vital-signs&date=[date]{&date=[date]}
A client SHOULD be capable of connecting to a server and fetching any of a patient’s vital signs queried by one or more of the codes listed below using:
GET [base]/Observation?patient=[id]&code[vital sign LOINC{,LOINC2,LOINC3,…}]
A client SHOULD be capable of connecting to a server and fetching any of a patient’s vital signs queried by one or more of the codes listed below and date range using:
GET [base]/Observation?patient=[id]&code=[LOINC{,LOINC2…}]vital-signs&date=[date]{&date=[date]}
Search Criteria:
A client SHOULD be capable of connecting to a server and fetching a patient’s smoking status using:
GET [base]/Observation?patient=[id]&code=72166-2
Supported Profiles: US Core Organization Profile
Search Criteria:
`GET [base]/Organization?identifier=[system] | [code]’ |
GET [base]/Organization?name=[string]
GET [base]/Organization?address=[string]
Supported Profiles: US Core Practitioner Profile
Search Criteria:
GET [base]/Practitioner?identifier=[system]|[code]
GET [base]/Practitioner?family=[string]&given=[string]
Supported Profiles: US Core Procedure Profile
Search Criteria:
GET/Procedure?patient=[id]
GET /Procedure?patient=[id]&date=[date]{&date=[date]}