Common Data Models Harmonization
1.0.0 - STU 1 Publication

Common Data Models Harmonization, published by HL7 International - Biomedical Research and Regulation Work Group. This is not an authorized publication; it is the continuous build for version 1.0.0). This version is based on the current content of https://github.com/HL7/cdmh/ and changes regularly. See the Directory of published versions

Resource Profile: CdmhSpecimen

Defining URL:http://hl7.org/fhir/us/cdmh/StructureDefinition/cdmh-specimen
Version:1.0.0
Name:CdmhSpecimen
Title:CDMH Specimen
Status:Draft as of 9/1/19
Definition:

This is the Specimen Resource profile for the IG.

Publisher:HL7 International - Biomedical Research and Regulation Work Group
Copyright:

Used by permission of HL7, all rights reserved Creative Commons License

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

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

Formal Views of Profile Content

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

This structure is derived from Specimen

Summary

Must-Support: 7 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
Specimen.languagepreferredCommonLanguages
Max Binding: AllLanguages
Specimen.statusrequiredSpecimenStatus
Specimen.typeexampleHl7VSSpecimenType
Specimen.collection.methodexampleFHIRSpecimenCollectionMethod
Specimen.collection.bodySiteexampleSNOMEDCTBodyStructures
Specimen.collection.fastingStatus[x]extensibleHl7VSRelevantClincialInformation
Specimen.processing.procedureexampleSpecimenProcessingProcedure
Specimen.container.typeexampleSpecimenContainerType
Specimen.container.additive[x]exampleHl7VSAdditivePreservative
Specimen.conditionextensibleHl7VSSpecimenCondition

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.collected[x]:collectedDateTimeAll 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.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())