0.1.0 - ci-build

SENAITEFHIRImplementationGuide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Identifiers

Identifiers

SENAITE uses FHIR identifier elements to carry business identifiers for key resources. This page describes the identifier conventions used across this IG.

General Pattern

Each resource that carries identifiers follows a consistent three-level pattern:

  • UUID (Resource.id) — Every FHIR resource has a logical id which is a UUID. This is not an identifier element and is always assigned either by the server or by the consumer during POSTing.
  • SENAITE Object ID (use = #usual) — The internal identifier created and assigned by SENAITE. It must not be supplied by the client on a POST otherwise it will error.
  • External ID (use = #secondary) — An identifier originating from the API consumer's system (e.g. the ordering EHR or middleware). Preserved as-is by SENAITE.

Value Format

All identifier values are restricted to alphanumeric characters and hyphens. Spaces, quotes, and other special characters are not permitted.

System URIs

The #usual identifier always uses a system URI defined by this IG (listed in each section below). The #secondary identifier uses a system URI owned by the API consumer's organisation — this must be agreed at integration time and is not constrained by this IG.


Patient

Patients may carry multiple identifiers. The following are explicitly supported:

Use System Description Assigned by
#usual https://fhir.senaite.org/NamingSystem/patient-id SENAITE Patient ID — internal identifier generated by SENAITE SENAITE (server-assigned)
#secondary Agreed per-integration MRN — the Medical Record Number from the consumer's system API consumer

Additional identifier types (e.g. passport number, national health ID) are permitted but not explicitly constrained by this IG. Deploying organisations may add further identifier slices as needed.


ServiceRequest

ServiceRequests carry two explicit identifiers corresponding to the underlying SENAITE sample:

Use System Description Assigned by
#usual https://fhir.senaite.org/NamingSystem/servicerequest-id Sample ID — the SENAITE-assigned sample identifier, generated once after initial submission SENAITE (server-assigned)
#secondary Agreed per-integration External ID — the identifier from the API consumer's system, preserved by SENAITE API consumer

The #usual identifier must not be supplied by the client on POST. It is assigned by SENAITE on creation and returned in the response.


DiagnosticReport

DiagnosticReport identifiers follow the same pattern as ServiceRequest identifiers, since a DiagnosticReport in this IG always corresponds to the results of an underlying SENAITE sample. The #usual and #secondary identifiers carry the same values and systems as those on the originating ServiceRequest.

Use System Description Assigned by
#usual https://fhir.senaite.org/NamingSystem/servicerequest-id Sample ID — matches the usual identifier on the originating ServiceRequest SENAITE (server-assigned)
#secondary Agreed per-integration External ID — matches the secondary identifier on the originating ServiceRequest API consumer

Device

Instruments registered in SENAITE carry two explicit identifiers:

Use System Description Assigned by
#usual https://fhir.senaite.org/NamingSystem/device-id Device ID — the internal identifier assigned by SENAITE SENAITE (server-assigned)
#secondary Agreed per-integration External ID — the asset register number or identifier from the consumer's system API consumer

The #usual identifier must not be supplied by the client on POST.


Practitioner

Practitioners carry two explicit identifiers:

Use System Description Assigned by
#usual https://fhir.senaite.org/NamingSystem/practitioner-id SENAITE Practitioner ID — internal identifier generated by SENAITE SENAITE (server-assigned)
#secondary Agreed per-integration External ID — the practitioner identifier from the API consumer's system (e.g. national provider number, hospital staff ID) API consumer

The #usual identifier must not be supplied by the client on POST.


Organization

Organizations carry two explicit identifiers:

Use System Description Assigned by
#usual https://fhir.senaite.org/NamingSystem/organization-id SENAITE Client ID — internal identifier generated by SENAITE for the submitting client organisation SENAITE (server-assigned)
#secondary Agreed per-integration External ID — the organisation identifier from the API consumer's system (e.g. national organisation ID, internal client code) API consumer

The #usual identifier must not be supplied by the client on POST.