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 . Page versions: R5 R4B R4 R3 R2

ul class="nav nav-tabs">
  • Data Types
  • Examples
  • Detailed Descriptions
  • Mappings
  • 1.21.2 Data Type Detailed Descriptions

    This page provides the detailed descriptions for the data types

    ElementIdentifierHumanNameAddressContactPointTimingQuantityAttachmentRangePeriodRatioCodeableConceptCodingSampledDataAgeDistanceDurationCountMoney

    1.21.2.1 Primitive Types

    See also Base Definition, Examples and Mappings.

    todo

    1.21.2.2 Attachment

    See also Base Definition, Examples and Mappings.

    Attachment
    Definition

    For referring to data content defined in other formats.

    Control1..1
    Requirements

    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.

    InvariantsDefined on this element
    att-1: It the Attachment has data, it SHALL have a contentType (xpath: not(exists(f:data)) or exists(f:contentType))
    Attachment.contentType
    Definition

    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.

    Control0..1
    BindingMimeType: Required: BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) (The mime type of an attachment)
    Typecode
    Requirements

    Processors of the data need to be able to know how to interpret the data.

    Attachment.language
    Definition

    The human language of the content. The value can be any valid value according to BCP 47.

    Control0..1
    BindingLanguage: Required: IETF language tag (A human language)
    Typecode
    Requirements

    Users need to be able to choose between the languages in a set of attachments.

    Attachment.data
    Definition

    The actual data of the attachment - a sequence of bytes. In XML, represented using base64.

    Control0..1
    Typebase64Binary
    Requirements

    The data needs to able to be transmitted inline.

    Comments

    The base64-encoded data SHALL be expressed in the same character set as the base resource XML or JSON.

    Attachment.url
    Definition

    An alternative location where the data can be accessed.

    Control0..1
    Typeuri
    Requirements

    The data needs to be transmitted by reference.

    Comments

    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.

    Attachment.size
    Definition

    The number of bytes of data that make up this attachment.

    Control0..1
    Typeinteger
    Requirements

    Representing the size allows applications to determine whether they should fetch the content automatically in advance, or refuse to fetch it at all.

    Comments

    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.

    Attachment.hash
    Definition

    The calculated hash of the data using SHA-1. Represented using base64.

    Control0..1
    Typebase64Binary
    Requirements

    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.

    Attachment.title
    Definition

    A label or set of text to display in place of the data.

    Control0..1
    Typestring
    Requirements

    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.

    1.21.2.3 Identifier

    See also Base Definition, Examples and Mappings.

    Identifier
    Definition

    A technical identifier - identifies some entity uniquely and unambiguously.

    Control1..1
    Requirements

    Need to be able to identify things with confidence and be sure that the identification is not subject to misinterpretation.

    Identifier.use
    Definition

    The purpose of this identifier.

    Control0..1
    BindingIdentifierUse: Required: http://hl7.org/fhir/identifier-use (Identifies the purpose for this identifier, if known)
    Typecode
    Is Modifiertrue
    Requirements

    Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

    Comments

    This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

    Identifier.label
    Definition

    A text string for the identifier that can be displayed to a human so they can recognize the identifier.

    Control0..1
    Typestring
    Requirements

    Allows humans to make use of identifiers when the identifier system is not known.

    Identifier.system
    Definition

    Establishes the namespace in which set of possible id values is unique.

    Control0..1
    Typeuri
    Requirements

    There are many sequences of identifiers. To perform matching, we need to know what sequence we're dealing with. The system identifies a particular sequence or set of unique identifiers.

    Identifier.value
    Definition

    The portion of the identifier typically displayed to the user and which is unique within the context of the system.

    Control0..1
    Typestring
    Comments

    If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986.

    Identifier.period
    Definition

    Time period during which identifier is/was valid for use.

    Control0..1
    TypePeriod
    Identifier.assigner
    Definition

    Organization that issued/manages the identifier.

    Control0..1
    TypeReference(Organization)
    Comments

    The reference may be just a text description of the assigner.

    1.21.2.4 Coding

    See also Base Definition, Examples and Mappings.

    Coding
    Definition

    A reference to a code defined by a terminology system.

    Control1..1
    Requirements

    References to codes are very common in healthcare models.

    Comments

    Codes may be defined very casually in enumerations or code lists, up to very formal definitions such as SNOMED CT - see the V3 Core Principles for more information.

    InvariantsDefined on this element
    cod-1: If a valueSet is provided, a system URI Is required (xpath: not (exists(f:valueSet) and exists(f:code)) or exists(f:system))
    Coding.system
    Definition

    The identification of the code system that defines the meaning of the symbol in the code.

    Control0..1
    Typeuri
    Requirements

    Need to be unambiguous about the source of the definition of the symbol.

    Comments

    The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should de-reference to some definition that establish the system clearly and unambiguously.

    Coding.version
    Definition

    The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.

    Control0..1
    Typestring
    Comments

    Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

    Coding.code
    Definition

    A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).

    Control0..1
    Typecode
    Requirements

    Need to refer to a particular code in the system.

    Coding.display
    Definition

    A representation of the meaning of the code in the system, following the rules of the system.

    Control0..1
    Typestring
    Requirements

    Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

    Coding.primary
    Definition

    Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays).

    Control0..1
    Typeboolean
    Requirements

    This has been identified as a clinical safety criterium - that this exact code was chosen explicitly, rather than inferred by the system based on some rules or language processing.

    Comments

    Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations.

    Coding.valueSet
    Definition

    The set of possible coded values this coding was chosen from or constrained by.

    Control0..1
    TypeReference(ValueSet)
    Requirements

    The value set may influence the codes that the user can select. Also, referencing the value set directly makes it easier to share ad-hoc code systems used across healthcare.

    1.21.2.5 CodeableConcept

    See also Base Definition, Examples and Mappings.

    CodeableConcept
    Definition

    A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

    Control1..1
    Requirements

    This is a common pattern in healthcare - a concept that may be defined by one or more codes from formal definitions including LOINC and SNOMED CT, and/or defined by the provision of text that captures a human sense of the concept.

    Comments

    Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

    InvariantsDefined on this element
    ccc-2: Only one coding in a set can be chosen directly by the user (xpath: count(f:coding[f:primary/@value='true'])<=1)
    CodeableConcept.coding
    Definition

    A reference to a code defined by a terminology system.

    Control0..*
    TypeCoding
    Requirements

    Allows for translations and alternate encodings within a code system. Also supports communication of the same instance to systems requiring different encodings.

    Comments

    Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the V3 Core Principles for more information. Ordering of codings is undefined and SHALL not be used to infer meaning.

    CodeableConcept.text
    Definition

    A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.

    Control0..1
    Typestring
    Requirements

    The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

    Comments

    Very often the text is the same as a displayName of one of the codings.

    1.21.2.6 Quantity

    See also Base Definition, Examples and Mappings.

    Quantity
    Definition

    A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.

    Control1..1
    Requirements

    Need to able to capture all sorts of measured values, even if the measured value are not precisely quantified. Values include exact measures such as 3.51g, customary units such as 3 tablets, and currencies such as $100.32USD.

    Comments

    The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

    InvariantsDefined on this element
    qty-3: If a code for the units is present, the system SHALL also be present (xpath: not(exists(f:code)) or exists(f:system))
    Quantity.value
    Definition

    The value of the measured amount. The value includes an implicit precision in the presentation of the value.

    Control0..1
    Typedecimal
    Requirements

    Precision is handled implicitly in almost all cases of measurement.

    Comments

    The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).

    Quantity.comparator
    Definition

    How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues. E.g. if the comparator is "<" , then the real value is < stated value.

    Control0..1
    BindingQuantityComparator: Required: http://hl7.org/fhir/quantity-comparator (How the Quantity should be understood and represented)
    Typecode
    Is Modifiertrue
    Meaning if MissingIf there is no comparator, then there is no modification of the value
    Requirements

    Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

    Comments

    This is labeled as "Is Modifier" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value.

    Quantity.units
    Definition

    A human-readable form of the units.

    Control0..1
    Typestring
    Requirements

    There are many representations for units and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

    Quantity.system
    Definition

    The identification of the system that provides the coded form of the unit.

    Control0..1
    Typeuri
    Requirements

    Need to know the system that defines the coded form of the unit.

    InvariantsAffect this element
    qty-3: If a code for the units is present, the system SHALL also be present (xpath: not(exists(f:code)) or exists(f:system))
    Quantity.code
    Definition

    A computer processable form of the units in some unit representation system.

    Control0..1
    Typecode
    Requirements

    Need a computable form of the units that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.

    Comments

    The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency.

    The context of use may additionally require a code from a particular system.

    1.21.2.7 Range

    See also Base Definition, Examples and Mappings.

    Range
    Definition

    A set of ordered Quantities defined by a low and high limit.

    Control1..1
    Requirements

    Need to be able to specify ranges of values.

    Comments

    The stated low and high value are assumed to have arbitrarily high precision when it comes to determining which values are in the range. I.e. 1.99 is not in the range 2 -> 3.

    InvariantsDefined on this element
    rng-2: If present, low SHALL have a lower value than high (xpath: not(exists(f:low/f:value/@value)) or not(exists(f:high/f:value/@value)) or (number(f:low/f:value/@value) <= number(f:high/f:value/@value)))
    rng-3: Quantity values cannot have a comparator when used in a Range (xpath: not(exists(f:low/f:comparator) or exists(f:high/f:comparator)))
    Range.low
    Definition

    The low limit. The boundary is inclusive.

    Control0..1
    TypeQuantity
    Comments

    If the low element is missing, the low boundary is not known.

    InvariantsAffect this element
    rng-2: If present, low SHALL have a lower value than high (xpath: not(exists(f:low/f:value/@value)) or not(exists(f:high/f:value/@value)) or (number(f:low/f:value/@value) <= number(f:high/f:value/@value)))
    rng-3: Quantity values cannot have a comparator when used in a Range (xpath: not(exists(f:low/f:comparator) or exists(f:high/f:comparator)))
    Range.high
    Definition

    The high limit. The boundary is inclusive.

    Control0..1
    TypeQuantity
    Comments

    If the high element is missing, the high boundary is not known.

    InvariantsAffect this element
    rng-2: If present, low SHALL have a lower value than high (xpath: not(exists(f:low/f:value/@value)) or not(exists(f:high/f:value/@value)) or (number(f:low/f:value/@value) <= number(f:high/f:value/@value)))
    rng-3: Quantity values cannot have a comparator when used in a Range (xpath: not(exists(f:low/f:comparator) or exists(f:high/f:comparator)))

    1.21.2.8 Ratio

    See also Base Definition, Examples and Mappings.

    Ratio
    Definition

    A relationship of two Quantity values - expressed as a numerator and a denominator.

    Control1..1
    Requirements

    Need to able to capture ratios for some measurements (titers) and some rates (costs).

    InvariantsDefined on this element
    rat-1: numerator and denominator SHALL both be present, or both be absent (xpath: count(f:numerator) = count(f:denominator))
    Ratio.numerator
    Definition

    The value of the numerator.

    Control0..1
    TypeQuantity
    Ratio.denominator
    Definition

    The value of the denominator.

    Control0..1
    TypeQuantity

    1.21.2.9 Period

    See also Base Definition, Examples and Mappings.

    Period
    Definition

    A time period defined by a start and end date and optionally time.

    Control1..1
    Comments

    This is not a duration - that's a measure of time (a separate type), but a duration that occurs at a fixed value of time. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). If a duration might be required, specify the type as Interval|Duration.

    InvariantsDefined on this element
    per-1: If present, start SHALL have a lower value than end (xpath: not(exists(f:start)) or not(exists(f:end)) or (f:start/@value <= f:end/@value))
    Period.start
    Definition

    The start of the period. The boundary is inclusive.

    Control0..1
    TypedateTime
    Comments

    If the low element is missing, the meaning is that the low boundary is not known.

    InvariantsAffect this element
    per-1: If present, start SHALL have a lower value than end (xpath: not(exists(f:start)) or not(exists(f:end)) or (f:start/@value <= f:end/@value))
    Period.end
    Definition

    The end of the period. If the end of the period is missing, it means that the period is ongoing.

    Control0..1
    TypedateTime
    Meaning if MissingIf the end of the period is missing, it means that the period is ongoing
    Comments

    The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has a end value of 2012-02-03.

    InvariantsAffect this element
    per-1: If present, start SHALL have a lower value than end (xpath: not(exists(f:start)) or not(exists(f:end)) or (f:start/@value <= f:end/@value))

    1.21.2.10 SampledData

    See also Base Definition, Examples and Mappings.

    SampledData
    Definition

    A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.

    Control1..1
    Requirements

    There is a need for a concise way to handle the data produced by devices that sample a physical state at a high frequency.

    Comments

    The data is not interpretable without at least origin, period, and dimensions, but these are optional to allow a separation between the template of measurement and the actual measurement, such as between DeviceCapabilities and DeviceLog.

    SampledData.origin
    Definition

    The base quantity that a measured value of zero represents. In addition, this provides the units of the entire measurement series.

    Control1..1
    TypeQuantity
    SampledData.period
    Definition

    The length of time between sampling times, measured in milliseconds.

    Control1..1
    Typedecimal
    Comments

    This is usually a whole number.

    SampledData.factor
    Definition

    A correction factor that is applied to the sampled data points before they are added to the origin.

    Control0..1
    Typedecimal
    Default Value1
    SampledData.lowerLimit
    Definition

    The lower limit of detection of the measured points. This is needed if any of the data points have the value "L" (lower than detection limit).

    Control0..1
    Typedecimal
    SampledData.upperLimit
    Definition

    The upper limit of detection of the measured points. This is needed if any of the data points have the value "U" (higher than detection limit).

    Control0..1
    Typedecimal
    SampledData.dimensions
    Definition

    The number of sample points at each time point. If this value is greater than one, then the dimensions will be interlaced - all the sample points for a point in time will be recorded at once.

    Control1..1
    Typeinteger
    Comments

    If there is more than one dimension, the code for the type of data will define the meaning of the dimensions (typically ECG data).

    SampledData.data
    Definition

    A series of data points which are decimal values separated by a single space (character u20). The special values "E" (error), "L" (below detection limit) and "U" (above detection limit) can also be used in place of a decimal value.

    Control1..1
    Typestring

    1.21.2.11 HumanName

    See also Base Definition, Examples and Mappings.

    HumanName
    Definition

    A human's name with the ability to identify parts and usage.

    Control1..1
    Requirements

    Need to be able to record names, along with notes about their use.

    Comments

    Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts may or may not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely.

    HumanName.use
    Definition

    Identifies the purpose for this name.

    Control0..1
    BindingNameUse: Required: http://hl7.org/fhir/name-use (The use of a human name)
    Typecode
    Is Modifiertrue
    Requirements

    Allows the appropriate name for a particular context of use to be selected from among a set of names.

    Comments

    This is labeled as "Is Modifier" because applications should not mistake a temporary or old name etc for a current/permanent one. Applications can assume that a name is current unless it explicitly says that it is temporary or old.

    HumanName.text
    Definition

    A full text representation of the name.

    Control0..1
    Typestring
    Requirements

    A renderable, unencoded form.

    Comments

    Can provide both a text representation and structured parts.

    HumanName.family
    Definition

    The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.

    Control0..*
    Typestring
    Alternate Namessurname
    Comments

    For family name, hyphenated names such as "Smith-Jones" are a single name, but names with spaces such as "Smith Jones" are broken into multiple parts.

    HumanName.given
    Definition

    Given name.

    Control0..*
    Typestring
    Alternate Namesfirst name; middle name
    Comments

    If only initials are recorded, they may be used in place of the full name. Not called "first name" since given names do not always come first.

    HumanName.prefix
    Definition

    Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.

    Control0..*
    Typestring
    HumanName.suffix
    Definition

    Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.

    Control0..*
    Typestring
    HumanName.period
    Definition

    Indicates the period of time when this name was valid for the named person.

    Control0..1
    TypePeriod
    Requirements

    Allows names to be placed in historical context.

    1.21.2.12 Address

    See also Base Definition, Examples and Mappings.

    Address
    Definition

    There is a variety of postal address formats defined around the world. This format defines a superset that is the basis for all addresses around the world.

    Control1..1
    Requirements

    Need to be able to record postal addresses, along with notes about their use.

    Comments

    Note: address is for postal addresses, not physical locations.

    Address.use
    Definition

    The purpose of this address.

    Control0..1
    BindingAddressUse: Required: http://hl7.org/fhir/address-use (The use of an address)
    Typecode
    Is Modifiertrue
    Requirements

    Allows an appropriate address to be chosen from a list of many.

    Comments

    This is labeled as "Is Modifier" because applications should not mistake a temporary or old address etc for a current/permanent one. Applications can assume that an address is current unless it explicitly says that it is temporary or old.

    Address.text
    Definition

    A full text representation of the address.

    Control0..1
    Typestring
    Requirements

    A renderable, unencoded form.

    Comments

    Can provide both a text representation and parts.

    Address.line
    Definition

    This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.

    Control0..*
    Typestring
    Requirements

    home | work | temp | old - purpose of this address.

    Address.city
    Definition

    The name of the city, town, village or other community or delivery center.

    Control0..1
    Typestring
    Alternate NamesMuncipality
    Address.state
    Definition

    Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).

    Control0..1
    Typestring
    Alternate NamesProvince; Territory
    Address.postalCode
    Definition

    A postal code designating a region defined by the postal service.

    Control0..1
    Typestring
    Alternate NamesZip
    Address.country
    Definition

    Country - a nation as commonly understood or generally accepted.

    Control0..1
    Typestring
    Comments

    ISO 3166 3 letter codes can be used in place of a full country name.

    Address.period
    Definition

    Time period when address was/is in use.

    Control0..1
    TypePeriod
    Requirements

    Allows addresses to be placed in historical context.

    1.21.2.13 ContactPoint

    See also Base Definition, Examples and Mappings.

    ContactPoint
    Definition

    Details for All kinds of technology mediated contact points for a person or organization, including telephone, email, etc.

    Control1..1
    Requirements

    Need to track phone, fax, mobile, sms numbers, email addresses, twitter tags, etc.

    InvariantsDefined on this element
    cpt-2: A system is required if a value is provided. (xpath: not(exists(f:value)) or exists(f:system))
    ContactPoint.system
    Definition

    Telecommunications form for contact point - what communications system is required to make use of the contact.

    Control0..1
    BindingContactPointSystem: Required: http://hl7.org/fhir/contact-point-system (Telecommunications form for contact point)
    Typecode
    InvariantsAffect this element
    cpt-2: A system is required if a value is provided. (xpath: not(exists(f:value)) or exists(f:system))
    ContactPoint.value
    Definition

    The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).

    Control0..1
    Typestring
    Requirements

    Need to support legacy numbers that are not in a tightly controlled format.

    Comments

    Additional out of band data such as extensions, or notes about use of the contact are sometimes included in the value.

    ContactPoint.use
    Definition

    Identifies the purpose for the contact point.

    Control0..1
    BindingContactPointUse: Required: http://hl7.org/fhir/contact-point-use (Use of contact point)
    Typecode
    Is Modifiertrue
    Requirements

    Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose.

    Comments

    This is labeled as "Is Modifier" because applications should not mistake a temporary or old contact etc for a current/permanent one. Applications can assume that a contact is current unless it explicitly says that it is temporary or old.

    ContactPoint.period
    Definition

    Time period when the contact point was/is in use.

    Control0..1
    TypePeriod

    1.21.2.14 Timing

    See also Base Definition, Examples and Mappings.

    Timing
    Definition

    Specifies an event that may occur multiple times. Timing schedules are used for to record when things are expected or requested to occur.

    Control1..1
    Requirements

    Need to able to track proposed timing schedules. There are several different ways to do this: one or more specified times, a simple rules like three times a day, or before/after meals.

    Comments

    A timing schedule can be either a list of events - intervals on which the event occurs, or a single event with repeating criteria or just repeating criteria with no actual event.

    InvariantsDefined on this element
    tim-1: There can only be a repeat element if there is none or one event (xpath: not(exists(f:repeat)) or count(f:event) < 2)
    Timing.event
    Definition

    Identifies specific time periods when the event should occur.

    Control0..*
    TypePeriod
    Requirements

    Some schedules are just explicit lists of times.

    Timing.repeat
    Definition

    Identifies a repeating pattern to the intended time periods.

    Control0..1
    Requirements

    Many timing schedules are determined by regular repetitions.

    Comments

    If present, the Timing.event indicates the time of the first occurrence.

    InvariantsDefined on this element
    tim-2: Either frequency or when SHALL be present, but not both (xpath: exists(f:frequency) != exists(f:when))
    tim-3: At most, only one of count or end can be present (xpath: not(exists(f:count) and exists(f:end)))
    Affect this element
    tim-1: There can only be a repeat element if there is none or one event (xpath: not(exists(f:repeat)) or count(f:event) < 2)
    Timing.repeat.frequency
    Definition

    Indicates how often the event should occur.

    Control0..1
    Typeinteger
    InvariantsAffect this element
    tim-2: Either frequency or when SHALL be present, but not both (xpath: exists(f:frequency) != exists(f:when))
    Timing.repeat.when
    Definition

    Identifies the occurrence of daily life that determines timing.

    Control0..1
    BindingEventTiming: Required: http://hl7.org/fhir/event-timing (Real world event that the schedule relates to)
    Typecode
    Requirements

    Timings are frequently determined by occurrences such as waking, eating and sleep.

    InvariantsAffect this element
    tim-2: Either frequency or when SHALL be present, but not both (xpath: exists(f:frequency) != exists(f:when))
    Timing.repeat.duration
    Definition

    How long each repetition should last.

    Control1..1
    Typedecimal
    Requirements

    Some activities are not instantaneous and need to be maintained for a period of time.

    InvariantsDefined on this element
    tim-4: duration SHALL be a non-negative value (xpath: @value >= 0 or not(@value))
    Affect this element
    tim-4: duration SHALL be a non-negative value (xpath: @value >= 0 or not(@value))
    Timing.repeat.units
    Definition

    The units of time for the duration.

    Control1..1
    BindingUnitsOfTime: Required: http://hl7.org/fhir/units-of-time (A unit of time (units from UCUM))
    Typecode
    Timing.repeat.count
    Definition

    A total count of the desired number of repetitions.

    Control0..1
    Typeinteger
    Requirements

    Repetitions may be limited by end time or total occurrences.

    Comments

    An end need not be specified.

    InvariantsAffect this element
    tim-3: At most, only one of count or end can be present (xpath: not(exists(f:count) and exists(f:end)))
    Timing.repeat.end
    Definition

    When to stop repeating the timing schedule.

    Control0..1
    TypedateTime
    Requirements

    Repetitions may be limited by end time or total occurrences.

    Comments

    An end need not be specified.

    InvariantsAffect this element
    tim-3: At most, only one of count or end can be present (xpath: not(exists(f:count) and exists(f:end)))

    1.21.2.15 Signature

    See also Base Definition, Examples and Mappings.

    Signature
    Definition

    An XML digital signature along with supporting context.

    Control1..1
    Requirements

    There are a number of places where content must be signed in healthcare.

    Signature.type
    Definition

    An indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document.

    Control1..*
    BindingContractSignerType: Example: See http://hl7.org/fhir/vs/contract-signer-type (An indication of the reason that an entity signed a document)
    TypeCoding
    Comments

    Examples include attesting to: authorship, correct transcription, and witness of specific event. Also known as a “Commitment Type Indication”.

    Signature.when
    Definition

    When the digital signature was signed.

    Control1..1
    Typeinstant
    Comments

    This should agree with the information in the signature.

    Signature.who[x]
    Definition

    A reference to an application-usable description of the person that signed the certificate (e.g. the signature used their private key).

    Control1..1
    Typeuri|Reference(Practitioner | RelatedPerson | Patient)
    Comments

    This should agree with the information in the signature.

    Signature.blob
    Definition

    The actual signature, encoded as a base64 blob (for JSON).

    Control1..1
    Typebase64Binary