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

QI-Core Implementation Guide, Clinical Quality Improvement WG - CI build for vesion 4.0.0). This version is based on the current content of https://github.com/cqframework/qi-core/ and changes regularly. 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..*Sample for analysis
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Identifier
... accessionIdentifier Σ0..1IdentifierIdentifier assigned by the lab
... status ?!Σ0..1codeavailable | unavailable | unsatisfactory | entered-in-error
Binding: SpecimenStatus (required)
... type SΣ0..1CodeableConceptKind of material that forms the specimen
Binding: v2 Specimen Type (example)
... subject SΣ0..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Σ0..1dateTimeThe time when specimen was received for processing
... parent 0..*Reference(QICoreSpecimen)Specimen from which this specimen originated
... request 0..*Reference(ServiceRequest)Why the specimen was collected
... collection I0..1BackboneElementCollection details
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... collector Σ0..1Reference(QICorePractitioner)Who collected the specimen
.... collected[x] SΣ0..1Collection time
..... collectedDateTimedateTime
..... collectedPeriodPeriod
.... duration Σ0..1DurationHow long it took to collect specimen
.... quantity 0..1SimpleQuantityThe quantity of specimen collected
.... method 0..1CodeableConceptTechnique used to perform collection
Binding: FHIRSpecimenCollectionMethod (example)
.... bodySite S0..1CodeableConceptAnatomical collection site
Binding: SNOMEDCTBodyStructures (example)
.... fastingStatus[x] Σ0..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 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... description 0..1stringTextual description of procedure
.... procedure S0..1CodeableConceptIndicates the treatment step applied to the specimen
Binding: SpecimenProcessingProcedure (example)
.... additive 0..*Reference(QICoreSubstance)Material used in the processing step
.... time[x] 0..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 0..*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 ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... identifier Σ0..*IdentifierId for the container
.... description 0..1stringTextual description of the container
.... type 0..1CodeableConceptKind of container directly associated with specimen
Binding: SpecimenContainerType (example)
.... capacity 0..1SimpleQuantityContainer volume or size
.... specimenQuantity 0..1SimpleQuantityQuantity of specimen within container
.... additive[x] 0..1Additive associated with container
Binding: v2 Additive (example)
..... additiveCodeableConceptCodeableConcept
..... additiveReferenceReference(StructureDefinition-qicore-substance.html)
... condition Σ0..*CodeableConceptState of the specimen
Binding: v2 Specimen Condition (extensible)
... note 0..*AnnotationComments

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen I0..*Sample for analysis
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal Identifier
... accessionIdentifier Σ0..1IdentifierIdentifier assigned by the lab
... status ?!Σ0..1codeavailable | unavailable | unsatisfactory | entered-in-error
Binding: SpecimenStatus (required)
... type SΣ0..1CodeableConceptKind of material that forms the specimen
Binding: v2 Specimen Type (example)
... subject SΣ0..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Σ0..1dateTimeThe time when specimen was received for processing
... parent 0..*Reference(QICoreSpecimen)Specimen from which this specimen originated
... request 0..*Reference(ServiceRequest)Why the specimen was collected
... collection I0..1BackboneElementCollection details
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... collector Σ0..1Reference(QICorePractitioner)Who collected the specimen
.... collected[x] SΣ0..1Collection time
..... collectedDateTimedateTime
..... collectedPeriodPeriod
.... duration Σ0..1DurationHow long it took to collect specimen
.... quantity 0..1SimpleQuantityThe quantity of specimen collected
.... method 0..1CodeableConceptTechnique used to perform collection
Binding: FHIRSpecimenCollectionMethod (example)
.... bodySite S0..1CodeableConceptAnatomical collection site
Binding: SNOMEDCTBodyStructures (example)
.... fastingStatus[x] Σ0..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 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... description 0..1stringTextual description of procedure
.... procedure S0..1CodeableConceptIndicates the treatment step applied to the specimen
Binding: SpecimenProcessingProcedure (example)
.... additive 0..*Reference(QICoreSubstance)Material used in the processing step
.... time[x] 0..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 0..*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 ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... identifier Σ0..*IdentifierId for the container
.... description 0..1stringTextual description of the container
.... type 0..1CodeableConceptKind of container directly associated with specimen
Binding: SpecimenContainerType (example)
.... capacity 0..1SimpleQuantityContainer volume or size
.... specimenQuantity 0..1SimpleQuantityQuantity of specimen within container
.... additive[x] 0..1Additive associated with container
Binding: v2 Additive (example)
..... additiveCodeableConceptCodeableConcept
..... additiveReferenceReference(StructureDefinition-qicore-substance.html)
... condition Σ0..*CodeableConceptState of the specimen
Binding: v2 Specimen Condition (extensible)
... note 0..*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-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-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-6SpecimenA resource should have narrative for robust management
: text.div.exists()
dom-5SpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
ele-1Specimen.collectionAll 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.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.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()