Uzbekistan Digital Health Platform
0.5.0 - ci-build Uzbekistan flag

Uzbekistan Digital Health Platform, published by Ministry of Health of the Republic of Uzbekistan. This guide is not an authorized publication; it is the continuous build for version 0.5.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/uzinfocom-org/digital-health-ig/ and changes regularly. See the Directory of published versions

Resource Profile: UZ Core Specimen ( Experimental )

Official URL: https://dhp.uz/fhir/core/StructureDefinition/uz-core-specimen Version: 0.5.0
Active as of 2026-06-05 Computable Name: UZCoreSpecimen

Uzbekistan Core profile for representing laboratory and other clinical specimens in Uzbekistan.

UZ Core Specimen represents a laboratory or other clinical specimen collected from a patient on the Digital Health Platform. In the laboratory flow it sits between the order and the result: it references the ServiceRequest that triggered collection, and the resulting Observation references back to the specimen it was measured on.

Mandatory and Must Support data elements

The elements below must always be present (mandatory) or must be supported when the data is available (Must Support) - not all are required, but your system must populate each Must Support element when it has the data and process it on receipt. This is the human-readable summary; the formal views below give the exact cardinalities, types, and terminology bindings.

Each UZ Core Specimen Must Have

This profile adds no mandatory cardinality of its own, and the base Specimen resource has no mandatory elements - every constrained element is optional but Must Support.

Each UZ Core Specimen Must Support

  • an identifier used by the source system (e.g. the LIS) and an accessionIdentifier assigned by the laboratory on receipt;
  • a status (e.g. available, unavailable) bound to the DHP specimen-status value set;
  • a type (e.g. venous blood, urine, swab; preferred binding);
  • a subject - where the specimen came from: a Patient, a Location, or a Substance;
  • a receivedTime - when the laboratory received the specimen;
  • a parent specimen reference when this specimen is derived/aliquoted from another;
  • a request - the ServiceRequest that ordered the collection;
  • a combined flag (whether the container holds a pooled specimen; required binding) and a role (preferred binding);
  • collection details: the collector (Practitioner), the collected[x] date/time, the duration, the quantity, the method, the bodySite, and the fastingStatus[x] (required binding).

Building the JSON, step by step

The examples below go from the smallest instance the server will accept to a full laboratory specimen. Copy one and adapt it - every value shown validates against this profile. The complete reference instance is linked at the bottom of the page (venous blood for CBC).

The smallest Specimen you should send

This profile adds no mandatory cardinality, and base Specimen has no mandatory elements - so the very smallest payload is just the meta.profile. That is rarely useful on its own. In practice the first three things a lab cares about are what the specimen is (type), its lifecycle status, and whose it is (subject). The subject is a plain Reference to a Patient:

{
  "resourceType": "Specimen",
  "meta": { "profile": ["https://dhp.uz/fhir/core/StructureDefinition/uz-core-specimen"] },
  "status": "available",
  "type": {
    "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v2-0487", "code": "BLD", "display": "Whole blood" }]
  },
  "subject": { "reference": "Patient/example-salim" }
}

status is bound to the DHP specimen-status value set (required) and type to the specimen-types value set (preferred). The type value BLD above is from HL7 v2 table 0487. subject may also reference a Location (e.g. an environmental sample) or a Substance.

A specimen received and ordered

Once the laboratory accepts the specimen, record when it arrived (receivedTime), the order that triggered the collection (request, a plain Reference to a ServiceRequest), and the specimen's role in the workflow. This is the typical payload created when a sample is logged in:

{
  "resourceType": "Specimen",
  "meta": { "profile": ["https://dhp.uz/fhir/core/StructureDefinition/uz-core-specimen"] },
  "status": "available",
  "type": {
    "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v2-0487", "code": "BLD", "display": "Whole blood" }]
  },
  "subject": { "reference": "Patient/example-salim" },
  "receivedTime": "2025-11-04T08:30:00Z",
  "request": [
    { "reference": "ServiceRequest/example-cbc-order" }
  ],
  "role": [
    { "coding": [{ "system": "http://hl7.org/fhir/specimen-role", "code": "p", "display": "Patient" }] }
  ]
}

request is what links the specimen to the ordered tests; the resulting Observation then references this specimen back through its own specimen element. role is a preferred binding - p (Patient) marks an ordinary patient sample.

Adding the collection details

The collection block carries how and when the sample was taken: the collector (a plain Reference to a Practitioner), the collectedDateTime (the collected[x] choice element), the duration and quantity as UCUM-coded values, and a free-text note. Always send the machine-readable system and code on quantities, not just the human unit:

{
  "resourceType": "Specimen",
  "meta": { "profile": ["https://dhp.uz/fhir/core/StructureDefinition/uz-core-specimen"] },
  "status": "available",
  "type": {
    "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v2-0487", "code": "BLD", "display": "Whole blood" }]
  },
  "subject": { "reference": "Patient/example-salim" },
  "receivedTime": "2025-11-04T08:30:00Z",
  "request": [
    { "reference": "ServiceRequest/example-cbc-order" }
  ],
  "role": [
    { "coding": [{ "system": "http://hl7.org/fhir/specimen-role", "code": "p", "display": "Patient" }] }
  ],
  "collection": {
    "collector": { "reference": "Practitioner/example-practitioner" },
    "collectedDateTime": "2025-11-04T08:10:00Z",
    "duration": { "value": 5, "code": "min", "system": "http://unitsofmeasure.org" },
    "quantity": { "value": 3, "unit": "mL", "code": "mL", "system": "http://unitsofmeasure.org" }
  },
  "note": [
    { "text": "Venous blood collected into EDTA tube. No visible hemolysis." }
  ]
}

Note that collectedDateTime is one form of the collected[x] choice - use collectedPeriod instead for a timed collection that spans a start and end. See Units and quantities for the UCUM rules on duration and quantity.

Recording the fasting status

When fasting affects interpretation of the result, record it inside collection. The fastingStatus[x] element is a required binding; as a coded value it is fastingStatusCodeableConcept. Here the patient confirmed they did not fast:

{
  "collection": {
    "fastingStatusCodeableConcept": {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v2-0916",
          "code": "NF",
          "display": "The patient indicated they did not fast prior to the procedure."
        }
      ]
    }
  }
}

This collection block slots into the same resource as the stage above. Use the code that matches the patient's actual state (the required value set lists each one); do not omit fastingStatus for tests where fasting matters.

For example API calls and a sample payload, see the Quick Start at the bottom of this page.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Specimen 0..* Specimen(5.0.0) Sample for analysis
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... accessionIdentifier SΣ 0..1 Identifier Laboratory accession identifier assigned when the specimen is accepted/registered by the laboratory. Used to link the specimen to lab workflows and results.
... status ?!SΣ 0..1 code Current lifecycle status of the specimen (e.g., available, unavailable).
Binding: SpecimenStatusVS (0.5.0) (required)
... type SΣ 0..1 CodeableConcept Type of specimen (e.g., venous blood, urine, swab) used to interpret tests and processing requirements.
Binding: SpecimenTypesVS (0.5.0) (preferred)
... subject SΣ 0..1 Reference(UZ Core Patient(0.5.0) | UZ Core Location(0.5.0) | Substance) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance.
... receivedTime SΣ 0..1 dateTime Date/time the specimen was received by the laboratory/performing organization. Supports turnaround-time and traceability.
... parent S 0..* Reference(UZ Core Specimen(0.5.0)) Reference to the parent specimen when this specimen is derived/aliquoted from another specimen.
... request S 0..* Reference(ServiceRequest) Order/request that triggered the specimen collection. Enables linking specimen to ordered tests/services.
... combined SΣ 0..1 code Whether the container holds a pooled/combined specimen from multiple collection events or sources (if applicable).
Binding: SpecimenCombinedVS (0.5.0) (required)
... role S 0..* CodeableConcept Role of this container in the overall specimen . Supports lab handling and result association.
Binding: SpecimenRoleVS (0.5.0) (preferred)
... collection S 0..1 BackboneElement Collection details
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... collector SΣ 0..1 Reference(UZ Core Practitioner(0.5.0)) Practitioner who collected the specimen.
.... collected[x] SΣ 0..1 Date/time (or period) when the specimen was collected. Used for clinical interpretation and lab timing.
..... collectedDateTime dateTime
..... collectedPeriod Period
.... duration SΣ 0..1 Duration Duration of the collection process (e.g., timed urine collection). Important for correct result calculation/interpretation.
.... quantity S 0..1 SimpleQuantity(5.0.0) Amount/volume of specimen collected. Used for adequacy checks and processing requirements.
.... method S 0..1 CodeableConcept Technique used to perform collection
Binding: SpecimenCollectionMethodVS (0.5.0) (required)
.... bodySite S 0..1 CodeableReference(BodyStructure) Anatomical site from which the specimen was collected.
Binding: SNOMEDCTBodyStructures (required)
.... fastingStatus[x] SΣ 0..1 Patient fasting status at collection time (or relevant clinical information affecting interpretation).
Binding: RelevantClinicalInformationVS (0.5.0) (required)
..... fastingStatusCodeableConcept CodeableConcept
..... fastingStatusDuration Duration

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Specimen.status Base required Specimen Status 📍0.5.0 This IG
Specimen.type Base preferred Specimen types 📍0.5.0 This IG
Specimen.combined Base required Combined status of a specimen 📍0.5.0 This IG
Specimen.role Base preferred Specimen role 📍0.5.0 This IG
Specimen.collection.​method Base required Specimen collection methods (temp) 📍0.5.0 This IG
Specimen.collection.​bodySite Base required SNOMED CT Body Structures 📍5.0.0 FHIR Std.
Specimen.collection.​fastingStatus[x] Base required Clinical information 📍0.5.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Specimen If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Specimen If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Specimen If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Specimen If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Specimen A resource should have narrative for robust management text.`div`.exists()
ele-1 error Specimen.implicitRules, Specimen.modifierExtension, Specimen.identifier, Specimen.accessionIdentifier, Specimen.status, Specimen.type, Specimen.subject, Specimen.receivedTime, Specimen.parent, Specimen.request, Specimen.combined, Specimen.role, Specimen.collection, Specimen.collection.modifierExtension, Specimen.collection.collector, Specimen.collection.collected[x], Specimen.collection.duration, Specimen.collection.quantity, Specimen.collection.method, Specimen.collection.bodySite, Specimen.collection.fastingStatus[x] All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Specimen.modifierExtension, Specimen.collection.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Specimen 0..* Specimen(5.0.0) Sample for analysis
... identifier S 0..* Identifier Specimen identifier used by the source system (e.g., LIS). Enables tracking, matching, and referencing the specimen across systems.
... accessionIdentifier S 0..1 Identifier Laboratory accession identifier assigned when the specimen is accepted/registered by the laboratory. Used to link the specimen to lab workflows and results.
... status S 0..1 code Current lifecycle status of the specimen (e.g., available, unavailable).
Binding: SpecimenStatusVS (0.5.0) (required)
... subject S 0..1 Reference(UZ Core Patient(0.5.0) | UZ Core Location(0.5.0) | Substance) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance.
... receivedTime S 0..1 dateTime Date/time the specimen was received by the laboratory/performing organization. Supports turnaround-time and traceability.
... parent S 0..* Reference(UZ Core Specimen(0.5.0)) Reference to the parent specimen when this specimen is derived/aliquoted from another specimen.
... request S 0..* Reference(ServiceRequest) Order/request that triggered the specimen collection. Enables linking specimen to ordered tests/services.
... combined S 0..1 code Whether the container holds a pooled/combined specimen from multiple collection events or sources (if applicable).
Binding: SpecimenCombinedVS (0.5.0) (required)
... role S 0..* CodeableConcept Role of this container in the overall specimen . Supports lab handling and result association.
Binding: SpecimenRoleVS (0.5.0) (preferred)
... collection S 0..1 BackboneElement Collection details
.... collector S 0..1 Reference(UZ Core Practitioner(0.5.0)) Practitioner who collected the specimen.
.... collected[x] S 0..1 dateTime, Period Date/time (or period) when the specimen was collected. Used for clinical interpretation and lab timing.
.... duration S 0..1 Duration Duration of the collection process (e.g., timed urine collection). Important for correct result calculation/interpretation.
.... quantity S 0..1 SimpleQuantity(5.0.0) Amount/volume of specimen collected. Used for adequacy checks and processing requirements.
.... method S 0..1 CodeableConcept Technique used to perform collection
Binding: SpecimenCollectionMethodVS (0.5.0) (required)
.... bodySite S 0..1 CodeableReference(BodyStructure) Anatomical site from which the specimen was collected.
Binding: SNOMEDCTBodyStructures (required)
.... fastingStatus[x] S 0..1 CodeableConcept, Duration Patient fasting status at collection time (or relevant clinical information affecting interpretation).
Binding: RelevantClinicalInformationVS (0.5.0) (required)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Specimen.status Base required Specimen Status 📍0.5.0 This IG
Specimen.type Base preferred Specimen types 📍0.5.0 This IG
Specimen.combined Base required Combined status of a specimen 📍0.5.0 This IG
Specimen.role Base preferred Specimen role 📍0.5.0 This IG
Specimen.collection.​method Base required Specimen collection methods (temp) 📍0.5.0 This IG
Specimen.collection.​bodySite Base required SNOMED CT Body Structures 📍5.0.0 FHIR Std.
Specimen.collection.​fastingStatus[x] Base required Clinical information 📍0.5.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Specimen 0..* Specimen(5.0.0) Sample for analysis
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier SΣ 0..* Identifier Specimen identifier used by the source system (e.g., LIS). Enables tracking, matching, and referencing the specimen across systems.
... accessionIdentifier SΣ 0..1 Identifier Laboratory accession identifier assigned when the specimen is accepted/registered by the laboratory. Used to link the specimen to lab workflows and results.
... status ?!SΣ 0..1 code Current lifecycle status of the specimen (e.g., available, unavailable).
Binding: SpecimenStatusVS (0.5.0) (required)
... type SΣ 0..1 CodeableConcept Type of specimen (e.g., venous blood, urine, swab) used to interpret tests and processing requirements.
Binding: SpecimenTypesVS (0.5.0) (preferred)
... subject SΣ 0..1 Reference(UZ Core Patient(0.5.0) | UZ Core Location(0.5.0) | Substance) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance.
... receivedTime SΣ 0..1 dateTime Date/time the specimen was received by the laboratory/performing organization. Supports turnaround-time and traceability.
... parent S 0..* Reference(UZ Core Specimen(0.5.0)) Reference to the parent specimen when this specimen is derived/aliquoted from another specimen.
... request S 0..* Reference(ServiceRequest) Order/request that triggered the specimen collection. Enables linking specimen to ordered tests/services.
... combined SΣ 0..1 code Whether the container holds a pooled/combined specimen from multiple collection events or sources (if applicable).
Binding: SpecimenCombinedVS (0.5.0) (required)
... role S 0..* CodeableConcept Role of this container in the overall specimen . Supports lab handling and result association.
Binding: SpecimenRoleVS (0.5.0) (preferred)
... feature 0..* BackboneElement The physical feature of a specimen
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... type 1..1 CodeableConcept Highlighted feature
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
.... description 1..1 string Information about the feature
... collection S 0..1 BackboneElement Collection details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... collector SΣ 0..1 Reference(UZ Core Practitioner(0.5.0)) Practitioner who collected the specimen.
.... collected[x] SΣ 0..1 Date/time (or period) when the specimen was collected. Used for clinical interpretation and lab timing.
..... collectedDateTime dateTime
..... collectedPeriod Period
.... duration SΣ 0..1 Duration Duration of the collection process (e.g., timed urine collection). Important for correct result calculation/interpretation.
.... quantity S 0..1 SimpleQuantity(5.0.0) Amount/volume of specimen collected. Used for adequacy checks and processing requirements.
.... method S 0..1 CodeableConcept Technique used to perform collection
Binding: SpecimenCollectionMethodVS (0.5.0) (required)
.... device 0..1 CodeableReference(Device) Device used to perform collection
Binding Description: (example): The device that was used to obtain the specimen (e.g. a catheter or catheter part used to draw the blood via a central line).
.... procedure 0..1 Reference(Procedure) The procedure that collects the specimen
.... bodySite S 0..1 CodeableReference(BodyStructure) Anatomical site from which the specimen was collected.
Binding: SNOMEDCTBodyStructures (required)
.... fastingStatus[x] SΣ 0..1 Patient fasting status at collection time (or relevant clinical information affecting interpretation).
Binding: RelevantClinicalInformationVS (0.5.0) (required)
..... fastingStatusCodeableConcept CodeableConcept
..... fastingStatusDuration Duration
... processing 0..* BackboneElement Processing and processing step details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... description 0..1 string Textual description of procedure
.... method 0..1 CodeableConcept Indicates the treatment step applied to the specimen
Binding: SpecimenProcessingMethod (example): Type indicating the technique used to process the specimen.
.... additive 0..* Reference(Substance) Material used in the processing step
.... time[x] 0..1 Date and time of specimen processing
..... timeDateTime dateTime
..... timePeriod Period
... container 0..* BackboneElement Direct container of specimen (tube/slide, etc.)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... device 1..1 Reference(Device) Device resource for the container
.... location 0..1 Reference(Location) Where the container is
.... specimenQuantity 0..1 SimpleQuantity(5.0.0) Quantity of specimen within container
... condition Σ 0..* CodeableConcept State of the specimen
Binding: Hl7VSSpecimenCondition (3.0.0) (extensible): Codes describing the state of the specimen.
... note 0..* Annotation Comments

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Specimen.language Base required All Languages 📍5.0.0 FHIR Std.
Specimen.status Base required Specimen Status 📍0.5.0 This IG
Specimen.type Base preferred Specimen types 📍0.5.0 This IG
Specimen.combined Base required Combined status of a specimen 📍0.5.0 This IG
Specimen.role Base preferred Specimen role 📍0.5.0 This IG
Specimen.feature.type Base example SNOMED CT Body Structures 📍5.0.0 FHIR Std.
Specimen.collection.​method Base required Specimen collection methods (temp) 📍0.5.0 This IG
Specimen.collection.​device Base example Not State Unknown
Specimen.collection.​bodySite Base required SNOMED CT Body Structures 📍5.0.0 FHIR Std.
Specimen.collection.​fastingStatus[x] Base required Clinical information 📍0.5.0 This IG
Specimen.processing.​method Base example Specimen Processing Method 📍5.0.0 FHIR Std.
Specimen.condition Base extensible hl7VS-specimenCondition 📍3.0.0 THO v7.1

Constraints

Id Grade Path(s) Description Expression
dom-2 error Specimen If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Specimen If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Specimen If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Specimen If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Specimen A resource should have narrative for robust management text.`div`.exists()
ele-1 error Specimen.meta, Specimen.implicitRules, Specimen.language, Specimen.text, Specimen.extension, Specimen.modifierExtension, Specimen.identifier, Specimen.accessionIdentifier, Specimen.status, Specimen.type, Specimen.subject, Specimen.receivedTime, Specimen.parent, Specimen.request, Specimen.combined, Specimen.role, Specimen.feature, Specimen.feature.extension, Specimen.feature.modifierExtension, Specimen.feature.type, Specimen.feature.description, Specimen.collection, Specimen.collection.extension, Specimen.collection.modifierExtension, Specimen.collection.collector, Specimen.collection.collected[x], Specimen.collection.duration, Specimen.collection.quantity, Specimen.collection.method, Specimen.collection.device, Specimen.collection.procedure, Specimen.collection.bodySite, Specimen.collection.fastingStatus[x], Specimen.processing, Specimen.processing.extension, Specimen.processing.modifierExtension, Specimen.processing.description, Specimen.processing.method, Specimen.processing.additive, Specimen.processing.time[x], Specimen.container, Specimen.container.extension, Specimen.container.modifierExtension, Specimen.container.device, Specimen.container.location, Specimen.container.specimenQuantity, Specimen.condition, Specimen.note All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Specimen.extension, Specimen.modifierExtension, Specimen.feature.extension, Specimen.feature.modifierExtension, Specimen.collection.extension, Specimen.collection.modifierExtension, Specimen.processing.extension, Specimen.processing.modifierExtension, Specimen.container.extension, Specimen.container.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Specimen 0..* Specimen(5.0.0) Sample for analysis
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... accessionIdentifier SΣ 0..1 Identifier Laboratory accession identifier assigned when the specimen is accepted/registered by the laboratory. Used to link the specimen to lab workflows and results.
... status ?!SΣ 0..1 code Current lifecycle status of the specimen (e.g., available, unavailable).
Binding: SpecimenStatusVS (0.5.0) (required)
... type SΣ 0..1 CodeableConcept Type of specimen (e.g., venous blood, urine, swab) used to interpret tests and processing requirements.
Binding: SpecimenTypesVS (0.5.0) (preferred)
... subject SΣ 0..1 Reference(UZ Core Patient(0.5.0) | UZ Core Location(0.5.0) | Substance) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance.
... receivedTime SΣ 0..1 dateTime Date/time the specimen was received by the laboratory/performing organization. Supports turnaround-time and traceability.
... parent S 0..* Reference(UZ Core Specimen(0.5.0)) Reference to the parent specimen when this specimen is derived/aliquoted from another specimen.
... request S 0..* Reference(ServiceRequest) Order/request that triggered the specimen collection. Enables linking specimen to ordered tests/services.
... combined SΣ 0..1 code Whether the container holds a pooled/combined specimen from multiple collection events or sources (if applicable).
Binding: SpecimenCombinedVS (0.5.0) (required)
... role S 0..* CodeableConcept Role of this container in the overall specimen . Supports lab handling and result association.
Binding: SpecimenRoleVS (0.5.0) (preferred)
... collection S 0..1 BackboneElement Collection details
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... collector SΣ 0..1 Reference(UZ Core Practitioner(0.5.0)) Practitioner who collected the specimen.
.... collected[x] SΣ 0..1 Date/time (or period) when the specimen was collected. Used for clinical interpretation and lab timing.
..... collectedDateTime dateTime
..... collectedPeriod Period
.... duration SΣ 0..1 Duration Duration of the collection process (e.g., timed urine collection). Important for correct result calculation/interpretation.
.... quantity S 0..1 SimpleQuantity(5.0.0) Amount/volume of specimen collected. Used for adequacy checks and processing requirements.
.... method S 0..1 CodeableConcept Technique used to perform collection
Binding: SpecimenCollectionMethodVS (0.5.0) (required)
.... bodySite S 0..1 CodeableReference(BodyStructure) Anatomical site from which the specimen was collected.
Binding: SNOMEDCTBodyStructures (required)
.... fastingStatus[x] SΣ 0..1 Patient fasting status at collection time (or relevant clinical information affecting interpretation).
Binding: RelevantClinicalInformationVS (0.5.0) (required)
..... fastingStatusCodeableConcept CodeableConcept
..... fastingStatusDuration Duration

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Specimen.status Base required Specimen Status 📍0.5.0 This IG
Specimen.type Base preferred Specimen types 📍0.5.0 This IG
Specimen.combined Base required Combined status of a specimen 📍0.5.0 This IG
Specimen.role Base preferred Specimen role 📍0.5.0 This IG
Specimen.collection.​method Base required Specimen collection methods (temp) 📍0.5.0 This IG
Specimen.collection.​bodySite Base required SNOMED CT Body Structures 📍5.0.0 FHIR Std.
Specimen.collection.​fastingStatus[x] Base required Clinical information 📍0.5.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Specimen If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Specimen If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Specimen If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Specimen If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Specimen A resource should have narrative for robust management text.`div`.exists()
ele-1 error Specimen.implicitRules, Specimen.modifierExtension, Specimen.identifier, Specimen.accessionIdentifier, Specimen.status, Specimen.type, Specimen.subject, Specimen.receivedTime, Specimen.parent, Specimen.request, Specimen.combined, Specimen.role, Specimen.collection, Specimen.collection.modifierExtension, Specimen.collection.collector, Specimen.collection.collected[x], Specimen.collection.duration, Specimen.collection.quantity, Specimen.collection.method, Specimen.collection.bodySite, Specimen.collection.fastingStatus[x] All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Specimen.modifierExtension, Specimen.collection.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Specimen 0..* Specimen(5.0.0) Sample for analysis
... identifier S 0..* Identifier Specimen identifier used by the source system (e.g., LIS). Enables tracking, matching, and referencing the specimen across systems.
... accessionIdentifier S 0..1 Identifier Laboratory accession identifier assigned when the specimen is accepted/registered by the laboratory. Used to link the specimen to lab workflows and results.
... status S 0..1 code Current lifecycle status of the specimen (e.g., available, unavailable).
Binding: SpecimenStatusVS (0.5.0) (required)
... subject S 0..1 Reference(UZ Core Patient(0.5.0) | UZ Core Location(0.5.0) | Substance) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance.
... receivedTime S 0..1 dateTime Date/time the specimen was received by the laboratory/performing organization. Supports turnaround-time and traceability.
... parent S 0..* Reference(UZ Core Specimen(0.5.0)) Reference to the parent specimen when this specimen is derived/aliquoted from another specimen.
... request S 0..* Reference(ServiceRequest) Order/request that triggered the specimen collection. Enables linking specimen to ordered tests/services.
... combined S 0..1 code Whether the container holds a pooled/combined specimen from multiple collection events or sources (if applicable).
Binding: SpecimenCombinedVS (0.5.0) (required)
... role S 0..* CodeableConcept Role of this container in the overall specimen . Supports lab handling and result association.
Binding: SpecimenRoleVS (0.5.0) (preferred)
... collection S 0..1 BackboneElement Collection details
.... collector S 0..1 Reference(UZ Core Practitioner(0.5.0)) Practitioner who collected the specimen.
.... collected[x] S 0..1 dateTime, Period Date/time (or period) when the specimen was collected. Used for clinical interpretation and lab timing.
.... duration S 0..1 Duration Duration of the collection process (e.g., timed urine collection). Important for correct result calculation/interpretation.
.... quantity S 0..1 SimpleQuantity(5.0.0) Amount/volume of specimen collected. Used for adequacy checks and processing requirements.
.... method S 0..1 CodeableConcept Technique used to perform collection
Binding: SpecimenCollectionMethodVS (0.5.0) (required)
.... bodySite S 0..1 CodeableReference(BodyStructure) Anatomical site from which the specimen was collected.
Binding: SNOMEDCTBodyStructures (required)
.... fastingStatus[x] S 0..1 CodeableConcept, Duration Patient fasting status at collection time (or relevant clinical information affecting interpretation).
Binding: RelevantClinicalInformationVS (0.5.0) (required)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Specimen.status Base required Specimen Status 📍0.5.0 This IG
Specimen.type Base preferred Specimen types 📍0.5.0 This IG
Specimen.combined Base required Combined status of a specimen 📍0.5.0 This IG
Specimen.role Base preferred Specimen role 📍0.5.0 This IG
Specimen.collection.​method Base required Specimen collection methods (temp) 📍0.5.0 This IG
Specimen.collection.​bodySite Base required SNOMED CT Body Structures 📍5.0.0 FHIR Std.
Specimen.collection.​fastingStatus[x] Base required Clinical information 📍0.5.0 This IG

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Specimen 0..* Specimen(5.0.0) Sample for analysis
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier SΣ 0..* Identifier Specimen identifier used by the source system (e.g., LIS). Enables tracking, matching, and referencing the specimen across systems.
... accessionIdentifier SΣ 0..1 Identifier Laboratory accession identifier assigned when the specimen is accepted/registered by the laboratory. Used to link the specimen to lab workflows and results.
... status ?!SΣ 0..1 code Current lifecycle status of the specimen (e.g., available, unavailable).
Binding: SpecimenStatusVS (0.5.0) (required)
... type SΣ 0..1 CodeableConcept Type of specimen (e.g., venous blood, urine, swab) used to interpret tests and processing requirements.
Binding: SpecimenTypesVS (0.5.0) (preferred)
... subject SΣ 0..1 Reference(UZ Core Patient(0.5.0) | UZ Core Location(0.5.0) | Substance) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance.
... receivedTime SΣ 0..1 dateTime Date/time the specimen was received by the laboratory/performing organization. Supports turnaround-time and traceability.
... parent S 0..* Reference(UZ Core Specimen(0.5.0)) Reference to the parent specimen when this specimen is derived/aliquoted from another specimen.
... request S 0..* Reference(ServiceRequest) Order/request that triggered the specimen collection. Enables linking specimen to ordered tests/services.
... combined SΣ 0..1 code Whether the container holds a pooled/combined specimen from multiple collection events or sources (if applicable).
Binding: SpecimenCombinedVS (0.5.0) (required)
... role S 0..* CodeableConcept Role of this container in the overall specimen . Supports lab handling and result association.
Binding: SpecimenRoleVS (0.5.0) (preferred)
... feature 0..* BackboneElement The physical feature of a specimen
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... type 1..1 CodeableConcept Highlighted feature
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
.... description 1..1 string Information about the feature
... collection S 0..1 BackboneElement Collection details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... collector SΣ 0..1 Reference(UZ Core Practitioner(0.5.0)) Practitioner who collected the specimen.
.... collected[x] SΣ 0..1 Date/time (or period) when the specimen was collected. Used for clinical interpretation and lab timing.
..... collectedDateTime dateTime
..... collectedPeriod Period
.... duration SΣ 0..1 Duration Duration of the collection process (e.g., timed urine collection). Important for correct result calculation/interpretation.
.... quantity S 0..1 SimpleQuantity(5.0.0) Amount/volume of specimen collected. Used for adequacy checks and processing requirements.
.... method S 0..1 CodeableConcept Technique used to perform collection
Binding: SpecimenCollectionMethodVS (0.5.0) (required)
.... device 0..1 CodeableReference(Device) Device used to perform collection
Binding Description: (example): The device that was used to obtain the specimen (e.g. a catheter or catheter part used to draw the blood via a central line).
.... procedure 0..1 Reference(Procedure) The procedure that collects the specimen
.... bodySite S 0..1 CodeableReference(BodyStructure) Anatomical site from which the specimen was collected.
Binding: SNOMEDCTBodyStructures (required)
.... fastingStatus[x] SΣ 0..1 Patient fasting status at collection time (or relevant clinical information affecting interpretation).
Binding: RelevantClinicalInformationVS (0.5.0) (required)
..... fastingStatusCodeableConcept CodeableConcept
..... fastingStatusDuration Duration
... processing 0..* BackboneElement Processing and processing step details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... description 0..1 string Textual description of procedure
.... method 0..1 CodeableConcept Indicates the treatment step applied to the specimen
Binding: SpecimenProcessingMethod (example): Type indicating the technique used to process the specimen.
.... additive 0..* Reference(Substance) Material used in the processing step
.... time[x] 0..1 Date and time of specimen processing
..... timeDateTime dateTime
..... timePeriod Period
... container 0..* BackboneElement Direct container of specimen (tube/slide, etc.)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... device 1..1 Reference(Device) Device resource for the container
.... location 0..1 Reference(Location) Where the container is
.... specimenQuantity 0..1 SimpleQuantity(5.0.0) Quantity of specimen within container
... condition Σ 0..* CodeableConcept State of the specimen
Binding: Hl7VSSpecimenCondition (3.0.0) (extensible): Codes describing the state of the specimen.
... note 0..* Annotation Comments

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Specimen.language Base required All Languages 📍5.0.0 FHIR Std.
Specimen.status Base required Specimen Status 📍0.5.0 This IG
Specimen.type Base preferred Specimen types 📍0.5.0 This IG
Specimen.combined Base required Combined status of a specimen 📍0.5.0 This IG
Specimen.role Base preferred Specimen role 📍0.5.0 This IG
Specimen.feature.type Base example SNOMED CT Body Structures 📍5.0.0 FHIR Std.
Specimen.collection.​method Base required Specimen collection methods (temp) 📍0.5.0 This IG
Specimen.collection.​device Base example Not State Unknown
Specimen.collection.​bodySite Base required SNOMED CT Body Structures 📍5.0.0 FHIR Std.
Specimen.collection.​fastingStatus[x] Base required Clinical information 📍0.5.0 This IG
Specimen.processing.​method Base example Specimen Processing Method 📍5.0.0 FHIR Std.
Specimen.condition Base extensible hl7VS-specimenCondition 📍3.0.0 THO v7.1

Constraints

Id Grade Path(s) Description Expression
dom-2 error Specimen If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Specimen If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Specimen If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Specimen If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Specimen A resource should have narrative for robust management text.`div`.exists()
ele-1 error Specimen.meta, Specimen.implicitRules, Specimen.language, Specimen.text, Specimen.extension, Specimen.modifierExtension, Specimen.identifier, Specimen.accessionIdentifier, Specimen.status, Specimen.type, Specimen.subject, Specimen.receivedTime, Specimen.parent, Specimen.request, Specimen.combined, Specimen.role, Specimen.feature, Specimen.feature.extension, Specimen.feature.modifierExtension, Specimen.feature.type, Specimen.feature.description, Specimen.collection, Specimen.collection.extension, Specimen.collection.modifierExtension, Specimen.collection.collector, Specimen.collection.collected[x], Specimen.collection.duration, Specimen.collection.quantity, Specimen.collection.method, Specimen.collection.device, Specimen.collection.procedure, Specimen.collection.bodySite, Specimen.collection.fastingStatus[x], Specimen.processing, Specimen.processing.extension, Specimen.processing.modifierExtension, Specimen.processing.description, Specimen.processing.method, Specimen.processing.additive, Specimen.processing.time[x], Specimen.container, Specimen.container.extension, Specimen.container.modifierExtension, Specimen.container.device, Specimen.container.location, Specimen.container.specimenQuantity, Specimen.condition, Specimen.note All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Specimen.extension, Specimen.modifierExtension, Specimen.feature.extension, Specimen.feature.modifierExtension, Specimen.collection.extension, Specimen.collection.modifierExtension, Specimen.processing.extension, Specimen.processing.modifierExtension, Specimen.container.extension, Specimen.container.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron

Quick Start

This profile uses standard FHIR R5 search parameters. [base] is the FHIR server base URL; | separates system from value and must be URL-encoded as %7C.

Read by server id

GET [base]/Specimen/[id]

Find specimens

GET [base]/Specimen?patient=Patient/[id]
GET [base]/Specimen?patient=Patient/[id]&type=http://terminology.hl7.org/CodeSystem/v2-0487%7CBLD
GET [base]/Specimen?patient=Patient/[id]&status=available
GET [base]/Specimen?patient=Patient/[id]&collected=ge2025-01-01
GET [base]/Specimen?accession=ACC-2025-000045

Create

POST [base]/Specimen
{
  "resourceType": "Specimen",
  "meta": { "profile": [ "https://dhp.uz/fhir/core/StructureDefinition/uz-core-specimen" ] },
  "status": "available",
  "type": { ... },
  "subject": { "reference": "Patient/[id]" },
  "request": [ { "reference": "ServiceRequest/[id]" } ],
  ...
}

Update (e.g. mark a specimen unavailable, or record its receivedTime) - PUT the full resource back with the new status:

PUT [base]/Specimen/[id]
If-Match: W/"3"   # the ETag from your last read; 412 if it changed since

See the CapabilityStatement for all supported search parameters.