Interface Guide

Identifier Mapping

FHIR identifiers are specified by a string (value) and a URI (system). CareEvolution identifiers can be specified by either:

  • A string and a RecordAuthority (e.g., the main patient and caregiver identifiers).
  • A string and an identifier type term plus an optional AssigningAuthority (demographic identifiers).
  • A string and a PatientIdentifierDomain (e.g., in CDA documents).

In all these cases the identifier string is mapped to the FHIR identifier value. The interesting part is how the FHIR identifier system URI is created.

Record Authority

Record authorities are specified by their code (a string) plus the site ID (a GUID). The site ID is usually the local site ID, and so it is ignored when mapping. The code is mapped to the ‘system’ URI as follows:

Code System URI Example
A URL–i.e., starts with http: or https: same as the code Record Authority Code: http://myserver.com/authorities/first
System URI: http://myserver.com/authorities/first
A GUID (aka UUID) urn:uuid:<code> Record Authority Code: bf0bee1d-3cf6-421a-9a07-f226ac233abd
System URI: urn:uuid:bf0bee1d-3cf6-421a-9a07-f226ac233abd
An OID–i.e., a list of numbers separated by dots urn:oid:<code> Record Authority Code:
System URI: urn:oid:
Anything else <site URI>/identifiers/CareEvolution/MRN/<code>, where <site URI> is specified in the mapping configuration Record Authority Code: RACode
System URI: http://careevolution.com/identifiers/CareEvolution/MRN/RACode
(assuming http://careevolution.com is the site URI)

Demographic Identifiers

If a demographic identifier has both a type and an assigning authority, the system maps the assigning authority. See Assigning Authorities for details.

If the demographic identifier type matches one of a list of standard identifiers, the system uses the corresponding URI. For example: the SSN identifier type maps to http://hl7.org/fhir/sid/us-ssn. This mapping combines built-in rules and optional configured ones.

For non-standard identifier types the following mapping rules apply:

Type code Type namespace code System URI Example
MRN A URL–i.e., starts with http: or https: same as the namespace code Namespace Code: http://myserver.com/identifier
System URI: http://myserver.com/identifier
MRN A GUID urn:uuid:<namespace code> Namespace Code: bf0bee1d-3cf6-421a-9a07-f226ac233abd
System URI:urn:uuid:bf0bee1d-3cf6-421a-9a07-f226ac233abd
MRN An OID–i.e., a list of numbers separated by dots urn:oid:<namespace code> Namespace Code:
System URI: urn:oid:
anything else anything <site URI>/identifiers/<namespace code>/<code>, where <site URI> is specified in the mapping configuration Code: DL, Namespace Code: PACode
System URI: http://careevolution.com/identifiers/PACode/DL (assuming http://careevolution.com is the site URI)

Demographic Identifiers from FHIR

When mapping identifiers received from FHIR requests, the system has the following special considerations:

  • The system examines standard identifier codes, including the OID if present. For example: both http://hl7.org/fhir/sid/us-ssn and urn:oid:2.16.840.1.113883.4.1 map to the SSN identifier type. This OID is ignored when mapping to FHIR.
  • If the ‘Use assigning authority’ mapping configuration option is enabled, identifiers map to assigning authorities using a fixed MRN identifier type and the assigning authority mapping rules described below.

Otherwise, it follows the usual Demographic Identifier rules in reverse.

Assigning Authority and Patient Identifier Domain

Assigning Authorities and Patient Identifier Domains are both specified using three strings: a namespace identifier, a universal identifier, and a universal identifier type. The mapping rules are illustrated in the following table:

Namespace ID Universal ID Universal ID Type System URI Example
empty A GUID UUID or GUID urn:uuid:<UniversalID> Universal ID: bf0bee1d-3cf6-421a-9a07-f226ac233abd
System URI: urn:uuid:bf0bee1d-3cf6-421a-9a07-f226ac233abd
empty An OID ISO urn:oid:<UniversalID> Universal ID:
System URI: urn:oid:
empty a URL URI same as UniversalID Universal ID: http://myserver.com/authorities/first
System URI: http://myserver.com/authorities/first
anything empty empty <site URI>/identifiers/<type namespace code>/<type code>/<NamespaceID> Namespace ID: HIERED
System URI: http://careevolution.com/identifiers/CareEvolution/MRN/HIERED*
anything anything else anything else <site URI>/identifiers/<type namespace code>/<type code>/<NamespaceID>/<UniversalID>/<UniversalIDType> Namespace ID: HIERED, Universal ID:, Universal ID Type: ISO
System URI: http://careevolution.com/identifiers/CareEvolution/MRN/HIERED/*

(*) assuming http://careevolution.com is the site URI