This page is part of the US Core (v6.1.0: STU6 Update) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-specimen | Version: 6.1.0 | |||
Active as of 2022-09-27 | Computable Name: USCoreSpecimenProfile | |||
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License |
This profile sets minimum expectations for the Specimen resource to record, search, and fetch “substances being sampled or tested. (e.g., nasopharyngeal swab, whole blood, serum, urine, wound swab)” associated with a patient to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains the way the elements are used when using this profile. It provides the floor for standards development for specific use cases.
Example Usage Scenarios:
The following are example usage scenarios for the US Core Specimen profile:
The following data elements must always be present (Mandatory definition) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements.
Each Specimen Must Have:
Each Specimen Must Support:
Profile Specific Implementation Guidance:
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Specimen
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Specimen | 0..* | Specimen | Sample for analysis | |
type | S | 1..1 | CodeableConcept | (USCDI) Kind of material that forms the specimen Binding: Specimen type (extensible) |
subject | S | 0..1 | Reference(US Core Patient Profile) | (USCDI) The patient where the specimen came from. |
Documentation for this format |
Path | Conformance | ValueSet |
Specimen.type | extensible | SpecimenType |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Specimen | 0..* | Specimen | 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 |
status | ?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error Binding: SpecimenStatus (required): Codes providing the status/availability of a specimen. |
type | SΣ | 1..1 | CodeableConcept | (USCDI) Kind of material that forms the specimen Binding: Specimen type (extensible) |
subject | SΣ | 0..1 | Reference(US Core Patient Profile) | (USCDI) The patient where the specimen came from. |
Documentation for this format |
Path | Conformance | ValueSet |
Specimen.status | required | SpecimenStatus |
Specimen.type | extensible | SpecimenType |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Specimen | 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-4 | error | Specimen | 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-5 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Specimen | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Specimen | 0..* | Specimen | 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 | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
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 | ||||
identifier | Σ | 0..* | Identifier | External Identifier | ||||
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 | SΣ | 1..1 | CodeableConcept | (USCDI) Kind of material that forms the specimen Binding: Specimen type (extensible) | ||||
subject | SΣ | 0..1 | Reference(US Core Patient Profile) | (USCDI) The patient where the specimen came from. | ||||
receivedTime | Σ | 0..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 | 0..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] | Σ | 0..1 | Collection time | |||||
collectedDateTime | dateTime | |||||||
collectedPeriod | Period | |||||||
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 | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Specimen.language | preferred | CommonLanguages
| ||||
Specimen.status | required | SpecimenStatus | ||||
Specimen.type | extensible | SpecimenType | ||||
Specimen.collection.method | example | FHIRSpecimenCollectionMethod | ||||
Specimen.collection.bodySite | example | SNOMEDCTBodyStructures | ||||
Specimen.collection.fastingStatus[x] | extensible | Hl7VSRelevantClincialInformation | ||||
Specimen.processing.procedure | example | SpecimenProcessingProcedure | ||||
Specimen.container.type | example | SpecimenContainerType | ||||
Specimen.container.additive[x] | example | Hl7VSAdditivePreservative | ||||
Specimen.condition | extensible | Hl7VSSpecimenCondition |
Id | Grade | Path(s) | Details | Requirements |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
This structure is derived from Specimen
Differential View
This structure is derived from Specimen
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Specimen | 0..* | Specimen | Sample for analysis | |
type | S | 1..1 | CodeableConcept | (USCDI) Kind of material that forms the specimen Binding: Specimen type (extensible) |
subject | S | 0..1 | Reference(US Core Patient Profile) | (USCDI) The patient where the specimen came from. |
Documentation for this format |
Path | Conformance | ValueSet |
Specimen.type | extensible | SpecimenType |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Specimen | 0..* | Specimen | 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 |
status | ?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error Binding: SpecimenStatus (required): Codes providing the status/availability of a specimen. |
type | SΣ | 1..1 | CodeableConcept | (USCDI) Kind of material that forms the specimen Binding: Specimen type (extensible) |
subject | SΣ | 0..1 | Reference(US Core Patient Profile) | (USCDI) The patient where the specimen came from. |
Documentation for this format |
Path | Conformance | ValueSet |
Specimen.status | required | SpecimenStatus |
Specimen.type | extensible | SpecimenType |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Specimen | 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-4 | error | Specimen | 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-5 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Specimen | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Specimen | 0..* | Specimen | 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 | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
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 | ||||
identifier | Σ | 0..* | Identifier | External Identifier | ||||
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 | SΣ | 1..1 | CodeableConcept | (USCDI) Kind of material that forms the specimen Binding: Specimen type (extensible) | ||||
subject | SΣ | 0..1 | Reference(US Core Patient Profile) | (USCDI) The patient where the specimen came from. | ||||
receivedTime | Σ | 0..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 | 0..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] | Σ | 0..1 | Collection time | |||||
collectedDateTime | dateTime | |||||||
collectedPeriod | Period | |||||||
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 | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Specimen.language | preferred | CommonLanguages
| ||||
Specimen.status | required | SpecimenStatus | ||||
Specimen.type | extensible | SpecimenType | ||||
Specimen.collection.method | example | FHIRSpecimenCollectionMethod | ||||
Specimen.collection.bodySite | example | SNOMEDCTBodyStructures | ||||
Specimen.collection.fastingStatus[x] | extensible | Hl7VSRelevantClincialInformation | ||||
Specimen.processing.procedure | example | SpecimenProcessingProcedure | ||||
Specimen.container.type | example | SpecimenContainerType | ||||
Specimen.container.additive[x] | example | Hl7VSAdditivePreservative | ||||
Specimen.condition | extensible | Hl7VSSpecimenCondition |
Id | Grade | Path(s) | Details | Requirements |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
This structure is derived from Specimen
Other representations of profile: CSV, Excel, Schematron
Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.
The syntax used to describe the interactions is described here.
patient/Specimen.rs
).The following search parameters and search parameter combinations SHALL be supported:
SHALL support both read Specimen by id
AND Specimen search using the _id
search parameter:
GET [base]/Specimen/[id]
or GET [base]/Specimen?_id=[id]
Example:
Implementation Notes: (how to search by the logical id of the resource)
The following search parameter combinations SHOULD be supported:
SHOULD support searching for all specimens for a patient using the patient
search parameter:
GET [base]/Specimen?patient={Type/}[id]
Example:
Implementation Notes: Fetches a bundle of all Specimen resources for the specified patient (how to search by reference)
Servers MAY support the _include
parameter to request that additional resources be included in the response of a search query. For example, when searching for an Observation or DiagnosticReport that references Specimen, the client can use the _include
parameter to retrieve information about a specimen associated with the search results. The syntax for querying an Observation and the associated Specimen is:
GET [base]/[Resource-type]?[parameter1]=[value1]{&...}&_include=Observation:specimen
Example:
GET [base]/Observation?_id=9163726&_include=Observation:specimen