R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.5.0: R4 Ballot #2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

2.40 Resource Composition - Content

Structured Documents Work GroupMaturity Level: 2 Trial Use Compartments: Device, Encounter, Patient, Practitioner, RelatedPerson

A set of healthcare-related information that is assembled together into a single logical package 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. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).

A Composition is the basic structure from which FHIR Documents - immutable bundles with attested narrative - are built. A single logical composition may be associated with a series of derived documents, each of which is a frozen copy of the composition.

Note: EN 13606 uses the term "Composition" to refer to a single commit to an EHR system, and offers some common examples: a composition containing a consultation note, a progress note, a report or a letter, an investigation report, a prescription form or a set of bedside nursing observations. Using Composition for an attested EHR commit is a valid use of the Composition resource, but for FHIR purposes, it would be usual to make more granular updates with individual provenance statements.

The CDA on FHIR profile constrains Composition to match CDA and specify a clinical document. See also the comparison with CDA.

Composition is a structure for grouping information for purposes of persistence and attestability. There are several other grouping structures in FHIR with distinct purposes:

  • The List resource - enumerates a flat collection of resources and provides features for managing the collection. While a particular List instance may represent a "snapshot", from a business process perspective, the notion of "list" is dynamic – items are added and removed over time. The List resource references other resources. Lists may be curated and have specific business meaning.
  • The Group resource - defines a group of specific people, animals, devices, etc. by enumerating them, or by describing qualities that group members have. The Group resource refers to other resources, possibly implicitly. Groups are intended to be acted upon or observed as a whole (e.g., performing therapy on a group, calculating risk for a group, etc.). This resource will commonly be used for public health (e.g., describing an at-risk population), clinical trials (e.g., defining a test subject pool) and similar purposes.
  • The Bundle resource - is an infrastructure container for a group of resources. It does not have narrative and is used to group collections of resources for transmission, persistence or processing (e.g., messages, documents, transactions, query responses, etc.). The content of bundles is typically algorithmically determined for a particular exchange or persistence purpose.
  • The Composition resource - defines 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. The Composition resource provides the basic structure of a FHIR document. The full content of the document is expressed using a bundle containing the Composition and its entries.

The Composition resource organizes clinical and administrative content into sections, each of which contains a narrative, and references other resources for supporting data. The narrative content of the various sections in a Composition are supported by the resources referenced in the section entries. The complete set of content to make up a document includes the Composition resource together with various resources pointed to or indirectly connected to the Composition, all gathered together into a Bundle for transport and persistence. The following list of Composition references SHALL be included in the bundle:

Other resources referred to by those resources may be included in the bundle at the discretion of the authoring system, or as specified by any applicable profiles.

Every composition has a status element, which describes the status of the content of the composition, taken from this list of codes:

preliminaryThis is a preliminary composition or document (also known as initial or interim). The content may be incomplete or unverified.
finalThis version of the composition is complete and verified by an appropriate person and no further work is planned. Any subsequent updates would be on a new version of the composition.
amendedThe composition content or the referenced resources have been modified (edited or added to) subsequent to being released as "final" and the composition is complete and verified by an authorized person.
entered-in-errorThe composition or document was originally created/issued in error, and this is an amendment that marks that the entire series should not be considered as valid.

Composition status generally only moves down through this list - it moves from preliminary to final and then it may progress to amended. Note that in many workflows, only final compositions are made available and the preliminary status is not used.

A very few compositions are created entirely in error in the workflow - usually the composition concerns the wrong patient or is written by the wrong author, and the error is only detected after the composition has been used or documents have been derived from it. To support resolution of this case, the composition is updated to be marked as entered-in-error and a new derived document can be created. This means that the entire series of derived documents is now considered to be created in error and systems receiving derived documents based on retracted compositions SHOULD remove data taken from earlier documents from routine use and/or take other appropriate actions. Systems are not required to provide this workflow or support documents derived from retracted compositions, but they SHALL NOT ignore a status of entered-in-error. Note that systems that handle compositions or derived documents and don't support the error status need to define some other way of handling compositions that are created in error; while this is not a common occurrence, some clinical systems have no provision for removing erroneous information from a patient's record, and there is no way for a user to know that it is not fit for use - this is not safe.

Many users of this specification are familiar with the Clinical Document Architecture (CDA) and related specifications. CDA is a primary design input to the Composition resource (other principal inputs are other HL7 document specifications and EN13606). There are three important structural differences between CDA and the Composition resource:

  • A composition is a logical construct- its identifier matches to the CDA ClinicalDocument.setId. Composition resources are wrapped into Document structures, for exchange of the whole package (the composition and its parts), and this wrapped, sealed entity is equivalent to a CDA document, where the Bundle.id is equivalent in function to ClinicalDocument.id (but it is not identical when interconverting, since it's a transform between them).
  • The composition section defines a section (or sub-section) of the document, but unlike CDA, the section entries are actually references to other resources that hold the supporting data content for the section. This design means that the data can be reused in many other ways.
  • Unlike CDA, the context defined in the Composition (the confidentiality, subject, author, event, event period and encounter) apply to the composition and do not specifically apply to the resources referenced from the section.entry. There is no context flow model in FHIR, so each resource referenced from within a Composition expresses its own individual context. In this way, clinical content can safely be extracted from the composition.

In addition, note that both the code lists (e.g., Composition.status) and the Composition resource are mapped to HL7 v3 and/or CDA.

This resource is referenced by itself, Contract and Procedure

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition TUDomainResourceA set of resources composed into a single coherent clinical statement with clinical attestation
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..1IdentifierVersion-independent identifier for the Composition
... status ?!Σ1..1codepreliminary | final | amended | entered-in-error
CompositionStatus (Required)
... type Σ1..1CodeableConceptKind of composition (LOINC if possible)
FHIR Document Type Codes (Preferred)
... category Σ0..*CodeableConceptCategorization of Composition
Document Class Value Set (Example)
... subject Σ0..1Reference(Any)Who and/or what the composition is about
... encounter Σ0..1Reference(Encounter)Context of the Composition
... date Σ1..1dateTimeComposition editing time
... author Σ1..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)Who and/or what authored the composition
... title Σ1..1stringHuman Readable name/title
... confidentiality Σ0..1codeAs defined by affinity domain
V3 Value SetConfidentialityClassification (Required)
... attester 0..*BackboneElementAttests to accuracy of composition
.... mode 1..1codepersonal | professional | legal | official
CompositionAttestationMode (Required)
.... time 0..1dateTimeWhen the composition was attested
.... party 0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)Who attested the composition
... custodian Σ0..1Reference(Organization)Organization which maintains the composition
... relatesTo 0..*BackboneElementRelationships to other compositions/documents
.... code 1..1codereplaces | transforms | signs | appends
DocumentRelationshipType (Required)
.... target[x] 1..1Target of the relationship
..... targetIdentifierIdentifier
..... targetReferenceReference(Composition)
... event Σ0..*BackboneElementThe clinical service(s) being documented
.... code Σ0..*CodeableConceptCode(s) that apply to the event being documented
v3 Code System ActCode (Example)
.... period Σ0..1PeriodThe period covered by the documentation
.... detail Σ0..*Reference(Any)The event(s) being documented
... section I0..*BackboneElementComposition is broken into sections
+ Rule: A section must contain at least one of text, entries, or sub-sections
+ Rule: A section can only have an emptyReason if it is empty
.... title 0..1stringLabel for section (e.g. for ToC)
.... code 0..1CodeableConceptClassification of section (recommended)
Document Section Codes (Example)
.... author 0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)Who and/or what authored the section
.... text I0..1NarrativeText summary of the section, for human interpretation
.... mode 0..1codeworking | snapshot | changes
ListMode (Required)
.... orderedBy 0..1CodeableConceptOrder of section entries
List Order Codes (Preferred)
.... entry I0..*Reference(Any)A reference to data that supports this section
.... emptyReason I0..1CodeableConceptWhy the section is empty
List Empty Reasons (Preferred)
.... section I0..*see sectionNested Section

doco Documentation for this format

UML Diagram (Legend)

Composition (DomainResource)A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over timeidentifier : Identifier [0..1]The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document (this element modifies the meaning of other elements)status : code [1..1] « The workflow/clinical status of the composition. (Strength=Required)CompositionStatus! »Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the compositiontype : CodeableConcept [1..1] « Type of a composition. (Strength=Preferred)FHIRDocumentTypeCodes? »A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Typecategory : CodeableConcept [0..*] « High-level kind of a clinical document at a macro level. (Strength=Example)DocumentClassValueSet?? »Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure)subject : Reference [0..1] « Any »Describes the clinical encounter or type of care this documentation is associated withencounter : Reference [0..1] « Encounter »The composition editing time, when the composition was last logically changed by the authordate : dateTime [1..1]Identifies who is responsible for the information in the composition, not necessarily who typed it inauthor : Reference [1..*] « Practitioner|PractitionerRole|Device| Patient|RelatedPerson|Organization »Official human-readable label for the compositiontitle : string [1..1]The code specifying the level of confidentiality of the Compositionconfidentiality : code [0..1] « Codes specifying the level of confidentiality of the composition. (Strength=Required)v3.ConfidentialityClassificat...! »Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document informationcustodian : Reference [0..1] « Organization »AttesterThe type of attestation the authenticator offersmode : code [1..1] « The way in which a person authenticated a composition. (Strength=Required)CompositionAttestationMode! »When the composition was attested by the partytime : dateTime [0..1]Who attested the composition in the specified wayparty : Reference [0..1] « Patient|RelatedPerson|Practitioner| PractitionerRole|Organization »RelatesToThe type of relationship that this composition has with anther composition or documentcode : code [1..1] « The type of relationship between documents. (Strength=Required)DocumentRelationshipType! »The target composition/document of this relationshiptarget[x] : Type [1..1] « Identifier|Reference(Composition) »EventThis list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" actcode : CodeableConcept [0..*] « This list of codes represents the main clinical acts being documented. (Strength=Example)v3.ActCode?? »The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this timeperiod : Period [0..1]The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomydetail : Reference [0..*] « Any »SectionThe label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contentstitle : string [0..1]A code identifying the kind of content contained within the section. This must be consistent with the section titlecode : CodeableConcept [0..1] « Classification of a section of a composition/document. (Strength=Example)DocumentSectionCodes?? »Identifies who is responsible for the information in this section, not necessarily who typed it inauthor : Reference [0..*] « Practitioner|PractitionerRole|Device| Patient|RelatedPerson|Organization »A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrativetext : Narrative [0..1]How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deletedmode : code [0..1] « The processing mode that applies to this section. (Strength=Required)ListMode! »Specifies the order applied to the items in the section entriesorderedBy : CodeableConcept [0..1] « What order applies to the items in the entry. (Strength=Preferred)ListOrderCodes? »A reference to the actual resource from which the narrative in the section is derivedentry : Reference [0..*] « Any »If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reasonemptyReason : CodeableConcept [0..1] « If a section is empty, why it is empty. (Strength=Preferred)ListEmptyReasons? »A participant who has attested to the accuracy of the composition/documentattester[0..*]Relationships that this composition has with other compositions or documents that already existrelatesTo[0..*]The clinical service, such as a colonoscopy or an appendectomy, being documentedevent[0..*]A nested sub-section within this sectionsection[0..*]The root of the sections that make up the compositionsection[0..*]

XML Template

<Composition xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..1 Identifier Version-independent identifier for the Composition --></identifier>
 <status value="[code]"/><!-- 1..1 preliminary | final | amended | entered-in-error -->
 <type><!-- 1..1 CodeableConcept Kind of composition (LOINC if possible) --></type>
 <category><!-- 0..* CodeableConcept Categorization of Composition --></category>
 <subject><!-- 0..1 Reference(Any) Who and/or what the composition is about --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Context of the Composition --></encounter>
 <date value="[dateTime]"/><!-- 1..1 Composition editing time -->
 <author><!-- 1..* Reference(Practitioner|PractitionerRole|Device|Patient|
   RelatedPerson|Organization) Who and/or what authored the composition --></author>
 <title value="[string]"/><!-- 1..1 Human Readable name/title -->
 <confidentiality value="[code]"/><!-- 0..1 As defined by affinity domain -->
 <attester>  <!-- 0..* Attests to accuracy of composition -->
  <mode value="[code]"/><!-- 1..1 personal | professional | legal | official -->
  <time value="[dateTime]"/><!-- 0..1 When the composition was attested -->
  <party><!-- 0..1 Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|
    Organization) Who attested the composition --></party>
 </attester>
 <custodian><!-- 0..1 Reference(Organization) Organization which maintains the composition --></custodian>
 <relatesTo>  <!-- 0..* Relationships to other compositions/documents -->
  <code value="[code]"/><!-- 1..1 replaces | transforms | signs | appends -->
  <target[x]><!-- 1..1 Identifier|Reference(Composition) Target of the relationship --></target[x]>
 </relatesTo>
 <event>  <!-- 0..* The clinical service(s) being documented -->
  <code><!-- 0..* CodeableConcept Code(s) that apply to the event being documented --></code>
  <period><!-- 0..1 Period The period covered by the documentation --></period>
  <detail><!-- 0..* Reference(Any) The event(s) being documented --></detail>
 </event>
 <section>  <!-- 0..* Composition is broken into sections -->
  <title value="[string]"/><!-- 0..1 Label for section (e.g. for ToC) -->
  <code><!-- 0..1 CodeableConcept Classification of section (recommended) --></code>
  <author><!-- 0..* Reference(Practitioner|PractitionerRole|Device|Patient|
    RelatedPerson|Organization) Who and/or what authored the section --></author>
  <text><!-- ?? 0..1 Narrative Text summary of the section, for human interpretation --></text>
  <mode value="[code]"/><!-- 0..1 working | snapshot | changes -->
  <orderedBy><!-- 0..1 CodeableConcept Order of section entries --></orderedBy>
  <entry><!-- ?? 0..* Reference(Any) A reference to data that supports this section --></entry>
  <emptyReason><!-- ?? 0..1 CodeableConcept Why the section is empty --></emptyReason>
  <section><!-- ?? 0..* Content as for Composition.section Nested Section --></section>
 </section>
</Composition>

JSON Template

{doco
  "resourceType" : "Composition",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : { Identifier }, // Version-independent identifier for the Composition
  "status" : "<code>", // R!  preliminary | final | amended | entered-in-error
  "type" : { CodeableConcept }, // R!  Kind of composition (LOINC if possible)
  "category" : [{ CodeableConcept }], // Categorization of Composition
  "subject" : { Reference(Any) }, // Who and/or what the composition is about
  "encounter" : { Reference(Encounter) }, // Context of the Composition
  "date" : "<dateTime>", // R!  Composition editing time
  "author" : [{ Reference(Practitioner|PractitionerRole|Device|Patient|
   RelatedPerson|Organization) }], // R!  Who and/or what authored the composition
  "title" : "<string>", // R!  Human Readable name/title
  "confidentiality" : "<code>", // As defined by affinity domain
  "attester" : [{ // Attests to accuracy of composition
    "mode" : "<code>", // R!  personal | professional | legal | official
    "time" : "<dateTime>", // When the composition was attested
    "party" : { Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|
    Organization) } // Who attested the composition
  }],
  "custodian" : { Reference(Organization) }, // Organization which maintains the composition
  "relatesTo" : [{ // Relationships to other compositions/documents
    "code" : "<code>", // R!  replaces | transforms | signs | appends
    // target[x]: Target of the relationship. One of these 2:
    "targetIdentifier" : { Identifier }
    "targetReference" : { Reference(Composition) }
  }],
  "event" : [{ // The clinical service(s) being documented
    "code" : [{ CodeableConcept }], // Code(s) that apply to the event being documented
    "period" : { Period }, // The period covered by the documentation
    "detail" : [{ Reference(Any) }] // The event(s) being documented
  }],
  "section" : [{ // Composition is broken into sections
    "title" : "<string>", // Label for section (e.g. for ToC)
    "code" : { CodeableConcept }, // Classification of section (recommended)
    "author" : [{ Reference(Practitioner|PractitionerRole|Device|Patient|
    RelatedPerson|Organization) }], // Who and/or what authored the section
    "text" : { Narrative }, // C? Text summary of the section, for human interpretation
    "mode" : "<code>", // working | snapshot | changes
    "orderedBy" : { CodeableConcept }, // Order of section entries
    "entry" : [{ Reference(Any) }], // C? A reference to data that supports this section
    "emptyReason" : { CodeableConcept }, // C? Why the section is empty
    "section" : [{ Content as for Composition.section }] // C? Nested Section
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Composition;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Composition.identifier [ Identifier ]; # 0..1 Version-independent identifier for the Composition
  fhir:Composition.status [ code ]; # 1..1 preliminary | final | amended | entered-in-error
  fhir:Composition.type [ CodeableConcept ]; # 1..1 Kind of composition (LOINC if possible)
  fhir:Composition.category [ CodeableConcept ], ... ; # 0..* Categorization of Composition
  fhir:Composition.subject [ Reference(Any) ]; # 0..1 Who and/or what the composition is about
  fhir:Composition.encounter [ Reference(Encounter) ]; # 0..1 Context of the Composition
  fhir:Composition.date [ dateTime ]; # 1..1 Composition editing time
  fhir:Composition.author [ Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization) ], ... ; # 1..* Who and/or what authored the composition
  fhir:Composition.title [ string ]; # 1..1 Human Readable name/title
  fhir:Composition.confidentiality [ code ]; # 0..1 As defined by affinity domain
  fhir:Composition.attester [ # 0..* Attests to accuracy of composition
    fhir:Composition.attester.mode [ code ]; # 1..1 personal | professional | legal | official
    fhir:Composition.attester.time [ dateTime ]; # 0..1 When the composition was attested
    fhir:Composition.attester.party [ Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization) ]; # 0..1 Who attested the composition
  ], ...;
  fhir:Composition.custodian [ Reference(Organization) ]; # 0..1 Organization which maintains the composition
  fhir:Composition.relatesTo [ # 0..* Relationships to other compositions/documents
    fhir:Composition.relatesTo.code [ code ]; # 1..1 replaces | transforms | signs | appends
    # Composition.relatesTo.target[x] : 1..1 Target of the relationship. One of these 2
      fhir:Composition.relatesTo.targetIdentifier [ Identifier ]
      fhir:Composition.relatesTo.targetReference [ Reference(Composition) ]
  ], ...;
  fhir:Composition.event [ # 0..* The clinical service(s) being documented
    fhir:Composition.event.code [ CodeableConcept ], ... ; # 0..* Code(s) that apply to the event being documented
    fhir:Composition.event.period [ Period ]; # 0..1 The period covered by the documentation
    fhir:Composition.event.detail [ Reference(Any) ], ... ; # 0..* The event(s) being documented
  ], ...;
  fhir:Composition.section [ # 0..* Composition is broken into sections
    fhir:Composition.section.title [ string ]; # 0..1 Label for section (e.g. for ToC)
    fhir:Composition.section.code [ CodeableConcept ]; # 0..1 Classification of section (recommended)
    fhir:Composition.section.author [ Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization) ], ... ; # 0..* Who and/or what authored the section
    fhir:Composition.section.text [ Narrative ]; # 0..1 Text summary of the section, for human interpretation
    fhir:Composition.section.mode [ code ]; # 0..1 working | snapshot | changes
    fhir:Composition.section.orderedBy [ CodeableConcept ]; # 0..1 Order of section entries
    fhir:Composition.section.entry [ Reference(Any) ], ... ; # 0..* A reference to data that supports this section
    fhir:Composition.section.emptyReason [ CodeableConcept ]; # 0..1 Why the section is empty
    fhir:Composition.section.section [ See Composition.section ], ... ; # 0..* Nested Section
  ], ...;
]

Changes since R3

Composition
Composition.category
  • Added Element
Composition.subject
  • Min Cardinality changed from 1 to 0
Composition.author
  • Type changed from Reference(Practitioner|Device|Patient|RelatedPerson) to Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)
Composition.confidentiality
  • No longer marked as Modifier
Composition.attester.mode
  • Max Cardinality changed from * to 1
Composition.attester.party
  • Type changed from Reference(Patient|Practitioner|Organization) to Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)
Composition.relatesTo.target[x]
  • Remove Reference(Composition), Add Reference(Composition)
Composition.section.author
  • Added Element
Composition.section.mode
  • No longer marked as Modifier
Composition.class
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. 1 fail round-trip testing and 1 r3 resources are invalid (0 errors).)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition TUDomainResourceA set of resources composed into a single coherent clinical statement with clinical attestation
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..1IdentifierVersion-independent identifier for the Composition
... status ?!Σ1..1codepreliminary | final | amended | entered-in-error
CompositionStatus (Required)
... type Σ1..1CodeableConceptKind of composition (LOINC if possible)
FHIR Document Type Codes (Preferred)
... category Σ0..*CodeableConceptCategorization of Composition
Document Class Value Set (Example)
... subject Σ0..1Reference(Any)Who and/or what the composition is about
... encounter Σ0..1Reference(Encounter)Context of the Composition
... date Σ1..1dateTimeComposition editing time
... author Σ1..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)Who and/or what authored the composition
... title Σ1..1stringHuman Readable name/title
... confidentiality Σ0..1codeAs defined by affinity domain
V3 Value SetConfidentialityClassification (Required)
... attester 0..*BackboneElementAttests to accuracy of composition
.... mode 1..1codepersonal | professional | legal | official
CompositionAttestationMode (Required)
.... time 0..1dateTimeWhen the composition was attested
.... party 0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)Who attested the composition
... custodian Σ0..1Reference(Organization)Organization which maintains the composition
... relatesTo 0..*BackboneElementRelationships to other compositions/documents
.... code 1..1codereplaces | transforms | signs | appends
DocumentRelationshipType (Required)
.... target[x] 1..1Target of the relationship
..... targetIdentifierIdentifier
..... targetReferenceReference(Composition)
... event Σ0..*BackboneElementThe clinical service(s) being documented
.... code Σ0..*CodeableConceptCode(s) that apply to the event being documented
v3 Code System ActCode (Example)
.... period Σ0..1PeriodThe period covered by the documentation
.... detail Σ0..*Reference(Any)The event(s) being documented
... section I0..*BackboneElementComposition is broken into sections
+ Rule: A section must contain at least one of text, entries, or sub-sections
+ Rule: A section can only have an emptyReason if it is empty
.... title 0..1stringLabel for section (e.g. for ToC)
.... code 0..1CodeableConceptClassification of section (recommended)
Document Section Codes (Example)
.... author 0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)Who and/or what authored the section
.... text I0..1NarrativeText summary of the section, for human interpretation
.... mode 0..1codeworking | snapshot | changes
ListMode (Required)
.... orderedBy 0..1CodeableConceptOrder of section entries
List Order Codes (Preferred)
.... entry I0..*Reference(Any)A reference to data that supports this section
.... emptyReason I0..1CodeableConceptWhy the section is empty
List Empty Reasons (Preferred)
.... section I0..*see sectionNested Section

doco Documentation for this format

UML Diagram (Legend)

Composition (DomainResource)A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over timeidentifier : Identifier [0..1]The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document (this element modifies the meaning of other elements)status : code [1..1] « The workflow/clinical status of the composition. (Strength=Required)CompositionStatus! »Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the compositiontype : CodeableConcept [1..1] « Type of a composition. (Strength=Preferred)FHIRDocumentTypeCodes? »A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Typecategory : CodeableConcept [0..*] « High-level kind of a clinical document at a macro level. (Strength=Example)DocumentClassValueSet?? »Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure)subject : Reference [0..1] « Any »Describes the clinical encounter or type of care this documentation is associated withencounter : Reference [0..1] « Encounter »The composition editing time, when the composition was last logically changed by the authordate : dateTime [1..1]Identifies who is responsible for the information in the composition, not necessarily who typed it inauthor : Reference [1..*] « Practitioner|PractitionerRole|Device| Patient|RelatedPerson|Organization »Official human-readable label for the compositiontitle : string [1..1]The code specifying the level of confidentiality of the Compositionconfidentiality : code [0..1] « Codes specifying the level of confidentiality of the composition. (Strength=Required)v3.ConfidentialityClassificat...! »Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document informationcustodian : Reference [0..1] « Organization »AttesterThe type of attestation the authenticator offersmode : code [1..1] « The way in which a person authenticated a composition. (Strength=Required)CompositionAttestationMode! »When the composition was attested by the partytime : dateTime [0..1]Who attested the composition in the specified wayparty : Reference [0..1] « Patient|RelatedPerson|Practitioner| PractitionerRole|Organization »RelatesToThe type of relationship that this composition has with anther composition or documentcode : code [1..1] « The type of relationship between documents. (Strength=Required)DocumentRelationshipType! »The target composition/document of this relationshiptarget[x] : Type [1..1] « Identifier|Reference(Composition) »EventThis list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" actcode : CodeableConcept [0..*] « This list of codes represents the main clinical acts being documented. (Strength=Example)v3.ActCode?? »The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this timeperiod : Period [0..1]The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomydetail : Reference [0..*] « Any »SectionThe label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contentstitle : string [0..1]A code identifying the kind of content contained within the section. This must be consistent with the section titlecode : CodeableConcept [0..1] « Classification of a section of a composition/document. (Strength=Example)DocumentSectionCodes?? »Identifies who is responsible for the information in this section, not necessarily who typed it inauthor : Reference [0..*] « Practitioner|PractitionerRole|Device| Patient|RelatedPerson|Organization »A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrativetext : Narrative [0..1]How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deletedmode : code [0..1] « The processing mode that applies to this section. (Strength=Required)ListMode! »Specifies the order applied to the items in the section entriesorderedBy : CodeableConcept [0..1] « What order applies to the items in the entry. (Strength=Preferred)ListOrderCodes? »A reference to the actual resource from which the narrative in the section is derivedentry : Reference [0..*] « Any »If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reasonemptyReason : CodeableConcept [0..1] « If a section is empty, why it is empty. (Strength=Preferred)ListEmptyReasons? »A participant who has attested to the accuracy of the composition/documentattester[0..*]Relationships that this composition has with other compositions or documents that already existrelatesTo[0..*]The clinical service, such as a colonoscopy or an appendectomy, being documentedevent[0..*]A nested sub-section within this sectionsection[0..*]The root of the sections that make up the compositionsection[0..*]

XML Template

<Composition xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..1 Identifier Version-independent identifier for the Composition --></identifier>
 <status value="[code]"/><!-- 1..1 preliminary | final | amended | entered-in-error -->
 <type><!-- 1..1 CodeableConcept Kind of composition (LOINC if possible) --></type>
 <category><!-- 0..* CodeableConcept Categorization of Composition --></category>
 <subject><!-- 0..1 Reference(Any) Who and/or what the composition is about --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Context of the Composition --></encounter>
 <date value="[dateTime]"/><!-- 1..1 Composition editing time -->
 <author><!-- 1..* Reference(Practitioner|PractitionerRole|Device|Patient|
   RelatedPerson|Organization) Who and/or what authored the composition --></author>
 <title value="[string]"/><!-- 1..1 Human Readable name/title -->
 <confidentiality value="[code]"/><!-- 0..1 As defined by affinity domain -->
 <attester>  <!-- 0..* Attests to accuracy of composition -->
  <mode value="[code]"/><!-- 1..1 personal | professional | legal | official -->
  <time value="[dateTime]"/><!-- 0..1 When the composition was attested -->
  <party><!-- 0..1 Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|
    Organization) Who attested the composition --></party>
 </attester>
 <custodian><!-- 0..1 Reference(Organization) Organization which maintains the composition --></custodian>
 <relatesTo>  <!-- 0..* Relationships to other compositions/documents -->
  <code value="[code]"/><!-- 1..1 replaces | transforms | signs | appends -->
  <target[x]><!-- 1..1 Identifier|Reference(Composition) Target of the relationship --></target[x]>
 </relatesTo>
 <event>  <!-- 0..* The clinical service(s) being documented -->
  <code><!-- 0..* CodeableConcept Code(s) that apply to the event being documented --></code>
  <period><!-- 0..1 Period The period covered by the documentation --></period>
  <detail><!-- 0..* Reference(Any) The event(s) being documented --></detail>
 </event>
 <section>  <!-- 0..* Composition is broken into sections -->
  <title value="[string]"/><!-- 0..1 Label for section (e.g. for ToC) -->
  <code><!-- 0..1 CodeableConcept Classification of section (recommended) --></code>
  <author><!-- 0..* Reference(Practitioner|PractitionerRole|Device|Patient|
    RelatedPerson|Organization) Who and/or what authored the section --></author>
  <text><!-- ?? 0..1 Narrative Text summary of the section, for human interpretation --></text>
  <mode value="[code]"/><!-- 0..1 working | snapshot | changes -->
  <orderedBy><!-- 0..1 CodeableConcept Order of section entries --></orderedBy>
  <entry><!-- ?? 0..* Reference(Any) A reference to data that supports this section --></entry>
  <emptyReason><!-- ?? 0..1 CodeableConcept Why the section is empty --></emptyReason>
  <section><!-- ?? 0..* Content as for Composition.section Nested Section --></section>
 </section>
</Composition>

JSON Template

{doco
  "resourceType" : "Composition",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : { Identifier }, // Version-independent identifier for the Composition
  "status" : "<code>", // R!  preliminary | final | amended | entered-in-error
  "type" : { CodeableConcept }, // R!  Kind of composition (LOINC if possible)
  "category" : [{ CodeableConcept }], // Categorization of Composition
  "subject" : { Reference(Any) }, // Who and/or what the composition is about
  "encounter" : { Reference(Encounter) }, // Context of the Composition
  "date" : "<dateTime>", // R!  Composition editing time
  "author" : [{ Reference(Practitioner|PractitionerRole|Device|Patient|
   RelatedPerson|Organization) }], // R!  Who and/or what authored the composition
  "title" : "<string>", // R!  Human Readable name/title
  "confidentiality" : "<code>", // As defined by affinity domain
  "attester" : [{ // Attests to accuracy of composition
    "mode" : "<code>", // R!  personal | professional | legal | official
    "time" : "<dateTime>", // When the composition was attested
    "party" : { Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|
    Organization) } // Who attested the composition
  }],
  "custodian" : { Reference(Organization) }, // Organization which maintains the composition
  "relatesTo" : [{ // Relationships to other compositions/documents
    "code" : "<code>", // R!  replaces | transforms | signs | appends
    // target[x]: Target of the relationship. One of these 2:
    "targetIdentifier" : { Identifier }
    "targetReference" : { Reference(Composition) }
  }],
  "event" : [{ // The clinical service(s) being documented
    "code" : [{ CodeableConcept }], // Code(s) that apply to the event being documented
    "period" : { Period }, // The period covered by the documentation
    "detail" : [{ Reference(Any) }] // The event(s) being documented
  }],
  "section" : [{ // Composition is broken into sections
    "title" : "<string>", // Label for section (e.g. for ToC)
    "code" : { CodeableConcept }, // Classification of section (recommended)
    "author" : [{ Reference(Practitioner|PractitionerRole|Device|Patient|
    RelatedPerson|Organization) }], // Who and/or what authored the section
    "text" : { Narrative }, // C? Text summary of the section, for human interpretation
    "mode" : "<code>", // working | snapshot | changes
    "orderedBy" : { CodeableConcept }, // Order of section entries
    "entry" : [{ Reference(Any) }], // C? A reference to data that supports this section
    "emptyReason" : { CodeableConcept }, // C? Why the section is empty
    "section" : [{ Content as for Composition.section }] // C? Nested Section
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Composition;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Composition.identifier [ Identifier ]; # 0..1 Version-independent identifier for the Composition
  fhir:Composition.status [ code ]; # 1..1 preliminary | final | amended | entered-in-error
  fhir:Composition.type [ CodeableConcept ]; # 1..1 Kind of composition (LOINC if possible)
  fhir:Composition.category [ CodeableConcept ], ... ; # 0..* Categorization of Composition
  fhir:Composition.subject [ Reference(Any) ]; # 0..1 Who and/or what the composition is about
  fhir:Composition.encounter [ Reference(Encounter) ]; # 0..1 Context of the Composition
  fhir:Composition.date [ dateTime ]; # 1..1 Composition editing time
  fhir:Composition.author [ Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization) ], ... ; # 1..* Who and/or what authored the composition
  fhir:Composition.title [ string ]; # 1..1 Human Readable name/title
  fhir:Composition.confidentiality [ code ]; # 0..1 As defined by affinity domain
  fhir:Composition.attester [ # 0..* Attests to accuracy of composition
    fhir:Composition.attester.mode [ code ]; # 1..1 personal | professional | legal | official
    fhir:Composition.attester.time [ dateTime ]; # 0..1 When the composition was attested
    fhir:Composition.attester.party [ Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization) ]; # 0..1 Who attested the composition
  ], ...;
  fhir:Composition.custodian [ Reference(Organization) ]; # 0..1 Organization which maintains the composition
  fhir:Composition.relatesTo [ # 0..* Relationships to other compositions/documents
    fhir:Composition.relatesTo.code [ code ]; # 1..1 replaces | transforms | signs | appends
    # Composition.relatesTo.target[x] : 1..1 Target of the relationship. One of these 2
      fhir:Composition.relatesTo.targetIdentifier [ Identifier ]
      fhir:Composition.relatesTo.targetReference [ Reference(Composition) ]
  ], ...;
  fhir:Composition.event [ # 0..* The clinical service(s) being documented
    fhir:Composition.event.code [ CodeableConcept ], ... ; # 0..* Code(s) that apply to the event being documented
    fhir:Composition.event.period [ Period ]; # 0..1 The period covered by the documentation
    fhir:Composition.event.detail [ Reference(Any) ], ... ; # 0..* The event(s) being documented
  ], ...;
  fhir:Composition.section [ # 0..* Composition is broken into sections
    fhir:Composition.section.title [ string ]; # 0..1 Label for section (e.g. for ToC)
    fhir:Composition.section.code [ CodeableConcept ]; # 0..1 Classification of section (recommended)
    fhir:Composition.section.author [ Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization) ], ... ; # 0..* Who and/or what authored the section
    fhir:Composition.section.text [ Narrative ]; # 0..1 Text summary of the section, for human interpretation
    fhir:Composition.section.mode [ code ]; # 0..1 working | snapshot | changes
    fhir:Composition.section.orderedBy [ CodeableConcept ]; # 0..1 Order of section entries
    fhir:Composition.section.entry [ Reference(Any) ], ... ; # 0..* A reference to data that supports this section
    fhir:Composition.section.emptyReason [ CodeableConcept ]; # 0..1 Why the section is empty
    fhir:Composition.section.section [ See Composition.section ], ... ; # 0..* Nested Section
  ], ...;
]

Changes since Release 3

Composition
Composition.category
  • Added Element
Composition.subject
  • Min Cardinality changed from 1 to 0
Composition.author
  • Type changed from Reference(Practitioner|Device|Patient|RelatedPerson) to Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)
Composition.confidentiality
  • No longer marked as Modifier
Composition.attester.mode
  • Max Cardinality changed from * to 1
Composition.attester.party
  • Type changed from Reference(Patient|Practitioner|Organization) to Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)
Composition.relatesTo.target[x]
  • Remove Reference(Composition), Add Reference(Composition)
Composition.section.author
  • Added Element
Composition.section.mode
  • No longer marked as Modifier
Composition.class
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. 1 fail round-trip testing and 1 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis

PathDefinitionTypeReference
Composition.status The workflow/clinical status of the composition.RequiredCompositionStatus
Composition.type Type of a composition.PreferredFHIRDocumentTypeCodes
Composition.category High-level kind of a clinical document at a macro level.ExampleDocumentClassValueSet
Composition.confidentiality Codes specifying the level of confidentiality of the composition.Requiredv3.ConfidentialityClassification
Composition.attester.mode The way in which a person authenticated a composition.RequiredCompositionAttestationMode
Composition.relatesTo.code The type of relationship between documents.RequiredDocumentRelationshipType
Composition.event.code This list of codes represents the main clinical acts being documented.Examplev3.ActCode
Composition.section.code Classification of a section of a composition/document.ExampleDocumentSectionCodes
Composition.section.mode The processing mode that applies to this section.RequiredListMode
Composition.section.orderedBy What order applies to the items in the entry.PreferredListOrderCodes
Composition.section.emptyReason If a section is empty, why it is empty.PreferredListEmptyReasons

idLevelLocationDescriptionExpression
cmp-1Rule Composition.sectionA section must contain at least one of text, entries, or sub-sectionstext.exists() or entry.exists() or section.exists()
cmp-2Rule Composition.sectionA section can only have an emptyReason if it is emptyemptyReason.empty() or entry.empty()
  • The author and the attester are often the same person, but this might not be the case in some clinical workflows.
  • The attester attests contents of the document resource, the subject resource and the resources referred to in the Composition.section.content references. Because documents are often derived Compositions and the attestation from the composition is held to apply to the document, the method for presenting a document should be used when/if attesters review the content of the composition.
  • The custodian is responsible for the maintenance of the composition and any documents derived from it. With regard to the documents, they are responsible for the policy regarding persistence of the documents. Although they need not actually retain a copy of the document, they SHOULD do so.
  • It is acceptable for a Composition to contain only narrative (Composition.section.text) and no entries (Composition.section.entry)

Trial-Use Note: Feedback is welcome on two issues related to Composition:

  • For many compositions, the title is the same as the text or a display name of Composition.type (e.g., a "consultation" or "progress note"). Note that CDA does not make title mandatory, but there are no known cases where it is useful for title to be omitted, so it is mandatory here during the trial use period.
  • A client can ask a server to generate a fully bundled document from a Composition resource using the $snapshot operation. This operation definition does not resolve the question how document signatures are created. This is an open issue during the period of trial use, and feedback is requested regarding this question.

Feedback here .

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
attesterreferenceWho attested the compositionComposition.attester.party
(Practitioner, Organization, Patient, PractitionerRole, RelatedPerson)
authorreferenceWho and/or what authored the compositionComposition.author
(Practitioner, Organization, Device, Patient, PractitionerRole, RelatedPerson)
categorytokenCategorization of CompositionComposition.category
confidentialitytokenAs defined by affinity domainComposition.confidentiality
contexttokenCode(s) that apply to the event being documentedComposition.event.code
datedateComposition editing timeComposition.date17 Resources
encounterreferenceContext of the CompositionComposition.encounter
(Encounter)
12 Resources
entryreferenceA reference to data that supports this sectionComposition.section.entry
(Any)
identifiertokenVersion-independent identifier for the CompositionComposition.identifier30 Resources
patientreferenceWho and/or what the composition is aboutComposition.subject.where(resolve() is Patient)
(Patient)
29 Resources
perioddateThe period covered by the documentationComposition.event.period
related-idtokenTarget of the relationship(Composition.relatesTo.target as Identifier)
related-refreferenceTarget of the relationship(Composition.relatesTo.target as Reference)
(Composition)
sectiontokenClassification of section (recommended)Composition.section.code
statustokenpreliminary | final | amended | entered-in-errorComposition.status
subjectreferenceWho and/or what the composition is aboutComposition.subject
(Any)
titlestringHuman Readable name/titleComposition.title
typetokenKind of composition (LOINC if possible)Composition.type5 Resources