This page is part of the FHIR Specification (v0.0.82: DSTU 1). 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

Attachment.profile.xml

Raw XML (canonical form)

StructureDefinition for Attachment

Raw XML

<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Attachment"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><!-- Snipped for brevity --></div>
  </text>
  <url value="http://hl7.org/fhir/StructureDefinition/Attachment"/>
  <name value="Attachment"/>
  <publisher value="HL7 FHIR Standard"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://hl7.org/fhir"/>
    </telecom>
  </contact>
  <description value="Base StructureDefinition for Attachment Resource"/>
  <requirements value="Many models need to include data defined in other specifications that is complex and opaque
   to the healthcare model. This includes documents, media recordings, structured data, etc."/>
  <status value="draft"/>
  <date value="2015-03-27T00:13:00+11:00"/>
  <mapping>
    <identity value="v2"/>
    <uri value="http://hl7.org/v2"/>
    <name value="HL7 v2"/>
  </mapping>
  <mapping>
    <identity value="rim"/>
    <uri value="http://hl7.org/v3"/>
    <name value="RIM"/>
  </mapping>
  <type value="type"/>
  <abstract value="false"/>
  <base value="http://hl7.org/fhir/StructureDefinition/Element"/>
  <snapshot>
    <element>
      <path value="Attachment"/>
      <short value="Content in a format defined elsewhere"/>
      <definition value="For referring to data content defined in other formats."/>
      <comments value="When providing a summary view (for example with Observation.value[x]) Attachment should
       be represented with a brief display text such as &quot;Attachment&quot;."/>
      <requirements value="Many models need to include data defined in other specifications that is complex and opaque
       to the healthcare model. This includes documents, media recordings, structured data, etc."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Attachment"/>
      </type>
      <constraint>
        <key value="att-1"/>
        <name value="Must Have Content-Type"/>
        <severity value="error"/>
        <human value="It the Attachment has data, it SHALL have a contentType"/>
        <xpath value="not(exists(f:data)) or exists(f:contentType)"/>
      </constraint>
      <mapping>
        <identity value="v2"/>
        <map value="ED/RP"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="ED"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.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="Attachment.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 element. 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."/>
      <alias value="extensions"/>
      <alias 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="Attachment.contentType"/>
      <short value="Mime type of the content, with charset etc."/>
      <definition value="Identifies the type of the data in the attachment and allows a method to be chosen to
       interpret or render the data. Includes mime type parameters such as charset where appropriate."/>
      <requirements value="Processors of the data need to be able to know how to interpret the data."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <exampleCode value="text/plain; charset=UTF-8, image/png"/>
      <binding>
        <name value="MimeType"/>
        <strength value="required"/>
        <description value="The mime type of an attachment"/>
        <valueSetUri value="http://www.rfc-editor.org/bcp/bcp13.txt"/>
      </binding>
      <mapping>
        <identity value="v2"/>
        <map value="ED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./mediaType, ./charset"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.language"/>
      <short value="Human language of the content (BCP-47)"/>
      <definition value="The human language of the content. The value can be any valid value according to BCP 47."/>
      <requirements value="Users need to be able to choose between the languages in a set of attachments."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <exampleCode value="en-AU"/>
      <binding>
        <name value="Language"/>
        <strength value="required"/>
        <description value="A human language"/>
        <valueSetUri value="http://tools.ietf.org/html/bcp47"/>
      </binding>
      <mapping>
        <identity value="rim"/>
        <map value="./language"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.data"/>
      <short value="Data inline, base64ed"/>
      <definition value="The actual data of the attachment - a sequence of bytes. In XML, represented using base64."/>
      <comments value="The base64-encoded data SHALL be expressed in the same character set as the base resource
       XML or JSON."/>
      <requirements value="The data needs to able to be transmitted inline."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="base64Binary"/>
      </type>
      <mapping>
        <identity value="v2"/>
        <map value="ED.5"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./data"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.url"/>
      <short value="Uri where the data can be found"/>
      <definition value="An alternative location where the data can be accessed."/>
      <comments value="If both data and url are provided, the url SHALL point to the same content as the data
       contains. Urls may be relative references or may reference transient locations such as
       a wrapping envelope using cid: though this has ramifications for using signatures. Relative
       URLs are interpreted relative to the service url, like a resource reference, rather than
       relative to the resource itself. If a URL is provided, it SHALL resolve to actual data."/>
      <requirements value="The data needs to be transmitted by reference."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <exampleUri value="http://www.acme.com/logo-small.png"/>
      <mapping>
        <identity value="v2"/>
        <map value="RP.1+RP.2 - if they refer to a URL (see v2.6)"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./reference/literal"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.size"/>
      <short value="Number of bytes of content (if url provided)"/>
      <definition value="The number of bytes of data that make up this attachment."/>
      <comments value="The number of bytes is redundant if the data is provided as a base64binary, but is useful
       if the data is provided as a url reference."/>
      <requirements value="Representing the size allows applications to determine whether they should fetch the content
       automatically in advance, or refuse to fetch it at all."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="integer"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A (needs data type R3 proposal)"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.hash"/>
      <short value="Hash of the data (sha-1, base64ed )"/>
      <definition value="The calculated hash of the data using SHA-1. Represented using base64."/>
      <requirements value="Included so that applications can verify that the contents of a location have not changed
       and so that a signature of the content can implicitly sign the content of an image without
       having to include the data in the instance or reference the url in the signature."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="base64Binary"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value=".integrityCheck[parent::ED/integrityCheckAlgorithm=&quot;SHA-1&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.title"/>
      <short value="Label to display in place of the data"/>
      <definition value="A label or set of text to display in place of the data."/>
      <requirements value="Applications need a label to display to a human user in place of the actual data if the
       data cannot be rendered or perceived by the viewer."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <exampleString value="&quot;Official Corporate Logo&quot;"/>
      <mapping>
        <identity value="rim"/>
        <map value="./title/data"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.creation"/>
      <short value="Date attachment was first created"/>
      <definition value="The date that the attachment was first created."/>
      <requirements value="This is often tracked as an integrity issue for use of the attachment."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A (needs data type R3 proposal)"/>
      </mapping>
    </element>
  </snapshot>
  <differential>
    <element>
      <path value="Attachment"/>
      <short value="Content in a format defined elsewhere"/>
      <definition value="For referring to data content defined in other formats."/>
      <comments value="When providing a summary view (for example with Observation.value[x]) Attachment should
       be represented with a brief display text such as &quot;Attachment&quot;."/>
      <requirements value="Many models need to include data defined in other specifications that is complex and opaque
       to the healthcare model. This includes documents, media recordings, structured data, etc."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Element"/>
      </type>
      <constraint>
        <key value="att-1"/>
        <name value="Must Have Content-Type"/>
        <severity value="error"/>
        <human value="It the Attachment has data, it SHALL have a contentType"/>
        <xpath value="not(exists(f:data)) or exists(f:contentType)"/>
      </constraint>
      <mapping>
        <identity value="v2"/>
        <map value="ED/RP"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="ED"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.contentType"/>
      <short value="Mime type of the content, with charset etc."/>
      <definition value="Identifies the type of the data in the attachment and allows a method to be chosen to
       interpret or render the data. Includes mime type parameters such as charset where appropriate."/>
      <requirements value="Processors of the data need to be able to know how to interpret the data."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <exampleCode value="text/plain; charset=UTF-8, image/png"/>
      <binding>
        <name value="MimeType"/>
        <strength value="required"/>
        <description value="The mime type of an attachment"/>
        <valueSetUri value="http://www.rfc-editor.org/bcp/bcp13.txt"/>
      </binding>
      <mapping>
        <identity value="v2"/>
        <map value="ED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./mediaType, ./charset"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.language"/>
      <short value="Human language of the content (BCP-47)"/>
      <definition value="The human language of the content. The value can be any valid value according to BCP 47."/>
      <requirements value="Users need to be able to choose between the languages in a set of attachments."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <exampleCode value="en-AU"/>
      <binding>
        <name value="Language"/>
        <strength value="required"/>
        <description value="A human language"/>
        <valueSetUri value="http://tools.ietf.org/html/bcp47"/>
      </binding>
      <mapping>
        <identity value="rim"/>
        <map value="./language"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.data"/>
      <short value="Data inline, base64ed"/>
      <definition value="The actual data of the attachment - a sequence of bytes. In XML, represented using base64."/>
      <comments value="The base64-encoded data SHALL be expressed in the same character set as the base resource
       XML or JSON."/>
      <requirements value="The data needs to able to be transmitted inline."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="base64Binary"/>
      </type>
      <mapping>
        <identity value="v2"/>
        <map value="ED.5"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./data"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.url"/>
      <short value="Uri where the data can be found"/>
      <definition value="An alternative location where the data can be accessed."/>
      <comments value="If both data and url are provided, the url SHALL point to the same content as the data
       contains. Urls may be relative references or may reference transient locations such as
       a wrapping envelope using cid: though this has ramifications for using signatures. Relative
       URLs are interpreted relative to the service url, like a resource reference, rather than
       relative to the resource itself. If a URL is provided, it SHALL resolve to actual data."/>
      <requirements value="The data needs to be transmitted by reference."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <exampleUri value="http://www.acme.com/logo-small.png"/>
      <mapping>
        <identity value="v2"/>
        <map value="RP.1+RP.2 - if they refer to a URL (see v2.6)"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="./reference/literal"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.size"/>
      <short value="Number of bytes of content (if url provided)"/>
      <definition value="The number of bytes of data that make up this attachment."/>
      <comments value="The number of bytes is redundant if the data is provided as a base64binary, but is useful
       if the data is provided as a url reference."/>
      <requirements value="Representing the size allows applications to determine whether they should fetch the content
       automatically in advance, or refuse to fetch it at all."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="integer"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A (needs data type R3 proposal)"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.hash"/>
      <short value="Hash of the data (sha-1, base64ed )"/>
      <definition value="The calculated hash of the data using SHA-1. Represented using base64."/>
      <requirements value="Included so that applications can verify that the contents of a location have not changed
       and so that a signature of the content can implicitly sign the content of an image without
       having to include the data in the instance or reference the url in the signature."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="base64Binary"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value=".integrityCheck[parent::ED/integrityCheckAlgorithm=&quot;SHA-1&quot;]"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.title"/>
      <short value="Label to display in place of the data"/>
      <definition value="A label or set of text to display in place of the data."/>
      <requirements value="Applications need a label to display to a human user in place of the actual data if the
       data cannot be rendered or perceived by the viewer."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <exampleString value="&quot;Official Corporate Logo&quot;"/>
      <mapping>
        <identity value="rim"/>
        <map value="./title/data"/>
      </mapping>
    </element>
    <element>
      <path value="Attachment.creation"/>
      <short value="Date attachment was first created"/>
      <definition value="The date that the attachment was first created."/>
      <requirements value="This is often tracked as an integrity issue for use of the attachment."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A (needs data type R3 proposal)"/>
      </mapping>
    </element>
  </differential>
</StructureDefinition>

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.