HL7 FHIR® US Core Implementation Guide (Release 3.0.1 STU3 Update for Comment)

This page is part of the US Core (v3.0.1: STU3 Ballot 3) based on FHIR R4. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions

StructureDefinition-us-core-documentreference

This profile sets minimum expectations for searching and fetching fetching patient documents including Clinical Notes using the DocumentReference resource. It identifies the mandatory core elements, extensions, vocabularies and value sets which SHALL be present in the DocumentReference resource when using this profile. Prior to reviewing this profile, implementers are encouraged to read the Clinical Notes Guidance to understand the overlap of US Core DocumentReference Profile and US Core DiagnosticReport Profile for Report and Note exchange.

Example Usage Scenarios:

The following are example usage scenarios for the US Core DocumentReference profile. See the Clinical Notes Guidance section for additional detail on using this profile for Clinical Notes:

  • Query for all documents belonging to a Patient
  • Query for a specific Clinical Note type (e.g. Discharge Summary or Continuity of Care Document (CCD))
  • Query for all Clinical Notes belonging to a Patient
  • Write a new Note to a Patient’s Chart

Mandatory and Must Support Data Elements

The following data-elements are mandatory (i.e data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each DocumentReference must have:

  1. a status
  2. a document category
  3. a code describing the type of document
  4. a patient
  5. the MIME type (i.e. contentType) of the document
  6. an address (e.g. url) where the document can be retrieved or the content as inline base64 encoded data

Each DocumentReference must support:

  1. a business identifier for the DocumentReference (possibly generated by the transcription system or EHR)
  2. date and time the reference was created
  3. an author
  4. the organization responsible for the document, referred to as custodian.
  5. a code identifying the specific details about the format of the document — over and above the content’s MIME type
  6. the patient encounter that is being referenced
  7. clinically relevant date

Profile specific implementation guidance:

  • See Clinical Notes Guidance
  • The DocumentReference.type binding must support at a minimum the 5 Common Clinical Notes and may extend to the full US Core DocumentReference Type Value Set
  • For a C-CDA Clinical Summary of Care (CCD):
    • The document type code is the LOINC code 34133-9 Summary of episode note.
    • The format code is urn:hl7-org:sdwg:ccda-structuredBody:2.1
  • The content.url may refer to a FHIR Binary Resource (i.e. [base]/Binary/[id]), FHIR Document Bundle (i.e [base]/Bundle/[id] or other endpoint.

Examples

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference

Published on Sun Aug 11 00:00:00 EDT 2019 as active by the HL7 US Realm Steering Committee.

This profile builds on DocumentReference


DocumentReference

Summary of the Mandatory Requirements

  1. A code in DocumentReference.status with a required binding to DocumentReferenceStatus
  2. A CodeableConcept in DocumentReference.type with a required binding to US Core DocumentReference Type
  3. One or more CodeableConcepts in DocumentReference.category with an extensible binding to US Core DocumentReference Category
  4. A Patient Reference in DocumentReference.subject
  5. A Content in DocumentReference.content
    • which must have a Attachment value in DocumentReference.content.attachment
      • which must have a code value in DocumentReference.content.attachment.contentType with a required binding to MimeType
      • which should have a base64Binary value in DocumentReference.content.attachment.data
      • which should have an url value in DocumentReference.content.attachment.url
    • which should have a Coding value in DocumentReference.content.format with an extensible binding to DocumentReference Format Code Set

Summary of the Must Support Requirements

  1. One or more Identifiers in DocumentReference.identifier
  2. An instant in DocumentReference.date
  3. One or more Author References in DocumentReference.author
  4. A Custodian Reference in DocumentReference.custodian
  5. A Context in DocumentReference.context
    • which should have a Encounter Reference value in DocumentReference.context.encounter
    • which should have a Period value in DocumentReference.context.period

Summary of Constraints

  1. DocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.
NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference I0..*A reference to a document
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... masterIdentifier Σ0..1IdentifierMaster Version Specific Identifier
... identifier SΣ0..*IdentifierOther identifiers for the document
... status ?!SΣ1..1codecurrent | superseded | entered-in-error
Binding: DocumentReferenceStatus (required)
... docStatus Σ0..1codepreliminary | final | appended | amended | entered-in-error
Binding: CompositionStatus (required)
... type SΣ1..1CodeableConceptKind of document (LOINC if possible)
Binding: US Core DocumentReference Type (required)
Min Binding: US Core Clinical Note Type
... category SΣ1..*CodeableConceptCategorization of document
Binding: US Core DocumentReference Category (extensible)
... subject SΣ1..1Reference(US Core Patient Profile)Who/what is the subject of the document
... date SΣ0..1instantWhen this document reference was created
... author SΣ0..*Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | Device | US Core Patient Profile | RelatedPerson)Who and/or what authored the document
... authenticator 0..1Reference(Practitioner | PractitionerRole | Organization)Who/what authenticated the document
... custodian S0..1Reference(US Core Organization Profile)Organization which maintains the document
... relatesTo ΣI0..*BackboneElementRelationships to other documents
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required)
.... target Σ1..1Reference(DocumentReference)Target of the relationship
... description Σ0..1stringHuman-readable description
... securityLabel Σ0..*CodeableConceptDocument security-tags
Binding: All Security Labels (extensible)
... content SΣI1..1BackboneElementDocument referenced
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... attachment SΣI1..1AttachmentWhere to access the document
us-core-6: DocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... contentType SΣ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required)
Example General': text/plain; charset=UTF-8, image/png
..... language Σ0..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
Example General': en-AU
..... data S0..1base64BinaryData inline, base64ed
..... url SΣ0..1urlUri where the data can be found
Example General': http://www.acme.com/logo-small.png
..... size Σ0..1unsignedIntNumber of bytes of content (if url provided)
..... hash Σ0..1base64BinaryHash of the data (sha-1, base64ed)
..... title Σ0..1stringLabel to display in place of the data
Example General': Official Corporate Logo
..... creation Σ0..1dateTimeDate attachment was first created
.... format SΣ0..1CodingFormat/content rules for the document
Binding: DocumentReferenceFormatCodeSet (extensible)
... context SΣI0..1BackboneElementClinical context of document
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... encounter S0..1Reference(US Core Encounter Profile)Context of the document content
.... event 0..*CodeableConceptMain clinical acts documented
Binding: v3 Code System ActCode (example)
.... period SΣ0..1PeriodTime of service that is being documented
.... facilityType 0..1CodeableConceptKind of facility where patient was seen
Binding: FacilityTypeCodeValueSet (example)
.... practiceSetting 0..1CodeableConceptAdditional details about where the content was created (e.g. clinical specialty)
Binding: PracticeSettingCodeValueSet (example)
.... sourcePatientInfo 0..1Reference(Patient)Patient demographics from source
.... related 0..*Reference(Resource)Related identifiers or resources

doco Documentation for this format

DocumentReference

Summary of the Mandatory Requirements

  1. A code in DocumentReference.status with a required binding to DocumentReferenceStatus
  2. A CodeableConcept in DocumentReference.type with a required binding to US Core DocumentReference Type
  3. One or more CodeableConcepts in DocumentReference.category with an extensible binding to US Core DocumentReference Category
  4. A Patient Reference in DocumentReference.subject
  5. A Content in DocumentReference.content
    • which must have a Attachment value in DocumentReference.content.attachment
      • which must have a code value in DocumentReference.content.attachment.contentType with a required binding to MimeType
      • which should have a base64Binary value in DocumentReference.content.attachment.data
      • which should have an url value in DocumentReference.content.attachment.url
    • which should have a Coding value in DocumentReference.content.format with an extensible binding to DocumentReference Format Code Set

Summary of the Must Support Requirements

  1. One or more Identifiers in DocumentReference.identifier
  2. An instant in DocumentReference.date
  3. One or more Author References in DocumentReference.author
  4. A Custodian Reference in DocumentReference.custodian
  5. A Context in DocumentReference.context
    • which should have a Encounter Reference value in DocumentReference.context.encounter
    • which should have a Period value in DocumentReference.context.period

Summary of Constraints

  1. DocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference I0..*A reference to a document
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... masterIdentifier Σ0..1IdentifierMaster Version Specific Identifier
... identifier SΣ0..*IdentifierOther identifiers for the document
... status ?!SΣ1..1codecurrent | superseded | entered-in-error
Binding: DocumentReferenceStatus (required)
... docStatus Σ0..1codepreliminary | final | appended | amended | entered-in-error
Binding: CompositionStatus (required)
... type SΣ1..1CodeableConceptKind of document (LOINC if possible)
Binding: US Core DocumentReference Type (required)
Min Binding: US Core Clinical Note Type
... category SΣ1..*CodeableConceptCategorization of document
Binding: US Core DocumentReference Category (extensible)
... subject SΣ1..1Reference(US Core Patient Profile)Who/what is the subject of the document
... date SΣ0..1instantWhen this document reference was created
... author SΣ0..*Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Organization Profile | Device | US Core Patient Profile | RelatedPerson)Who and/or what authored the document
... authenticator 0..1Reference(Practitioner | PractitionerRole | Organization)Who/what authenticated the document
... custodian S0..1Reference(US Core Organization Profile)Organization which maintains the document
... relatesTo ΣI0..*BackboneElementRelationships to other documents
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required)
.... target Σ1..1Reference(DocumentReference)Target of the relationship
... description Σ0..1stringHuman-readable description
... securityLabel Σ0..*CodeableConceptDocument security-tags
Binding: All Security Labels (extensible)
... content SΣI1..1BackboneElementDocument referenced
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... attachment SΣI1..1AttachmentWhere to access the document
us-core-6: DocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... contentType SΣ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required)
Example General': text/plain; charset=UTF-8, image/png
..... language Σ0..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
Example General': en-AU
..... data S0..1base64BinaryData inline, base64ed
..... url SΣ0..1urlUri where the data can be found
Example General': http://www.acme.com/logo-small.png
..... size Σ0..1unsignedIntNumber of bytes of content (if url provided)
..... hash Σ0..1base64BinaryHash of the data (sha-1, base64ed)
..... title Σ0..1stringLabel to display in place of the data
Example General': Official Corporate Logo
..... creation Σ0..1dateTimeDate attachment was first created
.... format SΣ0..1CodingFormat/content rules for the document
Binding: DocumentReferenceFormatCodeSet (extensible)
... context SΣI0..1BackboneElementClinical context of document
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... encounter S0..1Reference(US Core Encounter Profile)Context of the document content
.... event 0..*CodeableConceptMain clinical acts documented
Binding: v3 Code System ActCode (example)
.... period SΣ0..1PeriodTime of service that is being documented
.... facilityType 0..1CodeableConceptKind of facility where patient was seen
Binding: FacilityTypeCodeValueSet (example)
.... practiceSetting 0..1CodeableConceptAdditional details about where the content was created (e.g. clinical specialty)
Binding: PracticeSettingCodeValueSet (example)
.... sourcePatientInfo 0..1Reference(Patient)Patient demographics from source
.... related 0..*Reference(Resource)Related identifiers or resources

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron


Quick Start

Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.

  • See the General Guidance section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

Mandatory Search Parameters:

The following search parameters, search parameter combinations SHALL be supported. Any listed search parameter modifiers, comparators, chains and composites SHALL also be supported UNLESS they are listed as “optional” in which case they SHOULD be supported.:

  1. SHALL support fetching a DocumentReference using the _id search parameter:

    GET [base]/DocumentReference[id]

    Example:

    1. GET [base]/DocumentReference/2169591
    2. GET [base]/DocumentReference?_id=2169591

    Implementation Notes: Fetches a single DocumentReference. The document itself is represented as a base64 encoded binary data element or retrieved using the link provided by the resource. If the document is a relative link to a [Binary] resource like a resource reference, it can be subsequently retrieved using: GET [base]/Binary/[id]. (how to search by the logical id of the resource)

  2. SHALL support searching for all DocumentReference resources for a patient using the patient search parameter:

    GET [base]/DocumentReference?patient=[reference]

    Example:

    1. GET [base]/DocumentReference?patient=1137192

    Implementation Notes: Fetches a bundle of all DocumentReference resources for the specified patient. See the implementation notes above for how to access the actual document. (how to search by reference)

  3. SHALL support searching using the combination of the patient and category search parameters:

    GET [base]/DocumentReference?patient=[reference]&category=http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category|clinical-note

    Example:

    1. GET [base]/DocumentReference?patient=1235541&category=http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category|clinical-note

    Implementation Notes: Fetches a bundle of all DocumentReference resources for the specified patient and category = clinical-note. See the implementation notes above for how to access the actual document. (how to search by reference and how to search by token)

  4. SHALL support searching using the combination of the patient and category and date search parameters:
    • including support for these date comparators: gt,lt,ge,le
    • including optional support for composite AND search on date (e.g.date=[date]&date=[date]]&...)

    GET [base]/DocumentReference?patient=[reference]&category=http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category|clinical-note&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]/DocumentReference?patient=1235541&category=http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category|clinical-note&date=ge2019

    Implementation Notes: Fetches a bundle of all DocumentReference resources for the specified patient and category = clinical=note and date. See the implementation notes above for how to access the actual document. (how to search by reference and how to search by token and how to search by date)

  5. SHALL support searching using the combination of the patient and type search parameters:

    GET [base]/DocumentReference?patient=[reference]&type={[system]}|[code]

    Example:

    1. GET [base]/DocumentReference?patient=1316024&type=http://loinc.org|18842-5

    Implementation Notes: Fetches a bundle of all DocumentReference resources for the specified patient and type. See the implementation notes above for how to access the actual document. (how to search by reference and how to search by token)

Optional Search Parameters:

The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHOULD be supported.

  1. SHOULD support searching using the combination of the patient and status search parameters:
    • including support for composite OR search on status (e.g.status={[system]}|[code],{[system]}|[code],...)

    GET [base]/DocumentReference?patient=[reference]&status={[system]}|[code]{,{[system]}|[code],...}

    Example:

    1. GET [base]/DocumentReference?patient=1235541

    Implementation Notes: Fetches a bundle of all DocumentReference resources for the specified patient and status. See the implementation notes above for how to access the actual document. (how to search by reference and how to search by token)

  2. SHOULD support searching using the combination of the patient and type and period search parameters:
    • including support for these period comparators: gt,lt,ge,le
    • including optional support for composite AND search on period (e.g.period=[date]&period=[date]]&...)

    GET [base]/DocumentReference?patient=[reference]&type={[system]}|[code]&period={gt|lt|ge|le}[date]{&period={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]/DocumentReference?patient=2169591&type=http://loinc.org |34133-9&period=ge2019

    Implementation Notes: Fetches a bundle of all DocumentReference resources for the specified patient and type and period. See the implementation notes above for how to access the actual document. (how to search by reference and how to search by token and how to search by date)

Mandatory Write Capability:

  1. SHALL support writing a new note to a Patient’s Chart:

POST [base]/DocumentReference

An example to demonstrate writing a note to the server.

Clinical Note


POST [base]/DocumentReference
Request Headers:
 content-type: "application/json"
 prefer: "return=REPRESENTATION"
 accept: "application/fhir+json"
Request Body:
 {
   "resourceType": "DocumentReference",
   "type": {
       "coding": [
           {
               "system": "http://loinc.org",
               "code": "18842-5",
               "display": "Discharge Summary"
           }
       ],
       "text": "Discharge Summary"
   },
   "subject": {
       "reference": "[base]/Patient/eso2MXsmcJloTEUEls5DzbA3"
   },
   "content": [{"attachment": {
       "contentType": "text/plain",
       "data": "Tm8gYWN0aXZpdHkgcmVzdHJpY3Rpb24sIHJlZ3VsYXIgZGlldCwgZm9sbG93IHVwIGluIHR3byB0byB0aHJlZSB3ZWVrcyB3aXRoIHByaW1hcnkgY2FyZSBwcm92aWRlci4="
   } }],
   "context": {"encounter": {"reference": "[base]/Encounter/eIOY6XJQw0hvmvCqTtkg6vQ3"} }
 }

Note Content

The content is Base64 encoded and states: “No activity restriction, regular diet, follow up in two to three weeks with primary care provider.”


Mandatory Operations

SHALL support fetching documents using the $docref operation.

GET [base]/DocumentReference/$docref?patient=[id]

The operation can be invoked using the GET Syntax if the complex type parameter is omitted:

GET [base]/DocumentReference/$docref?{parameters}

Otherwise the POST transaction is used as follows:

POST [base]/DocumentReference/$docref}


Example

Request the latest CCD for a patient using GET syntax

GET [base]/DocumentReference/$docref?patient=123

Request the latest CCD for a patient using POST syntax

POST [base]/DocumentReference/$docref}

POST request body:

    {
      "resourceType": "Parameters",
      "id": "get-ccd123",
      "parameter": [
        {
          "name": "patient",
          "valueId" : "123"
        }
      ]
    }

Response

HTTP/1.1 200 OK
[other headers]

Response body

    {
      "resourceType": "Bundle",
      "id": "get-ccd123-response",
      "type": "searchset",
      "total": 1,
      "entry": [{
        "fullUrl": "http://server/path/DocumentReference/get-ccd123",
        "resource":{
        "resourceType" : "DocumentReference",
        "id" : "get-ccd123",
        "meta" : {
          "profile" : [
            "http://fhir.org/guides/argonaut/StructureDefinition/argo-documentreference"
          ]
        },
        "identifier" : [
          {
            "system" : "urn:ietf:rfc:3986",
            "value" : "urn:oid:2.16.840.1.113883.19.5.99999.1"
          }
        ],
        "status" : "current",
        "type" : {
          "coding" : [
            {
              "system" : "http://loinc.org",
              "code" : "34133-9",
              "display" : "Summary of episode note"
            }
          ],
          "text" : "CCD Document"
        },
        "subject" : {
          "reference" : "Patient/example",
          "display" : "Amy Shaw"
        },
        "created" : "2006-09-01",
        "indexed" : "2016-03-09T15:29:46Z",
        "author" : [
          {
            "reference" : "Practitioner/practitioner-1",
            "display" : "Ronald Bone, MD"
          }
        ],
        "description" : "Pulmonology clinic acute visit",
        "content" : [
          {
            "attachment" : {
              "contentType" : "text/plain",
              "url" : "/Binary/1-note",
              "title" : "Uri where the data can be found: [base]/Binary/1-note"
            },
            "format" : {
              "system" : "urn:oid:1.3.6.1.4.1.19376.1.2.3",
              "code" : "urn:hl7-org:sdwg:ccda-structuredBody:2.1",
              "display" : "Documents following C-CDA constraints using a structured body"
            }
          }
        ],
        "context" : {
          "period" : {
            "start" : "2004-12-23T08:00:00+11:00",
            "end" : "2004-12-23T08:01:00+11:00"
          }
        }
      }
      }
      ]
    }


Implementation Notes: This operation is used to request a server generate a document based on the specified parameters. If no parameters are specified, the server SHALL return a DocumentReference to the patient’s most current CCD. See the $docref operation definition for details on how this operation differs from a FHIR RESTful search. This operation returns a DocumentReference resources. The document itself is retrieved using the link provided in the DocumentReference.content.attachment.url element.