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

Data Types 1.3

The FHIR data types include primitive types imported from XML schema and additional data types that capture patterns that are ubiquitous throughout the scope of the healthcare data that will be exchanged.

Types Structures primitive imports patterns Attachment Ratio Period Range Identifier Choice Coding CodeableConcept Quantity Distance Count Duration Money primitives patterns Contact Schedule Address HumanName HumanId

Data Types Concept Map

The data types defined on this page on this page are categorized as "Primitive Types", "Types" or "Structures". Primitive Types are those either drawn from W3C Schema types or directly derived from them. Types and Structures are more complex, made up of multiple properties. "Structures" are higher level concepts that some systems internally treat differently from Types. There is no functional difference between the two categories, and systems are not required to treat them any differently.

The data types are available as a W3C Schema.

Primitive Types 1.3.1

Primitive Types

The following table summarizes the primitive types that are used in the exchange specifications. The possible values for these types are based on those specified in the W3C Schema specification part 2, with additional constraints marked in bold.

Base Types
TypeBase typeDescription
booleanxs:booleanValues can be either true or false (0 and 1 are not valid values)
integerxs:intA signed 32-bit integer (for larger values, use decimal)
decimalxs:decimalA rational number. Note: for implementations, do not use a IEEE type floating point type, instead use something that works like a true decimal, with inbuilt precision (e.g. Java BigDecimal)
base64Binaryxs:base64BinaryA stream of bytes, base64 encoded (RFC 4648)
instantxs:dateTimeAn instant in time - known at least to the second and always includes a timezone. Note: This type is for system times, not human times (see date and dateTime below).
stringxs:stringA sequence of Unicode characters. Note that FHIR strings may not exceed 1MB in size
urixs:anyURIA Uniform Resource Identifier Reference. It can be absolute or relative, and may have an optional fragment identifier (RFC 3986)
Derived Types
oiduriAn oid represented as a uri (RFC 3001)
uuiduriA UUID, represented as a uri (RFC 4122)
siduriA system id, which is a uri taken from the list of known definition systems
codestringA string which has at least one character and no whitespace.
regex: [^\s]+([\s]+[^\s]+)*
idstringA whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters
regex: [a-z0-9\-\.]{1,36}
datestringA date, or partial date (e.g. just year or year + month) as used in human communication. There is no time zone. Dates must be valid dates.
date is a union of the w3c schema types date, gYearMonth, and gYear
regex: [0-9]{4}(\-((0[1-9])|(1[0-2]))(\-((0[1-9])|([1-2][0-9])|(3[0-1])))?)?
dateTimestringA date, date-time or partial date (e.g. just year or year + month) as used in human communication. If hours and minutes are specified, a time zone must be populated. Seconds may be provided but may also be ignored. Dates must be valid dates.
date is a union of the w3c schema types dateTime, date, gYearMonth, gYear
regex: [0-9]{4}(\-((0[1-9])|(1[0-2]))(\-((0[1-9])|([1-2][0-9])|(3[0-1]))(T(([0-1][0-9])|(2[0-3])):[0-5][0-9]:[0-5][0-9]((\+|-)(0[0-9]|1[0-4]):(0|3|4)(0|5)|Z)?)?)?)?

Examples

date (e.g. Date of birth):

  <date>1951-06-04</date>

Types 1.3.2

Data Types

Attachment 1.3.3

This type is for containing attachments - additional data content defined in other formats. The most common use of this type is to include images or reports in some report format such as PDF. However it can be used for any data that has a mime type.

<[name] xmlns="http://hl7.org/fhir">
 <contentType><!-- 1..1 code Mime type of the content, with charset etc --></contentType>
 <data><!-- 0..1 base64Binary Data inline, base64ed --></data>
 <url><!-- 0..1 uri Uri where the data can be found --></url>
 <size><!-- 0..1 integer number of bytes of content (if url provided) --></size>
 <hash><!-- 0..1 base64Binary sha-1 hash of the data (base64 ) --></hash>
 <title><!-- 0..1 string Label to display in place of the data --></title>
</[name]>

Terminology Bindings

PathDetailsStrength
Attachment.contentType see BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)complete/required

The contentType element must always be populated. It can include charset information and other mime type extensions as appropriate. The actual content of the Attachment can be conveyed directly using the data element or a url reference can be provided. If both are provided, the reference must point to the same content as found in the data. The reference can never be reused to point to some different data (i.e. the reference is version specific). The url reference must point to a location that resolves to actual data; some uris such as cid: meet this requirement.

The hash is included so that applications can verify that the contents of a location have not changed and also so that a signature of the xml content can implicitly sign the content of an image without having to include the data or reference the url in the signature.

In many cases where Attachment is used, the cardinality is >1; repeats are used to convey the same content in different mime types and languages. The language of the Attachment content is indicated by use of the xml:lang attribute.

Use

If neither data nor a url is provided, the value should be understood as an assertion that no content for the specified mimeType and/or xml:lang is available for the reason stated.

The context of use may frequently make rules about the kind of attachment (and therefore, the kind of mime types) that can be used.

Examples

A PDF document:

  <document xml:lang="en">
   <contentType>application/pdf</contentType>
   <data>/9j/4...KAP//Z</data> <!-- covers many lines -->
   <title>Definition of Procedure</title>
  </document>

A reference to a DICOM image via WADO:

  <image>
   <contentType>application/dicom</contentType>
   <url>http://10.1.2.3:1000/wado?requestType=WADO&wado details...</url>
   <hash>EQH/..AgME</hash>
  </image>

Identifier 1.3.4

An identifier defined by some external system.

<[name] xmlns="http://hl7.org/fhir">
 <system><!-- 0..1 uri The namespace for the identifier --></system>
 <id><!-- 0..1 string The actual identifier --></id>
</[name]>

The system referred to by means of a URI defines how the identifier is defined (i.e. made unique). It might be a specific application or a recognized standard/specification for a set or identifiers or a way of making identifiers unique. The id must be unique within the defined system and have a consistent meaning wherever it appears. Ids are always case sensitive.

FHIR defines some useful URIs directly. OIDs (urn:oid:) and UUIDs (urn:uuid:) may be registered in the HL7 OID registry and should be if the content is shared or exchanged across institutional boundaries. If the identifier itself is naturally globally unique (i.e. an OID, a UUID, or a URI with no trailing local part), then the system must be "urn:ietf:rfc:3986", and the URI would be in the id.

In some cases, the system may not be known - only the id is known (e.g. a simple device that scans a barcode), or the system is known implicitly (simple exchange in a limited context). In this case, no useful matching may be performed using the id unless the system can be safely inferred by the context. This practice should be avoided where possible in order to future-proof implementations, as information sharing in a wider context is very likely to arise eventually.

Examples

A primary key from an application table (an OID in the space allocated by HL7 to some organisation to further sub-allocate):

  <id>
   <system>oid:2.16.840.1.113883.16.4.3.2.5</system>
   <id>123</id>
  </id>

A patient identifier defined by a hospital:

  <identifier>
   <system>http://www.acmehosp.com/patients</system>
   <id>44552</id>
  </identifier>

An identifier that refers to a patient FHIR resource on a particular system:

  <id>
   <system>urn:ietf:rfc:3986</system>
   <id>http://pas-server/xxx/patient/@443556</id>
  </id>

A guid:

  <id>
   <system>urn:ietf:rfc:3986</system>
   <id>a76d9bbf-f293-4fb7-ad4c-2851cac77162</id>
  </id>

Coding 1.3.5

A "coding" is a representation of a defined concept using a symbol from a defined "code system" - which may be an enumeration, a list of codes, a full terminology such as SNOMED-CT or LOINC or a formal ontology.

<[name] xmlns="http://hl7.org/fhir">
 <system><!-- 0..1 uri Identity of the terminology system  --></system>
 <code><!-- 0..1 code Symbol in syntax defined by the system --></code>
 <display><!-- 0..1 string Representation defined by the system --></display>
</[name]>

The system is a URI that references the enumeration, terminology or ontology that defines the code. The URI may be an OID (urn:oid:) or a UUID (urn:uuid:), a specially defined URI from the named systems list, a url that references a definition of the system or any other URI that uniquely identifies the definitions. OIDs and UUIDs may be registered in the HL7 OID registry and should be if the content is shared or exchanged across institutional boundaries.

If present, the code must be a syntactically correct symbol as defined by the system. In some code systems such as SNOMED-CT, the code may be an expression composed of other codes. Note that codes are case sensitive unless specified otherwise by the code system. The display is a text representation of the code defined by the system and can be used to display the meaning of the code by an application that is not aware of the system.

In some cases, the system may not be known - only the code is known. In this case, no useful processing of the code may be performed the system can be safely inferred by the context. This practice should be avoided where possible in order to future-proof implementations, as information sharing in a wider context is very likely to arise eventually, and codes cannot be used in the absence of a known system.

If two Codings have the same the system and code then they have the same meaning. Note that if a code system redefines the meaning of codes across different releases, then the different releases must have different values for system. If either the system or the code differs, then how they are related can only be determined by consulting the definitions of the system(s) and any mappings available.

The correct value to use in the system for a given code-system can be determined by:

Use

The context of use usually makes rules about what codes and systems are allowed or required in a particular context by binding the element to a value set.

Examples

A simple code for headache, in ICD-10:

  <code>
    <system>http://hl7.org/fhir/sid/icd-10</system>
    <code>G44.1</code>
  </code>

A SNOMED-CT expression:

  <problem>
    <system>http://snomed.info</system>
    <code>128045006:{363698007=56459004}</code>
  </problem>

Choosing Coding vs. CodeableConcept 1.3.5.1

A Coding is a simple direct reference to a code in a code system. In practice, such a simple reference is very difficult to use - if two different systems are using different terminologies, or one is using one and another text, the Coding type doesn't provide support for this. Since such situations are most common case, the type CodeableConcept is defined, which allows for multiple Coding elements and/or a text representation. Because of this, the CodeableConcept is usually used in resources in preference to the simpler Coding. Coding is generally used in profiles and extensions, in cases where the interplay between text and codes is done explicitly rather than defaulting to the general CodeableConcept type, though it may also be used in some resources. In such cases, these resource/extension/profile definitions have to make allowance for the design issues associated with text and multiple codings in their own context directly.

CodeableConcept 1.3.6

A CodeableConcept represents a represents a field that is usually defined by formal reference to one or more terminologies or ontologies, but may also be defined by the provision of text. This is a common pattern in healthcare data.

<[name] xmlns="http://hl7.org/fhir">
 <coding><!-- 0..* Coding Code defined by a terminology system  --></coding>
 <text><!-- 0..1 string Plain text representation of the concept --></text>
 <primary><!-- 0..1 idref Which code was chosen directly by the user --></primary>
</[name]>

Each "coding" is a representation of the concept using a symbol from a defined "code system" - which may be an enumeration, a list of codes, a full terminology such as SNOMED-CT or LOINC, or a formal ontology. The concept may be coded multiple times in different code systems (or even multiple times in the same code systems, where multiple forms are possible, such as with SNOMED-CT). The different codings may have slightly different granularity due to the differences in the definitions of the underlying codes. The ordering of Codings within a CodeableConcept is undefined.

Whether or not coding elements are present, the text is 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 or concept. Very often the text is the same as a display of one of the codings. One of the codings may be flagged as the primary - the code that the user actually chose directly. If present, the value of the primary element is an xml:id that must match an id attribute on one of the codings.

Use

The context of use usually makes rules about what codes and systems are allowed or required in a particular context by binding the element to a value set.

Examples

A simple code for headache initially coded in SNOMED-CT and translated to ICD-10:

  <concept>
    <coding>
      <system>http://hl7.org/fhir/sid/icd-10</system>
      <code>R51</code>
    </coding>
    <coding id="1">
      <system>http://snomed.info</system>
      <code>25064002</code>
    </coding>
    <text>general headache</text>
    <primary>1</primary>
  </concept>

A concept represented in an institution's local coding systems for unit for which no UCUM equivalent exists:

  <unit>
    <coding>
      <system>oid:2.16.840.1.113883.19.5.2</system>
      <code>tab</code>
      <display>Tablet</display>
    </coding>
    <coding>
      <system>http://unitsofmeasure.org</system>
    </coding>
  </unit>

A SNOMED-CT expression:

  <diagnosis>
    <coding>
      <system>http://snomed.info</system>
      <code>128045006:{363698007=56459004}</code>
    </coding>
    <text>Cellulitis of the foot</text>
  </diagnosis>

In this case, there is no display element, because no display is defined for Snomed-CT expressions.

Choice 1.3.7

A code taken from a short list of codes that are not defined in a formal code system. Choice is generally used for things like pain scales, questionnaires or formally defined assessment indexes. The possible codes may be ordered with some arbitrarily defined scale. Note: Choice is not an appropriate data type to use when the possible codes are defined as a value set from a formal code system or otherwise stored on a terminology server.

<[name] xmlns="http://hl7.org/fhir">
 <code><!-- 0..1 code Selected code --></code>
 <option>  <!-- 2..* List of possible code values -->
  <code><!-- 1..1 code Possible code --></code>
  <display><!-- 0..1 string Display for the code --></display>
 </option>
 <isOrdered><!-- 0..1 boolean If order of the values has meaning --></isOrdered>
</[name]>

The code is the selected value. A list of possible options for code must be provided; at least a code must be provided for each value. The selected code must be found in the list of possible codes.

If isOrdered is true, then the values have an inherent meaningful order and the list of values must be provided in the correct order.

Example

The results on a urinalysis strip:

  <value>
    <code>+</code>
    <option>
      <code>neg</code>
    </option>
    <option>
      <code>trace</code>
    </option>
    <option>
      <code>+</code>
    </option>
    <option>
      <code>++</code>
    </option>
    <option>
      <code>+++</code>
    </option>
    <isOrdered>true</isOrdered>
  </value>

Quantity 1.3.8

A measured amount (or an amount that can potentially be measured).

<[name] xmlns="http://hl7.org/fhir">
 <value><!-- 0..1 decimal Numerical value (with implicit precision) --></value>
 <range><!-- 0..1 code Relationship of given value to actual value --></range>
 <units><!-- 0..1 string Unit representation --></units>
 <system><!-- 0..1 uri System that defines coded unit form --></system>
 <code><!-- 0..1 code Coded form of the unit --></code>
</[name]>

Terminology Bindings

PathDetailsStrength
Quantity.range how the Quantity should be understood and represented (see http://hl7.org/fhir/quantity-range for values)complete/required

The value contains the numerical value of the quantity, including an implicit precision. If no range is specified, the value is a point value (i.e. '='). The range element can never be ignored.

The units element contains a displayable unit that defines what is measured. The units may additionally be coded in some formal way using the code and the system (see Coding for further information about how to use the system element).

If the units are able to be coded in UCUM and a code is provided, it SHOULD be a UCUM code. If a UCUM unit is provided in the code then a canonical value can be generated for purposes of comparison between quantities. Note that the units element will often contain text that is actually a valid UCUM unit, but it cannot be assumed that it does.

Use

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 additionally require a code from a particular system. The context of use may also restrict the values for the value or range.

Defined Variations on Quantity 1.3.8.1

These are used as types in resource content models, but they are really just a Quantity with some rules:

AgeThe unit must be an amount of time, and a UCUM unit must be provided, and the value must be positive
CountThe value must a whole number, and the UCUM unit must be "1"
MoneyThe unit must be a currency, and the code must from ISO 4217 (system = "urn:std:iso:4217")
DistanceThe unit must be an amount of length, and a UCUM unit must be provided.
DurationThe unit must be an amount of time, and a UCUM unit must be provided.

Examples

A duration:

  <time>
    <value>25</value>
    <unit>sec</unit>
    <system>http://unitsofmeasure.org</system>
    <code>s</code>
  </time>

A concentration where the value was out of range:

  <result>
    <value>40000</value>
    <range>&gt;</range>
    <unit>mcg/L</unit>
    <system>http://unitsofmeasure.org</system>
    <code>ug</code>
  </result>

An amount of prescribed medication:

  <dose>
    <value>3</value>
    <unit>capsules</unit>
    <system>http://snomed.info</system>
    <code>385049006</code>
  </dose>

A price (coded using currency codes defined in ISO 4217):

  <cost>
    <value>25.45</value>
    <unit>US$</unit>
    <system>urn:std:iso:4217</system>
    <code>USD</code>
  </cost>

Range 1.3.9

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

A Range specifies a set of possible values; usually, one value from the range applies (e.g. "give the patient between 2 and 4 tablets"). Ranges are typically used in instructions.

<[name] xmlns="http://hl7.org/fhir">
 <low><!-- 0..1 Quantity Low limit  --></low>
 <high><!-- 0..1 Quantity High limit  --></high>
</[name]>

The units and code/system elements of the low or high elements must match. If the low or high elements are missing, the meaning is that the low or high boundaries are not known and therefore neither is the range.

The range flag on the low or high elements cannot be present. Note that the Range type should not be used to represent measurements where the range flag might be used instead.

The low and the high values are inclusive, and are assumed to have arbitrarily high precision. E.g. the range 1.5 to 2.5 includes 1.50, and 2.50 but not 1.49 or 2.51.

Use

Examples

Range of Quantity (distance):

  <estimate>
   <low>
     <value>1.6</value>
     <unit>m</unit>
   </low>
   <high>
     <value>1.9</value>
     <unit>m</unit>
   </high>
  </estimate>

Ratio 1.3.10

A ratio of two Quantity values - a numerator and a denominator.

<[name] xmlns="http://hl7.org/fhir">
 <numerator><!-- 0..1 Quantity The numerator --></numerator>
 <denominator><!-- 0..1 Quantity The denominator --></denominator>
</[name]>

Common factors in the numerator and denominator are not automatically cancelled out. The Ratio data type is used for titers (e.g., "1:128") and other quantities produced by laboratories that truly represent ratios. Ratios are not simply "structured numerics" - for example blood pressure measurements (e.g. "120/60") are not ratios. In addition, ratios are used where common factors in the numerator and denominator do not cancel out. The most common example of this is where the ratio represents a unit cost, and the numerator is a currency.

Use

The context of use may require particular types of Quantity for the numerator or denominator.

Examples

Titer (Ratio of integer:integer)

  <result>
   <numerator>
     <value>1</value>
   </numerator>
   <denominator>
     <value>128</value>
   </denominator>
  </result>

Unit cost (Ratio of Money:Quantity):

  <charge>
   <numerator>
     <value>103.50</value>
     <unit>US$</unit>
     <code>USD</code>
     <system>urn:std:iso:4217</system>
   </numerator>
   <denominator>
     <value>128</value>
     <unit>day</unit>
     <code>day</code>
     <system>http://unitsofmeasure.org</system>
   </denominator>
  </charge>

Period 1.3.11

A time period defined by a start and end time.

A period specifies a range of times. 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 period applies (e.g. "give to the patient between 2 and 4 pm").

<[name] xmlns="http://hl7.org/fhir">
 <start><!-- 0..1 dateTime The start of the period --></start>
 <end><!-- 0..1 dateTime The end of the period, if not ongoing --></end>
</[name]>

If the start element is missing, the start of the period is not known. If the end element is missing, it means that the period is ongoing.

The end value includes any matching date/time. For example, the period 2011-05-23 to 2011-05-27 includes all the times of 23rd May through to the end of the 27th May.

Examples

23rd May 2011 to 27th May, including 27th May:

  <coverage>
   <start>2011-05-23</start>
   <end>2011-05-27</end>
  </coverage>

Structures 1.3.12

Data Structures

HumanId 1.3.13

An identifier used by humans. Such identifiers are different from system identifiers because they are regularly changed or retired due to human intervention and error. Note that a human identifier may actually be a system identifier on some master system, but becomes a human identifier elsewhere (i.e. in secondary use) due to how it is exchanged between humans (driver's license numbers are a good example of this).

<[name] xmlns="http://hl7.org/fhir">
 <use><!-- 0..1 code The use of this identifier --></use>
 <label><!-- 0..1 string description of identifier --></label>
 <identifier><!-- 0..1 Identifier Actual identifier --></identifier>
 <period><!-- 0..1 Period Time period when id was valid for use --></period>
 <assigner><!-- 0..1 Resource(Organization) Organisation that issued id (maybe just text) --></assigner>
</[name]>

Terminology Bindings

PathDetailsStrength
HumanId.use Identifies the use for this identifier, if known (see http://hl7.org/fhir/identifier-use for values)complete/required

The assigner is used to indicate what registry/state/facility/etc assigned the identifier.

Examples

A US SSN:

  <id>
  
    <label>SSN</label>
    <identifier>
      <system>http://hl7.org/fhir/sid/us-ssn</system>
      <id>000111111</id>
    </identifier>
  </id>

Notes:

A medical record number assigned on 5-July 2009:

  <id>
  
    <use>usual</use>
    <label>MRN</label>
    <identifier>
      <system>oid:0.1.2.3.4.5.6.7</system>
      <id>2356</id>
    </identifier>
   <period>
     <low>2009-06-05</low>
   </period>
  </id>

HumanName 1.3.14

A name of a human with text, parts and usage information.

Names may be changed or repudiated. 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.

<[name] xmlns="http://hl7.org/fhir">
 <use><!-- 0..1 code The use of this name --></use>
 <text><!-- 0..1 string Text representation of the full name --></text>
 <family><!-- 0..* string family name (called 'Surname') --></family>
 <given><!-- 0..* string given names (not always 'first'). Includes middle names --></given>
 <prefix><!-- 0..* string parts that come before the name --></prefix>
 <suffix><!-- 0..* string parts that come after the name --></suffix>
 <period><!-- 0..1 Period Time period when name was/is in use --></period>
</[name]>

Terminology Bindings

PathDetailsStrength
HumanName.use The use of a human name (see http://hl7.org/fhir/name-use for values)complete/required

The text element specifies the entire name as it should be represented. This may be provided instead of or as well as specific parts. Note that the order of the parts within a given part type has significance and must be observed. The order between family name and given names depends on culture and context of use.

Example

Full name of Peter James Chalmers.

  <name>
    <use>usual</use>
    <family>Chalmers</family>
    <given>Peter</given>
    <given>James</given>
  </name>

Further examples

vCard Mappings

Address 1.3.15

A postal address. There are a variety of postal address formats defined around the world. Postal addresses are often also used to record a location that can be visited to find a patient or person.

<[name] xmlns="http://hl7.org/fhir">
 <use><!-- 0..1 code The use of this address --></use>
 <text><!-- 0..1 string Text representation of the address --></text>
 <part><!-- 0..* string part of an address --></part>
 <line><!-- 0..* string line of an address --></line>
 <city><!-- 0..1 string name of city, town etc --></city>
 <state><!-- 0..1 string sub-unit of country (abreviations ok) --></state>
 <zip><!-- 0..1 string post code for area --></zip>
 <country><!-- 0..1 string country (can be ISO 3166 3 letter code) --></country>
 <dpid><!-- 0..1 string unique identifier --></dpid>
 <period><!-- 0..1 Period Time period when address was/is in use --></period>
</[name]>

Terminology Bindings

PathDetailsStrength
Address.use The use of an address (see http://hl7.org/fhir/address-use for values)complete/required

The text element specifies the entire address as it should be represented. This may be provided instead of or as well as the specific parts.

Use

Example

HL7 office's address.

  <address>
   <use>work</use>
   <text>
       1050 W Wishard Blvd
       RG 5th floor
       Indianapolis, IN 46240
   </text>
   <city>Indianapolis</city>
   <state>IN</state>
   <zip>46240</zip>
  </address>

Further examples

vCard Mappings

Contact 1.3.16

All kinds of technology-mediated contact details for a person or organisation, including telephone, email, etc.

<[name] xmlns="http://hl7.org/fhir">
 <system><!-- 0..1 code What kind of contact this is --></system>
 <value><!-- 0..1 string The actual contact details --></value>
 <use><!-- 0..1 code How to use this address --></use>
 <period><!-- 0..1 Period Time period when the contact was/is in use --></period>
</[name]>

Terminology Bindings

PathDetailsStrength
Contact.system What kind of contact this is (see http://hl7.org/fhir/contact-system for values)complete/required
Contact.use How to use this address (see http://hl7.org/fhir/contact-use for values)complete/required

If capturing a phone, fax or similar contact, the value should be a properly formatted telephone number according to ITU-T E.123. However, this is frequently not possible due to legacy data and/or recording methods.

Use

Example

Home phone number:

  <telecom>
   <system>phone</system>
   <value>+15556755745</value>
   <use>home</use>
  </telecom>

Further examples

Schedule 1.3.17

A schedule that specifies an event that may occur multiple times. Schedules are not used for recording when things did happen, but when they are expected or requested to occur. A schedule can be either a list of events - periods on which the event occurs, or a single event with repeating criteria, or just repeating criteria with no actual event.

Note: a possible enhancement to this is to have the repeat content repeat with each event. This is richer and more complex - is the added functionality useful?

<[name] xmlns="http://hl7.org/fhir">
 <event><!-- 0..* Period When the event occurs --></event>
 <repeat>  <!-- 0..1 Only if there is none or one event -->
  <frequency><!-- 0..1 integer Event occurs frequency times per duration --></frequency>
  <when><!-- 0..1 code Event occurs duration from common life event --></when>
  <duration><!-- 1..1 decimal Repeating or event-related duration --></duration>
  <units><!-- 1..1 code the units of time for the duration --></units>
  <count><!-- 0..1 integer Number of times to repeat --></count>
  <end><!-- 0..1 dateTime When to stop repeats --></end>
 </repeat>
</[name]>

Terminology Bindings

PathDetailsStrength
Schedule.repeat.when A real world event that a schedule is related to (see http://hl7.org/fhir/event-timing for values)complete/required
Schedule.repeat.units A unit of time (units from UCUM) (see http://hl7.org/fhir/units-of-time for values)complete/required

If events are specified, at least a low must be specified for each event. If no high is specified, the event is assumed to last a limited but unknown time as clinically relevant.

If the schedule has repeating criteria, the repeat can occur a given number of times per the specified duration or in relation to some real world event. Also, if the event repeats, a time to end the schedule can be specified, either by specifying a count number of times it can occur or a date at which to end the schedule. If no end condition is specified, the Schedule will terminate on some criteria that are expressed elsewhere.

Use

Example

A series of appointments for radiotherapy:

  <schedule>
    <event>
      <low>2012-01-07T09:00</low>
      <high>2012-01-07T13:00</high>
    </event>
    <event>
      <low>2012-01-14T09:00</low>
      <high>2012-01-14T13:00</high>
    </event>
    <event>
      <low>2012-01-22T11:00</low>
      <high>2012-01-22T15:00</high>
    </event>
  </schedule>

BID (twice a day) (no start or end specified):

  <schedule>
   <repeat>
     <frequency>2</frequency>
     <duration>1</duration>
     <units>d</units>
   </repeat>
  </schedule>

1/2 an hour before breakfast for 10 days from 23-Dec 2011:

  <schedule>
    <event>
      <low>2011-12-23</low>
    </event>
    <repeat>
      <when>ACM</when>
      <duration>30</duration>
      <units>min</units>
      <end>2012-01-02</end>
    </repeat>
  </schedule>

Note that the end date is inclusive like the high date of a Period.

Other Types 1.3.18

The following types are defined as part of the data types, but are documented elsewhere in the specification:


This is an old version of FHIR retained for archive purposes. Do not use for anything else
Implementers are welcome to experiment with the content defined here, but should note that the contents are subject to change without prior notice.
© HL7.org 2011 - 2012. FHIR v0.06 generated on Tue, Dec 4, 2012 00:04+1100. License