eHealth Infrastructure (v2020.1)

StructureDefinition: ehealth-composition

Introduction

A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.

Scope and Usage

In scope of the eHealth infrastructure, the Composition is used primarily for internal use when assembling resources into documents during publication to national document sharing.

When retrieving documents from national document sharing, these are represented as Clinical Document Architecture (CDA) XML documents. When choosing to transform the content to FHIR resources, the resulting Composition is the FHIR resource tying the other, resulting resources together as a document.

Formal Views of Profile Content

The official URL for this profile is:

http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-composition

This profile builds on Composition.

This profile was published on Tue Feb 04 09:11:17 UTC 2020 as a draft by ehealth.sundhed.dk.

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

This structure is derived from Composition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition 0..*Composition
... extension 0..*ExtensionSlice: Unordered, Open by value:url
... ehealth-composition-authorOrganization 0..*Reference()Organization that authored the Composition
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-composition-authorOrganization
.... valueReference:valueReference 1..1Reference(eHealth Organization) {bc}
... type 1..1CodeableConceptBinding: DocumentType (required)
... class 0..1CodeableConceptBinding: DocumentClass (required)
... subject 1..1Reference(Resource) {bc}
... encounter 0..1Reference(Encounter) {bc}
... author 1..*Reference(eHealth Practitioner | eHealth Device | eHealth Patient | eHealth RelatedPerson) {bc}
... attester
.... party 0..1Reference(eHealth Patient | eHealth Practitioner | eHealth Organization)
... custodian 0..1Reference(eHealth Organization) {bc}
... relatesTo
.... target[x] 1..1
..... targetIdentifierIdentifier
..... targetReferenceReference(ehealth-composition)
... event
.... code 0..*CodeableConceptBinding: EventTypeCodes (required)
... section
.... entry 0..*Reference(Resource) {b}

doco Documentation for this format

This structure is derived from Composition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition I0..*CompositionA set of resources composed into a single coherent clinical statement with clinical attestation
... 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: Common Languages (extensible)
Max Binding: All Languages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-composition-authorOrganization I0..*Reference()Organization that authored the Composition
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-composition-authorOrganization
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... url 1..1uri"http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-composition-authorOrganization"
.... value[x] 1..1(Slice Definition)Value of extension
Slice: Unordered, Closed by type:$this
..... value[x]:valueReference 1..1Reference(eHealth Organization) {bc}Value of extension
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..1IdentifierLogical identifier of composition (version-independent)
... status ?!Σ1..1codepreliminary | final | amended | entered-in-error
Binding: CompositionStatus (required)
... type Σ1..1CodeableConceptKind of composition (LOINC if possible)
Binding: DocumentType (required)
... class Σ0..1CodeableConceptCategorization of Composition
Binding: DocumentClass (required)
... subject Σ1..1Reference(Resource) {bc}Who and/or what the composition is about
... encounter Σ0..1Reference(Encounter) {bc}Context of the Composition
... date Σ1..1dateTimeComposition editing time
... author Σ1..*Reference(eHealth Practitioner | eHealth Device | eHealth Patient | eHealth RelatedPerson) {bc}Who and/or what authored the composition
... title Σ1..1stringHuman Readable name/title
... confidentiality ?!Σ0..1codeAs defined by affinity domain
Binding: ConfidentialityClassification (required)
... attester ΣI0..*BackboneElementAttests to accuracy of composition
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... mode Σ1..*codepersonal | professional | legal | official
Binding: CompositionAttestationMode (required)
.... time Σ0..1dateTimeWhen the composition was attested
.... party Σ0..1Reference(eHealth Patient | eHealth Practitioner | eHealth Organization)Who attested the composition
... custodian Σ0..1Reference(eHealth Organization) {bc}Organization which maintains the composition
... relatesTo ΣI0..*BackboneElementRelationships to other compositions/documents
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... code Σ1..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required)
.... target[x] Σ1..1Target of the relationship
..... targetIdentifierIdentifier
..... targetReferenceReference(ehealth-composition)
... event ΣI0..*BackboneElementThe clinical service(s) being documented
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... code Σ0..*CodeableConceptCode(s) that apply to the event being documented
Binding: EventTypeCodes (required)
.... period Σ0..1PeriodThe period covered by the documentation
.... detail Σ0..*Reference(Resource)The event(s) being documented
... section I0..*BackboneElementComposition is broken into sections
cmp-1: A section must at least one of text, entries, or sub-sections
cmp-2: A section can only have an emptyReason if it is empty
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... title 0..1stringLabel for section (e.g. for ToC)
.... code 0..1CodeableConceptClassification of section (recommended)
Binding: Document Section Codes (example)
.... text I0..1NarrativeText summary of the section, for human interpretation
.... mode ?!Σ0..1codeworking | snapshot | changes
Binding: ListMode (required)
.... orderedBy 0..1CodeableConceptOrder of section entries
Binding: List Order Codes (preferred)
.... entry I0..*Reference(Resource) {b}A reference to data that supports this section
.... emptyReason I0..1CodeableConceptWhy the section is empty
Binding: List Empty Reasons (preferred)
.... section I0..*Unknown reference to #Composition.section
Nested Section

doco Documentation for this format

Differential View

This structure is derived from Composition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition 0..*Composition
... extension 0..*ExtensionSlice: Unordered, Open by value:url
... ehealth-composition-authorOrganization 0..*Reference()Organization that authored the Composition
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-composition-authorOrganization
.... valueReference:valueReference 1..1Reference(eHealth Organization) {bc}
... type 1..1CodeableConceptBinding: DocumentType (required)
... class 0..1CodeableConceptBinding: DocumentClass (required)
... subject 1..1Reference(Resource) {bc}
... encounter 0..1Reference(Encounter) {bc}
... author 1..*Reference(eHealth Practitioner | eHealth Device | eHealth Patient | eHealth RelatedPerson) {bc}
... attester
.... party 0..1Reference(eHealth Patient | eHealth Practitioner | eHealth Organization)
... custodian 0..1Reference(eHealth Organization) {bc}
... relatesTo
.... target[x] 1..1
..... targetIdentifierIdentifier
..... targetReferenceReference(ehealth-composition)
... event
.... code 0..*CodeableConceptBinding: EventTypeCodes (required)
... section
.... entry 0..*Reference(Resource) {b}

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition I0..*CompositionA set of resources composed into a single coherent clinical statement with clinical attestation
... 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: Common Languages (extensible)
Max Binding: All Languages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-composition-authorOrganization I0..*Reference()Organization that authored the Composition
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-composition-authorOrganization
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... url 1..1uri"http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-composition-authorOrganization"
.... value[x] 1..1(Slice Definition)Value of extension
Slice: Unordered, Closed by type:$this
..... value[x]:valueReference 1..1Reference(eHealth Organization) {bc}Value of extension
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..1IdentifierLogical identifier of composition (version-independent)
... status ?!Σ1..1codepreliminary | final | amended | entered-in-error
Binding: CompositionStatus (required)
... type Σ1..1CodeableConceptKind of composition (LOINC if possible)
Binding: DocumentType (required)
... class Σ0..1CodeableConceptCategorization of Composition
Binding: DocumentClass (required)
... subject Σ1..1Reference(Resource) {bc}Who and/or what the composition is about
... encounter Σ0..1Reference(Encounter) {bc}Context of the Composition
... date Σ1..1dateTimeComposition editing time
... author Σ1..*Reference(eHealth Practitioner | eHealth Device | eHealth Patient | eHealth RelatedPerson) {bc}Who and/or what authored the composition
... title Σ1..1stringHuman Readable name/title
... confidentiality ?!Σ0..1codeAs defined by affinity domain
Binding: ConfidentialityClassification (required)
... attester ΣI0..*BackboneElementAttests to accuracy of composition
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... mode Σ1..*codepersonal | professional | legal | official
Binding: CompositionAttestationMode (required)
.... time Σ0..1dateTimeWhen the composition was attested
.... party Σ0..1Reference(eHealth Patient | eHealth Practitioner | eHealth Organization)Who attested the composition
... custodian Σ0..1Reference(eHealth Organization) {bc}Organization which maintains the composition
... relatesTo ΣI0..*BackboneElementRelationships to other compositions/documents
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... code Σ1..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required)
.... target[x] Σ1..1Target of the relationship
..... targetIdentifierIdentifier
..... targetReferenceReference(ehealth-composition)
... event ΣI0..*BackboneElementThe clinical service(s) being documented
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... code Σ0..*CodeableConceptCode(s) that apply to the event being documented
Binding: EventTypeCodes (required)
.... period Σ0..1PeriodThe period covered by the documentation
.... detail Σ0..*Reference(Resource)The event(s) being documented
... section I0..*BackboneElementComposition is broken into sections
cmp-1: A section must at least one of text, entries, or sub-sections
cmp-2: A section can only have an emptyReason if it is empty
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... title 0..1stringLabel for section (e.g. for ToC)
.... code 0..1CodeableConceptClassification of section (recommended)
Binding: Document Section Codes (example)
.... text I0..1NarrativeText summary of the section, for human interpretation
.... mode ?!Σ0..1codeworking | snapshot | changes
Binding: ListMode (required)
.... orderedBy 0..1CodeableConceptOrder of section entries
Binding: List Order Codes (preferred)
.... entry I0..*Reference(Resource) {b}A reference to data that supports this section
.... emptyReason I0..1CodeableConceptWhy the section is empty
Binding: List Empty Reasons (preferred)
.... section I0..*Unknown reference to #Composition.section
Nested Section

doco Documentation for this format

 

Terminology Bindings

PathConformanceValueSet
Composition.languageextensibleCommon Languages
Max Binding: All Languages
Composition.statusrequiredCompositionStatus
Composition.typerequiredDocumentType
Composition.classrequiredDocumentClass
Composition.confidentialityrequiredConfidentialityClassification
Composition.attester.moderequiredCompositionAttestationMode
Composition.relatesTo.coderequiredDocumentRelationshipType
Composition.event.coderequiredEventTypeCodes
Composition.section.codeexampleDocument Section Codes
Composition.section.moderequiredListMode
Composition.section.orderedBypreferredList Order Codes
Composition.section.emptyReasonpreferredList Empty Reasons

Constraints

IdPathDetailsRequirements
dom-2CompositionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1CompositionIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4CompositionIf 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-3CompositionIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
: contained.where(('#'+id in %resource.descendants().reference).not()).empty()
ele-1Composition.extension:authorOrganizationAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1Composition.extension:authorOrganizationMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Composition.attesterAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Composition.relatesToAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Composition.eventAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Composition.sectionAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
cmp-1Composition.sectionA section must at least one of text, entries, or sub-sections
: text.exists() or entry.exists() or section.exists()
cmp-2Composition.sectionA section can only have an emptyReason if it is empty
: emptyReason.empty() or entry.empty()
.