Botswana FHIR Implementation Guide
1.0.0 - STU1 Botswana flag

Botswana FHIR Implementation Guide, published by Jembi Health Systems. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/jembi/botswana-hie-fhir-ig/ and changes regularly. See the Directory of published versions

Resource Profile: Specimen - OpenMRS Lab Orders

Official URL: http://moh.bw.org/StructureDefinition/uat-openmrs-specimen Version: 1.0.0
Active as of 2024-10-31 Computable Name: OpenMrsUATSpecimen

The specimen associated with the lab order.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from GenericUATSpecimen

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen GenericUATSpecimen
... subject 1..1 Reference(Patient - OpenMRS) 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 or a device

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen 0..* GenericUATSpecimen Sample for analysis
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier External Identifier
Slice: Unordered, Open by value:system
.... identifier:USID Σ 1..1 Identifier External Identifier
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system Σ 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/specimen-id
..... value Σ 1..1 string The value that is unique
Example General: 123456
... type Σ 1..1 CodeableConcept Kind of material that forms the specimen
Binding: Specimen Type Used In Viral Load testing (extensible)
... subject Σ 1..1 Reference(Patient - OpenMRS) 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 or a device
... receivedTime Σ 1..1 dateTime The time when specimen was received for processing
... collection 1..1 BackboneElement Collection details
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... collected[x] Σ 1..1 dateTime Collection time

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Specimen.identifier:USID.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Specimen.statusrequiredSpecimenStatus
http://hl7.org/fhir/ValueSet/specimen-status|4.0.1
from the FHIR Standard
Specimen.typeextensibleVSSpecimenType
http://moh.bw.org/ValueSet/vs-specimen-type
from this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSpecimenIf 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorSpecimenIf 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-5errorSpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSpecimenA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen 0..* GenericUATSpecimen 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
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier External Identifier
Slice: Unordered, Open by value:system
.... identifier:USID Σ 1..1 Identifier External Identifier
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system Σ 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/specimen-id
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... accessionIdentifier Σ 0..1 Identifier Identifier assigned by the lab
... status ?!Σ 0..1 code available | unavailable | unsatisfactory | entered-in-error
Binding: SpecimenStatus (required): Codes providing the status/availability of a specimen.

... type Σ 1..1 CodeableConcept Kind of material that forms the specimen
Binding: Specimen Type Used In Viral Load testing (extensible)
... subject Σ 1..1 Reference(Patient - OpenMRS) 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 or a device
... receivedTime Σ 1..1 dateTime The time when specimen was received for processing
... parent 0..* Reference(Specimen) Specimen from which this specimen originated
... request 0..* Reference(ServiceRequest) Why the specimen was collected
... collection 1..1 BackboneElement Collection details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... collector Σ 0..1 Reference(Practitioner | PractitionerRole) Who collected the specimen
.... collected[x] Σ 1..1 dateTime Collection time
.... duration Σ 0..1 Duration How long it took to collect specimen
.... quantity 0..1 SimpleQuantity The quantity of specimen collected
.... method 0..1 CodeableConcept Technique used to perform collection
Binding: FHIRSpecimenCollectionMethod (example): The technique that is used to perform the procedure.

.... bodySite 0..1 CodeableConcept Anatomical collection site
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.

.... fastingStatus[x] Σ 0..1 Whether or how long patient abstained from food and/or drink
Binding: hl7VS-relevantClincialInformation (extensible): Codes describing the fasting status of the patient.

..... 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... description 0..1 string Textual description of procedure
.... procedure 0..1 CodeableConcept Indicates the treatment step applied to the specimen
Binding: SpecimenProcessingProcedure (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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... identifier Σ 0..* Identifier Id for the container
.... description 0..1 string Textual description of the container
.... type 0..1 CodeableConcept Kind of container directly associated with specimen
Binding: SpecimenContainerType (example): Type of specimen container.

.... capacity 0..1 SimpleQuantity Container volume or size
.... specimenQuantity 0..1 SimpleQuantity Quantity of specimen within container
.... additive[x] 0..1 Additive associated with container
Binding: hl7VS-additivePreservative (example): Substance added to specimen container.

..... additiveCodeableConcept CodeableConcept
..... additiveReference Reference(Substance)
... condition Σ 0..* CodeableConcept State of the specimen
Binding: hl7VS-specimenCondition (extensible): Codes describing the state of the specimen.


... note 0..* Annotation Comments

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Specimen.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Specimen.identifier:USID.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Specimen.identifier:USID.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Specimen.statusrequiredSpecimenStatus
http://hl7.org/fhir/ValueSet/specimen-status|4.0.1
from the FHIR Standard
Specimen.typeextensibleVSSpecimenType
http://moh.bw.org/ValueSet/vs-specimen-type
from this IG
Specimen.collection.methodexampleFHIRSpecimenCollectionMethod
http://hl7.org/fhir/ValueSet/specimen-collection-method
from the FHIR Standard
Specimen.collection.bodySiteexampleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
from the FHIR Standard
Specimen.collection.fastingStatus[x]extensibleHl7VSRelevantClincialInformation
http://terminology.hl7.org/ValueSet/v2-0916
Specimen.processing.procedureexampleSpecimenProcessingProcedure
http://hl7.org/fhir/ValueSet/specimen-processing-procedure
from the FHIR Standard
Specimen.container.typeexampleSpecimenContainerType
http://hl7.org/fhir/ValueSet/specimen-container-type
from the FHIR Standard
Specimen.container.additive[x]exampleHl7VSAdditivePreservative
http://terminology.hl7.org/ValueSet/v2-0371
Specimen.conditionextensibleHl7VSSpecimenCondition
http://terminology.hl7.org/ValueSet/v2-0493

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSpecimenIf 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorSpecimenIf 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-5errorSpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSpecimenA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from GenericUATSpecimen

Summary

Structures

This structure refers to these other structures:

Differential View

This structure is derived from GenericUATSpecimen

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen GenericUATSpecimen
... subject 1..1 Reference(Patient - OpenMRS) 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 or a device

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen 0..* GenericUATSpecimen Sample for analysis
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier External Identifier
Slice: Unordered, Open by value:system
.... identifier:USID Σ 1..1 Identifier External Identifier
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system Σ 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/specimen-id
..... value Σ 1..1 string The value that is unique
Example General: 123456
... type Σ 1..1 CodeableConcept Kind of material that forms the specimen
Binding: Specimen Type Used In Viral Load testing (extensible)
... subject Σ 1..1 Reference(Patient - OpenMRS) 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 or a device
... receivedTime Σ 1..1 dateTime The time when specimen was received for processing
... collection 1..1 BackboneElement Collection details
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... collected[x] Σ 1..1 dateTime Collection time

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Specimen.identifier:USID.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Specimen.statusrequiredSpecimenStatus
http://hl7.org/fhir/ValueSet/specimen-status|4.0.1
from the FHIR Standard
Specimen.typeextensibleVSSpecimenType
http://moh.bw.org/ValueSet/vs-specimen-type
from this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSpecimenIf 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorSpecimenIf 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-5errorSpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSpecimenA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen 0..* GenericUATSpecimen 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
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier External Identifier
Slice: Unordered, Open by value:system
.... identifier:USID Σ 1..1 Identifier External Identifier
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system Σ 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/specimen-id
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... accessionIdentifier Σ 0..1 Identifier Identifier assigned by the lab
... status ?!Σ 0..1 code available | unavailable | unsatisfactory | entered-in-error
Binding: SpecimenStatus (required): Codes providing the status/availability of a specimen.

... type Σ 1..1 CodeableConcept Kind of material that forms the specimen
Binding: Specimen Type Used In Viral Load testing (extensible)
... subject Σ 1..1 Reference(Patient - OpenMRS) 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 or a device
... receivedTime Σ 1..1 dateTime The time when specimen was received for processing
... parent 0..* Reference(Specimen) Specimen from which this specimen originated
... request 0..* Reference(ServiceRequest) Why the specimen was collected
... collection 1..1 BackboneElement Collection details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... collector Σ 0..1 Reference(Practitioner | PractitionerRole) Who collected the specimen
.... collected[x] Σ 1..1 dateTime Collection time
.... duration Σ 0..1 Duration How long it took to collect specimen
.... quantity 0..1 SimpleQuantity The quantity of specimen collected
.... method 0..1 CodeableConcept Technique used to perform collection
Binding: FHIRSpecimenCollectionMethod (example): The technique that is used to perform the procedure.

.... bodySite 0..1 CodeableConcept Anatomical collection site
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.

.... fastingStatus[x] Σ 0..1 Whether or how long patient abstained from food and/or drink
Binding: hl7VS-relevantClincialInformation (extensible): Codes describing the fasting status of the patient.

..... 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... description 0..1 string Textual description of procedure
.... procedure 0..1 CodeableConcept Indicates the treatment step applied to the specimen
Binding: SpecimenProcessingProcedure (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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... identifier Σ 0..* Identifier Id for the container
.... description 0..1 string Textual description of the container
.... type 0..1 CodeableConcept Kind of container directly associated with specimen
Binding: SpecimenContainerType (example): Type of specimen container.

.... capacity 0..1 SimpleQuantity Container volume or size
.... specimenQuantity 0..1 SimpleQuantity Quantity of specimen within container
.... additive[x] 0..1 Additive associated with container
Binding: hl7VS-additivePreservative (example): Substance added to specimen container.

..... additiveCodeableConcept CodeableConcept
..... additiveReference Reference(Substance)
... condition Σ 0..* CodeableConcept State of the specimen
Binding: hl7VS-specimenCondition (extensible): Codes describing the state of the specimen.


... note 0..* Annotation Comments

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Specimen.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Specimen.identifier:USID.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Specimen.identifier:USID.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Specimen.statusrequiredSpecimenStatus
http://hl7.org/fhir/ValueSet/specimen-status|4.0.1
from the FHIR Standard
Specimen.typeextensibleVSSpecimenType
http://moh.bw.org/ValueSet/vs-specimen-type
from this IG
Specimen.collection.methodexampleFHIRSpecimenCollectionMethod
http://hl7.org/fhir/ValueSet/specimen-collection-method
from the FHIR Standard
Specimen.collection.bodySiteexampleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
from the FHIR Standard
Specimen.collection.fastingStatus[x]extensibleHl7VSRelevantClincialInformation
http://terminology.hl7.org/ValueSet/v2-0916
Specimen.processing.procedureexampleSpecimenProcessingProcedure
http://hl7.org/fhir/ValueSet/specimen-processing-procedure
from the FHIR Standard
Specimen.container.typeexampleSpecimenContainerType
http://hl7.org/fhir/ValueSet/specimen-container-type
from the FHIR Standard
Specimen.container.additive[x]exampleHl7VSAdditivePreservative
http://terminology.hl7.org/ValueSet/v2-0371
Specimen.conditionextensibleHl7VSSpecimenCondition
http://terminology.hl7.org/ValueSet/v2-0493

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSpecimenIf 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorSpecimenIf 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-5errorSpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSpecimenA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from GenericUATSpecimen

Summary

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron