2nd DSTU Draft For Comment

This page is part of the FHIR Specification (v0.4.0: DSTU 2 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

Profile: ClinicalDocument

ClinicalDocument

Raw XML

<Profile xmlns="http://hl7.org/fhir"><!--    base ClinicalDocument    -->
  <id value="cda-clinicaldocument"/>
  <meta>
    <lastUpdated value="2014-11-05T20:31:00Z"/>
  </meta><!--    build tool to fill out narrative    -->
  <url value="http://hl7.org/fhir/Profile/cda-clinicaldocument"/>
  <name value="ClinicalDocument"/>
  <publisher value="HL7 FHIR Project"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://hl7.org/fhir"/>
    </telecom>
  </contact>
  <description value="Standard Profile for CDA R2 on FHIR"/>
  <status value="draft"/>
  <date value="2014-07-28"/>
  <mapping>
    <identity value="cda"/>
    <uri value="http://hl7.org/v3/cda"/>
    <name value="CDA (R2)"/>
  </mapping>
  <type value="Composition"/>
  <base value="http://hl7.org/fhir/Profile/Composition"/>
  <snapshot>
    <element>
      <path value="Composition"/>
      <short value="A set of resources composed into a single coherent clinical statement with clinical attestation"/>
      <definition value="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."/>
      <comments value="While the focus of this specification is on patient-specific clinical statements, this
       resource can also apply to other healthcare-related statements such as study protocol
       designs, healthcare invoices and other activities that are not necessarily patient-specific
       or clinical."/>
      <requirements value="To support documents, and also to capture the EN13606 notion of an attested commit to
       the patient EHR, and to allow a set of disparate resources at the information/engineering
       level to be gathered into a clinical statement."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Resource"/>
      </type>
      <mapping>
        <identity value="cda"/>
        <map value="ClinicalDocument"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="Document[classCode=&quot;DOC&quot; and moodCode=&quot;EVN&quot; and isNormalAct()]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.id"/>
      <short value="Logical id of this artefact"/>
      <definition value="The logical id of the resource, as used in the url for the resoure. Once assigned, this
       value never changes."/>
      <comments value="The only time that a resource does not have an id is when it is being submitted to the
       server using a create operation. Bundles always have an id, though it is usually a generated
       UUID."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
    </element>
    <element>
      <path value="Composition.meta"/>
      <short value="Metadata about the resource"/>
      <definition value="The metadata about the resource. This is content that is maintained by the infrastructure.
       Changes to the content may not always be associated with version changes to the resource."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Meta"/>
      </type>
    </element>
    <element>
      <path value="Composition.implicitRules"/>
      <short value="A set of rules under which this content was created"/>
      <definition value="A reference to a set of rules that were followed when the resource was constructed, and
       which must be understood when processing the content."/>
      <comments value="Asserting this rule set restricts the content to be only understood by a limited set of
       trading partners. This inherently limits the usefulness of the data in the long term.
       However the existing health eco-system is highly fractured, and not yet ready to define,
       collect, and exchange data in a generally computable sense. Wherever possible, implementers
       and/or specification writers should avoid using this element as much as possible."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <isModifier value="true"/>
    </element>
    <element>
      <path value="Composition.language"/>
      <short value="Language of the resource content"/>
      <definition value="The base language in which the resource is written."/>
      <comments value="Language is provided to support indexing and accessibility (typically, services such as
       text to speech use the language tag). The html language tag in the narrative applies 
       to the narrative. The language tag on the resource may be used to specify the language
       of other presentations generated from the data in the resource  Not all the content has
       to be in the base language. The Resource.language should not be assumed to apply to the
       narrative automatically. If a language is specified, it should it also be specified on
       the div element in the html (see rules in HTML5 for information about the relationship
       between xml:lang and the html lang attribute)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="Language"/>
        <isExtensible value="false"/>
        <conformance value="required"/>
        <description value="A human language"/>
        <referenceUri value="http://tools.ietf.org/html/bcp47"/>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value=".languageCode"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.text"/>
      <short value="Text summary of the resource, for human interpretation"/>
      <definition value="A human-readable narrative that contains a summary of the resource, and may be 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 &quot;clinically
       safe&quot; for a human to just read the narrative. Resource definitions may define what
       content should be represented in the narrative to ensure clinical safety."/>
      <comments value="Contained resources do not have narrative. Resources that are not contained SHOULD have
       a narrative."/>
      <synonym value="narrative"/>
      <synonym value="html"/>
      <synonym value="xhtml"/>
      <synonym value="display"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Narrative"/>
      </type>
      <condition value="dom-1"/>
      <mapping>
        <identity value="rim"/>
        <map value="Act.text?"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.contained"/>
      <short value="Contained, inline Resources"/>
      <definition value="These resources do not have an independent existence apart from the resource that contains
       them - they cannot be identified independently, and nor can they have their own independent
       transaction scope."/>
      <comments value="This should never be done when the content can be identified properly, as once identification
       is lost, it is extremely difficult (and context dependent) to restore it again."/>
      <synonym value="inline resources"/>
      <synonym value="anonymous resources"/>
      <synonym value="contained resources"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Resource"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource. In order to make the use of extensions safe and manageable, there is
       a strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource, and that modifies the understanding of the element that contains it.
       Usually modifier elements provide negation or qualification. In order to make the use
       of extensions safe and manageable, there is a strict set of governance applied to the
       definition and use of extensions. Though any implementer is allowed to define an extension,
       there is a set of requirements that SHALL be met as part of the definition of the extension.
       Applications processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.identifier"/>
      <short value="Clinical Document setId"/>
      <definition value="Logical Identifier for the composition, assigned when created. This identifier stays constant
       as the composition is changed over time."/>
      <comments value="See discussion in resource definition for how these relate."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Identifier"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".setId"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="Document.id / Document.setId"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.date"/>
      <short value="CDA document date/time"/>
      <definition value="The composition editing time, when the composition was last logically changed by the author."/>
      <comments value="The Last Modified Date on the composition may be after the date of the document was attested
       without being changed."/>
      <requirements value="dateTime is used for tracking, organizing versions and searching."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".effectiveTime"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".effectiveTime[type=&quot;TS&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.type"/>
      <short value="Document Type"/>
      <definition value="Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary,
       Progress Note). This usually equates to the purpose of making the composition."/>
      <requirements value="Key metadata element describing the composition, used in searching/filtering."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <isSummary value="true"/>
      <binding>
        <name value="DocumentType"/>
        <isExtensible value="true"/>
        <conformance value="preferred"/>
        <description value="Type of a composition"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/vs/doc-codes"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value=".code"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./code"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.class"/>
      <short value="Categorization of Composition"/>
      <definition value="A categorization for the type of the composition. This may be implied by or derived from
       the code specified in the Composition Type."/>
      <requirements value="Helps humans to assess whether the composition is of interest when viewing an index of
       compositions or documents."/>
      <min value="0"/>
      <max value="0"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <isSummary value="true"/>
      <binding>
        <name value="DocumentClass"/>
        <isExtensible value="true"/>
        <conformance value="example"/>
        <description value="SubType of a clinical document"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/vs/xds-typecodes"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value="n/a"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".outboundRelationship[typeCode=&quot;COMP].target[classCode=&quot;LIST&quot;, moodCode=&quot;EVN&quo
        t;].code"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.title"/>
      <short value="Clinical Document Title"/>
      <definition value="Official human-readable label for the composition."/>
      <comments value="If compositions do not have a title, the text or a display name of Composition.type (e.g.
       a &quot;consultation&quot; or &quot;progress note&quot;) can be used in its place."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".title"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./title"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.status"/>
      <short value="final"/>
      <definition value="CDA: all documents are final"/>
      <comments value="If a composition is marked as withdrawn, the compositions/documents in the series, or
       data from the composition or document series, should never be displayed to a user without
       being clearly marked as untrustworthy. The flag &quot;withdrawn&quot; is why this element
       is labeled as a modifier of other elements."/>
      <requirements value="Need to be able to mark interim, amended, or withdrawn compositions or documents."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <fixedCode value="final"/>
      <isModifier value="true"/>
      <isSummary value="true"/>
      <binding>
        <name value="CompositionStatus"/>
        <isExtensible value="false"/>
        <conformance value="required"/>
        <description value="The workflow/clinical status of the composition"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/vs/composition-status"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value="n/a"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="interim: .completionCode=&quot;IN&quot; &amp; ./statusCode[isNormalDatatype()]=&quot;active&quot;;
          final: .completionCode=&quot;AU&quot; &amp;&amp;  ./statusCode[isNormalDatatype()]=&quot;complete&q
        uot; and not(./inboundRelationship[typeCode=&quot;SUBJ&quot; and isNormalActRelationship()]/source[su
        bsumesCode(&quot;ActClass#CACT&quot;) and moodCode=&quot;EVN&quot; and domainMember(&quot;ReviseCompo
        sition&quot;, code) and isNormalAct()]);  amended: .completionCode=&quot;AU&quot; &amp;&amp;
          ./statusCode[isNormalDatatype()]=&quot;complete&quot; and ./inboundRelationship[typeCode=&quot;SUBJ
        &quot; and isNormalActRelationship()]/source[subsumesCode(&quot;ActClass#CACT&quot;) and
         moodCode=&quot;EVN&quot; and domainMember(&quot;ReviseComposition&quot;, code) and isNormalAct()
         and statusCode=&quot;completed&quot;];  withdrawn : .completionCode=NI &amp;&amp;  ./statusCode[isNo
        rmalDatatype()]=&quot;obsolete&quot;"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.confidentiality"/>
      <short value="Document Confidentiality"/>
      <definition value="The code specifying the level of confidentiality of the Composition."/>
      <comments value="The exact use of this element, and enforcement and issues related to highly sensitive
       documents are out of scope for FHIR, and delegated to implementation profiles (see security
       section)."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Coding"/>
      </type>
      <isModifier value="true"/>
      <isSummary value="true"/>
      <binding>
        <name value="DocumentConfidentiality"/>
        <isExtensible value="true"/>
        <conformance value="preferred"/>
        <description value="Codes specifying the level of confidentiality of the composition"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/v3/vs/Confidentiality"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value=".confidentialityCode"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".confidentialityCode"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.subject"/>
      <short value="CDA RecordTarget"/>
      <definition value="Who or what the composition is about. The composition can be about a person, (patient
       or healthcare practitioner), a device (I.e. 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)."/>
      <comments value="For clinical documents, this is usually the patient."/>
      <requirements value="Essential metadata for searching for the composition. Identifies who and/or what the composition/doc
      ument is about."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="#PatientRole"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".recordTarget"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".participation[typeCode=&quot;SBJ&quot;].role[typeCode=&quot;PAT&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.author"/>
      <short value="Who and/or what authored the composition"/>
      <definition value="Identifies who is responsible for the information in the composition.  (Not necessarily
       who typed it in.)."/>
      <requirements value="Identifies who is responsible for the content."/>
      <min value="1"/>
      <max value="*"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Practitioner"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Device"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Patient"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/RelatedPerson"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".author.assignedAuthor"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".participation[typeCode=&quot;AUT&quot;].role[classCode=&quot;ASSIGNED&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester"/>
      <short value="Attests to accuracy of composition"/>
      <definition value="A participant who has attested to the accuracy of the composition/document."/>
      <comments value="Only list each attester once."/>
      <requirements value="Identifies responsibility for the accuracy of the composition content."/>
      <min value="0"/>
      <max value="*"/>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".authenticator/.legalAuthenticator"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".participation[typeCode=&quot;AUTHEN&quot;].role[classCode=&quot;ASSIGNED&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource. In order to make the use of extensions safe and manageable, there is
       a strict governance applied to the definition and use of extensions. Though any implementer
       is allowed to define an extension, there is a set of requirements that SHALL be met as
       part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource, and that modifies the understanding of the element that contains it.
       Usually modifier elements provide negation or qualification. In order to make the use
       of extensions safe and manageable, there is a strict governance applied to the definition
       and use of extensions. Though any implementer is allowed to define an extension, there
       is a set of requirements that SHALL be met as part of the definition of the extension.
       Applications processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <synonym value="modifiers"/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.mode"/>
      <short value="personal | professional | legal | official"/>
      <definition value="The type of attestation the authenticator offers."/>
      <comments value="Use more than one code where a single attester has more than one mode (professional and
       legal are often paired)."/>
      <requirements value="Indicates the level of officialness of the attestation."/>
      <min value="1"/>
      <max value="*"/>
      <type>
        <code value="code"/>
      </type>
      <isSummary value="true"/>
      <binding>
        <name value="CompositionAttestationMode"/>
        <isExtensible value="false"/>
        <description value="The way in which a person authenticated a composition"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/vs/composition-attestation-mode"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value="implied by .authenticator/.legalAuthenticator"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="unique(./modeCode)"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.time"/>
      <short value="When composition attested"/>
      <definition value="When composition was attested by the party."/>
      <requirements value="Identifies when the information in the composition was deemed accurate.  (Things may have
       changed since then.)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".authenticator.time"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./time[type=&quot;TS&quot; and isNormalDatatype()]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.party"/>
      <short value="Who attested the composition"/>
      <definition value="Who attested the composition in the specified way."/>
      <requirements value="Identifies who has taken on the responsibility for accuracy of the composition content."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Patient"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Practitioner"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Organization"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".authenticator.assignedEnttty"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./role[classCode=&quot;ASSIGNED&quot; and isNormalRole]/player[determinerCode=&quot;INST&quot;
         and classCode=(&quot;DEV&quot;, &quot;PSN&quot;) and isNormalEntity()] or ./role[classCode=&quot;ASS
        IGNED&quot; and isNormalRole and not(player)]/scoper[determinerCode=&quot;INST&quot; and
         classCode=&quot;ORG&quot; and isNormalEntity()]"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./role[classCode=&quot;ASSIGNED&quot; and isNormalRole]/player[determinerCode=&quot;INST&quot;
         and classCode=(&quot;DEV&quot;, &quot;PSN&quot;) and isNormalEntity()]     or     ./role[classCode=&
        quot;ASSIGNED&quot; and isNormalRole and not(player)]/scoper[determinerCode=&quot;INST&quot;
         and classCode=&quot;ORG&quot; and isNormalEntity()]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.custodian"/>
      <short value="Org which maintains the composition"/>
      <definition value="Identifies the organization or group who is responsible for ongoing maintenance of and
       access to the composition/document information."/>
      <comments value="This is useful when documents are derived from a composition - provides guidance for how
       to get the latest version of the document. This is optional because knowing this is sometimes
       not known by the authoring system, and can be inferred by context. However it's important
       that this information be known when working with a derived document, so providing a custodian
       is encouraged."/>
      <requirements value="Identifies where to go to find the current version, where to report issues, etc."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Organization"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".custodian.assignedCustodian"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".participation[typeCode=&quot;RCV&quot;].role[classCode=&quot;CUST&quot;].scoper[classCode=&quot;ORG
        &quot; and determinerCode=&quot;INST&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event"/>
      <short value="The clinical event/act/item being documented"/>
      <definition value="The main event/act/item, such as a colonoscopy or an appendectomy, being documented."/>
      <comments value="The event needs to be consistent with the type element, though can provide further information
       if desired."/>
      <requirements value="Provides context for the composition and creates a linkage between a resource describing
       an event and the composition created describing the event."/>
      <min value="0"/>
      <max value="1"/>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".documentationOf.serviceEvent"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="outboundRelationship[typeCode=&quot;SUBJ&quot;].target[classCode&lt;'ACT']"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource. In order to make the use of extensions safe and manageable, there is
       a strict governance applied to the definition and use of extensions. Though any implementer
       is allowed to define an extension, there is a set of requirements that SHALL be met as
       part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource, and that modifies the understanding of the element that contains it.
       Usually modifier elements provide negation or qualification. In order to make the use
       of extensions safe and manageable, there is a strict governance applied to the definition
       and use of extensions. Though any implementer is allowed to define an extension, there
       is a set of requirements that SHALL be met as part of the definition of the extension.
       Applications processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <synonym value="modifiers"/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.code"/>
      <short value="Code(s) that apply to the event being documented"/>
      <definition value="This 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 &quot;History
       and Physical Report&quot; in which the procedure being documented is necessarily a &quot;History
       and Physical&quot; act."/>
      <comments value="An event can further specialize the act inherent in the typeCode, such as where it is
       simply &quot;Procedure Report&quot; and the procedure was a &quot;colonoscopy&quot;. If
       one or more eventCodes are included, they SHALL NOT conflict with the values inherent
       in the classCode, practiceSettingCode or typeCode, as such a conflict would create an
       ambiguous situation. This short list of codes is provided to be used as ???key words???
       for certain types of queries."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <isSummary value="true"/>
      <binding>
        <name value="DocumentEventType"/>
        <isExtensible value="false"/>
        <description value="This list of codes represents the main clinical acts being documented"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/v3/vs/ActCode"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value=".code"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".code"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.period"/>
      <short value="The period covered by the documentation"/>
      <definition value="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
       time."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Period"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".effectiveTime"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".effectiveTime"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.detail"/>
      <short value="Full details for the event(s) the composition consents"/>
      <definition value="Full details for the event(s) the composition/documentation consents."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Any"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value="n/a"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".outboundRelationship[typeCode=&quot;SUBJ&quot;].target"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.encounter"/>
      <short value="Context of the conposition"/>
      <definition value="Describes the clinical encounter or type of care this documentation is associated with."/>
      <requirements value="Provides context for the composition and supports searching."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Encounter"/>
      </type>
      <isSummary value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".componentOf.encompassingEncounter"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="unique(highest(./outboundRelationship[typeCode=&quot;SUBJ&quot; and isNormalActRelationship()],
         priorityNumber)/target[moodCode=&quot;EVN&quot; and classCode=(&quot;ENC&quot;, &quot;PCPR&quot;)
         and isNormalAct])"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section"/>
      <name value="section"/>
      <short value="Composition is broken into sections"/>
      <definition value="The root of the sections that make up the composition."/>
      <min value="0"/>
      <max value="*"/>
      <constraint>
        <key value="cmp-2"/>
        <name value="Section Content"/>
        <severity value="error"/>
        <human value="A section must have either subsections or content"/>
        <xpath value="(exists(f:content) and not(exists(f:section))) or  (exists(f:section) and not(exists(f:content)))"/>
      </constraint>
      <constraint>
        <key value="cmp-1"/>
        <name value="No section code if there's content"/>
        <severity value="error"/>
        <human value="A section can only have a code if it has no content"/>
        <xpath value="not(exists(f:code)) or not(exists(f:content))"/>
      </constraint>
      <constraint>
        <key value="2"/>
        <name value="Section Rule"/>
        <severity value="error"/>
        <human value="A section SHALL have content or one or more sections, but not both."/>
        <xpath value="exists(f:content) != exists(f:section)"/>
      </constraint>
      <mapping>
        <identity value="cda"/>
        <map value=".component.structuredBody.component.section"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./outboundRelationship[typeCode=&quot;COMP&quot; and isNormalActRelationship()]/target[moodCode=&quo
        t;EVN&quot; and classCode=&quot;DOCSECT&quot; and isNormalAct]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource. In order to make the use of extensions safe and manageable, there is
       a strict governance applied to the definition and use of extensions. Though any implementer
       is allowed to define an extension, there is a set of requirements that SHALL be met as
       part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource, and that modifies the understanding of the element that contains it.
       Usually modifier elements provide negation or qualification. In order to make the use
       of extensions safe and manageable, there is a strict governance applied to the definition
       and use of extensions. Though any implementer is allowed to define an extension, there
       is a set of requirements that SHALL be met as part of the definition of the extension.
       Applications processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <synonym value="modifiers"/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.title"/>
      <short value="Label for section"/>
      <definition value="The heading for this particular section.  This will be part of the rendered content for
       the document."/>
      <comments value="The title identifies the section for a human reader. The title must be consistent with
       the narrative of the resource that is the target of the section.content reference."/>
      <requirements value="Section headings are often standardized for different types of documents.  They give guidance
       to humans on how the document is organized."/>
      <synonym value="header"/>
      <synonym value="label"/>
      <synonym value="caption"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <mapping>
        <identity value="cda"/>
        <map value=".title"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./title"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.code"/>
      <short value="Classification of section (recommended)"/>
      <definition value="A code identifying the kind of content contained within the section."/>
      <comments value="The code identifies the section for an automated processor of the document. This is particularly
       relevant when using profiles to control the structure of the document. Code is not required
       or allowed if there is content, since the meaning of the section can be ascertained from
       the resource that is the target of the section.content reference."/>
      <requirements value="Provides computable standardized labels to topics within the document."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <condition value="cmp-1"/>
      <binding>
        <name value="CompositionSectionType"/>
        <isExtensible value="false"/>
        <description value="Classification of a composition / document"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/vs/doc-section-codes"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value=".code"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./code"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.section"/>
      <short value="Nested Section"/>
      <definition value="A nested sub-section within this section."/>
      <comments value="Nested sections are primarily used to help human readers navigate to particular portions
       of the document."/>
      <min value="0"/>
      <max value="*"/>
      <nameReference value="section"/>
      <mapping>
        <identity value="cda"/>
        <map value=".component.section"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./outboundRelationship[typeCode=&quot;COMP&quot; and isNormalActRelationship()]/target[moodCode=&quo
        t;EVN&quot; and classCode=&quot;DOCSECT&quot; and isNormalAct]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.content"/>
      <short value="The Content of the section"/>
      <definition value="The content (narrative and data) associated with the section."/>
      <comments value="Because composition represent point-in-time snapshots, resource references should either
       be to a specific version, or made against resources on the same server with full version
       tracking, so that the correct versions can easily be assembled."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Any"/>
      </type>
      <condition value="cmp-1"/>
      <mapping>
        <identity value="cda"/>
        <map value="n/a"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="unique(./outboundRelationship[typeCode=&quot;COMP&quot; and isNormalActRelationship()]/target[moodCo
        de=&quot;EVN&quot; and classCode!=&quot;DOCSECT&quot; and isNormalAct])"/>
      </mapping>
    </element>
  </snapshot><!--    todo: this is a bundle with a document tag....    --><!--    todo: Clinical Document Id goes in feed.id    -->
  <differential>
    <element>
      <path value="Composition"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Resource"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value="ClinicalDocument"/>
      </mapping>
    </element>
    <element><!--    inFulfillmentOf extension    -->
      <path value="Composition.extension"/>
      <short value="CDA inFulFillmentOf"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
        <profile value="http://hl7.org/fhir/ExtensionDefinition/cda-inFulFillmentOf"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".inFulFillmentOf"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.language"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <mapping>
        <identity value="cda"/>
        <map value=".languageCode"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.identifier"/>
      <short value="Clinical Document setId"/>
      <definition value="Logical Identifier for the composition, assigned when created. This identifier stays constant
       as the composition is changed over time."/>
      <comments value="See discussion in resource definition for how these relate."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Identifier"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".setId"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.date"/>
      <short value="CDA document date/time"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".effectiveTime"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.type"/>
      <short value="Document Type"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".code"/>
      </mapping>
    </element>
    <element><!--    not used in CDA    -->
      <path value="Composition.class"/>
      <min value="0"/>
      <max value="0"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <isModifier value="false"/>
    </element>
    <element>
      <path value="Composition.title"/>
      <short value="Clinical Document Title"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".title"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.status"/>
      <short value="final"/>
      <definition value="CDA: all documents are final"/>
      <min value="1"/>
      <max value="1"/>
      <fixedCode value="final"/>
      <mapping>
        <identity value="cda"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.confidentiality"/>
      <short value="Document Confidentiality"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Coding"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".confidentialityCode"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.subject"/>
      <short value="CDA RecordTarget"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="#PatientRole"/>
      </type><!--    todo: should there be other choices here?    -->
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".recordTarget"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.author"/>
      <short value="Who and/or what authored the composition"/>
      <definition value="Identifies who is responsible for the information in the composition.  (Not necessarily
       who typed it in.)."/>
      <min value="1"/>
      <max value="*"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Practitioner"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Device"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Patient"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/RelatedPerson"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".author.assignedAuthor"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".participation[typeCode=&quot;AUT&quot;].role[classCode=&quot;ASSIGNED&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester"/>
      <short value="Attests to accuracy of composition"/>
      <definition value="A participant who has attested to the accuracy of the composition/document."/>
      <comments value="Only list each attester once."/>
      <min value="0"/>
      <max value="*"/>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".authenticator/.legalAuthenticator"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".participation[typeCode=&quot;AUTHEN&quot;].role[classCode=&quot;ASSIGNED&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource. In order to make the use of extensions safe and manageable, there is
       a strict governance applied to the definition and use of extensions. Though any implementer
       is allowed to define an extension, there is a set of requirements that SHALL be met as
       part of the definition of the extension."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
    </element>
    <element>
      <path value="Composition.attester.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource, and that modifies the understanding of the element that contains it.
       Usually modifier elements provide negation or qualification. In order to make the use
       of extensions safe and manageable, there is a strict governance applied to the definition
       and use of extensions. Though any implementer is allowed to define an extension, there
       is a set of requirements that SHALL be met as part of the definition of the extension.
       Applications processing a resource are required to check for modifier extensions."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
    </element>
    <element>
      <path value="Composition.attester.mode"/>
      <short value="personal | professional | legal | official"/>
      <definition value="The type of attestation the authenticator offers."/>
      <comments value="Use more than one code where a single attester has more than one mode (professional and
       legal are often paired)."/>
      <min value="1"/>
      <max value="*"/>
      <type>
        <code value="code"/>
      </type>
      <isModifier value="false"/>
      <binding>
        <name value="CompositionAttestationMode"/>
        <isExtensible value="false"/>
        <description value="The way in which a person authenticated a composition"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/vs/composition-attestation-mode"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value="implied by .authenticator/.legalAuthenticator"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="unique(./modeCode)"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.time"/>
      <short value="When composition attested"/>
      <definition value="When composition was attested by the party."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".authenticator.time"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./time[type=&quot;TS&quot; and isNormalDatatype()]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.attester.party"/>
      <short value="Who attested the composition"/>
      <definition value="Who attested the composition in the specified way."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Patient"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Practitioner"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Organization"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".authenticator.assignedEnttty"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./role[classCode=&quot;ASSIGNED&quot; and isNormalRole]/player[determinerCode=&quot;INST&quot;
         and classCode=(&quot;DEV&quot;, &quot;PSN&quot;) and isNormalEntity()]     or     ./role[classCode=&
        quot;ASSIGNED&quot; and isNormalRole and not(player)]/scoper[determinerCode=&quot;INST&quot;
         and classCode=&quot;ORG&quot; and isNormalEntity()]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.custodian"/>
      <short value="Org which maintains the composition"/>
      <definition value="Identifies the organization or group who is responsible for ongoing maintenance of and
       access to the composition/document information."/>
      <comments value="This is useful when documents are derived from a composition - provides guidance for how
       to get the latest version of the document. This is optional because knowing this is sometimes
       not known by the authoring system, and can be inferred by context. However it's important
       that this information be known when working with a derived document, so providing a custodian
       is encouraged."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Organization"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".custodian.assignedCustodian"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".participation[typeCode=&quot;RCV&quot;].role[classCode=&quot;CUST&quot;].scoper[classCode=&quot;ORG
        &quot; and determinerCode=&quot;INST&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event"/>
      <short value="The clinical event/act/item being documented"/>
      <definition value="The main event/act/item, such as a colonoscopy or an appendectomy, being documented."/>
      <comments value="The event needs to be consistent with the type element, though can provide further information
       if desired."/>
      <min value="0"/>
      <max value="1"/>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".documentationOf.serviceEvent"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="outboundRelationship[typeCode=&quot;SUBJ&quot;].target[classCode&lt;'ACT']"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource. In order to make the use of extensions safe and manageable, there is
       a strict governance applied to the definition and use of extensions. Though any implementer
       is allowed to define an extension, there is a set of requirements that SHALL be met as
       part of the definition of the extension."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
    </element>
    <element>
      <path value="Composition.event.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource, and that modifies the understanding of the element that contains it.
       Usually modifier elements provide negation or qualification. In order to make the use
       of extensions safe and manageable, there is a strict governance applied to the definition
       and use of extensions. Though any implementer is allowed to define an extension, there
       is a set of requirements that SHALL be met as part of the definition of the extension.
       Applications processing a resource are required to check for modifier extensions."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
    </element>
    <element>
      <path value="Composition.event.code"/>
      <short value="Code(s) that apply to the event being documented"/>
      <definition value="This 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 &quot;History
       and Physical Report&quot; in which the procedure being documented is necessarily a &quot;History
       and Physical&quot; act."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <isModifier value="false"/>
      <binding>
        <name value="DocumentEventType"/>
        <isExtensible value="false"/>
        <description value="This list of codes represents the main clinical acts being documented"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/v3/vs/ActCode"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value=".code"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".code"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.period"/>
      <short value="The period covered by the documentation"/>
      <definition value="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
       time."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Period"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".effectiveTime"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".effectiveTime"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.event.detail"/>
      <short value="Full details for the event(s) the composition consents"/>
      <definition value="Full details for the event(s) the composition/documentation consents."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Any"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value="n/a"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value=".outboundRelationship[typeCode=&quot;SUBJ&quot;].target"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.encounter"/>
      <short value="Context of the conposition"/>
      <definition value="Describes the clinical encounter or type of care this documentation is associated with."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Encounter"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".componentOf.encompassingEncounter"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="unique(highest(./outboundRelationship[typeCode=&quot;SUBJ&quot; and isNormalActRelationship()],
         priorityNumber)/target[moodCode=&quot;EVN&quot; and classCode=(&quot;ENC&quot;, &quot;PCPR&quot;)
         and isNormalAct])"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section"/>
      <name value="section"/>
      <short value="Composition is broken into sections"/>
      <definition value="The root of the sections that make up the composition."/>
      <min value="0"/>
      <max value="*"/>
      <constraint>
        <key value="2"/>
        <name value="Section Rule"/>
        <severity value="error"/>
        <human value="A section SHALL have content or one or more sections, but not both."/>
        <xpath value="exists(f:content) != exists(f:section)"/>
      </constraint>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".component.structuredBody.component.section"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./outboundRelationship[typeCode=&quot;COMP&quot; and isNormalActRelationship()]/target[moodCode=&quo
        t;EVN&quot; and classCode=&quot;DOCSECT&quot; and isNormalAct]"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource. In order to make the use of extensions safe and manageable, there is
       a strict governance applied to the definition and use of extensions. Though any implementer
       is allowed to define an extension, there is a set of requirements that SHALL be met as
       part of the definition of the extension."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
    </element>
    <element>
      <path value="Composition.section.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource, and that modifies the understanding of the element that contains it.
       Usually modifier elements provide negation or qualification. In order to make the use
       of extensions safe and manageable, there is a strict governance applied to the definition
       and use of extensions. Though any implementer is allowed to define an extension, there
       is a set of requirements that SHALL be met as part of the definition of the extension.
       Applications processing a resource are required to check for modifier extensions."/>
      <synonym value="extensions"/>
      <synonym value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
    </element>
    <element>
      <path value="Composition.section.title"/>
      <short value="Label for section"/>
      <definition value="The heading for this particular section.  This will be part of the rendered content for
       the document."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".title"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./title"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.code"/>
      <short value="Classification of section (recommended)"/>
      <definition value="A code identifying the kind of content contained within the section."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <isModifier value="false"/>
      <binding>
        <name value="CompositionSectionType"/>
        <isExtensible value="false"/>
        <description value="Classification of a composition / document"/>
        <referenceReference>
          <reference value="http://hl7.org/fhir/vs/doc-section-codes"/>
        </referenceReference>
      </binding>
      <mapping>
        <identity value="cda"/>
        <map value=".code"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./code"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.subject"/>
      <short value="If section different to composition"/>
      <definition value="Identifies the primary subject of the section."/>
      <comments value="This is labeled as &quot;Is Modifier&quot; because applications SHALL be aware if the
       subject changes for a particular section."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Patient"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Group"/>
      </type>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Device"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="cda"/>
        <map value=".subject.relatedSubject"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="unique(./participation[typeCode=&quot;SBJ&quot; and isNormalParticipation]/role[typeCode=&quot;PAT&q
        uot;])     or     unique(./participation[typeCode=&quot;SBJ&quot; and isNormalParticipation]/role[typ
        eCode=&quot;IDENT&quot;]/player[determinerCode=&quot;INST&quot; and classCode=(&quot;DEV&quot;,
         &quot;ORG&quot;) and isNormalEntity()])"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.content"/>
      <short value="The actual data for the section"/>
      <definition value="Identifies the discrete data that provides the content for the section."/>
      <comments value="Because composition represent point-in-time snapshots, resource references should either
       be to a specific version, or made against resources on the same server with full version
       tracking, so that the correct versions can easily be assembled."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/Profile/Any"/>
      </type>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value="n/a"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="unique(./outboundRelationship[typeCode=&quot;COMP&quot; and isNormalActRelationship()]/target[moodCo
        de=&quot;EVN&quot; and classCode!=&quot;DOCSECT&quot; and isNormalAct])"/>
      </mapping>
    </element>
    <element>
      <path value="Composition.section.section"/>
      <short value="Nested Section"/>
      <definition value="A nested sub-section within this section."/>
      <min value="0"/>
      <max value="*"/>
      <nameReference value="section"/>
      <isModifier value="false"/>
      <mapping>
        <identity value="cda"/>
        <map value=".component.section"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./outboundRelationship[typeCode=&quot;COMP&quot; and isNormalActRelationship()]/target[moodCode=&quo
        t;EVN&quot; and classCode=&quot;DOCSECT&quot; and isNormalAct]"/>
      </mapping>
    </element>
  </differential>
</Profile>