Attachment
type: StructureDefinition
node role: treeRoot
id:
  v: Attachment
text:
  status:
    v: generated
  div:
    v: Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> <img src="[binary]" alt="." style="background-color: white; background-color: inherit" title="Element" class="hierarchy"/> Attachment N Element Content in a format defined elsewhere + Rule: If the Attachment has data, it SHALL have a contentType Elements defined in Ancestors: id, <a href="types.html#Element" title="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.">extension #xD; contentType ΣC 0..1 code Mime type of the content, with charset etc. Binding: Mime Types (Required) #xD; language Σ 0..1 code Human language of the content (BCP-47) Binding: All Languages (Required) Additional Bindings Purpose Common Languages Starter #xD; data C 0..1 base64Binary Data inline, base64ed #xD; url Σ 0..1 url Uri where the data can be found #xD; size Σ 0..1 integer64 Number of bytes of content (if url provided) #xD; hash Σ 0..1 base64Binary Hash of the data (sha-1, base64ed) #xD; title ΣT 0..1 string Label to display in place of the data #xD; creation Σ 0..1 dateTime Date attachment was first created #xD; height 0..1 positiveInt Height of the image in pixels (photo/video) #xD; width 0..1 positiveInt Width of the image in pixels (photo/video) #xD; frames 0..1 positiveInt Number of frames if > 1 (photo) #xD; duration 0..1 decimal Length in seconds (audio / video) #xD; pages 0..1 positiveInt Number of printed pages #xD; <img src="[binary]" alt="doco" style="background-color: inherit"/> Documentation for this format
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status
    l: structuredefinition-standards-status
  value: Code
    v: normative
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics
    l: structuredefinition-type-characteristics
  value: Code
    v: do-translations
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-wg
    l: structuredefinition-wg
  value: Code
    v: fhir
url:
  v: http://hl7.org/fhir/StructureDefinition/Attachment
  l: Attachment
version:
  v: 6.0.0-ballot4
name:
  v: Attachment
status:
  v: active
experimental:
  v: false
date:
  v: 2026-06-25T21:05:08+00:00
publisher:
  v: HL7 International / FHIR Infrastructure
contact:
  telecom:
    system:
      v: url
    value:
      v: http://hl7.org/fhir
contact:
  telecom:
    system:
      v: url
    value:
      v: http://www.hl7.org/Special/committees/fiwg
description:
  v: Attachment Type: For referring to data content defined in other formats.
jurisdiction:
  coding:
    system:
      v: http://unstats.un.org/unsd/methods/m49/m49.htm
      l: m49.htm
    code:
      v: 001
    display:
      v: World
purpose:
  v: 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.
fhir version:
  v: 6.0.0-ballot4
mapping:
  identity:
    v: v2
  uri:
    v: http://hl7.org/v2
    l: v2
  name:
    v: HL7 V2 Mapping
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
    l: v3
  name:
    v: RIM Mapping
kind:
  v: complex-type
abstract:
  v: false
type:
  v: Attachment
  l: Attachment
base definition:
  v: http://hl7.org/fhir/StructureDefinition/DataType
  l: DataType
derivation:
  v: specialization
snapshot:
  element:
    id:
      v: Attachment
    path:
      v: Attachment
    short:
      v: Content in a format defined elsewhere
    definition:
      v: For referring to data content defined in other formats.
    comment:
      v: When providing a summary view (for example with Observation.value[x]) Attachment should be represented with a brief display text such as "Signed Procedure Consent".
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Attachment
      min:
        v: 0
      max:
        v: *
    constraint:
      key:
        v: att-1
      severity:
        v: error
      human:
        v: If the Attachment has data, it SHALL have a contentType
      expression:
        v: data.empty() or contentType.exists()
      source:
        v: http://hl7.org/fhir/StructureDefinition/Attachment
        l: Attachment
    constraint:
      key:
        v: ele-1
      severity:
        v: error
      human:
        v: All FHIR elements must have a @value or children
      expression:
        v: hasValue() or (children().count() > id.count())
      source:
        v: http://hl7.org/fhir/StructureDefinition/Element
        l: Element
    is modifier:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a,ED
    mapping:
      identity:
        v: v2
      map:
        v: ED/RP
  element:
    id:
      v: Attachment.id
    path:
      v: Attachment.id
    representation:
      v: xmlAttr
    short:
      v: Unique id for inter-element referencing
    definition:
      v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: Element.id
      min:
        v: 0
      max:
        v: 1
    type:
      extension:
        value: Url
      code:
        v: http://hl7.org/fhirpath/System.String
        l: System.String
    condition:
      v: ele-1
    is modifier:
      v: false
    is summary:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a
  element:
    id:
      v: Attachment.extension
    path:
      v: Attachment.extension
    slicing:
      description:
        v: Extensions are always sliced by (at least) url

Url
v: string
l: string

v: value

v: url

v: open

v: Additional content defined by implementations

v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

v: 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.

v: extensions

v: user content

v: 0

v: *

path:
  v: Element.extension
min:
  v: 0
max:
  v: *

code:
  v: Extension
  l: Extension

key:
  v: ele-1
severity:
  v: error
human:
  v: All FHIR elements must have a @value or children
expression:
  v: hasValue() or (children().count() > id.count())
source:
  v: http://hl7.org/fhir/StructureDefinition/Element
  l: Element

v: false

v: false

identity:
  v: rim
map:
  v: n/a

id:
  v: Attachment.contentType
path:
  v: Attachment.contentType
short:
  v: Mime type of the content, with charset etc.
definition:
  v: 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:
  v: Processors of the data need to be able to know how to interpret the data.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.contentType
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
example:
  label:
    v: General
  value: Code
    v: text/plain; charset=UTF-8, image/png
condition:
  v: att-1
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/binding-definition
      l: binding-definition
    value: Markdown
      v: The mime type of an attachment. Any valid mime type is allowed.
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: MimeType
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding
      l: elementdefinition-isCommonBinding
    value: Boolean
      v: true
  strength:
    v: required
  description:
    v: BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)
  value set:
    v: http://hl7.org/fhir/ValueSet/mimetypes|6.0.0-ballot4
    l: http://hl7.org/fhir/ValueSet/mimetypes
mapping:
  identity:
    v: v2
  map:
    v: ED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used
mapping:
  identity:
    v: rim
  map:
    v: ./mediaType, ./charset

id:
  v: Attachment.language
path:
  v: Attachment.language
short:
  v: Human language of the content (BCP-47)
definition:
  v: The human language of the content. The value can be any valid value according to BCP 47.
requirements:
  v: Users need to be able to choose between the languages in a set of attachments.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.language
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
example:
  label:
    v: General
  value: Code
    v: en-AU
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/binding-definition
      l: binding-definition
    value: Markdown
      v: IETF language tag for a human language.
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: Language
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding
      l: elementdefinition-isCommonBinding
    value: Boolean
      v: true
  strength:
    v: required
  description:
    v: IETF language tag for a human language.
  value set:
    v: http://hl7.org/fhir/ValueSet/all-languages|6.0.0-ballot4
    l: http://hl7.org/fhir/ValueSet/all-languages
  additional:
    purpose:
      v: starter
    value set:
      v: http://hl7.org/fhir/ValueSet/languages
      l: languages
mapping:
  identity:
    v: rim
  map:
    v: ./language

id:
  v: Attachment.data
path:
  v: Attachment.data
short:
  v: Data inline, base64ed
definition:
  v: The actual data of the attachment - a sequence of bytes, base64 encoded.
comment:
  v: The base64-encoded data SHALL be expressed in the same character set as the base resource XML or JSON.
requirements:
  v: The data needs to able to be transmitted inline.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.data
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: base64Binary
    l: base64Binary
condition:
  v: att-1
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: v2
  map:
    v: ED.5
mapping:
  identity:
    v: rim
  map:
    v: ./data

id:
  v: Attachment.url
path:
  v: Attachment.url
short:
  v: Uri where the data can be found
definition:
  v: A location where the data can be accessed.
comment:
  v: 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. Urls may also be URIs only resolvable within a Bundle containing the resource with the attachment type. If a URL is provided, it SHALL resolve to actual data.
requirements:
  v: The data needs to be transmitted by reference.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.url
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: url
    l: url
example:
  label:
    v: General
  value: Url
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: RP.1+RP.2 - if they refer to a URL (see v2.6)
mapping:
  identity:
    v: rim
  map:
    v: ./reference/literal

id:
  v: Attachment.size
path:
  v: Attachment.size
short:
  v: Number of bytes of content (if url provided)
definition:
  v: The number of bytes of data that make up this attachment (before base64 encoding, if that is done).
comment:
  v: 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:
  v: Representing the size allows applications to determine whether they should fetch the content automatically in advance, or refuse to fetch it at all.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.size
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: integer64
    l: integer64
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A (needs data type R3 proposal)

id:
  v: Attachment.hash
path:
  v: Attachment.hash
short:
  v: Hash of the data (sha-1, base64ed)
definition:
  v: The calculated hash of the data using SHA-1. Represented using base64.
comment:
  v: The hash is calculated on the data prior to base64 encoding, if the data is based64 encoded. The hash is not intended to support digital signatures. Where protection against malicious threats a digital signature should be considered, see [Provenance.signature](provenance-definitions.html#Provenance.signature) for mechanism to protect a resource with a digital signature.
requirements:
  v: Included so that applications can verify that the contents of a location have not changed due to technical failures (e.g., storage rot, transport glitch, incorrect version).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.hash
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: base64Binary
    l: base64Binary
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: .integrityCheck[parent::ED/integrityCheckAlgorithm="SHA-1"]

id:
  v: Attachment.title
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable
    l: elementdefinition-translatable
  value: Boolean
    v: true
path:
  v: Attachment.title
short:
  v: Label to display in place of the data
definition:
  v: A label or set of text to display in place of the data.
comment:
  v: May sometimes be derived from the source filename.
requirements:
  v: 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:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.title
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
example:
  label:
    v: General
  value: String
    v: Official Corporate Logo
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: ./title/data

id:
  v: Attachment.creation
path:
  v: Attachment.creation
short:
  v: Date attachment was first created
definition:
  v: The date that the attachment was first created.
requirements:
  v: This is often tracked as an integrity issue for use of the attachment.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.creation
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: dateTime
    l: dateTime
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A (needs data type R3 proposal)

id:
  v: Attachment.height
path:
  v: Attachment.height
short:
  v: Height of the image in pixels (photo/video)
definition:
  v: Height of the image in pixels (photo/video).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.height
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: positiveInt
    l: positiveInt
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value

id:
  v: Attachment.width
path:
  v: Attachment.width
short:
  v: Width of the image in pixels (photo/video)
definition:
  v: Width of the image in pixels (photo/video).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.width
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: positiveInt
    l: positiveInt
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value

id:
  v: Attachment.frames
path:
  v: Attachment.frames
short:
  v: Number of frames if > 1 (photo)
definition:
  v: The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.
comment:
  v: if the number of frames is not supplied, the value may be unknown. Applications should not assume that there is only one frame unless it is explicitly stated.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.frames
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: positiveInt
    l: positiveInt
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value

id:
  v: Attachment.duration
path:
  v: Attachment.duration
short:
  v: Length in seconds (audio / video)
definition:
  v: The duration of the recording in seconds - for audio and video.
comment:
  v: The duration might differ from occurrencePeriod if recording was paused.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.duration
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: decimal
    l: decimal
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value

id:
  v: Attachment.pages
path:
  v: Attachment.pages
short:
  v: Number of printed pages
definition:
  v: The number of pages when printed.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Attachment.pages
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: positiveInt
    l: positiveInt
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false

element:
  id:
    v: Attachment
  path:
    v: Attachment
  short:
    v: Content in a format defined elsewhere
  definition:
    v: For referring to data content defined in other formats.
  comment:
    v: When providing a summary view (for example with Observation.value[x]) Attachment should be represented with a brief display text such as "Signed Procedure Consent".
  min:
    v: 0
  max:
    v: *
  constraint:
    key:
      v: att-1
    severity:
      v: error
    human:
      v: If the Attachment has data, it SHALL have a contentType
    expression:
      v: data.empty() or contentType.exists()
    source:
      v: http://hl7.org/fhir/StructureDefinition/Attachment
      l: Attachment
  mapping:
    identity:
      v: v2
    map:
      v: ED/RP
  mapping:
    identity:
      v: rim
    map:
      v: ED
element:
  id:
    v: Attachment.contentType
  path:
    v: Attachment.contentType
  short:
    v: Mime type of the content, with charset etc.
  definition:
    v: 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:
    v: Processors of the data need to be able to know how to interpret the data.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: code
      l: code
  example:
    label:
      v: General
    value: Code
      v: text/plain; charset=UTF-8, image/png
  condition:
    v: att-1
  is summary:
    v: true
  binding:
    extension:
      url:
        v: http://hl7.org/fhir/tools/StructureDefinition/binding-definition
        l: binding-definition
      value: Markdown
        v: The mime type of an attachment. Any valid mime type is allowed.
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
        l: elementdefinition-bindingName
      value: String
        v: MimeType
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding
        l: elementdefinition-isCommonBinding
      value: Boolean
        v: true
    strength:
      v: required
    description:
      v: BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)
    value set:
      v: http://hl7.org/fhir/ValueSet/mimetypes|6.0.0-ballot4
      l: http://hl7.org/fhir/ValueSet/mimetypes
  mapping:
    identity:
      v: v2
    map:
      v: ED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used
  mapping:
    identity:
      v: rim
    map:
      v: ./mediaType, ./charset
element:
  id:
    v: Attachment.language
  path:
    v: Attachment.language
  short:
    v: Human language of the content (BCP-47)
  definition:
    v: The human language of the content. The value can be any valid value according to BCP 47.
  requirements:
    v: Users need to be able to choose between the languages in a set of attachments.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: code
      l: code
  example:
    label:
      v: General
    value: Code
      v: en-AU
  is summary:
    v: true
  binding:
    extension:
      url:
        v: http://hl7.org/fhir/tools/StructureDefinition/binding-definition
        l: binding-definition
      value: Markdown
        v: IETF language tag for a human language.
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
        l: elementdefinition-bindingName
      value: String
        v: Language
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding
        l: elementdefinition-isCommonBinding
      value: Boolean
        v: true
    strength:
      v: required
    description:
      v: IETF language tag for a human language.
    value set:
      v: http://hl7.org/fhir/ValueSet/all-languages|6.0.0-ballot4
      l: http://hl7.org/fhir/ValueSet/all-languages
    additional:
      purpose:
        v: starter
      value set:
        v: http://hl7.org/fhir/ValueSet/languages
        l: languages
  mapping:
    identity:
      v: rim
    map:
      v: ./language
element:
  id:
    v: Attachment.data
  path:
    v: Attachment.data
  short:
    v: Data inline, base64ed
  definition:
    v: The actual data of the attachment - a sequence of bytes, base64 encoded.
  comment:
    v: The base64-encoded data SHALL be expressed in the same character set as the base resource XML or JSON.
  requirements:
    v: The data needs to able to be transmitted inline.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: base64Binary
      l: base64Binary
  condition:
    v: att-1
  mapping:
    identity:
      v: v2
    map:
      v: ED.5
  mapping:
    identity:
      v: rim
    map:
      v: ./data
element:
  id:
    v: Attachment.url
  path:
    v: Attachment.url

v: Uri where the data can be found

v: A location where the data can be accessed.

v: 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. Urls may also be URIs only resolvable within a Bundle containing the resource with the attachment type. If a URL is provided, it SHALL resolve to actual data.

v: The data needs to be transmitted by reference.

v: 0

v: 1

code:
  v: url
  l: url

label:
  v: General
value: Url

v: true

identity:
  v: v2
map:
  v: RP.1+RP.2 - if they refer to a URL (see v2.6)

identity:
  v: rim
map:
  v: ./reference/literal

id:
  v: Attachment.size
path:
  v: Attachment.size
short:
  v: Number of bytes of content (if url provided)
definition:
  v: The number of bytes of data that make up this attachment (before base64 encoding, if that is done).
comment:
  v: 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:
  v: Representing the size allows applications to determine whether they should fetch the content automatically in advance, or refuse to fetch it at all.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: integer64
    l: integer64
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A (needs data type R3 proposal)

id:
  v: Attachment.hash
path:
  v: Attachment.hash
short:
  v: Hash of the data (sha-1, base64ed)
definition:
  v: The calculated hash of the data using SHA-1. Represented using base64.
comment:
  v: The hash is calculated on the data prior to base64 encoding, if the data is based64 encoded. The hash is not intended to support digital signatures. Where protection against malicious threats a digital signature should be considered, see [Provenance.signature](provenance-definitions.html#Provenance.signature) for mechanism to protect a resource with a digital signature.
requirements:
  v: Included so that applications can verify that the contents of a location have not changed due to technical failures (e.g., storage rot, transport glitch, incorrect version).
min:
  v: 0
max:
  v: 1
type:
  code:
    v: base64Binary
    l: base64Binary
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: .integrityCheck[parent::ED/integrityCheckAlgorithm="SHA-1"]

id:
  v: Attachment.title
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable
    l: elementdefinition-translatable
  value: Boolean
    v: true
path:
  v: Attachment.title
short:
  v: Label to display in place of the data
definition:
  v: A label or set of text to display in place of the data.
comment:
  v: May sometimes be derived from the source filename.
requirements:
  v: 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:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string
example:
  label:
    v: General
  value: String
    v: Official Corporate Logo
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: ./title/data

id:
  v: Attachment.creation
path:
  v: Attachment.creation
short:
  v: Date attachment was first created
definition:
  v: The date that the attachment was first created.
requirements:
  v: This is often tracked as an integrity issue for use of the attachment.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: dateTime
    l: dateTime
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A (needs data type R3 proposal)

id:
  v: Attachment.height
path:
  v: Attachment.height
short:
  v: Height of the image in pixels (photo/video)
definition:
  v: Height of the image in pixels (photo/video).
min:
  v: 0
max:
  v: 1
type:
  code:
    v: positiveInt
    l: positiveInt
mapping:
  identity:
    v: rim
  map:
    v: .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value

id:
  v: Attachment.width
path:
  v: Attachment.width
short:
  v: Width of the image in pixels (photo/video)
definition:
  v: Width of the image in pixels (photo/video).
min:
  v: 0
max:
  v: 1
type:
  code:
    v: positiveInt
    l: positiveInt
mapping:
  identity:
    v: rim
  map:
    v: .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value

id:
  v: Attachment.frames
path:
  v: Attachment.frames
short:
  v: Number of frames if > 1 (photo)
definition:
  v: The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.
comment:
  v: if the number of frames is not supplied, the value may be unknown. Applications should not assume that there is only one frame unless it is explicitly stated.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: positiveInt
    l: positiveInt
mapping:
  identity:
    v: rim
  map:
    v: .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value

id:
  v: Attachment.duration
path:
  v: Attachment.duration
short:
  v: Length in seconds (audio / video)
definition:
  v: The duration of the recording in seconds - for audio and video.
comment:
  v: The duration might differ from occurrencePeriod if recording was paused.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: decimal
    l: decimal
mapping:
  identity:
    v: rim
  map:
    v: .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value

id:
  v: Attachment.pages
path:
  v: Attachment.pages
short:
  v: Number of printed pages
definition:
  v: The number of pages when printed.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: positiveInt
    l: positiveInt