This page is part of the FHIR Specification (v0.0.82: DSTU 1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2
The FHIR specification defines a set of data types that are used for the resource elements. There are two categories of data type: simple / primitive types, imported from XML schema, and complex types, which are re-usable clusters of elements. This page describes the data types. See also the Examples, Formal Definitions and Mappings.
The data types are available as a W3C Schema.
The following table summarizes the primitive types and their simple restrictions that are used in throughout this specification. Primitive types are those without sub-properties, though primitives, like all types, have extensions. Primitive types have a value which has the same value domain as defined in the W3C Schema (1.0) specification part 2, though in a few cases, this specification makes additional constraints marked in bold.
Primitive Types | ||
FHIR Name | Schema type | Description |
---|---|---|
boolean | xs:boolean | Values can be either true or false (0 and 1 are not valid values) |
integer | xs:int | A signed 32-bit integer (for larger values, use decimal) |
decimal | xs:decimal | A 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). Decimals may not use exponents. |
base64Binary | xs:base64Binary | A stream of bytes, base64 encoded (RFC 4648) |
instant | xs:dateTime | An instant in time - known at least to the second and always includes a time zone. Note: This type is for system times, not human times (see date and dateTime below). |
string | xs:string | A sequence of Unicode characters. Note that strings SHALL NOT exceed 1MB in size |
uri | xs:anyURI | A Uniform Resource Identifier Reference. It can be absolute or relative, and may have an optional fragment identifier (RFC 3986) |
date | union of xs:date, xs:gYearMonth, xs:gYear | A date, or partial date (e.g. just year or year + month) as used
in human communication. There is no time zone. Dates SHALL be valid dates. date is a union of the w3c schema types date, gYearMonth, and gYear regex: -?([1-9][0-9]{3}|0[0-9]{3})(-(0[1-9]|1[0-2])(-(0[1-9]|[12][0-9]|3[01]))?)? |
dateTime | union of xs:dateTime, xs:date, xs:gYearMonth, xs:gYear | A 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 SHALL be populated. Seconds may be provided but may also be ignored.
Dates SHALL be valid dates. dateTime is a union of the w3c schema types dateTime, date, gYearMonth, gYear regex:-?([1-9][0-9]{3}|0[0-9]{3})(-(0[1-9]|1[0-2])(-(0[1-9]|[12][0-9]|3[01])(T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?)?)?)? Note: not all restrictions imposed on this type can be expressed using regular expressions, so this regex still allows a broader set of values than allowed by FHIR |
Simple Restrictions | ||
FHIR Name | Base FHIR Type | Description |
code | string | Indicates that the value is taken from a set of controlled strings defined elsewhere (see Using codes for further discussion). Technically, a code is restricted to string which has at least one character and no leading or trailing whitespace, and where there is no whitespace other than single spaces in the contents regex: [^\s]+([\s]+[^\s]+)* |
oid | uri | An OID represented as a URI (RFC 3001): urn:oid:1.2.3.4.5 |
uuid | uri | A UUID, represented as a URI (RFC 4122): urn:uuid:a5afddf4-e880-459b-876e-e4591b0acc11. Note the RFC comments about case: UUID values SHALL be represented in lower case, but systems SHOULD interpret them case insensitively |
id | string | A 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} |
In addition to having a value as described above, these primitive data types can also have an identity (e.g. xml:id), and they may have extensions like any other element in a resource. Note that the value option is optional and might not be present, following the standard rules for all elements. For instance, a primitive element might have no value, and include a data-absent-reason extension instead.
In XML, these types are represented as XML Elements with the value of the type in the value attribute. The name of the element is defined where the type is used. The XML elements may have an id attribute, and child elements named "extension". According to XML schema, leading and trailing whitespace in the value attribute is ignored for the types boolean, integer, decimal, base64Binary, instant, uri, date, dateTime, oid, and uri. Note that this means that the schema aware XML libraries give different attribute values to non schema aware libraries when reading the XML instances. For this reason, the value attribute for these types SHOULD not have leading and trailing spaces. String values should only have leading and trailing spaces if they are part of the content of the value.
In JSON, these types are represented as simple properties of the object that contains them. The name of the property is defined where the type is used. The types still have an id property, and extensions. How these are represented is described in the JSON format. Whitespace is always significant in JSON. Primitive types other than string SHALL NOT have leading or trailing whitespace.
These types are represented as XML Elements with child elements with the name of the defined elements of the type. The name of the element is defined where the type is used. Any of the XML elements may have an id attribute. In JSON, the data type is represented by an object with properties named the same as the XML elements. The JSON representation is almost exactly the same, so only the first example has an additional JSON representation.
Complex data types may be "profiled". A profile makes a set of rules about which elements SHALL have values, and what the possible values are.
UML Diagrams of the Data types
See also Examples, Formal Definitions and Mappings.
This type is for containing or referencing 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"> <!-- from Element: extension --> <contentType value="[code]"/><!-- 1..1 Mime type of the content, with charset etc. --> <language value="[code]"/><!-- 0..1 Human language of the content (BCP-47) --> <data value="[base64Binary]"/><!-- 0..1 Data inline, base64ed --> <url value="[uri]"/><!-- 0..1 Uri where the data can be found --> <size value="[integer]"/><!-- 0..1 Number of bytes of content (if url provided) --> <hash value="[base64Binary]"/><!-- 0..1 Hash of the data (sha-1, base64ed ) --> <title value="[string]"/><!-- 0..1 Label to display in place of the data --> </[name]>
Path | Definition | Type | Reference |
---|---|---|---|
Attachment.contentType | The mime type of an attachment | Incomplete | BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) |
Attachment.language | A human language | Incomplete | IETF language tag |
The contentType element SHALL always be populated. It can include charset information and other mime type extensions as appropriate. If there is no character set in the contentType then the correct course of action is undefined, though some media types may define a default character set and/or the correct character set may be able to be determined by inspection of the content.
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 SHALL 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 SHALL point to a location that resolves to actual data; some URIs such as cid: meet this requirement. If the URL is a relative reference, it is interpreted in the same way as a resource reference.
The hash is included so that applications can verify that the content returned by the URL has not changed.
In many cases where Attachment is used, the cardinality is >1. A valid use of repeats is to convey the same content in different mime types and languages. Guidance on the meaning of repeating elements SHALL be provided in the definition of the repeating resource element or extension that references this type. The language element describes the language of the attachment using the codes defined in BCP 47.
Constraints
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 language 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.
Attachment is used in the following places: DiagnosticReport, Media, Observation, RelatedPerson, Patient and Practitioner
See also Examples, Formal Definitions and Mappings.
A Coding is a representation of a defined concept using a symbol from a defined "code system" - see Using Codes in resources for more details.
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <system value="[uri]"/><!-- 0..1 Identity of the terminology system --> <version value="[string]"/><!-- 0..1 Version of the system - if relevant --> <code value="[code]"/><!-- 0..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- 0..1 Representation defined by the system --> <primary value="[boolean]"/><!-- 0..1 If this code was chosen directly by the user --> <valueSet><!-- 0..1 Resource(ValueSet) Set this coding was chosen from --></valueSet> </[name]>
The meaning of the Coding is defined by the code. The system provides the source of the definition of the code, along with an optional version reference. The display is a human display for the text defined by the system - it adds no other value. The Value Set reference provides context information about the selection of the code.
The system is a URI that references the code system that defines the code. The URI may be:
The correct value to use in the system for a given code system can be determined by working through the following list, in order:
A code system version may also be supplied. If the meaning of codes within the code system is consistent across releases, this is not required. The version SHOULD be exchanged when this the system does not maintain consistent definitions across versions. If a value set is referenced, and the value set defines the code system, and the code system definition specifies a version, the version SHALL be the same as in the value set. Note that the following systems SHOULD always have a version specified:
See the discussion of code system versions in the Value Set resource for further discussion on versioning.
If present, the code SHALL be a syntactically correct symbol as defined by the system. In some code systems such as SNOMED CT, the symbol may be an expression composed of other predefined symbol (e.g. post-coordination). 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 is used to display the meaning of the code by an application that is not aware of the system.
Where the code system defines multiple possible display strings, one of these SHALL be used in display. If one is labelled as preferred, it SHOULD be used. If the code system does not define a text representation (e.g. SNOMED CT Expressions) then display cannot be populated, and the meaning of the code won't be accessible to systems that don't understand the code expression.
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 unless the system can be safely inferred by the context. This practice should be avoided where possible, 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 the system is present, and there is no code, then this is understood to mean that there is no suitable code in the system in which to represent the code.
If two codings have the same system, version and code then they have the same meaning. If the version information is missing, or the system, version or the code elements differ, then how they codes are related can only be determined by consulting the definitions of the system(s) and any mappings available.
A coding may be marked as a "primary" if a user selected the particular coded value in a user interface (e.g. the user selects an item in a picklist). A primary is the preferred choice for performing translations etc.
A reference to a value set may be provided to help a user or system processing the code to understand the context in which the code arose. In some contexts, the possible set of codes from which the code was chosen influences how the code should be interpreted. A value set reference is not an acceptable substitute for a logical URI in the system, and the system URI SHALL not contain a reference to a value set. (If the value set defines its own codes, then the correct value for the system is ValueSet.define.system, and the value set contains a direct reference to the value set resource.
Constraints
If a valueSet is provided, a system URI SHALL also be provided.
The context of use (as defined in the resource or applicable profile) usually makes rules about what codes and systems are allowed or required in a particular context by binding the element to a value set.
Coding is used in the following places: CodeableConcept, Provenance, MessageHeader, SecurityEvent, Questionnaire, Composition, OperationOutcome, Conformance, Profile and ImagingStudy
Design Note: This specification defines two types for representing coded values:
- Coding: a simple direct reference to a code defined by a code system
- CodeableConcept: a text description and/or a list of Codings (i.e.g a list of references to codes defned by codes systems)
The Coding data type corresponds to the simple case of selecting a single code from a code list. However this type is rarely used in the FHIR specifications; long experience with exchanging coded values in HL7 shows that in the general case, systems need to able to exchange multiple translation codes, and/or an original text.
The Coding data type is used directly when there is certainty that the value must be selected directly from one of the available codes, and the list of possible codes is agreed to by all participants. This is not usually the case in the context of FHIR - general interoperabiity - so Coding is mostly used in extensions, which are usually intended to be defined for a well-controlled context of use.
See also Examples, Formal Definitions and Mappings.
A CodeableConcept represents a value that is usually supplied by providing a 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"> <!-- from Element: extension --> <coding><!-- 0..* Coding Code defined by a terminology system --></coding> <text value="[string]"/><!-- 0..1 Plain text representation of the concept --> </[name]>
Each coding is a representation of the concept as described above. 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. There is no meaning associated with the ordering of coding within a CodeableConcept. A typical use of CodeableConcept is to send the local code that the concept was coded with, and also one or more translations to publicly defined code systems such as LOINC or SNOMED CT. Sending local codes is useful and important for the purposes of debugging and integrity auditing.
Whether or not coding elements are present, the text is the representation of the concept as entered or chosen by the user, and which most closely 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 or concept that the user actually selected directly. When none of the coding elements is marked as primary, the text (if present) is the preferred source of meaning.
Constraints
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.
CodeableConcept is used in the following places: Provenance, Condition, CarePlan, Supply, Device, Order, Organization, Procedure, Substance, DiagnosticReport, Group, Medication, MessageHeader, ImmunizationRecommendation, DocumentManifest, MedicationDispense, MedicationPrescription, MedicationAdministration, Encounter, SecurityEvent, MedicationStatement, List, Questionnaire, Composition, DeviceObservationReport, Conformance, Media, FamilyHistory, Other, Location, Observation, DocumentReference, Immunization, RelatedPerson, Specimen, OrderResponse, Alert, Patient, Practitioner, AdverseReaction and DiagnosticOrder
See also Examples, Formal Definitions and Mappings.
A measured amount (or an amount that can potentially be measured).
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <value value="[decimal]"/><!-- 0..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > - how to understand the value --> <units value="[string]"/><!-- 0..1 Unit representation --> <system value="[uri]"/><!-- 0..1 System that defines coded unit form --> <code value="[code]"/><!-- 0..1 Coded form of the unit --> </[name]>
Path | Definition | Type | Reference |
---|---|---|---|
Quantity.comparator | How the Quantity should be understood and represented | Fixed | http://hl7.org/fhir/quantity-comparator |
The value contains the numerical value of the quantity, including an implicit precision. If no comparator is specified, the value is a point value (i.e. '='). The comparator 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 doesthe units element actually contains a valid UCUM unit.
Constraints
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.
Coding is used in the following places: Range, Ratio, SampledData, CarePlan, Supply, Substance, Group, Medication, MedicationDispense, MedicationPrescription, MedicationAdministration, MedicationStatement, Observation, Immunization and Specimen
These are used as types in resource content models, but they are really just a Quantity with some rules:
Age | There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM. If value is present, it SHALL be positive. |
Count | There SHALL be a code with a value of "1" if there is a value and it SHALL be an expression of length. If system is present, it SHALL be UCUM. If present, the value SHALL a whole number. |
Money | There SHALL be a code if there is a value and it SHALL be an expression of currency. If system is present, it SHALL be ISO 4217 (system = "urn:std:iso:4217" - currency). |
Distance | There SHALL be a code if there is a value and it SHALL be an expression of length. If system is present, it SHALL be UCUM. |
Duration | There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM. |
See also Examples, Formal Definitions and Mappings.
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"> <!-- from Element: extension --> <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 SHALL 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 complete range.
The range flag on the low or high elements cannot be present. Note that the Range type should not be used to represent out of range measurements: A quantity type with the comparator element should 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.
Constraints
Range is used in the following places: Group, FamilyHistory and Observation
See also Examples, Formal Definitions and Mappings.
A relationship between two Quantity values expressed as a numerator and a denominator.
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <numerator><!-- 0..1 Quantity Numerator value --></numerator> <denominator><!-- 0..1 Quantity Denominator value --></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 (e.g. 50/$10).
A proper ratio has both a numerator and a denominator; however these are not mandatory in order to allow an invalid ratio with an extension with further information.
Constraints
The context of use may require particular types of Quantity for the numerator or denominator.
Ratio is used in the following places: Substance, Medication, MedicationDispense, MedicationPrescription, MedicationAdministration, MedicationStatement and Observation
See also Examples, Formal Definitions and Mappings.
A time period defined by a start and end date/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"> <!-- from Element: extension --> <start value="[dateTime]"/><!-- 0..1 Starting time with inclusive boundary --> <end value="[dateTime]"/><!-- 0..1 End time with inclusive boundary, if not ongoing --> </[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.
Period is used in the following places: Identifier, Provenance, CarePlan, Supply, Procedure, DiagnosticReport, MedicationDispense, MedicationPrescription, MedicationAdministration, Encounter, MedicationStatement, Composition, FamilyHistory, Observation, DocumentReference, Specimen and Practitioner
See also Examples, Formal Definitions and Mappings.
Data that comes from a series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
A SampledData provides a concise way to handle the data produced by devices that sample a physical particular state at a high frequency. A typical use for this is for the output of an ECG or EKG device.
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <origin><!-- 1..1 Quantity Zero value and units --></origin> <period value="[decimal]"/><!-- 1..1 Number of milliseconds between samples --> <factor value="[decimal]"/><!-- 0..1 Multiply data by this before adding to origin --> <lowerLimit value="[decimal]"/><!-- 0..1 Lower limit of detection --> <upperLimit value="[decimal]"/><!-- 0..1 Upper limit of detection --> <dimensions value="[integer]"/><!-- 1..1 Number of sample points at each time point --> <data value="[string]"/><!-- 1..1 Decimal values with spaces, or "E" | "U" | "L" --> </[name]>
The digits are a set of decimal values separated by a single space (Unicode character u20). In addition to decimal values, the special values "E" (error), "L" (below detection limit) and "U" (above detection limit) can also be used. If there is more than one dimension, the different dimensions are interlaced - all the data points for a particular time are represented together. The default value for factor is 1.
SampledData is used in the following places: Observation
See also Examples, Formal Definitions and Mappings.
A numeric or alphanumeric string that is associated with a single object or entity within a given system. Typically, identifiers are used to connect content in resources to external content available in other frameworks or protocols. Typically, identifiers are used to connect content in resources to external content available in other frameworks or protocols. Identifiers are associated with objects, and may be changed or retired due to human or system process and errors.
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 usual | official | temp | secondary (If known) --> <label value="[string]"/><!-- 0..1 Description of identifier --> <system value="[uri]"/><!-- 0..1 The namespace for the identifier --> <value value="[string]"/><!-- 0..1 The value that is unique --> <period><!-- 0..1 Period Time period when id is/was valid for use --></period> <assigner><!-- 0..1 Resource(Organization) Organization that issued id (may be just text) --></assigner> </[name]>
Path | Definition | Type | Reference |
---|---|---|---|
Identifier.use | Identifies the purpose for this identifier, if known | Fixed | http://hl7.org/fhir/identifier-use |
The system referred to by means of a URI defines how the identifier is defined (i.e. how the value is 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 value SHALL be unique within the defined system and have a consistent meaning wherever it appears. Both system and value 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 (e.g. an OID, a UUID, or a URI with no trailing local part), then the system SHALL be "urn:ietf:rfc:3986", and the URI is in the value.
In some cases, the system may not be known - only the value is known (e.g. a simple device that scans a barcode), or the system is known implicitly (simple exchange in a limited context, often driven by barcode readers). In this case, no useful matching may be performed using the value unless the system can be safely inferred by the context. This practice should be avoided where possible, as information sharing in a wider context is very likely to arise eventually, and values without a system are inherently limited in use.
The assigner is used to indicate what registry/state/facility/etc. assigned the identifier.
Identifier is used in the following places: Condition, CarePlan, Supply, Device, Order, Organization, Procedure, Substance, DiagnosticReport, Group, ValueSet, ImmunizationRecommendation, DocumentManifest, MedicationDispense, MedicationPrescription, MedicationAdministration, Encounter, SecurityEvent, MedicationStatement, List, Questionnaire, Composition, DeviceObservationReport, Media, FamilyHistory, Other, Location, Observation, AllergyIntolerance, DocumentReference, Immunization, RelatedPerson, Specimen, OrderResponse, Alert, Patient, Practitioner, AdverseReaction, ImagingStudy and DiagnosticOrder
See also Examples, Formal Definitions and Mappings.
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 is not always significant. 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 SHALL care about name parts around the world varies widely.
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 usual | official | temp | nickname | anonymous | old | maiden --> <text value="[string]"/><!-- 0..1 Text representation of the full name --> <family value="[string]"/><!-- 0..* Family name (often called 'Surname') --> <given value="[string]"/><!-- 0..* Given names (not always 'first'). Includes middle names --> <prefix value="[string]"/><!-- 0..* Parts that come before the name --> <suffix value="[string]"/><!-- 0..* Parts that come after the name --> <period><!-- 0..1 Period Time period when name was/is in use --></period> </[name]>
Path | Definition | Type | Reference |
---|---|---|---|
HumanName.use | The use of a human name | Fixed | http://hl7.org/fhir/name-use |
The parts of a name SHOULD NOT contain whitespace. 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. For given names, initials may be used in place of the full name if that is all that is recorded.
The text element specifies the entire name as it should be represented. This may be provided instead of or as well as specific parts. Applications updating a name SHALL ensure either that the text and the parts are in agreement, or that only one of the two is present. Systems that do not support as many name parts as are provided in an instance may wish to append some of the parts together using spaces
Note that the order of the parts within a given part type has significance and SHALL be observed. The appropriate order between family name and given names depends on culture and context of use.
HumanName is used in the following places: Organization, RelatedPerson, Patient and Practitioner
See also Examples, Formal Definitions and Mappings.
A postal address. There is 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"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 home | work | temp | old - purpose of this address --> <text value="[string]"/><!-- 0..1 Text representation of the address --> <line value="[string]"/><!-- 0..* Street name, number, direction & P.O. Box etc --> <city value="[string]"/><!-- 0..1 Name of city, town etc. --> <state value="[string]"/><!-- 0..1 Sub-unit of country (abreviations ok) --> <zip value="[string]"/><!-- 0..1 Postal code for area --> <country value="[string]"/><!-- 0..1 Country (can be ISO 3166 3 letter code) --> <period><!-- 0..1 Period Time period when address was/is in use --></period> </[name]>
Path | Definition | Type | Reference |
---|---|---|---|
Address.use | The use of an address | Fixed | http://hl7.org/fhir/address-use |
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. Applications updating an address SHALL ensure either that the text and the parts are in agreement, or that only one of the two is present.
Constraints
Address is used in the following places: Organization, Location, RelatedPerson, Patient and Practitioner
See also Examples, Formal Definitions and Mappings.
All kinds of technology-mediated contact details for a person or organization, including telephone, email, etc.
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <system value="[code]"/><!-- 0..1 phone | fax | email | url --> <value value="[string]"/><!-- 0..1 The actual contact details --> <use value="[code]"/><!-- 0..1 home | work | temp | old | mobile - purpose of this address --> <period><!-- 0..1 Period Time period when the contact was/is in use --></period> </[name]>
Path | Definition | Type | Reference |
---|---|---|---|
Contact.system | Telecommunications form for contact | Fixed | http://hl7.org/fhir/contact-system |
Contact.use | Location, type or status of telecommunications address indicating use | Fixed | http://hl7.org/fhir/contact-use |
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.
Constraints
Contact is used in the following places: Device, Organization, ValueSet, MessageHeader, Conformance, Profile, Location, RelatedPerson, ConceptMap, Patient and Practitioner
See also Examples, Formal Definitions and Mappings.
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.
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <event><!-- 0..* Period When the event occurs --></event> <repeat> <!-- 0..1 Only if there is none or one event --> <frequency value="[integer]"/><!-- 0..1 Event occurs frequency times per duration --> <when value="[code]"/><!-- 0..1 HS | WAKE | AC | ACM | ACD | ACV | PC | PCM | PCD | PCV - common life events --> <duration value="[decimal]"/><!-- 1..1 Repeating or event-related duration --> <units value="[code]"/><!-- 1..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <count value="[integer]"/><!-- 0..1 Number of times to repeat --> <end value="[dateTime]"/><!-- 0..1 When to stop repeats --> </repeat> </[name]>
Path | Definition | Type | Reference |
---|---|---|---|
Schedule.repeat.when | Real world event that the schedule relates to | Fixed | http://hl7.org/fhir/event-timing |
Schedule.repeat.units | A unit of time (units from UCUM) | Fixed | http://hl7.org/fhir/units-of-time |
If events are specified, at least event.start SHALL be specified for each event. If no event.end 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 with a count of the number of times it can occur or a date/time at which to end the schedule. If no end condition is specified, the Schedule will terminate on some criteria that are expressed elsewhere.
Constraints
Schedule is used in the following places: CarePlan, Order, MedicationDispense, MedicationPrescription and MedicationStatement
Some elements do not have a specified type. The type is represented by the wildcard symbol "*". In these cases, the element type may be one of the following:
The element name ends with "[x]", and this is replaced with the Title cased name of the data type.
Open references are used in the following places: Questionnaire and Profile
The following types are defined as part of the data types, but are documented elsewhere in the specification: