FHIR Implementation Guide for ABDM
3.0.0 - CI Build India flag


banner

FHIR Implementation Guide for ABDM - Local Development build (v3.0.0). See the Directory of published versions

Resource Profile: StructureDefinition/DocumentReference

Official URL: https://nrces.in/ndhm/fhir/r4/StructureDefinition/DocumentReference Version: 3.0.0
Draft as of 2020-08-17 Computable Name: 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.

Examples

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from DocumentReference

NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference 0..*DocumentReferenceA reference to a document
... status S1..1codecurrent | superseded | entered-in-error
... subject 0..1Reference(Group | Device | Patient | Practitioner)Who/what is the subject of the document
... author 0..*Reference(Device | RelatedPerson | Practitioner | PractitionerRole | Organization | Patient)Who and/or what authored the document
... custodian 0..1Reference(Organization)Organization which maintains the document
... relatesTo
.... target 1..1Reference(DocumentReference)Target of the relationship
... content S1..*BackboneElementDocument referenced
.... attachment S1..1AttachmentWhere to access the document
..... contentType S1..1codeMime type of the content, with charset etc.
..... data S1..1base64BinaryData inline, base64ed
... context
.... encounter 0..*Reference(EpisodeOfCare | Encounter)Context of the document content
.... sourcePatientInfo 0..1Reference(Patient)Patient demographics from source

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference 0..*DocumentReferenceA 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
... 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 Σ0..*IdentifierOther identifiers for the document
... status ?!SΣ1..1codecurrent | superseded | entered-in-error
Binding: DocumentReferenceStatus (required): The status of the document reference.

... docStatus Σ0..1codepreliminary | final | amended | entered-in-error
Binding: CompositionStatus (required): Status of the underlying document.

... type Σ0..1CodeableConceptKind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.

... category Σ0..*CodeableConceptCategorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


... subject Σ0..1Reference(Group | Device | Patient | Practitioner)Who/what is the subject of the document
... date Σ0..1instantWhen this document reference was created
... author Σ0..*Reference(Device | RelatedPerson | Practitioner | PractitionerRole | Organization | Patient)Who and/or what authored the document
... authenticator 0..1Reference(Practitioner | PractitionerRole | Organization)Who/what authenticated the document
... custodian 0..1Reference(Organization)Organization which maintains the document
... relatesTo Σ0..*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): The type of relationship between documents.

.... target Σ1..1Reference(DocumentReference)Target of the relationship
... description Σ0..1stringHuman-readable description
... securityLabel Σ0..*CodeableConceptDocument security-tags
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


... content SΣ1..*BackboneElementDocument 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Σ1..1AttachmentWhere to access the document
..... 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): The mime type of an attachment. Any valid mime type is allowed.


Example General: text/plain; charset=UTF-8, image/png
..... language Σ0..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding

Example General: en-AU
..... data S1..1base64BinaryData inline, base64ed
..... url Σ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 Σ0..1CodingFormat/content rules for the document
Binding: DocumentReferenceFormatCodeSet (preferred): Document Format Codes.

... context Σ0..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 0..*Reference(EpisodeOfCare | Encounter)Context of the document content
.... event 0..*CodeableConceptMain clinical acts documented
Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented.


.... period Σ0..1PeriodTime of service that is being documented
.... facilityType 0..1CodeableConceptKind of facility where patient was seen
Binding: FacilityTypeCodeValueSet (example): XDS Facility Type.

.... practiceSetting 0..1CodeableConceptAdditional details about where the content was created (e.g. clinical specialty)
Binding: PracticeSettingCodeValueSet (example): Additional details about where the content was created (e.g. clinical specialty).

.... sourcePatientInfo 0..1Reference(Patient)Patient demographics from source
.... related 0..*Reference(Resource)Related identifiers or resources

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference 0..*DocumentReferenceA reference to a document
... status ?!Σ1..1codecurrent | superseded | entered-in-error
Binding: DocumentReferenceStatus (required): The status of the document reference.

... content Σ1..*BackboneElementDocument referenced
.... attachment Σ1..1AttachmentWhere to access the document
..... contentType Σ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.

..... data 1..1base64BinaryData inline, base64ed

doco Documentation for this format

Differential View

This structure is derived from DocumentReference

NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference 0..*DocumentReferenceA reference to a document
... status S1..1codecurrent | superseded | entered-in-error
... subject 0..1Reference(Group | Device | Patient | Practitioner)Who/what is the subject of the document
... author 0..*Reference(Device | RelatedPerson | Practitioner | PractitionerRole | Organization | Patient)Who and/or what authored the document
... custodian 0..1Reference(Organization)Organization which maintains the document
... relatesTo
.... target 1..1Reference(DocumentReference)Target of the relationship
... content S1..*BackboneElementDocument referenced
.... attachment S1..1AttachmentWhere to access the document
..... contentType S1..1codeMime type of the content, with charset etc.
..... data S1..1base64BinaryData inline, base64ed
... context
.... encounter 0..*Reference(EpisodeOfCare | Encounter)Context of the document content
.... sourcePatientInfo 0..1Reference(Patient)Patient demographics from source

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference 0..*DocumentReferenceA 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
... 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 Σ0..*IdentifierOther identifiers for the document
... status ?!SΣ1..1codecurrent | superseded | entered-in-error
Binding: DocumentReferenceStatus (required): The status of the document reference.

... docStatus Σ0..1codepreliminary | final | amended | entered-in-error
Binding: CompositionStatus (required): Status of the underlying document.

... type Σ0..1CodeableConceptKind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.

... category Σ0..*CodeableConceptCategorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


... subject Σ0..1Reference(Group | Device | Patient | Practitioner)Who/what is the subject of the document
... date Σ0..1instantWhen this document reference was created
... author Σ0..*Reference(Device | RelatedPerson | Practitioner | PractitionerRole | Organization | Patient)Who and/or what authored the document
... authenticator 0..1Reference(Practitioner | PractitionerRole | Organization)Who/what authenticated the document
... custodian 0..1Reference(Organization)Organization which maintains the document
... relatesTo Σ0..*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): The type of relationship between documents.

.... target Σ1..1Reference(DocumentReference)Target of the relationship
... description Σ0..1stringHuman-readable description
... securityLabel Σ0..*CodeableConceptDocument security-tags
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


... content SΣ1..*BackboneElementDocument 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Σ1..1AttachmentWhere to access the document
..... 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): The mime type of an attachment. Any valid mime type is allowed.


Example General: text/plain; charset=UTF-8, image/png
..... language Σ0..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding

Example General: en-AU
..... data S1..1base64BinaryData inline, base64ed
..... url Σ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 Σ0..1CodingFormat/content rules for the document
Binding: DocumentReferenceFormatCodeSet (preferred): Document Format Codes.

... context Σ0..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 0..*Reference(EpisodeOfCare | Encounter)Context of the document content
.... event 0..*CodeableConceptMain clinical acts documented
Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented.


.... period Σ0..1PeriodTime of service that is being documented
.... facilityType 0..1CodeableConceptKind of facility where patient was seen
Binding: FacilityTypeCodeValueSet (example): XDS Facility Type.

.... practiceSetting 0..1CodeableConceptAdditional details about where the content was created (e.g. clinical specialty)
Binding: PracticeSettingCodeValueSet (example): Additional details about where the content was created (e.g. clinical specialty).

.... sourcePatientInfo 0..1Reference(Patient)Patient demographics from source
.... related 0..*Reference(Resource)Related identifiers or resources

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
DocumentReference.languagepreferredCommonLanguages
Max Binding: AllLanguages
DocumentReference.statusrequiredDocumentReferenceStatus
DocumentReference.docStatusrequiredCompositionStatus
DocumentReference.typepreferredDocumentTypeValueSet
DocumentReference.categoryexampleDocumentClassValueSet
DocumentReference.relatesTo.coderequiredDocumentRelationshipType
DocumentReference.securityLabelextensibleAll Security Labels
DocumentReference.content.attachment.contentTyperequiredMime Types
DocumentReference.content.attachment.languagepreferredCommonLanguages
Max Binding: AllLanguages
DocumentReference.content.formatpreferredDocumentReferenceFormatCodeSet
DocumentReference.context.eventexampleActCode
DocumentReference.context.facilityTypeexampleFacilityTypeCodeValueSet
DocumentReference.context.practiceSettingexamplePracticeSettingCodeValueSet

Constraints

IdGradePathDetailsRequirements
dom-2errorDocumentReferenceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorDocumentReferenceIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorDocumentReferenceIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorDocumentReferenceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeDocumentReferenceA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorDocumentReference.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.masterIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.docStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.authorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.authenticatorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.custodianAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.relatesToAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.relatesTo.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.relatesTo.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.relatesTo.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.relatesTo.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.relatesTo.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.relatesTo.targetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.securityLabelAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.contentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.content.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.content.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.content.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.content.attachmentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.attachment.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.content.attachment.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.content.attachment.contentTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.attachment.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.attachment.dataAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.attachment.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.attachment.sizeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.attachment.hashAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.attachment.titleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.attachment.creationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.content.formatAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.contextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.context.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.context.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.context.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDocumentReference.context.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDocumentReference.context.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.context.eventAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.context.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.context.facilityTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.context.practiceSettingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.context.sourcePatientInfoAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDocumentReference.context.relatedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())