Specimen (MY Core)

Defining URL http://fhir.hie.moh.gov.my/StructureDefinition/Specimen-my-core
Version 1.0.0
Name SpecimenMyCore
Definition A sample to be used for analysis.
Title Specimen (MY Core)
Status Active as of 11-3-2022
Publisher Malaysia MOH - HIE Steering Committee
Copyright Used by permission of HL7 International, all rights reserved Creative Commons License

Specimen
DefinitionA sample to be used for analysis.
Cardinality0...*
Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.empty()
  • dom-4: 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-3: 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().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-6: A resource should have narrative for robust management
    text.`div`.exists()
  • dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
Mappings
  • rim: Entity. Role, or Act
  • rim: Role[classCode=SPEC]
Specimen.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typestring
SummaryTrue
Comments

The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

Specimen.meta
DefinitionThe metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
Cardinality0...1
TypeMeta
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Specimen.implicitRules
DefinitionA reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
Cardinality0...1
Typeuri
ModifierTrue
SummaryTrue
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Specimen.language
DefinitionThe base language in which the resource is written.
Cardinality0...1
Typecode
Binding

A human language.

CommonLanguages (preferred)
Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Specimen.text
DefinitionA human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
Cardinality0...1
TypeNarrative
Aliasnarrative, html, xhtml, display
Comments

Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
  • rim: Act.text?
Specimen.contained
DefinitionThese resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
Cardinality0...*
TypeResource
Aliasinline resources, anonymous resources, contained resources
Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
Specimen.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
Aliasextensions, user content
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.identifier
DefinitionId for specimen.
Cardinality0...*
TypeIdentifier
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • w5: FiveWs.identifier
  • v2: SPM-2
  • rim: .id
Specimen.accessionIdentifier
DefinitionThe identifier assigned by the lab when accessioning specimen(s). This is not necessarily the same as the specimen identifier, depending on local lab procedures.
Cardinality0...1
TypeIdentifier
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • w5: FiveWs.identifier
  • v2: SPM-30 (v2.7+)
  • rim: .participation[typeCode=SBJ].act[classCode=ACSN, moodCode=EVN].id
Specimen.status
DefinitionThe availability of the specimen.
Cardinality0...1
Typecode
Binding

Codes providing the status/availability of a specimen.

SpecimenStatus (required)
ModifierTrue
SummaryTrue
Comments

This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.status
  • v2: SPM-20
  • rim: status
Specimen.type
DefinitionThe kind of material that forms the specimen.
Cardinality0...1
TypeCodeableConcept
Binding

The type of the specimen.

ValueSetSpecimenTypeMyCore (preferred)
SummaryTrue
Comments

The type can change the way that a specimen is handled and drives what kind of analyses can properly be performed on the specimen. It is frequently used in diagnostic work flow decision making systems.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • w5: FiveWs.what[x]
  • v2: SPM-4 and possibly SPM-5
  • rim: .code
Specimen.subject
DefinitionWhere 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.
Cardinality0...1
TypeReference(Patient | Group | Device | Substance | Location)
SummaryTrue
Requirements

Must know the subject context.

Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • w5: FiveWs.subject[x]
  • rim: .scoper or .scoper.playsRole
  • w5: FiveWs.subject
Specimen.receivedTime
DefinitionTime when specimen was received for processing or testing.
Cardinality0...1
TypedateTime
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.done[x]
  • v2: SPM-18
  • rim: .participation[typeCode=SBJ].act[code=SPCREC, moodCode=EVN].effectiveTime
Specimen.parent
DefinitionReference to the parent (source) specimen which is used when the specimen was either derived from or a component of another specimen.
Cardinality0...*
TypeReference(Specimen)
Comments

The parent specimen could be the source from which the current specimen is derived by some processing step (e.g. an aliquot or isolate or extracted nucleic acids from clinical samples) or one of many specimens that were combined to create a pooled sample.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • rim: .scoper (if parent) .player.scopesRole[classCode=SPEC].player (if child)
Specimen.request
DefinitionDetails concerning a service request that required a specimen to be collected.
Cardinality0...*
TypeReference(ServiceRequest)
Comments

The request may be explicit or implied such with a ServiceRequest that requires a blood draw.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • w5: FiveWs.why[x]
  • v2: ORC? OBR-2/3?
  • rim: outboundRelationship[typeCode=FLFS].target
Specimen.collection
DefinitionDetails concerning the specimen collection.
Cardinality0...1
TypeBackboneElement
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: SPM-14
  • rim: .participation[typeCode=SBJ].act[classCode=SPECCOLLECT, moodCode=EVN]
Specimen.collection.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
Specimen.collection.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.collection.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.collection.collector
DefinitionPerson who collected the specimen.
Cardinality0...1
TypeReference(Practitioner | PractitionerRole)
SummaryTrue
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • w5: FiveWs.actor
  • v2: PRT
  • rim: .participation[typeCode=PFM].role
Specimen.collection.collected[x]
DefinitionTime when specimen was collected from subject - the physiologically relevant time.
Cardinality0...1
TypedateTime
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.init
  • v2: SPM-17
  • rim: .effectiveTime
Specimen.collection.duration
DefinitionThe span of time over which the collection of a specimen occurred.
Cardinality0...1
TypeDuration
SummaryTrue
Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • drt-1: There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM.
    code.exists() implies ((system = %ucum) and value.exists())
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • rim: PQ, IVL<PQ> depending on the values
  • w5: FiveWs.init
Specimen.collection.quantity
DefinitionThe quantity of specimen collected; for instance the volume of a blood sample, or the physical measurement of an anatomic pathology sample.
Cardinality0...1
TypeSimpleQuantity
Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • v2: SPM-12
  • rim: .participation[typeCode=SBJ].role[classCode=SPEC].player.quantity
Specimen.collection.method
DefinitionA coded value specifying the technique that is used to perform the procedure.
Cardinality0...1
TypeCodeableConcept
Binding

The technique that is used to perform the procedure.

FHIRSpecimenCollectionMethod (example)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: SPM-7
  • rim: .methodCode
Specimen.collection.bodySite
DefinitionAnatomical location from which the specimen was collected (if subject is a patient). This is the target site. This element is not used for environmental specimens.
Cardinality0...1
TypeCodeableConcept
Binding

Codes describing anatomical locations. May include laterality.

SNOMEDCTBodyStructures (example)
Comments

If the use case requires BodySite to be handled as a separate resource instead of an inline coded element (e.g. to identify and track separately) then use the standard extension bodySite.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: SPM-8 and SPM-9
  • rim: .targetSiteCode
Specimen.collection.fastingStatus[x]
DefinitionAbstinence or reduction from some or all food, drink, or both, for a period of time prior to sample collection.
Cardinality0...1
TypeCodeableConcept
Binding

Codes describing the fasting status of the patient.

v2.0916 (extensible)
SummaryTrue
Requirements

Many diagnostic tests require fasting to facilitate accurate interpretation.

Comments

Representing fasting status using this element is preferred to representing it with an observation using a 'pre-coordinated code' such as LOINC 2005-7 (Calcium [Moles/​time] in 2 hour Urine --12 hours fasting), or using a component observation such asObservation.component code` = LOINC 49541-6 (Fasting status - Reported).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: OBR-
Specimen.processing
DefinitionDetails concerning processing and processing steps for the specimen.
Cardinality0...*
TypeBackboneElement
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .participation[typeCode=SBJ].act[code=SPCTRT, moodCode=EVN]
Specimen.processing.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
Specimen.processing.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.processing.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.processing.description
DefinitionTextual description of procedure.
Cardinality0...1
Typestring
Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .text
Specimen.processing.procedure
DefinitionA coded value specifying the procedure used to process the specimen.
Cardinality0...1
TypeCodeableConcept
Binding

Type indicating the technique used to process the specimen.

SpecimenProcessingProcedure (example)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: .code
Specimen.processing.additive
DefinitionMaterial used in the processing step.
Cardinality0...*
TypeReference(Substance)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • v2: SPM-6
  • rim: .participation[typeCode=CSM].role[classCode=ADTV].code
Specimen.processing.time[x]
DefinitionA record of the time or period when the specimen processing occurred. For example the time of sample fixation or the period of time the sample was in formalin.
Cardinality0...1
TypedateTime
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .effectiveTime
Specimen.container
DefinitionThe container holding the specimen. The recursive nature of containers; i.e. blood in tube in tray in rack is not addressed here.
Cardinality0...*
TypeBackboneElement
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .player.scopingRole[classCode=CONT].scoper
Specimen.container.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
Specimen.container.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.container.extension:combineSample
DefinitionExtension to determine whether the lab test allows combining the same sample with another lab test
Cardinality0...1
TypeExtension(boolean)
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.container.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Specimen.container.identifier
DefinitionId for container. There may be multiple; a manufacturer's bar code, lab assigned identifier, etc. The container ID may differ from the specimen id in some circumstances.
Cardinality0...*
TypeIdentifier
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • v2: SAC-3
  • rim: .id
Specimen.container.description
DefinitionTextual description of the container.
Cardinality0...1
Typestring
Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .desc
Specimen.container.type
DefinitionThe type of container associated with the specimen (e.g. slide, aliquot, etc.).
Cardinality1...1
TypeCodeableConcept
Binding

Type of specimen container.

ValueSetSpecimenContainerTypeMyCore (required)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: SPM-27
  • rim: .code
Specimen.container.capacity
DefinitionThe capacity (volume or other measure) the container may contain.
Cardinality0...1
TypeSimpleQuantity
Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • v2: one of: SAC 16, SAC17 and SAC 20, or SAC 21 and SAC 20
  • rim: .quantity
Specimen.container.specimenQuantity
DefinitionThe quantity of specimen in the container; may be volume, dimensions, or other appropriate measurements, depending on the specimen type.
Cardinality0...1
TypeSimpleQuantity
Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • v2: SAC-23 (value) SAC-24 (units
  • rim: .playedRole[classCode=CONT].quantity
Specimen.container.additive[x]
DefinitionIntroduced substance to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA.
Cardinality0...1
TypeCodeableConcept
Binding

Substance added to specimen container.

v2.0371 (example)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: SAC-27
  • rim: .scopesRole[classCode=ADTV].player
Specimen.condition
DefinitionA mode or state of being that describes the nature of the specimen.
Cardinality0...*
TypeCodeableConcept
Binding

Codes describing the state of the specimen.

v2.0493 (extensible)
SummaryTrue
Requirements

The specimen condition can be used to assess its quality or appropriateness for a specific test.

Comments

Specimen condition is an observation made about the specimen. It's a point-in-time assessment. It can be used to assess its quality or appropriateness for a specific test.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: SPM-24
Specimen.note
DefinitionTo communicate any details or issues about the specimen or during the specimen collection. (for example: broken vial, sent with patient, frozen).
Cardinality0...*
TypeAnnotation
Comments

For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: Act
  • v2: OBX
  • rim: .inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code="annotation"].value

example-specimen

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="Specimen-my-core" />
    <url value="http://fhir.hie.moh.gov.my/StructureDefinition/Specimen-my-core" />
    <version value="1.0.0" />
    <name value="SpecimenMyCore" />
    <title value="Specimen (MY Core)" />
    <status value="active" />
    <date value="2024-03-13T01:41:41.3395961+00:00" />
    <publisher value="Health Level Seven International - Patient Care Work Group" />
    <purpose value="Minimal specimen attributes, usable for the laboratory results section and entry of a patient summary." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Specimen" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Specimen" />
    <derivation value="constraint" />
    <differential>
        <element id="Specimen.type">
            <path value="Specimen.type" />
            <binding>
                <strength value="preferred" />
                <valueSet value="http://fhir.hie.moh.gov.my/ValueSet/specimen-type-my-core" />
            </binding>
        </element>
        <element id="Specimen.container.extension:combineSample">
            <path value="Specimen.container.extension" />
            <sliceName value="combineSample" />
            <short value="Extension to determine whether the lab test allows combining the same sample with another lab test" />
            <definition value="Extension to determine whether the lab test allows combining the same sample with another lab test" />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="http://fhir.hie.moh.gov.my/StructureDefinition/specimen-combine-sample-my-core" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="Specimen.container.type">
            <path value="Specimen.container.type" />
            <min value="1" />
            <binding>
                <strength value="required" />
                <valueSet value="http://fhir.hie.moh.gov.my/ValueSet/specimen-container-type-my-core" />
            </binding>
        </element>
    </differential>
</StructureDefinition>

{
    "resourceType": "StructureDefinition",
    "id": "Specimen-my-core",
    "url": "http://fhir.hie.moh.gov.my/StructureDefinition/Specimen-my-core",
    "version": "1.0.0",
    "name": "SpecimenMyCore",
    "title": "Specimen (MY Core)",
    "status": "active",
    "date": "2024-03-13T01:41:41.3395961+00:00",
    "publisher": "Health Level Seven International - Patient Care Work Group",
    "purpose": "Minimal specimen attributes, usable for the laboratory results section and entry of a patient summary.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Specimen",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Specimen",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Specimen.type",
                "path": "Specimen.type",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "http://fhir.hie.moh.gov.my/ValueSet/specimen-type-my-core"
                }
            },
            {
                "id": "Specimen.container.extension:combineSample",
                "path": "Specimen.container.extension",
                "sliceName": "combineSample",
                "short": "Extension to determine whether the lab test allows combining the same sample with another lab test",
                "definition": "Extension to determine whether the lab test allows combining the same sample with another lab test",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.hie.moh.gov.my/StructureDefinition/specimen-combine-sample-my-core"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "Specimen.container.type",
                "path": "Specimen.container.type",
                "min": 1,
                "binding": {
                    "strength": "required",
                    "valueSet": "http://fhir.hie.moh.gov.my/ValueSet/specimen-container-type-my-core"
                }
            }
        ]
    }
}

Snapshot

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
accessionIdentifierΣ0..1Identifier
statusΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
subjectΣ I0..1Reference(Patient | Group | Device | Substance | Location)
receivedTimeΣ0..1dateTime
parentI0..*Reference(Specimen)
requestI0..*Reference(ServiceRequest)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
collectorΣ I0..1Reference(Practitioner | PractitionerRole)
collectedDateTimedateTime
collectedPeriodPeriod
durationΣ I0..1Duration
quantityI0..1SimpleQuantity
method0..1CodeableConcept
bodySite0..1CodeableConcept
fastingStatusCodeableConceptCodeableConcept
fastingStatusDurationDuration
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
description0..1string
procedure0..1CodeableConcept
additiveI0..*Reference(Substance)
timeDateTimedateTime
timePeriodPeriod
id0..1string
combineSampleI0..1Extension(boolean)
modifierExtensionΣ ?! I0..*Extension
identifierΣ0..*Identifier
description0..1string
type1..1CodeableConceptBinding
capacityI0..1SimpleQuantity
specimenQuantityI0..1SimpleQuantity
additiveCodeableConceptCodeableConcept
additiveReferenceReference(Substance)
conditionΣ0..*CodeableConceptBinding
note0..*Annotation

Diff

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
accessionIdentifierΣ0..1Identifier
statusΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
subjectΣ I0..1Reference(Patient | Group | Device | Substance | Location)
receivedTimeΣ0..1dateTime
parentI0..*Reference(Specimen)
requestI0..*Reference(ServiceRequest)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
collectorΣ I0..1Reference(Practitioner | PractitionerRole)
collectedDateTimedateTime
collectedPeriodPeriod
durationΣ I0..1Duration
quantityI0..1SimpleQuantity
method0..1CodeableConcept
bodySite0..1CodeableConcept
fastingStatusCodeableConceptCodeableConcept
fastingStatusDurationDuration
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
description0..1string
procedure0..1CodeableConcept
additiveI0..*Reference(Substance)
timeDateTimedateTime
timePeriodPeriod
id0..1string
combineSampleI0..1Extension(boolean)
modifierExtensionΣ ?! I0..*Extension
identifierΣ0..*Identifier
description0..1string
type1..1CodeableConceptBinding
capacityI0..1SimpleQuantity
specimenQuantityI0..1SimpleQuantity
additiveCodeableConceptCodeableConcept
additiveReferenceReference(Substance)
conditionΣ0..*CodeableConceptBinding
note0..*Annotation

Hybrid

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
accessionIdentifierΣ0..1Identifier
statusΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
subjectΣ I0..1Reference(Patient | Group | Device | Substance | Location)
receivedTimeΣ0..1dateTime
parentI0..*Reference(Specimen)
requestI0..*Reference(ServiceRequest)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
collectorΣ I0..1Reference(Practitioner | PractitionerRole)
collectedDateTimedateTime
collectedPeriodPeriod
durationΣ I0..1Duration
quantityI0..1SimpleQuantity
method0..1CodeableConcept
bodySite0..1CodeableConcept
fastingStatusCodeableConceptCodeableConcept
fastingStatusDurationDuration
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
description0..1string
procedure0..1CodeableConcept
additiveI0..*Reference(Substance)
timeDateTimedateTime
timePeriodPeriod
id0..1string
combineSampleI0..1Extension(boolean)
modifierExtensionΣ ?! I0..*Extension
identifierΣ0..*Identifier
description0..1string
type1..1CodeableConceptBinding
capacityI0..1SimpleQuantity
specimenQuantityI0..1SimpleQuantity
additiveCodeableConceptCodeableConcept
additiveReferenceReference(Substance)
conditionΣ0..*CodeableConceptBinding
note0..*Annotation

This profile is derived from the base FHIR Specimen resource.

Requirements

No element is set as priority as of now.