View raw Markdown
type: datatypedatatype: Identifier

Identifier

Overview

See also Examples, Detailed Descriptions, Mappings, Profiles and Extensions

A string, typically numeric or alphanumeric, 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. Identifiers are associated with objects and may be changed or retired due to human or system process and errors.

[%dt Identifier 9%]

The system is an absolute URI that defines a set of identifiers (i.e., how the value is made unique). It might be a specific application or a recognized standard/specification for a set of identifiers or a way of making identifiers unique. FHIR defines some useful or important system URIs directly. Here are some example identifier namespaces:

If the system is a URL, it SHOULD resolve. Resolution might be to a web page that describes the identifier system and/or supports look-up of identifiers. Alternatively, it could be to a NamingSystem resource instance. Resolvable URLs are generally preferred by implementers over non-resolvable URNs, particularly opaque URNs such as OIDs (urn:oid:) or UUIDs (urn:uuid:). If being exchanged across institutional boundaries, OIDs and UUIDs SHOULD be available to communicating participants in a shared registry. The HL7 OID registry may be used for this purpose for OIDs. terminology.hl7.org may also be used to register NamingSystems for identifiers of broad international or national interest.

It is up to the implementer organization to determine an appropriate URL or URN structure that will avoid collisions and to manage that space (and the resolvability of URLs) over time.

Note that the scope of a given identifier system may extend beyond identifiers that might be captured by a single resource. For example, some systems might draw all "order" identifiers from a single namespace, though some might be used on MedicationRequest while others would appear on ServiceRequest.

The value SHALL be unique within the defined system and have a consistent meaning wherever it appears. Identifier.system is always case sensitive. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Identifiers are expected to be globally unique by nature of the combination of system and value. In some cases, the 'value' element is already globally unique independent of Identifier.system. Typically, these are absolute URIs of some kind (e.g., an OID, a UUID, or a URI with no trailing local part). In such a case, an Identifier.system value may be established by the assigner or community to identify that collection of identifiers

When using globally unique identifiers that are expressible as URIs as a value, a system SHALL be provided. If there is no assigned system, then the system SHALL be urn:ietf:rfc:3986 and the value is expressed as a URI (OIDs and UUIDs using urn:oid: and urn:uuid: - see note on the V3 mapping and the examples.

In some cases, the system might 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. Applications should provide a system wherever possible, as information sharing in a wider context is very likely to arise eventually, and values without a system are inherently limited in use. Whether or not the proper Identifier.system is known, the human-readable label for the Identifier.value typically appears in Identifier.type.text. e.g., 'BC provincial health number'.

In addition to the system (which provides a uniqueness scope) and the value, identifiers may also have a type, which may be useful when a system encounters identifiers with unknown system values. Note, however, that the type of an identifier is not a well-controlled vocabulary with wide variations in practice. The type deals only with general categories of identifiers and SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to variations in common usage.

The assigner is used to indicate what registry/state/facility/etc. assigned the identifier. As a Reference, the assigner can include just a text description in the display.

Constraints

[%dt.constraints Identifier%] [%tx Identifier%]

Identifier is used in the following places: [%dtusage Identifier%]

Elements

Bindings

Modifiers

Invariants

Examples

Requirements

Comments

Mappings