US Core Implementation Guide, published by HL7 International / Cross-Group Projects. This guide is not an authorized publication; it is the continuous build for version 10.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/US-Core/ and changes regularly. See the Directory of published versions
| Page standards status: Informative |
The conformance verbs used below describe the intended semantics if the content is adopted, but they carry no US Core conformance or certification requirements until the page standards status changes from 'informative'.
Experimental: Based on FHIR R5 and the Application Feature Framework Implementation Guide
This section defines mechanisms only. It describes how a server describes and a client discovers write support. It deliberately defines no minimum support mandates in this round - nothing here requires a server to support any particular category, type, or MIME type. Establishing required support levels is left to a future iteration, to regulation, or to network policy.
Write support and capability advertisement are independently claimable. A server MAY claim conformance to
DocumentReferencewrite without implementing the advertisement features described in this section, and the reverse is also true. The requirements in this section apply only to servers claiming support for capability advertisement.
Advertisement exists so that a generic client can work across many organizations without per-organization pre-coordination. An application built for a single deployment can perform both solicited and unsolicited writes with no runtime advertisement at all, because its capabilities were established during integration. Requiring advertisement in that case would add machinery with no consumer.
For integrated-application workflows (e.g., provider-facing apps), capabilities are negotiated while working through integration. Runtime advertisement for such functionality is often unnecessary. If desired, support can be advertised through Application Features (the same mechanism as patient-facing functionality).
For patient-facing applications, runtime advertisement and client discovery are critical to proper function. This guide uses the Application Feature Framework to describe support and enumerate specific types and categories.
The Application Feature Framework expresses capability as a triple:
FeatureDefinition identifying the capability being asked about (e.g., "can I write a DocumentReference?").clinical-note category").type codes).Because context and value are both meaningful on their own, queries work in both directions: a client can ask which types a category supports, and equally which category a given type belongs to.
Discovery answers differ depending on whether the requester is known to the server.
$feature-query without authentication, describing what the organization is capable of accepting in general. This tier exists so that an application developer can determine support and test integration before client onboarding and before any patient authorization occurs.$feature-query with the capability as scoped to the requesting client, since authorization to write a given category or type is commonly configured per client or per client type.Write support and supported categories/types
http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write{
"resourceType" : "FeatureDefinition",
"id" : "us-core-feature-documentreference-write",
"url" : "http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write",
"name" : "FeatureDocumentReferenceWrite",
"title" : "US Core DocumentReference Write Feature",
"status" : "active",
"valueType" : "Coding",
"contextDefinition" : "Allowed contexts are the `category` values supported by the server. Included values are a starter set of values, while servers may support fewer or additional values.",
"context" : [
"http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category#clinical-note",
"http://loinc.org#42348-3",
"http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category#medical-history",
"http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category#insurance-document",
"http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category#identity-document",
"http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category#structured-document",
"http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category#unstructured-document"
]
}
Supported MIME types
Supported MIME types vary by document type - a server may accept a scanned image for an insurance card but require a PDF for an advance directive. This feature is therefore contextualized by a category or type coding.
http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write-mimetype{
"resourceType" : "FeatureDefinition",
"id" : "us-core-feature-documentreference-write-mimetype",
"url" : "http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write-mimetype",
"name" : "FeatureDocumentReferenceWriteMimeType",
"title" : "US Core DocumentReference Write MIME Type Feature",
"status" : "active",
"valueType" : "code",
"contextDefinition" : "Allowed contexts are the `category` or `type` codings supported by the server for writing. An uncontextualized query returns the MIME types accepted across all supported documents."
}
Supported transport mechanisms
Clients need to know whether the $submit-bundle operation is available before attempting to submit supporting resources alongside a document.
http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write-transport{
"resourceType" : "FeatureDefinition",
"id" : "us-core-feature-documentreference-write-transport",
"url" : "http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write-transport",
"name" : "FeatureDocumentReferenceWriteTransport",
"title" : "US Core DocumentReference Write Transport Feature",
"status" : "active",
"valueType" : "code",
"contextDefinition" : "Allowed contexts are the `category` values supported by the server. Values are the supported transport mechanisms: `create` and/or `submit-bundle`."
}
category values supported for writing:
GET [base]/$feature-query?param=http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-writetype values for the clinical-note category:
GET [base]/$feature-query?param=http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write@http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category#clinical-notecategory values for the type 64290-0 (health insurance card):
GET [base]/$feature-query?param=http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write(http://loinc.org#64290-0)GET [base]/$feature-query?param=http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write-mimetype@http://loinc.org#42348-3Response to a request for the type values supported within the clinical-note category. Note the patient-accessible display values, and the inclusion of a locally-defined type alongside the standard code.
{
"resourceType" : "Parameters",
"parameter" : [ {
"name" : "feature",
"part" : [ {
"name" : "definition",
"valueCanonical" : "http://hl7.org/fhir/us/core/FeatureDefinition/us-core-feature-documentreference-write"
}, {
"name" : "context",
"valueCoding" : {
"system" : "http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category",
"code" : "clinical-note"
}
}, {
"name" : "value",
"valueCoding" : {
"system" : "http://loinc.org",
"code" : "11506-3",
"display" : "Progress note"
}
}, {
"name" : "value",
"valueCoding" : {
"system" : "http://valleyhealth.example.org/notetypes",
"code" : "PROG-PEDS",
"display" : "Pediatric progress note"
}
} ]
} ]
}