QI-Core Implementation Guide: STU 4 (v4.0.0 for FHIR 4.0.1)

QI-Core Implementation Guide - This is the current published version.. See the Directory of published versions

D.4.1 StructureDefinition-qicore-specimen

Introduction:

See the patterns page for implementation and usage patterns.

Examples:

Blood Sample Example

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-specimen

Profile of Specimen for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

This profile builds on Specimen.

This profile was published on Wed Aug 22 00:00:00 UTC 2018 as a draft by Health Level Seven, Inc. - CQI WG.

Description of Profiles, Differentials, and Snapshots.

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen I0..*SpecimenSample for analysis
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierExternal Identifier
... accessionIdentifier ΣI0..1IdentifierIdentifier assigned by the lab
... status ?!ΣI0..1codeavailable | unavailable | unsatisfactory | entered-in-error
Binding: SpecimenStatus (required)
... type SΣI0..1CodeableConceptKind of material that forms the specimen
Binding: v2 Specimen Type (example)
... subject SΣI0..1Reference(QICorePatient | QICoreDevice | QICoreSubstance | Group)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 SΣI0..1dateTimeThe time when specimen was received for processing
... parent I0..*Reference(QICoreSpecimen)Specimen from which this specimen originated
... request I0..*Reference(ServiceRequest)Why the specimen was collected
... collection I0..1BackboneElementCollection details
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... collector ΣI0..1Reference(QICorePractitioner)Who collected the specimen
.... collected[x] SΣI0..1Collection time
..... collectedDateTimedateTime
..... collectedPeriodPeriod
.... duration ΣI0..1DurationHow long it took to collect specimen
.... quantity I0..1SimpleQuantityThe quantity of specimen collected
.... method I0..1CodeableConceptTechnique used to perform collection
Binding: FHIRSpecimenCollectionMethod (example)
.... bodySite SI0..1CodeableConceptAnatomical collection site
Binding: SNOMEDCTBodyStructures (example)
.... fastingStatus[x] ΣI0..1Whether or how long patient abstained from food and/or drink
Binding: v2 Relevant Clincial Information (extensible)
..... fastingStatusCodeableConceptCodeableConcept
..... fastingStatusDurationDuration
... processing I0..*BackboneElementProcessing and processing step details
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... description I0..1stringTextual description of procedure
.... procedure SI0..1CodeableConceptIndicates the treatment step applied to the specimen
Binding: SpecimenProcessingProcedure (example)
.... additive I0..*Reference(QICoreSubstance)Material used in the processing step
.... time[x] I0..1Date and time of specimen processing
..... timeDateTimedateTime
..... timePeriodPeriod
... container I0..*BackboneElementDirect container of specimen (tube/slide, etc.)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... specimen-sequenceNumber I0..1integerThe sequence number of the sample
URL: http://hl7.org/fhir/StructureDefinition/specimen-sequenceNumber
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... identifier ΣI0..*IdentifierId for the container
.... description I0..1stringTextual description of the container
.... type I0..1CodeableConceptKind of container directly associated with specimen
Binding: SpecimenContainerType (example)
.... capacity I0..1SimpleQuantityContainer volume or size
.... specimenQuantity I0..1SimpleQuantityQuantity of specimen within container
.... additive[x] I0..1Additive associated with container
Binding: v2 Additive (example)
..... additiveCodeableConceptCodeableConcept
..... additiveReferenceReference(QICoreSubstance)
... condition ΣI0..*CodeableConceptState of the specimen
Binding: v2 Specimen Condition (extensible)
... note I0..*AnnotationComments

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen I0..*SpecimenSample for analysis
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierExternal Identifier
... accessionIdentifier ΣI0..1IdentifierIdentifier assigned by the lab
... status ?!ΣI0..1codeavailable | unavailable | unsatisfactory | entered-in-error
Binding: SpecimenStatus (required)
... type SΣI0..1CodeableConceptKind of material that forms the specimen
Binding: v2 Specimen Type (example)
... subject SΣI0..1Reference(QICorePatient | QICoreDevice | QICoreSubstance | Group)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 SΣI0..1dateTimeThe time when specimen was received for processing
... parent I0..*Reference(QICoreSpecimen)Specimen from which this specimen originated
... request I0..*Reference(ServiceRequest)Why the specimen was collected
... collection I0..1BackboneElementCollection details
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... collector ΣI0..1Reference(QICorePractitioner)Who collected the specimen
.... collected[x] SΣI0..1Collection time
..... collectedDateTimedateTime
..... collectedPeriodPeriod
.... duration ΣI0..1DurationHow long it took to collect specimen
.... quantity I0..1SimpleQuantityThe quantity of specimen collected
.... method I0..1CodeableConceptTechnique used to perform collection
Binding: FHIRSpecimenCollectionMethod (example)
.... bodySite SI0..1CodeableConceptAnatomical collection site
Binding: SNOMEDCTBodyStructures (example)
.... fastingStatus[x] ΣI0..1Whether or how long patient abstained from food and/or drink
Binding: v2 Relevant Clincial Information (extensible)
..... fastingStatusCodeableConceptCodeableConcept
..... fastingStatusDurationDuration
... processing I0..*BackboneElementProcessing and processing step details
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... description I0..1stringTextual description of procedure
.... procedure SI0..1CodeableConceptIndicates the treatment step applied to the specimen
Binding: SpecimenProcessingProcedure (example)
.... additive I0..*Reference(QICoreSubstance)Material used in the processing step
.... time[x] I0..1Date and time of specimen processing
..... timeDateTimedateTime
..... timePeriodPeriod
... container I0..*BackboneElementDirect container of specimen (tube/slide, etc.)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... specimen-sequenceNumber I0..1integerThe sequence number of the sample
URL: http://hl7.org/fhir/StructureDefinition/specimen-sequenceNumber
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... identifier ΣI0..*IdentifierId for the container
.... description I0..1stringTextual description of the container
.... type I0..1CodeableConceptKind of container directly associated with specimen
Binding: SpecimenContainerType (example)
.... capacity I0..1SimpleQuantityContainer volume or size
.... specimenQuantity I0..1SimpleQuantityQuantity of specimen within container
.... additive[x] I0..1Additive associated with container
Binding: v2 Additive (example)
..... additiveCodeableConceptCodeableConcept
..... additiveReferenceReference(QICoreSubstance)
... condition ΣI0..*CodeableConceptState of the specimen
Binding: v2 Specimen Condition (extensible)
... note I0..*AnnotationComments

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Specimen.languagepreferredCommonLanguages
Max Binding: AllLanguages
Specimen.statusrequiredSpecimenStatus
Specimen.typeexamplev2.0487
Specimen.collection.methodexampleFHIRSpecimenCollectionMethod
Specimen.collection.bodySiteexampleSNOMEDCTBodyStructures
Specimen.collection.fastingStatus[x]extensiblev2.0916
Specimen.processing.procedureexampleSpecimenProcessingProcedure
Specimen.container.typeexampleSpecimenContainerType
Specimen.container.additive[x]examplev2.0371
Specimen.conditionextensiblev2.0493

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2SpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3SpecimenIf 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-4SpecimenIf 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-5SpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6SpecimenA resource should have narrative for robust management
: text.`div`.exists()
ele-1Specimen.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.accessionIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.receivedTimeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.parentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.requestAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.collectionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.collection.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.collection.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.collection.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.collection.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.collection.collectorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.collection.collected[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.collection.durationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.collection.quantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.collection.methodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.collection.bodySiteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.collection.fastingStatus[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.processingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.processing.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.processing.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.processing.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.processing.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.processing.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.processing.procedureAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.processing.additiveAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.processing.time[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.containerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.container.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.container.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.container.extension:container-sequenceNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.container.extension:container-sequenceNumberMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.container.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Specimen.container.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Specimen.container.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.container.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.container.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.container.capacityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.container.specimenQuantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.container.additive[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.conditionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Specimen.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())