Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Composition-Labdraft2.4.02025-05-13

This profile defines the UK constraints and extensions on the International FHIR resource Composition.


Profile_Purpose

This profile allows a record of a set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement.

A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition SHALL be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition SHALL be included as subsequent entries in the Bundle, for example Patient, Practitioner, Encounter, etc.

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
versionNumberI0..*Extension(string)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueIdentifierIdentifier
valueReference0..1Reference(ServiceRequestLabEu)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueReferenceReference(PractitionerEu | Device | PatientEuLab | RelatedPerson | PractitionerRoleEu | Organization)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
valueReferenceReference(DiagnosticReportLabEu)
careSettingTypeI0..1Extension(CodeableConcept)
modifierExtension?! I0..*Extension
identifierΣ0..1Identifier
statusS Σ ?!1..1codeBinding
typeS Σ1..1CodeableConceptIPSBinding
studyTypeΣ0..*CodeableConceptBinding
specialtyΣ0..*CodeableConceptBinding
subjectS Σ1..1Reference(PatientEuLab | PatientAnimalEu | Group | Location | Device)
encounterΣ0..1Reference(Encounter)
dateΣ1..1dateTime
authorS Σ1..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
titleΣ1..1string
confidentialityS Σ0..1codeBinding
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
mode1..1codeBinding
time0..1dateTime
party0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)
custodianS Σ0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
code1..1codeBinding
targetIdentifierIdentifier
targetReferenceReference(Composition)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
codeΣ0..*CodeableConcept
periodΣ0..1Period
detailΣ0..*Reference(Resource)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
title1..1string
code1..1CodeableConceptIPSBinding
author0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
focus0..1Reference(Resource)
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryI0..*Reference(Resource)
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
title1..1string
code1..1CodeableConceptIPSBinding
author0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
focus0..1Reference(Resource)
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryI1..*Reference(ObservationResultsLaboratoryEu)
emptyReasonI0..1CodeableConceptBinding
sectionI0..0see (section)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
title1..1string
code1..1CodeableConceptIPSBinding
author0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
focus0..1Reference(Resource)
textI0..0Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryI0..0Reference(Resource)
emptyReasonI0..1CodeableConceptBinding
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
title1..1string
code1..1CodeableConceptIPSBinding
author0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
focus0..1Reference(Resource)
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryI1..*Reference(ObservationResultsLaboratoryEu)
emptyReasonI0..1CodeableConceptBinding
sectionI0..0see (section)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
title1..1string
code1..1CodeableConceptIPSPattern
author0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
focus0..1Reference(Resource)
textI1..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryI0..0Reference(Resource)
emptyReasonI0..1CodeableConceptBinding
sectionI0..0see (section)

Detailed Descriptions

Composition
DefinitionA set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition SHALL be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition SHALL be included as subsequent entries in the Bundle, for example Patient, Practitioner, Encounter, etc.
Cardinality0...*
Comments

While the focus of this specification is on patient-specific clinical statements, this resource can also apply to other healthcare-related statements such as study protocol designs, healthcare invoices and other activities that are not necessarily patient-specific or clinical.

Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
Mappings
  • rim: Entity. Role, or Act
  • workflow: Event
  • rim: Document[classCode="DOC" and moodCode="EVN" and isNormalAct()]
  • cda: ClinicalDocument
  • fhirdocumentreference: when described by DocumentReference
Composition.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typeid
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.

Composition.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())
Composition.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())
Composition.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())
Composition.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: Act.text?
Composition.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: N/A
Composition.extension
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Composition.extension:versionNumber
DefinitionVersion specific identifier for the composition, assigned when each version is created/updated.
Cardinality0...*
TypeExtension(string)
Comments

While each resource, including the composition itself, has its own version identifier, this is a formal identifier for the logical version of the composition as a whole. It would remain constant if the resources were moved to a new server, and all got new individual resource versions, for example.

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()
Composition.extension:basedOn-order-or-requisition
DefinitionThis extension provides a link to the order [(Reference(ServiceRequest)] or requisition [ServiceRequest.requisition (i.e., 'Request.groupIdentifier')] that this report document is based on and fulfills.
Cardinality0...*
TypeExtension(IdentifierReference(ServiceRequest))
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()
Composition.extension:basedOn-order-or-requisition.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
Composition.extension:basedOn-order-or-requisition.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Composition.extension:basedOn-order-or-requisition.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.eu/fhir/StructureDefinition/composition-basedOn-order-or-requisition

Mappings
  • rim: N/A
Composition.extension:basedOn-order-or-requisition.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality0...1
TypeIdentifier
SlicingUnordered, Open, by $this(Type)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Composition.extension:basedOn-order-or-requisition.value[x]:valueReference
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality0...1
TypeReference(ServiceRequestLabEu)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Composition.extension:information-recipient
DefinitionThis extension applies to the Composition resource and is used to represent an intended recipient of the composition.
Cardinality0...*
TypeExtension(Reference(Practitioner | Device | Patient | RelatedPerson | PractitionerRole | Organization))
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()
Composition.extension:information-recipient.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
Composition.extension:information-recipient.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Composition.extension:information-recipient.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.eu/fhir/StructureDefinition/information-recipient

Mappings
  • rim: N/A
Composition.extension:information-recipient.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality0...1
TypeReference(PractitionerEu | Device | PatientEuLab | RelatedPerson | PractitionerRoleEu | Organization)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Composition.extension:diagnosticReport-reference
DefinitionThis extension provides a reference to the DiagnosticReport instance that is associated with this Composition.
Cardinality0...1
TypeExtension(Reference(DiagnosticReport))
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()
Composition.extension:diagnosticReport-reference.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
Composition.extension:diagnosticReport-reference.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Composition.extension:diagnosticReport-reference.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.eu/fhir/laboratory/StructureDefinition/composition-diagnosticReportReference

Mappings
  • rim: N/A
Composition.extension:diagnosticReport-reference.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality1...1
TypeReference(DiagnosticReportLabEu)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Composition.extension:diagnosticReport-reference.value[x].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
Composition.extension:diagnosticReport-reference.value[x].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
Composition.extension:diagnosticReport-reference.value[x].reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality1...1
Typestring
SummaryTrue
Comments

Added to the FHIR R4 guide to strictly conform with the R4 rules for document bundle resources inclusion. Using this extension implies to accept a circular reference Composition to/from DiagnosticReport

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Composition.extension:diagnosticReport-reference.value[x].type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Composition.extension:diagnosticReport-reference.value[x].identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .identifier
Composition.extension:diagnosticReport-reference.value[x].display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Composition.extension:careSettingType
DefinitionThe type of care setting associated with a composition or a list.
Cardinality0...1
TypeExtension(CodeableConcept)
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
Composition.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.

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
Composition.identifier
DefinitionIdentifiers assigned to this Laboratory Report by the performer or other systems. It shall be common to several report versions
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

Composition.identifier SHALL be equal to one of the DiagnosticReport.identifier, if at least one exists

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.identifier
  • w5: FiveWs.identifier
  • rim: Document.id / Document.setId
  • cda: .setId
  • fhirdocumentreference: DocumentReference.masterIdentifier
Composition.status
DefinitionThe workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.
Cardinality1...1
Typecode
Binding

The workflow/clinical status of the composition.

CompositionStatus (required)
Must SupportTrue
ModifierTrue
SummaryTrue
Requirements

Need to be able to mark interim, amended, or withdrawn compositions or documents.

Comments

DiagnosticReport.status and Composition.status shall be aligned, based on the http://hl7.eu/fhir/laboratory/ConceptMap/ConceptMap-eu-diagRptStatus2CompStatus mapping

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.status
  • w5: FiveWs.status
  • rim: interim: .completionCode="IN" & ./statusCode[isNormalDatatype()]="active"; final: .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and not(./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition", code) and isNormalAct()]); amended: .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition", code) and isNormalAct() and statusCode="completed"]; withdrawn : .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete"
  • cda: n/a
  • fhirdocumentreference: DocumentReference.status
Composition.type
DefinitionSpecifies that it refers to a Laboratory Report
Cardinality1...1
TypeCodeableConceptIPS
Binding

SNOMED CT Document Type

UKCoreDocumentType (preferred)
Must SupportTrue
SummaryTrue
Requirements

Key metadata element describing the composition, used in searching/filtering.

Comments

At least one DiagnosticReport.code.coding and Composition.type.coding SHALL be equal

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.code
  • w5: FiveWs.class
  • rim: ./code
  • cda: .code
  • fhirdocumentreference: DocumentReference.type
Composition.category
DefinitionA code that classifies this laboratory report. Two basic categories has been selected in this guide: laboratory specialty and Study type. Laboratory specialty is characteristic of the laboratory that produced the test result while Study type is an arbitrary classificion of the test type.
Cardinality0...*
TypeCodeableConceptIPS
Binding

A ValueSet to identify the category of a composition.

UKCoreCompositionCategory (preferred)
SummaryTrue
Requirements

Helps humans to assess whether the composition is of interest when viewing an index of compositions or documents.

Comments

DiagnosticReport.category and Composition.category shall be aligned

SlicingUnordered, Open, by $this(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.subject
  • w5: FiveWs.class
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
  • cda: n/a
  • fhirdocumentreference: DocumenttReference.category
Composition.category:studyType
DefinitionLaboratory services, i.e., results of tests performed, could be characterized using typology of services, commonly called study types. Study type could be seen as an attribute or grouping mechanism that assigns a common clinical sense to certain types of laboratory test results., e.g., Hemoglobin, Platelet count, etc. belongs to 'Hematology study'.
Cardinality0...*
TypeCodeableConcept
BindingLabStudyTypesEuVs (required)
SummaryTrue
Requirements

Helps humans to assess whether the composition is of interest when viewing an index of compositions or documents.

Comments

In comparison to the laboratory specialty which is an attribute of laboratory, study type is a categorization of laboratory service. It needs to be mentioned that classification of test to study types in not standardized.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.subject
  • w5: FiveWs.class
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
  • cda: n/a
  • fhirdocumentreference: DocumenttReference.category
Composition.category:specialty
DefinitionLaboratory specialty is an attribute of any laboratory setting representing professional qualification of the laboratory to execute certain kind of laboratory tests.
Cardinality0...*
TypeCodeableConcept
BindingLabSpecialtyEuVs (required)
SummaryTrue
Requirements

Helps humans to assess whether the composition is of interest when viewing an index of compositions or documents.

Comments

Specialty could be used as parameter for searching/querying of laboratory test results.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.subject
  • w5: FiveWs.class
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
  • cda: n/a
  • fhirdocumentreference: DocumenttReference.category
Composition.subject
DefinitionWho or what this report is about. The report can be about a human patient, a living subject, a device (e.g. a machine), a location or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).
Cardinality1...1
TypeReference(PatientEuLab | PatientAnimalEu | Group | Location | Device)
Must SupportTrue
SummaryTrue
Requirements

Essential metadata for searching for the composition. Identifies who and/or what the composition/document is about.

Comments

DiagnosticReport and Composition SHALL have the same subject

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.subject[x]
  • rim: .participation[typeCode="SBJ"].role[typeCode="PAT"]
  • cda: .recordTarget
  • fhirdocumentreference: DocumentReference.subject
  • w5: FiveWs.subject
Composition.encounter
DefinitionThe healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport is about.
Cardinality0...1
TypeReference(Encounter)
SummaryTrue
Requirements

Provides context for the composition and supports searching.

Comments

This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).

DiagnosticReport and Composition SHALL have the same encounter.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.context
  • w5: FiveWs.context
  • rim: unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and classCode=("ENC", "PCPR") and isNormalAct])
  • cda: .componentOf.encompassingEncounter
  • fhirdocumentreference: DocumentReference.context.encounter
Composition.date
DefinitionThe composition editing time, when the composition was last logically changed by the author.
Cardinality1...1
TypedateTime
SummaryTrue
Requirements

dateTime is used for tracking, organizing versions and searching. Note that this is the time of authoring. When packaged in a document, Bundle.timestamp is the date of packaging.

Comments

The Last Modified Date on the composition may be after the date of the document was attested without being changed.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.occurrence[x]
  • w5: FiveWs.done[x]
  • rim: .effectiveTime[type="TS"]
  • cda: .effectiveTime
  • fhirdocumentreference: DocumentReference.content.attachment.date, DocumentReference.created
Composition.author
DefinitionIdentifies who is responsible for the information in the Laboratory Report, not necessarily who typed it in.
Cardinality1...*
TypeReference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
Must SupportTrue
SummaryTrue
Requirements

Identifies who is responsible for the content.

Comments

If a DiagnosticReport.resultsInterpreter exists this is expected to be a Composition.author; otherwise a DiagnosticReport.performer should be an author.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.performer
  • w5: FiveWs.author
  • rim: .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
  • cda: .author.assignedAuthor
  • fhirdocumentreference: DocumentReference.agent
Composition.title
DefinitionOfficial human-readable label for the composition. For this document should be "Laboratory Report" or any equivalent translation
Cardinality1...1
Typestring
SummaryTrue
Comments

For many compositions, the title is the same as the text or a display name of Composition.type (e.g. a "consultation" or "progress note"). Note that CDA does not make title mandatory, but there are no known cases where it is useful for title to be omitted, so it is mandatory here. Feedback on this requirement is welcome during the trial use period.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./title
  • cda: .title
  • fhirdocumentreference: DocumentReference.description, DocumentReference.content.attachment.title
Composition.confidentiality
DefinitionThe code specifying the level of confidentiality of the Composition.
Cardinality0...1
Typecode
Binding

Codes specifying the level of confidentiality of the composition.

v3.ConfidentialityClassification (required)
Must SupportTrue
SummaryTrue
Comments

The exact use of this element, and enforcement and issues related to highly sensitive documents are out of scope for the base specification, and delegated to implementation profiles (see security section). This element is labeled as a modifier because highly confidential documents must not be treated as if they are not.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .confidentialityCode
  • cda: .confidentialityCode
  • fhirdocumentreference: DocumentReference.securityLabel
Composition.attester
DefinitionA participant who has attested to the accuracy of the composition/document.
Cardinality0...*
TypeBackboneElement
Requirements

Identifies responsibility for the accuracy of the composition content.

Comments

Only list each attester once.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
  • cda: .authenticator/.legalAuthenticator
  • fhirdocumentreference: DocumentReference.authenticator
Composition.attester.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
Composition.attester.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.

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
Composition.attester.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
Composition.attester.mode
DefinitionThe type of attestation the authenticator offers.
Cardinality1...1
Typecode
Binding

The way in which a person authenticated a composition.

CompositionAttestationMode (required)
Requirements

Indicates the level of authority of the attestation.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: unique(./modeCode)
  • cda: implied by .authenticator/.legalAuthenticator
Composition.attester.time
DefinitionWhen the composition was attested by the party.
Cardinality0...1
TypedateTime
Requirements

Identifies when the information in the composition was deemed accurate. (Things may have changed since then.).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./time[type="TS" and isNormalDatatype()]
  • cda: .authenticator.time
Composition.attester.party
DefinitionWho attested the composition in the specified way.
Cardinality0...1
TypeReference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)
Requirements

Identifies who has taken on the responsibility for accuracy of the composition content.

Comments

For a Laboratory Report it is usually non expected that the attester would be a Patient or a RealtedPerson

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.witness
  • rim: ./role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV", "PSN") and isNormalEntity()] or ./role[classCode="ASSIGNED" and isNormalRole and not(player)]/scoper[determinerCode="INST" and classCode="ORG" and isNormalEntity()]
  • cda: .authenticator.assignedEnttty
Composition.custodian
DefinitionIdentifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.
Cardinality0...1
TypeReference(Organization)
Must SupportTrue
SummaryTrue
Requirements

Identifies where to go to find the current version, where to report issues, etc.

Comments

This is useful when documents are derived from a composition - provides guidance for how to get the latest version of the document. This is optional because this is sometimes not known by the authoring system, and can be inferred by context. However, it is important that this information be known when working with a derived document, so providing a custodian is encouraged.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"]
  • cda: .custodian.assignedCustodian
  • fhirdocumentreference: DocumentReference.custodian
Composition.relatesTo
DefinitionRelationships that this composition has with other compositions or documents that already exist.
Cardinality0...*
TypeBackboneElement
Comments

A document is a version specific composition.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship
  • cda: .relatedDocument
  • fhirdocumentreference: DocumentReference.relatesTo
Composition.relatesTo.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
Composition.relatesTo.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.

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
Composition.relatesTo.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
Composition.relatesTo.code
DefinitionThe type of relationship that this composition has with anther composition or document.
Cardinality1...1
Typecode
Binding

The type of relationship between documents.

DocumentRelationshipType (required)
Comments

If this document appends another document, then the document cannot be fully understood without also accessing the referenced document.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship.typeCode
  • cda: .relatedDocument.typeCode
  • fhirdocumentreference: DocumentReference.relatesTo.code
Composition.relatesTo.target[x]
DefinitionThe target composition/document of this relationship.
Cardinality1...1
TypeIdentifier
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .target[classCode="DOC", moodCode="EVN"].id
  • cda: .relatedDocument.id
  • fhirdocumentreference: DocumentReference.relatesTo.target
Composition.event
DefinitionThe clinical service, such as a colonoscopy or an appendectomy, being documented.
Cardinality0...*
TypeBackboneElement
SummaryTrue
Requirements

Provides context for the composition and creates a linkage between a resource describing an event and the composition created describing the event.

Comments

The event needs to be consistent with the type element, though can provide further information if desired.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
  • cda: .documentationOf.serviceEvent
  • fhirdocumentreference: DocumentReference.event
Composition.event.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
Composition.event.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.

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
Composition.event.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
Composition.event.code
DefinitionThis list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.
Cardinality0...*
TypeCodeableConcept
Binding

This list of codes represents the main clinical acts being documented.

v3.ActCode (example)
SummaryTrue
Comments

An event can further specialize the act inherent in the typeCode, such as where it is simply "Procedure Report" and the procedure was a "colonoscopy". If one or more eventCodes are included, they SHALL NOT conflict with the values inherent in the classCode, practiceSettingCode or typeCode, as such a conflict would create an ambiguous situation. This short list of codes is provided to be used as key words for certain types of queries.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .code
  • cda: .code
  • fhirdocumentreference: DocumentReference.event.code
Composition.event.period
DefinitionThe period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.
Cardinality0...1
TypePeriod
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
  • cda: .effectiveTime
  • fhirdocumentreference: DocumentReference.event.period
Composition.event.detail
DefinitionThe description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.
Cardinality0...*
TypeReference(Resource)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode="SUBJ"].target
  • cda: n/a
Composition.section
DefinitionThe \"body\" of the report is organized as a tree of up to two levels of sections: top level sections represent laboratory specialties. A top level section SHALL contain either one text block carrying all the text results produced for this specialty along with Laboratory Data Entries or a set of Laboratory Report Item Sections. In the first case the specialty section happens to also be a leaf section. In the latter case, each (second level) leaf section contained in the (top level) specialty section represents a Report Item: i.e., a battery, a specimen study (especially in microbiology), or an individual test. In addition, any leaf section SHALL contain a Laboratory Data Entries containing the observations of that section in a machine-readable format.
Cardinality1...*
TypeBackboneElement
SlicingUnordered, Open, by $this.section(Exists), $this.entry(Exists)
Invariants
  • cmp-1: A section must contain at least one of text, entries, or sub-sections
    text.exists() or entry.exists() or section.exists()
  • cmp-2: A section can only have an emptyReason if it is empty
    emptyReason.empty() or entry.empty()
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.structuredBody.component.section
Composition.section.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
Composition.section.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.

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
Composition.section.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
Composition.section.title
DefinitionThe label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.
Cardinality1...1
Typestring
Aliasheader, label, caption
Requirements

Section headings are often standardized for different types of documents. They give guidance to humans on how the document is organized.

Comments

The title identifies the section for a human reader. The title must be consistent with the narrative of the resource that is the target of the section.content reference. Generally, sections SHOULD have titles, but in some documents, it is unnecessary or inappropriate. Typically, this is where a section has subsections that have their own adequately distinguishing title, or documents that only have a single section. Most Implementation Guides will make section title to be a required element.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./title
  • cda: .title
Composition.section.code
DefinitionA code identifying the kind of content contained within the section. This must be consistent with the section title.
Cardinality1...1
TypeCodeableConceptIPS
Binding

Classification of a section of a composition/document.

UKCoreCompositionSectionCode (extensible)
Requirements

Provides computable standardized labels to topics within the document.

Comments

The code identifies the section for an automated processor of the document. This is particularly relevant when using profiles to control the structure of the document.

If the section has content (instead of sub-sections), the section.code does not change the meaning or interpretation of the resource that is the content of the section in the comments for the section.code.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./code
  • cda: .code
Composition.section.author
DefinitionIdentifies who is responsible for the information in this section, not necessarily who typed it in.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
Requirements

Identifies who is responsible for the content.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.author
  • rim: .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
  • cda: .author.assignedAuthor
Composition.section.focus
DefinitionThe actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).
Cardinality0...1
TypeReference(Resource)
Comments

Typically, sections in a doument are about the subject of the document, whether that is a patient, or group of patients, location, or device, or whatever. For some kind of documents, some sections actually contain data about related entities. Typical examples are a section in a newborn discharge summary concerning the mother, or family history documents, with a section about each family member, though there are many other examples.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • cda: .subject? (CDA did not differentiate between subject and focus)
Composition.section.text
DefinitionA human-readable narrative that contains the attested content of the section, 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.
Cardinality0...1
TypeNarrative
Comments

Document profiles may define what content should be represented in the narrative to ensure clinical safety.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .text
  • cda: .text
Composition.section.mode
DefinitionHow the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.
Cardinality0...1
Typecode
Binding

The processing mode that applies to this section.

ListMode (required)
Requirements

Sections are used in various ways, and it must be known in what way it is safe to use the entries in them.

Comments

This element is labeled as a modifier because a change list must not be misunderstood as a complete list.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • rim: .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
  • cda: n/a
Composition.section.orderedBy
DefinitionSpecifies the order applied to the items in the section entries.
Cardinality0...1
TypeCodeableConcept
Binding

What order applies to the items in the entry.

ListOrderCodes (preferred)
Requirements

Important for presentation and rendering. Lists may be sorted to place more important information first or to group related entries.

Comments

Applications SHOULD render ordered lists in the order provided, but MAY allow users to re-order based on their own preferences as well. If there is no order specified, the order is unknown, though there may still be some order.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP].sequenceNumber > 1
  • cda: n/a
Composition.section.entry
DefinitionA reference to the actual resource from which the narrative in the section is derived.
Cardinality0...*
TypeReference(Resource)
Comments

If there are no entries in the list, an emptyReason SHOULD be provided.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
  • cda: .entry
Composition.section.emptyReason
DefinitionIf the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.
Cardinality0...1
TypeCodeableConcept
Binding

If a section is empty, why it is empty.

ListEmptyReasons (preferred)
Requirements

Allows capturing things like "none exist" or "not asked" which can be important for most lists.

Comments

The various reasons for an empty section make a significant interpretation to its interpretation. Note that this code is for use when the entire section content has been suppressed, and not for when individual items are omitted - implementers may consider using a text note or a flag on an entry in these cases.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
  • cda: n/a
Composition.section.section
DefinitionA nested sub-section within this section.
Cardinality0...*
Typesee (section)
Comments

Nested sections are primarily used to help human readers navigate to particular portions of the document.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.section
Composition.section:lab-no-subsections
DefinitionVariant 1: With this option, all laboratory report data entries are provided in the top level sections and no sub-sections are allowed.
Cardinality0...*
TypeBackboneElement
Invariants
  • cmp-1: A section must contain at least one of text, entries, or sub-sections
    text.exists() or entry.exists() or section.exists()
  • cmp-2: A section can only have an emptyReason if it is empty
    emptyReason.empty() or entry.empty()
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.structuredBody.component.section
Composition.section:lab-no-subsections.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
Composition.section:lab-no-subsections.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.

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
Composition.section:lab-no-subsections.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
Composition.section:lab-no-subsections.title
DefinitionThe label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.
Cardinality1...1
Typestring
Aliasheader, label, caption
Requirements

Section headings are often standardized for different types of documents. They give guidance to humans on how the document is organized.

Comments

The title identifies the section for a human reader. The title must be consistent with the narrative of the resource that is the target of the section.content reference. Generally, sections SHOULD have titles, but in some documents, it is unnecessary or inappropriate. Typically, this is where a section has subsections that have their own adequately distinguishing title, or documents that only have a single section. Most Implementation Guides will make section title to be a required element.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./title
  • cda: .title
Composition.section:lab-no-subsections.code
DefinitionA code identifying the kind of content contained within the section. This must be consistent with the section title.
Cardinality1...1
TypeCodeableConceptIPS
BindingLabStudyTypesEuVs (preferred)
Requirements

Provides computable standardized labels to topics within the document.

Comments

The code identifies the section for an automated processor of the document. This is particularly relevant when using profiles to control the structure of the document.

If the section has content (instead of sub-sections), the section.code does not change the meaning or interpretation of the resource that is the content of the section in the comments for the section.code.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./code
  • cda: .code
Composition.section:lab-no-subsections.author
DefinitionIdentifies who is responsible for the information in this section, not necessarily who typed it in.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
Requirements

Identifies who is responsible for the content.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.author
  • rim: .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
  • cda: .author.assignedAuthor
Composition.section:lab-no-subsections.focus
DefinitionThe actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).
Cardinality0...1
TypeReference(Resource)
Comments

Typically, sections in a doument are about the subject of the document, whether that is a patient, or group of patients, location, or device, or whatever. For some kind of documents, some sections actually contain data about related entities. Typical examples are a section in a newborn discharge summary concerning the mother, or family history documents, with a section about each family member, though there are many other examples.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • cda: .subject? (CDA did not differentiate between subject and focus)
Composition.section:lab-no-subsections.text
DefinitionA human-readable narrative that contains the attested content of the section, 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.
Cardinality0...1
TypeNarrative
Comments

Document profiles may define what content should be represented in the narrative to ensure clinical safety.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .text
  • cda: .text
Composition.section:lab-no-subsections.mode
DefinitionHow the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.
Cardinality0...1
Typecode
Binding

The processing mode that applies to this section.

ListMode (required)
Requirements

Sections are used in various ways, and it must be known in what way it is safe to use the entries in them.

Comments

This element is labeled as a modifier because a change list must not be misunderstood as a complete list.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • rim: .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
  • cda: n/a
Composition.section:lab-no-subsections.orderedBy
DefinitionSpecifies the order applied to the items in the section entries.
Cardinality0...1
TypeCodeableConcept
Binding

What order applies to the items in the entry.

ListOrderCodes (preferred)
Requirements

Important for presentation and rendering. Lists may be sorted to place more important information first or to group related entries.

Comments

Applications SHOULD render ordered lists in the order provided, but MAY allow users to re-order based on their own preferences as well. If there is no order specified, the order is unknown, though there may still be some order.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP].sequenceNumber > 1
  • cda: n/a
Composition.section:lab-no-subsections.entry
DefinitionA reference to the actual resource from which the narrative in the section is derived.
Cardinality1...*
TypeReference(ObservationResultsLaboratoryEu)
Comments

If there are no entries in the list, an emptyReason SHOULD be provided.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
  • cda: .entry
Composition.section:lab-no-subsections.emptyReason
DefinitionIf the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.
Cardinality0...1
TypeCodeableConcept
Binding

If a section is empty, why it is empty.

ListEmptyReasons (preferred)
Requirements

Allows capturing things like "none exist" or "not asked" which can be important for most lists.

Comments

The various reasons for an empty section make a significant interpretation to its interpretation. Note that this code is for use when the entire section content has been suppressed, and not for when individual items are omitted - implementers may consider using a text note or a flag on an entry in these cases.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
  • cda: n/a
Composition.section:lab-no-subsections.section
DefinitionA nested sub-section within this section.
Cardinality0...0
Typesee (section)
Comments

Nested sections are primarily used to help human readers navigate to particular portions of the document.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.section
Composition.section:lab-subsections
DefinitionVariant 2: With this option, this top level section doesn't include NEITHER a top level text NOR entry elements. Each Report Item is contained in a corresponding sub-sections which contains the Lab Report Data Entry.
Cardinality0...*
TypeBackboneElement
Invariants
  • cmp-1: A section must contain at least one of text, entries, or sub-sections
    text.exists() or entry.exists() or section.exists()
  • cmp-2: A section can only have an emptyReason if it is empty
    emptyReason.empty() or entry.empty()
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.structuredBody.component.section
Composition.section:lab-subsections.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
Composition.section:lab-subsections.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.

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
Composition.section:lab-subsections.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
Composition.section:lab-subsections.title
DefinitionThe label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.
Cardinality1...1
Typestring
Aliasheader, label, caption
Requirements

Section headings are often standardized for different types of documents. They give guidance to humans on how the document is organized.

Comments

The title identifies the section for a human reader. The title must be consistent with the narrative of the resource that is the target of the section.content reference. Generally, sections SHOULD have titles, but in some documents, it is unnecessary or inappropriate. Typically, this is where a section has subsections that have their own adequately distinguishing title, or documents that only have a single section. Most Implementation Guides will make section title to be a required element.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./title
  • cda: .title
Composition.section:lab-subsections.code
DefinitionA code identifying the kind of content contained within the section. This must be consistent with the section title.
Cardinality1...1
TypeCodeableConceptIPS
BindingLabStudyTypesEuVs (preferred)
Requirements

Provides computable standardized labels to topics within the document.

Comments

The code identifies the section for an automated processor of the document. This is particularly relevant when using profiles to control the structure of the document.

If the section has content (instead of sub-sections), the section.code does not change the meaning or interpretation of the resource that is the content of the section in the comments for the section.code.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./code
  • cda: .code
Composition.section:lab-subsections.author
DefinitionIdentifies who is responsible for the information in this section, not necessarily who typed it in.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
Requirements

Identifies who is responsible for the content.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.author
  • rim: .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
  • cda: .author.assignedAuthor
Composition.section:lab-subsections.focus
DefinitionThe actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).
Cardinality0...1
TypeReference(Resource)
Comments

Typically, sections in a doument are about the subject of the document, whether that is a patient, or group of patients, location, or device, or whatever. For some kind of documents, some sections actually contain data about related entities. Typical examples are a section in a newborn discharge summary concerning the mother, or family history documents, with a section about each family member, though there are many other examples.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • cda: .subject? (CDA did not differentiate between subject and focus)
Composition.section:lab-subsections.text
DefinitionA human-readable narrative that contains the attested content of the section, 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.
Cardinality0...0
TypeNarrative
Comments

Document profiles may define what content should be represented in the narrative to ensure clinical safety.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .text
  • cda: .text
Composition.section:lab-subsections.mode
DefinitionHow the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.
Cardinality0...1
Typecode
Binding

The processing mode that applies to this section.

ListMode (required)
Requirements

Sections are used in various ways, and it must be known in what way it is safe to use the entries in them.

Comments

This element is labeled as a modifier because a change list must not be misunderstood as a complete list.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • rim: .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
  • cda: n/a
Composition.section:lab-subsections.orderedBy
DefinitionSpecifies the order applied to the items in the section entries.
Cardinality0...1
TypeCodeableConcept
Binding

What order applies to the items in the entry.

ListOrderCodes (preferred)
Requirements

Important for presentation and rendering. Lists may be sorted to place more important information first or to group related entries.

Comments

Applications SHOULD render ordered lists in the order provided, but MAY allow users to re-order based on their own preferences as well. If there is no order specified, the order is unknown, though there may still be some order.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP].sequenceNumber > 1
  • cda: n/a
Composition.section:lab-subsections.entry
DefinitionA reference to the actual resource from which the narrative in the section is derived.
Cardinality0...0
TypeReference(Resource)
Comments

If there are no entries in the list, an emptyReason SHOULD be provided.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
  • cda: .entry
Composition.section:lab-subsections.emptyReason
DefinitionIf the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.
Cardinality0...1
TypeCodeableConcept
Binding

If a section is empty, why it is empty.

ListEmptyReasons (preferred)
Requirements

Allows capturing things like "none exist" or "not asked" which can be important for most lists.

Comments

The various reasons for an empty section make a significant interpretation to its interpretation. Note that this code is for use when the entire section content has been suppressed, and not for when individual items are omitted - implementers may consider using a text note or a flag on an entry in these cases.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
  • cda: n/a
Composition.section:lab-subsections.section
DefinitionA nested sub-section within this section.
Cardinality1...*
TypeBackboneElement
Comments

Nested sections are primarily used to help human readers navigate to particular portions of the document.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.section
Composition.section:lab-subsections.section.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
Composition.section:lab-subsections.section.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.

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
Composition.section:lab-subsections.section.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
Composition.section:lab-subsections.section.title
DefinitionThe label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.
Cardinality1...1
Typestring
Aliasheader, label, caption
Requirements

Section headings are often standardized for different types of documents. They give guidance to humans on how the document is organized.

Comments

The title identifies the section for a human reader. The title must be consistent with the narrative of the resource that is the target of the section.content reference. Generally, sections SHOULD have titles, but in some documents, it is unnecessary or inappropriate. Typically, this is where a section has subsections that have their own adequately distinguishing title, or documents that only have a single section. Most Implementation Guides will make section title to be a required element.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./title
  • cda: .title
Composition.section:lab-subsections.section.code
DefinitionA code identifying the kind of content contained within the section. This must be consistent with the section title.
Cardinality1...1
TypeCodeableConceptIPS
BindingLabStudyTypesEuVs (preferred)
Requirements

Provides computable standardized labels to topics within the document.

Comments

The code identifies the section for an automated processor of the document. This is particularly relevant when using profiles to control the structure of the document.

If the section has content (instead of sub-sections), the section.code does not change the meaning or interpretation of the resource that is the content of the section in the comments for the section.code.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./code
  • cda: .code
Composition.section:lab-subsections.section.author
DefinitionIdentifies who is responsible for the information in this section, not necessarily who typed it in.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
Requirements

Identifies who is responsible for the content.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.author
  • rim: .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
  • cda: .author.assignedAuthor
Composition.section:lab-subsections.section.focus
DefinitionThe actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).
Cardinality0...1
TypeReference(Resource)
Comments

Typically, sections in a doument are about the subject of the document, whether that is a patient, or group of patients, location, or device, or whatever. For some kind of documents, some sections actually contain data about related entities. Typical examples are a section in a newborn discharge summary concerning the mother, or family history documents, with a section about each family member, though there are many other examples.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • cda: .subject? (CDA did not differentiate between subject and focus)
Composition.section:lab-subsections.section.text
DefinitionA human-readable narrative that contains the attested content of the section, 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.
Cardinality0...1
TypeNarrative
Comments

Document profiles may define what content should be represented in the narrative to ensure clinical safety.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .text
  • cda: .text
Composition.section:lab-subsections.section.mode
DefinitionHow the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.
Cardinality0...1
Typecode
Binding

The processing mode that applies to this section.

ListMode (required)
Requirements

Sections are used in various ways, and it must be known in what way it is safe to use the entries in them.

Comments

This element is labeled as a modifier because a change list must not be misunderstood as a complete list.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • rim: .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
  • cda: n/a
Composition.section:lab-subsections.section.orderedBy
DefinitionSpecifies the order applied to the items in the section entries.
Cardinality0...1
TypeCodeableConcept
Binding

What order applies to the items in the entry.

ListOrderCodes (preferred)
Requirements

Important for presentation and rendering. Lists may be sorted to place more important information first or to group related entries.

Comments

Applications SHOULD render ordered lists in the order provided, but MAY allow users to re-order based on their own preferences as well. If there is no order specified, the order is unknown, though there may still be some order.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP].sequenceNumber > 1
  • cda: n/a
Composition.section:lab-subsections.section.entry
DefinitionA reference to the actual resource from which the narrative in the section is derived.
Cardinality1...*
TypeReference(ObservationResultsLaboratoryEu)
Comments

If there are no entries in the list, an emptyReason SHOULD be provided.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
  • cda: .entry
Composition.section:lab-subsections.section.emptyReason
DefinitionIf the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.
Cardinality0...1
TypeCodeableConcept
Binding

If a section is empty, why it is empty.

ListEmptyReasons (preferred)
Requirements

Allows capturing things like "none exist" or "not asked" which can be important for most lists.

Comments

The various reasons for an empty section make a significant interpretation to its interpretation. Note that this code is for use when the entire section content has been suppressed, and not for when individual items are omitted - implementers may consider using a text note or a flag on an entry in these cases.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
  • cda: n/a
Composition.section:lab-subsections.section.section
DefinitionA nested sub-section within this section.
Cardinality0...0
Typesee (section)
Comments

Nested sections are primarily used to help human readers navigate to particular portions of the document.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.section
Composition.section:annotations
DefinitionNarrative expression of comments accompanying the report, such as suggestions for evaluation, technical notes from the laboratory, etc. Examples: Suggestion: This result should be evaluated in relation to the patient's medical history and clinical condition. Technical note: A list of accredited examination(s) is available at www.laboratory.com.
Cardinality0...*
TypeBackboneElement
Invariants
  • cmp-1: A section must contain at least one of text, entries, or sub-sections
    text.exists() or entry.exists() or section.exists()
  • cmp-2: A section can only have an emptyReason if it is empty
    emptyReason.empty() or entry.empty()
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.structuredBody.component.section
Composition.section:annotations.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
Composition.section:annotations.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.

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
Composition.section:annotations.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
Composition.section:annotations.title
DefinitionThe label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.
Cardinality1...1
Typestring
Aliasheader, label, caption
Requirements

Section headings are often standardized for different types of documents. They give guidance to humans on how the document is organized.

Comments

The title identifies the section for a human reader. The title must be consistent with the narrative of the resource that is the target of the section.content reference. Generally, sections SHOULD have titles, but in some documents, it is unnecessary or inappropriate. Typically, this is where a section has subsections that have their own adequately distinguishing title, or documents that only have a single section. Most Implementation Guides will make section title to be a required element.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./title
  • cda: .title
Composition.section:annotations.code
DefinitionA code identifying the kind of content contained within the section. This must be consistent with the section title.
Cardinality1...1
TypeCodeableConceptIPS
Binding

Classification of a section of a composition/document.

DocumentSectionCodes (example)
Requirements

Provides computable standardized labels to topics within the document.

Comments

The code identifies the section for an automated processor of the document. This is particularly relevant when using profiles to control the structure of the document.

If the section has content (instead of sub-sections), the section.code does not change the meaning or interpretation of the resource that is the content of the section in the comments for the section.code.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Pattern

{
  "coding": [
    {
      "system": "http://loinc.org",
      "code": "48767-8"
    }
  ]
}

Mappings
  • rim: ./code
  • cda: .code
Composition.section:annotations.author
DefinitionIdentifies who is responsible for the information in this section, not necessarily who typed it in.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)
Requirements

Identifies who is responsible for the content.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.author
  • rim: .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
  • cda: .author.assignedAuthor
Composition.section:annotations.focus
DefinitionThe actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).
Cardinality0...1
TypeReference(Resource)
Comments

Typically, sections in a doument are about the subject of the document, whether that is a patient, or group of patients, location, or device, or whatever. For some kind of documents, some sections actually contain data about related entities. Typical examples are a section in a newborn discharge summary concerning the mother, or family history documents, with a section about each family member, though there are many other examples.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • cda: .subject? (CDA did not differentiate between subject and focus)
Composition.section:annotations.text
DefinitionA human-readable narrative that contains the attested content of the section, 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.
Cardinality1...1
TypeNarrative
Comments

Document profiles may define what content should be represented in the narrative to ensure clinical safety.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .text
  • cda: .text
Composition.section:annotations.mode
DefinitionHow the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.
Cardinality0...1
Typecode
Binding

The processing mode that applies to this section.

ListMode (required)
Requirements

Sections are used in various ways, and it must be known in what way it is safe to use the entries in them.

Comments

This element is labeled as a modifier because a change list must not be misunderstood as a complete list.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • rim: .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
  • cda: n/a
Composition.section:annotations.orderedBy
DefinitionSpecifies the order applied to the items in the section entries.
Cardinality0...1
TypeCodeableConcept
Binding

What order applies to the items in the entry.

ListOrderCodes (preferred)
Requirements

Important for presentation and rendering. Lists may be sorted to place more important information first or to group related entries.

Comments

Applications SHOULD render ordered lists in the order provided, but MAY allow users to re-order based on their own preferences as well. If there is no order specified, the order is unknown, though there may still be some order.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP].sequenceNumber > 1
  • cda: n/a
Composition.section:annotations.entry
DefinitionA reference to the actual resource from which the narrative in the section is derived.
Cardinality0...0
TypeReference(Resource)
Comments

If there are no entries in the list, an emptyReason SHOULD be provided.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
  • cda: .entry
Composition.section:annotations.emptyReason
DefinitionIf the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.
Cardinality0...1
TypeCodeableConcept
Binding

If a section is empty, why it is empty.

ListEmptyReasons (preferred)
Requirements

Allows capturing things like "none exist" or "not asked" which can be important for most lists.

Comments

The various reasons for an empty section make a significant interpretation to its interpretation. Note that this code is for use when the entire section content has been suppressed, and not for when individual items are omitted - implementers may consider using a text note or a flag on an entry in these cases.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
  • cda: n/a
Composition.section:annotations.section
DefinitionA nested sub-section within this section.
Cardinality0...0
Typesee (section)
Comments

Nested sections are primarily used to help human readers navigate to particular portions of the document.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
  • cda: .component.section

Table View

Composition..
Composition.extensionExtension..1
Composition.status..
Composition.type..
Composition.category..
Composition.subject..
Composition.author..
Composition.confidentiality..
Composition.custodian..
Composition.section..
Composition.section.code..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-Composition-Lab" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Composition-Lab" />
    <version value="2.4.0" />
    <name value="UKCoreCompositionLab" />
    <title value="UK Core Composition Lab" />
    <status value="draft" />
    <date value="2025-05-13" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [Composition](https://hl7.org/fhir/R4/Composition.html)." />
    <purpose value="This profile allows a record of a set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. \n\nA Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition SHALL be the first entry in a Bundle where `Bundle.type=document`, and any other resources referenced from Composition SHALL be included as subsequent entries in the Bundle, for example Patient, Practitioner, Encounter, etc." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Composition" />
    <baseDefinition value="http://hl7.eu/fhir/laboratory/StructureDefinition/Composition-eu-lab" />
    <derivation value="constraint" />
    <differential>
        <element id="Composition">
            <path value="Composition" />
            <definition value="A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition SHALL be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition SHALL be included as subsequent entries in the Bundle, for example Patient, Practitioner, Encounter, etc." />
        </element>
        <element id="Composition.extension:careSettingType">
            <path value="Composition.extension" />
            <sliceName value="careSettingType" />
            <short value="Used to support the type of care setting associated with a composition or a list." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CareSettingType" />
            </type>
        </element>
        <element id="Composition.status">
            <path value="Composition.status" />
            <short value="The workflow / clinical status of this composition." />
            <mustSupport value="true" />
        </element>
        <element id="Composition.type">
            <path value="Composition.type" />
            <short value="Specifies the particular kind of composition." />
            <mustSupport value="true" />
            <binding>
                <strength value="preferred" />
                <description value="SNOMED CT Document Type" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-DocumentType" />
            </binding>
        </element>
        <element id="Composition.category">
            <path value="Composition.category" />
            <binding>
                <strength value="preferred" />
                <description value="A ValueSet to identify the category of a composition." />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-CompositionCategory" />
            </binding>
        </element>
        <element id="Composition.subject">
            <path value="Composition.subject" />
            <short value="Who and / or what the composition is about." />
            <mustSupport value="true" />
        </element>
        <element id="Composition.author">
            <path value="Composition.author" />
            <short value="Identifies who is responsible for the information in the composition." />
            <mustSupport value="true" />
        </element>
        <element id="Composition.confidentiality">
            <path value="Composition.confidentiality" />
            <short value="The code specifying the level of confidentiality of the Composition." />
            <mustSupport value="true" />
        </element>
        <element id="Composition.custodian">
            <path value="Composition.custodian" />
            <short value="Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information." />
            <mustSupport value="true" />
        </element>
        <element id="Composition.section.code">
            <path value="Composition.section.code" />
            <binding>
                <strength value="extensible" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-CompositionSectionCode" />
            </binding>
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-Composition-Lab",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Composition-Lab",
    "version": "2.4.0",
    "name": "UKCoreCompositionLab",
    "title": "UK Core Composition Lab",
    "status": "draft",
    "date": "2025-05-13",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [Composition](https://hl7.org/fhir/R4/Composition.html).",
    "purpose": "This profile allows a record of a set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. \n\nA Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition SHALL be the first entry in a Bundle where `Bundle.type=document`, and any other resources referenced from Composition SHALL be included as subsequent entries in the Bundle, for example Patient, Practitioner, Encounter, etc.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Composition",
    "baseDefinition": "http://hl7.eu/fhir/laboratory/StructureDefinition/Composition-eu-lab",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Composition",
                "path": "Composition",
                "definition": "A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition SHALL be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition SHALL be included as subsequent entries in the Bundle, for example Patient, Practitioner, Encounter, etc."
            },
            {
                "id": "Composition.extension:careSettingType",
                "path": "Composition.extension",
                "sliceName": "careSettingType",
                "short": "Used to support the type of care setting associated with a composition or a list.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CareSettingType"
                        ]
                    }
                ]
            },
            {
                "id": "Composition.status",
                "path": "Composition.status",
                "short": "The workflow / clinical status of this composition.",
                "mustSupport": true
            },
            {
                "id": "Composition.type",
                "path": "Composition.type",
                "short": "Specifies the particular kind of composition.",
                "mustSupport": true,
                "binding": {
                    "strength": "preferred",
                    "description": "SNOMED CT Document Type",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-DocumentType"
                }
            },
            {
                "id": "Composition.category",
                "path": "Composition.category",
                "binding": {
                    "strength": "preferred",
                    "description": "A ValueSet to identify the category of a composition.",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-CompositionCategory"
                }
            },
            {
                "id": "Composition.subject",
                "path": "Composition.subject",
                "short": "Who and / or what the composition is about.",
                "mustSupport": true
            },
            {
                "id": "Composition.author",
                "path": "Composition.author",
                "short": "Identifies who is responsible for the information in the composition.",
                "mustSupport": true
            },
            {
                "id": "Composition.confidentiality",
                "path": "Composition.confidentiality",
                "short": "The code specifying the level of confidentiality of the Composition.",
                "mustSupport": true
            },
            {
                "id": "Composition.custodian",
                "path": "Composition.custodian",
                "short": "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.",
                "mustSupport": true
            },
            {
                "id": "Composition.section.code",
                "path": "Composition.section.code",
                "binding": {
                    "strength": "extensible",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-CompositionSectionCode"
                }
            }
        ]
    }
}

Feedback

Click here to:
Command 'page' could not render: Page not found.


Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-DiagnosticReport-Labactive2.0.12025-05-13

This profile defines the UK constraints and extensions on the International FHIR resource DiagnosticReport, to provide laboratory specific support for test results.


Profile_Purpose

To provide implementers with additional support when implementing test result data and to provide a consistent structure to how the data is presented.

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueReferenceReference(CompositionLabReportEu)
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueReferenceReference(UKCoreComposition)
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueAnnotationAnnotation
id0..1string
extensionI2..*Extension
url1..1uriFixed Value
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
basedOn0..*Reference(ServiceRequestLabEu)
statusS Σ ?!1..1codeBinding
studyTypeΣ0..*CodeableConceptBinding
specialtyΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ0..1uriFixed Value
versionΣ0..1string
codeS Σ0..1codeFixed Value
id0..1string
translationI0..*Extension(Complex)
value0..1System.String
userSelectedΣ0..1boolean
textS Σ0..1string
codeS Σ1..1CodeableConceptIPSBinding
subjectΣ1..1Reference(PatientEuLab | PatientAnimalEu | Group | Location | Device)
encounterΣ0..1Reference(Encounter)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedS Σ0..1instant
id0..1string
deviceReferenceI0..1Extension(Reference(UKCoreDevice))
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
deviceReferenceI0..*Extension(Reference(UKCoreDevice))
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
specimen0..*Reference(SpecimenEu)
resultS0..*Reference(ObservationResultsLaboratoryEu)
imagingStudy0..0Reference(ImagingStudy)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
comment0..1string
conclusion0..1string
conclusionCode0..*CodeableConceptBinding
presentedForm0..*Attachment

Detailed Descriptions

DiagnosticReport
DefinitionLaboratory Report DiagnosticReport
Cardinality0...*
AliasReport, Test, Result, Results, Labs, Laboratory
Comments

This is intended to capture a single report and is not suitable for use in displaying summary information that covers multiple reports. For example, this resource has not been designed for laboratory cumulative reporting formats nor detailed structured reports for sequencing.

Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • ukcore-diag-lab-001: An issued time SHOULD be present if status = partial, preliminary, final, amended, corrected or appended
    issued.exists() or (issued.empty() and (status in ('partial' | 'preliminary' | 'final' | 'amended' | 'corrected' | 'appended')).not())
Mappings
  • rim: Entity. Role, or Act
  • workflow: Event
  • v2: ORU -> OBR
  • rim: Observation[classCode=OBS, moodCode=EVN]
DiagnosticReport.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typeid
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.

DiagnosticReport.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())
DiagnosticReport.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())
DiagnosticReport.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())
DiagnosticReport.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: Act.text?
DiagnosticReport.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: N/A
DiagnosticReport.extension
DefinitionAn Extension
Cardinality1...*
TypeExtension
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()
DiagnosticReport.extension:DiagnosticReportCompositionR5
DefinitionThis extension implements the R5 composition element. It allow to link this DiagnosticReport with the Composition documenting this Laboratory Report.
Cardinality1...1
TypeExtension(Reference(UKCoreComposition))
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
DiagnosticReport.extension:DiagnosticReportCompositionR5.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
DiagnosticReport.extension:DiagnosticReportCompositionR5.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
DiagnosticReport.extension:DiagnosticReportCompositionR5.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition

Mappings
  • rim: N/A
DiagnosticReport.extension:DiagnosticReportCompositionR5.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality1...1
TypeReference(CompositionLabReportEu)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.extension:compositionReferenceR5
DefinitionA Reference to a Composition resource instance that provides structure for organizing the contents of the DiagnosticReport.
Cardinality0...1
TypeExtension(Reference(UKCoreComposition))
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
DiagnosticReport.extension:compositionReferenceR5.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
DiagnosticReport.extension:compositionReferenceR5.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
DiagnosticReport.extension:compositionReferenceR5.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition

Mappings
  • rim: N/A
DiagnosticReport.extension:compositionReferenceR5.value[x]
DefinitionReference to a Composition resource instance that provides structure for organizing the contents of the DiagnosticReport.
Cardinality1...1
TypeReference(UKCoreComposition)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.extension:noteR5
DefinitionMay include general statements about the diagnostic report, or statements about significant, unexpected or unreliable results values contained within the diagnostic report, or information about its source when relevant to its interpretation.
Cardinality0...1
TypeExtension(Annotation)
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
DiagnosticReport.extension:noteR5.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
DiagnosticReport.extension:noteR5.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
DiagnosticReport.extension:noteR5.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.note

Mappings
  • rim: N/A
DiagnosticReport.extension:noteR5.value[x]
DefinitionMay include general statements about the diagnostic report, or statements about significant, unexpected or unreliable results values contained within the diagnostic report, or information about its source when relevant to its interpretation.
Cardinality1...1
TypeAnnotation
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.extension:supportingInfoR5
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
DiagnosticReport.extension:supportingInfoR5.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
DiagnosticReport.extension:supportingInfoR5.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.
Cardinality2...*
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
DiagnosticReport.extension:supportingInfoR5.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo

Mappings
  • rim: N/A
DiagnosticReport.extension:supportingInfoR5.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).
Cardinality0...1
Typebase64Binary
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.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.

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
DiagnosticReport.identifier
DefinitionIdentifiers assigned to this Laboratory Report by the performer or other systems. It shall be common to several report versions
Cardinality0...*
TypeIdentifier
SummaryTrue
AliasReportID, Filler ID, Placer ID
Requirements

Need to know what identifier to use when making queries about this report from the source laboratory, and for linking to the report outside FHIR context.

Comments

Composition.identifier SHALL be equal to one of the DiagnosticReport.identifier, if at least one exists

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.identifier
  • w5: FiveWs.identifier
  • v2: OBR-51/ for globally unique filler ID - OBR-3 , For non-globally unique filler-id the flller/placer number must be combined with the universal service Id - OBR-2(if present)+OBR-3+OBR-4
  • rim: id
DiagnosticReport.basedOn
DefinitionDetails concerning a service requested.
Cardinality0...*
TypeReference(ServiceRequestLabEu)
AliasRequest
Requirements

This allows tracing of authorization for the report and tracking whether proposals/recommendations were acted upon.

Comments

Note: Usually there is one test request for each result, however in some circumstances multiple test requests may be represented using a single test result resource. Note that there are also cases where one request leads to multiple reports.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.basedOn
  • v2: ORC? OBR-2/3?
  • rim: outboundRelationship[typeCode=FLFS].target
DiagnosticReport.status
DefinitionThe status of the diagnostic report.
Cardinality1...1
Typecode
Binding

The status of the diagnostic report.

DiagnosticReportStatus (required)
Must SupportTrue
ModifierTrue
SummaryTrue
Requirements

Diagnostic services routinely issue provisional/incomplete reports, and sometimes withdraw previously released reports.

Comments

DiagnosticReport.status and Composition.status shall be aligned, based on the http://hl7.eu/fhir/laboratory/ConceptMap/ConceptMap-eu-diagRptStatus2CompStatus mapping

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.status
  • w5: FiveWs.status
  • v2: OBR-25 (not 1:1 mapping)
  • rim: statusCode Note: final and amended are distinguished by whether observation is the subject of a ControlAct event of type "revise"
DiagnosticReport.category
DefinitionA code that classifies this laboratory report. Two basic categories has been selected in this guide: laboratory specialty and Study type. Laboratory specialty is characteristic of the laboratory that produced the test result while Study type is an arbitrary classificion of the test type.
Cardinality0...*
TypeCodeableConceptIPS
Binding

Codes for diagnostic service sections.

DiagnosticServiceSectionCodes (example)
SummaryTrue
AliasDepartment, Sub-department, Service, Discipline
Comments

DiagnosticReport.category and Composition.category shall be aligned

SlicingUnordered, Open, by $this(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • v2: OBR-24
  • rim: inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code
DiagnosticReport.category:studyType
DefinitionLaboratory services, i.e., results of tests performed, could be characterized using typology of services, commonly called study types. Study type could be seen as an attribute or grouping mechanism that assigns a common clinical sense to certain types of laboratory test results., e.g., Hemoglobin, Platelet count, etc. belongs to 'Hematology study'.
Cardinality0...*
TypeCodeableConcept
BindingLabStudyTypesEuVs (required)
SummaryTrue
AliasDepartment, Sub-department, Service, Discipline
Comments

In comparison to the laboratory specialty which is an attribute of laboratory, study type is a categorization of laboratory service. It needs to be mentioned that classification of test to study types in not standardized.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • v2: OBR-24
  • rim: inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code
DiagnosticReport.category:specialty
DefinitionLaboratory specialty is an attribute of any laboratory setting representing professional qualification of the laboratory to execute certain kind of laboratory tests.
Cardinality0...*
TypeCodeableConcept
BindingLabSpecialtyEuVs (required)
SummaryTrue
AliasDepartment, Sub-department, Service, Discipline
Comments

Specialty could be used as parameter for searching/querying of laboratory test results.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • v2: OBR-24
  • rim: inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code
DiagnosticReport.category:laboratory
DefinitionA code that classifies this laboratory report. Two basic categories has been selected in this guide: laboratory specialty and Study type. Laboratory specialty is characteristic of the laboratory that produced the test result while Study type is an arbitrary classificion of the test type.
Cardinality1...1
TypeCodeableConceptIPS
Binding

Codes for diagnostic service sections.

DiagnosticServiceSectionCodes (example)
Must SupportTrue
SummaryTrue
AliasDepartment, Sub-department, Service, Discipline
Comments

DiagnosticReport.category and Composition.category shall be aligned

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • v2: OBR-24
  • rim: inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code
DiagnosticReport.category:laboratory.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
DiagnosticReport.category:laboratory.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
DiagnosticReport.category:laboratory.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality0...*
TypeCodingIPS
Must SupportTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.

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 subset one of the sets of component 1-3 or 4-6
  • rim: CV
  • orim: fhir:Coding rdfs:subClassOf dt:CDCoding
DiagnosticReport.category:laboratory.coding.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
DiagnosticReport.category:laboratory.coding.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
DiagnosticReport.category:laboratory.coding.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality0...1
Typeuri
Must SupportTrue
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

http://terminology.hl7.org/CodeSystem/v2-0074

Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
DiagnosticReport.category:laboratory.coding.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
DiagnosticReport.category:laboratory.coding.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality0...1
Typecode
Must SupportTrue
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

LAB

Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
DiagnosticReport.category:laboratory.coding.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality0...1
Typestring
Must SupportTrue
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
DiagnosticReport.category:laboratory.coding.display.id
Definitionunique id for the element within a resource (for internal references)
Cardinality0...1
Typestring
DiagnosticReport.category:laboratory.coding.display.extension
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
DiagnosticReport.category:laboratory.coding.display.extension:translation
DefinitionLanguage translation from base language of resource to another language.
Cardinality0...*
TypeExtension(Complex)
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: ST.translation
DiagnosticReport.category:laboratory.coding.display.value
DefinitionThe actual value
Cardinality0...1
TypeSystem.String
DiagnosticReport.category:laboratory.coding.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
DiagnosticReport.category:laboratory.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
Must SupportTrue
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
DiagnosticReport.code
DefinitionSpecifies that it refers to a Laboratory Report
Cardinality1...1
TypeCodeableConceptIPS
BindingUKCoreReportCode (preferred)
Must SupportTrue
SummaryTrue
AliasType
Comments

At least one DiagnosticReport.code.coding and Composition.type.coding SHALL be equal

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.code
  • w5: FiveWs.what[x]
  • v2: OBR-4 (HL7 v2 doesn't provide an easy way to indicate both the ordered test and the performed panel)
  • rim: code
DiagnosticReport.subject
DefinitionWho or what this report is about. The report can be about a human patient, a living subject, a device (e.g. a machine), a location or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).
Cardinality1...1
TypeReference(PatientEuLab | PatientAnimalEu | Group | Location | Device)
SummaryTrue
AliasPatient
Requirements

SHALL know the subject context.

Comments

DiagnosticReport and Composition SHALL have the same subject

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.subject
  • w5: FiveWs.subject[x]
  • v2: PID-3 (no HL7 v2 mapping for Group or Device)
  • rim: participation[typeCode=SBJ]
  • w5: FiveWs.subject
DiagnosticReport.encounter
DefinitionThe healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport is about.
Cardinality0...1
TypeReference(Encounter)
SummaryTrue
AliasContext
Requirements

Links the request to the Encounter context.

Comments

This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).

DiagnosticReport and Composition SHALL have the same encounter.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.encounter
  • w5: FiveWs.context
  • v2: PV1-19
  • rim: inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]
DiagnosticReport.effective[x]
DefinitionThe time or time-period the observed values are related to. When the subject of the report is a patient, this is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.
Cardinality0...1
TypedateTime
SummaryTrue
AliasObservation time, Effective Time, Occurrence
Requirements

Need to know where in the patient history to file/present this report.

Comments

If the diagnostic procedure was performed on the patient, this is the time it was performed. If there are specimens, the diagnostically relevant time can be derived from the specimen collection times, but the specimen information is not always available, and the exact relationship between the specimens and the diagnostically relevant time is not always automatic.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.occurrence[x]
  • w5: FiveWs.done[x]
  • v2: OBR-7
  • rim: effectiveTime
DiagnosticReport.issued
DefinitionThe date and time that this version of the report was made available to providers, typically after the report was reviewed and verified.
Cardinality0...1
Typeinstant
Must SupportTrue
SummaryTrue
AliasDate published, Date Issued, Date Verified
Requirements

Clinicians need to be able to check the date that the report was released.

Comments

May be different from the update time of the resource itself, because that is the status of the record (potentially a secondary copy), not the actual release time of the report.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.recorded
  • v2: OBR-22
  • rim: participation[typeCode=VRF or AUT].time
DiagnosticReport.performer
DefinitionThe diagnostic service that is responsible for issuing the report.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole | Organization | CareTeam)
SummaryTrue
AliasLaboratory, Service, Practitioner, Department, Company, Authorized by, Director
Requirements

Need to know whom to contact if there are queries about the results. Also may need to track the source of reports for secondary data analysis.

Comments

If a DiagnosticReport.resultsInterpreter exists this is expected to be a Composition.author; otherwise a DiagnosticReport.performer should be an author.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.performer.actor
  • w5: FiveWs.actor
  • v2: PRT-8 (where this PRT-4-Participation = "PO")
  • rim: .participation[typeCode=PRF]
DiagnosticReport.performer.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
DiagnosticReport.performer.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
DiagnosticReport.performer.extension:deviceReference
DefinitionAn additional Device reference for a DiagnosticReport, to allow Software as a Medical Device to perform / interpret a DiagnosticReport
Cardinality0...1
TypeExtension(Reference(UKCoreDevice))
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
DiagnosticReport.performer.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.performer.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.performer.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .identifier
DiagnosticReport.performer.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.resultsInterpreter
DefinitionThe practitioner or organization that is responsible for the report's conclusions and interpretations.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole | Organization | CareTeam)
SummaryTrue
AliasAnalyzed by, Reported by
Requirements

Need to know whom to contact if there are queries about the results. Also may need to track the source of reports for secondary data analysis.

Comments

If a DiagnosticReport.resultsInterpreter exists this is expected to be a Composition.author; otherwise a DiagnosticReport.performer should be an author.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.performer.actor
  • w5: FiveWs.actor
  • v2: OBR-32, PRT-8 (where this PRT-4-Participation = "PI")
  • rim: .participation[typeCode=PRF]
DiagnosticReport.resultsInterpreter.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
DiagnosticReport.resultsInterpreter.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
DiagnosticReport.resultsInterpreter.extension:deviceReference
DefinitionAn additional Device reference for a DiagnosticReport, to allow Software as a Medical Device to perform / interpret a DiagnosticReport
Cardinality0...*
TypeExtension(Reference(UKCoreDevice))
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
DiagnosticReport.resultsInterpreter.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.resultsInterpreter.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.resultsInterpreter.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .identifier
DiagnosticReport.resultsInterpreter.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
DiagnosticReport.specimen
DefinitionDetails about the specimens on which this diagnostic report is based.
Cardinality0...*
TypeReference(SpecimenEu)
Requirements

Need to be able to report information about the collected specimens on which the report is based.

Comments

If the specimen is sufficiently specified with a code in the test result name, then this additional data may be redundant. If there are multiple specimens, these may be represented per observation or group.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SPM
  • rim: participation[typeCode=SBJ]
DiagnosticReport.result
Definition[Observations](http://hl7.org/fhir/R4/observation.html) that are part of this diagnostic report.
Cardinality0...*
TypeReference(ObservationResultsLaboratoryEu)
Must SupportTrue
AliasData, Atomic Value, Result, Atomic result, Data, Test, Analyte, Battery, Organizer
Requirements

Need to support individual results, or groups of results, where the result grouping is arbitrary, but meaningful.

Comments

Observations can contain observations.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBXs
  • rim: outboundRelationship[typeCode=COMP].target
DiagnosticReport.imagingStudy
DefinitionOne or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.
Cardinality0...0
TypeReference(ImagingStudy)
Comments

ImagingStudy and the image element are somewhat overlapping - typically, the list of image references in the image element will also be found in one of the imaging study resources. However, each caters to different types of displays for different types of purposes. Neither, either, or both may be provided.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: outboundRelationship[typeCode=COMP].target[classsCode=DGIMG, moodCode=EVN]
DiagnosticReport.media
DefinitionA list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).
Cardinality0...*
TypeBackboneElement
SummaryTrue
AliasDICOM, Slides, Scans
Requirements

Many diagnostic services include images in the report as part of their service.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX?
  • rim: outboundRelationship[typeCode=COMP].target
DiagnosticReport.media.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
DiagnosticReport.media.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.

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
DiagnosticReport.media.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
DiagnosticReport.media.comment
DefinitionA comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.
Cardinality0...1
Typestring
Requirements

The provider of the report should make a comment about each image included in the report.

Comments

The comment should be displayed with the image. It would be common for the report to include additional discussion of the image contents in other sections such as the conclusion.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="annotation"].value
DiagnosticReport.media.link
DefinitionReference to the image source.
Cardinality1...1
TypeReference(Media)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .value.reference
DiagnosticReport.conclusion
DefinitionConcise and clinically contextualized summary conclusion (interpretation/impression) of the diagnostic report.
Cardinality0...1
Typestring
AliasReport
Requirements

Need to be able to provide a conclusion that is not lost among the basic result data.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX
  • rim: inboundRelationship[typeCode="SPRT"].source[classCode=OBS, moodCode=EVN, code=LOINC:48767-8].value (type=ST)
DiagnosticReport.conclusionCode
DefinitionOne or more codes that represent the summary conclusion (interpretation/impression) of the diagnostic report.
Cardinality0...*
TypeCodeableConcept
Binding

Diagnosis codes provided as adjuncts to the report.

SNOMEDCTClinicalFindings (preferred)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX
  • rim: inboundRelationship[typeCode=SPRT].source[classCode=OBS, moodCode=EVN, code=LOINC:54531-9].value (type=CD)
DiagnosticReport.presentedForm
DefinitionRich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.
Cardinality0...*
TypeAttachment
Requirements

Gives laboratory the ability to provide its own fully formatted report for clinical fidelity.

Comments

"application/pdf" is recommended as the most reliable and interoperable in this context.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX
  • rim: text (type=ED)

Table View

DiagnosticReport..
DiagnosticReport.extensionExtension..1
DiagnosticReport.extension.value[x]..
DiagnosticReport.extensionExtension..
DiagnosticReport.extension.value[x]..
DiagnosticReport.extensionExtension..
DiagnosticReport.extension.extension2..
DiagnosticReport.status..
DiagnosticReport.category1..1
DiagnosticReport.category.coding..
DiagnosticReport.category.coding.system..
DiagnosticReport.category.coding.code..
DiagnosticReport.code..
DiagnosticReport.issued..
DiagnosticReport.performer..
DiagnosticReport.performer.extensionExtension..1
DiagnosticReport.resultsInterpreter..
DiagnosticReport.resultsInterpreter.extensionExtension..
DiagnosticReport.result..
DiagnosticReport.conclusionCode..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-DiagnosticReport-Lab" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-DiagnosticReport-Lab" />
    <version value="2.0.1" />
    <name value="UKCoreDiagnosticReportLab" />
    <title value="UK Core Diagnostic Report Lab" />
    <status value="active" />
    <date value="2025-05-13" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [DiagnosticReport](https://hl7.org/fhir/R4/DiagnosticReport.html), to provide laboratory specific support for test results." />
    <purpose value="To provide implementers with additional support when implementing test result data and to provide a consistent structure to how the data is presented." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="DiagnosticReport" />
    <baseDefinition value="http://hl7.eu/fhir/laboratory/StructureDefinition/DiagnosticReport-eu-lab" />
    <derivation value="constraint" />
    <differential>
        <element id="DiagnosticReport">
            <path value="DiagnosticReport" />
            <constraint>
                <key value="ukcore-diag-lab-001" />
                <severity value="warning" />
                <human value="An issued time SHOULD be present if status = partial, preliminary, final, amended, corrected or appended" />
                <expression value="issued.exists() or (issued.empty() and (status in (&#39;partial&#39; | &#39;preliminary&#39; | &#39;final&#39; | &#39;amended&#39; | &#39;corrected&#39; | &#39;appended&#39;)).not())" />
            </constraint>
        </element>
        <element id="DiagnosticReport.extension:compositionReferenceR5">
            <path value="DiagnosticReport.extension" />
            <sliceName value="compositionReferenceR5" />
            <short value="A Composition reference for a DiagnosticReport. This is a R5 backport." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="DiagnosticReport.extension:compositionReferenceR5.value[x]">
            <path value="DiagnosticReport.extension.value[x]" />
            <short value="Reference to a Composition resource." />
            <definition value="Reference to a Composition resource instance that provides structure for organizing the contents of the DiagnosticReport." />
        </element>
        <element id="DiagnosticReport.extension:noteR5">
            <path value="DiagnosticReport.extension" />
            <sliceName value="noteR5" />
            <short value="Comments about the diagnostic report. This is a R5 backport." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.note" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="DiagnosticReport.extension:noteR5.value[x]">
            <path value="DiagnosticReport.extension.value[x]" />
            <definition value="May include general statements about the diagnostic report, or statements about significant, unexpected or unreliable results values contained within the diagnostic report, or information about its source when relevant to its interpretation." />
        </element>
        <element id="DiagnosticReport.extension:supportingInfoR5">
            <path value="DiagnosticReport.extension" />
            <sliceName value="supportingInfoR5" />
            <short value="Additional info supporting the diagnostic report. This is a R5 backport." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="DiagnosticReport.extension:supportingInfoR5.extension">
            <path value="DiagnosticReport.extension.extension" />
            <min value="2" />
        </element>
        <element id="DiagnosticReport.status">
            <path value="DiagnosticReport.status" />
            <short value="The status of the diagnostic report." />
            <mustSupport value="true" />
        </element>
        <element id="DiagnosticReport.category:laboratory">
            <path value="DiagnosticReport.category" />
            <sliceName value="laboratory" />
            <short value="A mandatory slice that states this resource is categorized as laboratory related content." />
            <min value="1" />
            <max value="1" />
            <mustSupport value="true" />
        </element>
        <element id="DiagnosticReport.category:laboratory.coding.system">
            <path value="DiagnosticReport.category.coding.system" />
            <fixedUri value="http://terminology.hl7.org/CodeSystem/v2-0074" />
        </element>
        <element id="DiagnosticReport.category:laboratory.coding.code">
            <path value="DiagnosticReport.category.coding.code" />
            <fixedCode value="LAB" />
        </element>
        <element id="DiagnosticReport.code">
            <path value="DiagnosticReport.code" />
            <short value="A code or name that describes this diagnostic report." />
            <mustSupport value="true" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-ReportCode" />
            </binding>
        </element>
        <element id="DiagnosticReport.issued">
            <path value="DiagnosticReport.issued" />
            <short value="Clinically relevant time / time-period for report." />
            <mustSupport value="true" />
        </element>
        <element id="DiagnosticReport.performer.extension:deviceReference">
            <path value="DiagnosticReport.performer.extension" />
            <sliceName value="deviceReference" />
            <short value="A reference to a Device which interprets / performs the results of the DiagnosticReport." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeviceReference" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="DiagnosticReport.resultsInterpreter.extension:deviceReference">
            <path value="DiagnosticReport.resultsInterpreter.extension" />
            <sliceName value="deviceReference" />
            <short value="A reference to a Device which interprets / performs the results of the DiagnosticReport." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeviceReference" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="DiagnosticReport.result">
            <path value="DiagnosticReport.result" />
            <short value="Lab related Observations that are part of this diagnostic report." />
            <mustSupport value="true" />
        </element>
        <element id="DiagnosticReport.conclusionCode">
            <path value="DiagnosticReport.conclusionCode" />
            <binding>
                <strength value="preferred" />
            </binding>
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-DiagnosticReport-Lab",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-DiagnosticReport-Lab",
    "version": "2.0.1",
    "name": "UKCoreDiagnosticReportLab",
    "title": "UK Core Diagnostic Report Lab",
    "status": "active",
    "date": "2025-05-13",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [DiagnosticReport](https://hl7.org/fhir/R4/DiagnosticReport.html), to provide laboratory specific support for test results.",
    "purpose": "To provide implementers with additional support when implementing test result data and to provide a consistent structure to how the data is presented.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "DiagnosticReport",
    "baseDefinition": "http://hl7.eu/fhir/laboratory/StructureDefinition/DiagnosticReport-eu-lab",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "DiagnosticReport",
                "path": "DiagnosticReport",
                "constraint":  [
                    {
                        "key": "ukcore-diag-lab-001",
                        "severity": "warning",
                        "human": "An issued time SHOULD be present if status = partial, preliminary, final, amended, corrected or appended",
                        "expression": "issued.exists() or (issued.empty() and (status in ('partial' | 'preliminary' | 'final' | 'amended' | 'corrected' | 'appended')).not())"
                    }
                ]
            },
            {
                "id": "DiagnosticReport.extension:compositionReferenceR5",
                "path": "DiagnosticReport.extension",
                "sliceName": "compositionReferenceR5",
                "short": "A Composition reference for a DiagnosticReport. This is a R5 backport.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "DiagnosticReport.extension:compositionReferenceR5.value[x]",
                "path": "DiagnosticReport.extension.value[x]",
                "short": "Reference to a Composition resource.",
                "definition": "Reference to a Composition resource instance that provides structure for organizing the contents of the DiagnosticReport."
            },
            {
                "id": "DiagnosticReport.extension:noteR5",
                "path": "DiagnosticReport.extension",
                "sliceName": "noteR5",
                "short": "Comments about the diagnostic report. This is a R5 backport.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.note"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "DiagnosticReport.extension:noteR5.value[x]",
                "path": "DiagnosticReport.extension.value[x]",
                "definition": "May include general statements about the diagnostic report, or statements about significant, unexpected or unreliable results values contained within the diagnostic report, or information about its source when relevant to its interpretation."
            },
            {
                "id": "DiagnosticReport.extension:supportingInfoR5",
                "path": "DiagnosticReport.extension",
                "sliceName": "supportingInfoR5",
                "short": "Additional info supporting the diagnostic report. This is a R5 backport.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "DiagnosticReport.extension:supportingInfoR5.extension",
                "path": "DiagnosticReport.extension.extension",
                "min": 2
            },
            {
                "id": "DiagnosticReport.status",
                "path": "DiagnosticReport.status",
                "short": "The status of the diagnostic report.",
                "mustSupport": true
            },
            {
                "id": "DiagnosticReport.category:laboratory",
                "path": "DiagnosticReport.category",
                "sliceName": "laboratory",
                "short": "A mandatory slice that states this resource is categorized as laboratory related content.",
                "min": 1,
                "max": "1",
                "mustSupport": true
            },
            {
                "id": "DiagnosticReport.category:laboratory.coding.system",
                "path": "DiagnosticReport.category.coding.system",
                "fixedUri": "http://terminology.hl7.org/CodeSystem/v2-0074"
            },
            {
                "id": "DiagnosticReport.category:laboratory.coding.code",
                "path": "DiagnosticReport.category.coding.code",
                "fixedCode": "LAB"
            },
            {
                "id": "DiagnosticReport.code",
                "path": "DiagnosticReport.code",
                "short": "A code or name that describes this diagnostic report.",
                "mustSupport": true,
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-ReportCode"
                }
            },
            {
                "id": "DiagnosticReport.issued",
                "path": "DiagnosticReport.issued",
                "short": "Clinically relevant time / time-period for report.",
                "mustSupport": true
            },
            {
                "id": "DiagnosticReport.performer.extension:deviceReference",
                "path": "DiagnosticReport.performer.extension",
                "sliceName": "deviceReference",
                "short": "A reference to a Device which interprets / performs the results of the DiagnosticReport.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeviceReference"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "DiagnosticReport.resultsInterpreter.extension:deviceReference",
                "path": "DiagnosticReport.resultsInterpreter.extension",
                "sliceName": "deviceReference",
                "short": "A reference to a Device which interprets / performs the results of the DiagnosticReport.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeviceReference"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "DiagnosticReport.result",
                "path": "DiagnosticReport.result",
                "short": "Lab related Observations that are part of this diagnostic report.",
                "mustSupport": true
            },
            {
                "id": "DiagnosticReport.conclusionCode",
                "path": "DiagnosticReport.conclusionCode",
                "binding": {
                    "strength": "preferred"
                }
            }
        ]
    }
}

Feedback

Click here to:
Command 'page' could not render: Page not found.


Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation-Labactive2.0.12025-05-13

This profile defines the UK constraints and extensions on the International FHIR resource Observation, in order to represent an individual laboratory test and result value. These tests can be grouped together using the UKCore-Observation-Group-Lab profile.


Profile_Purpose

To provide the minimum expectations for each individual laboratory test.

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
supportingInfoI0..*Extension(Reference(Resource))
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueReferenceReference(Observation)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueCodecode
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueStringstring
url1..1uriFixed Value
certifiedRefMaterialCodeableI0..*Extension(CodeableConcept)
certifiedRefMaterialIdentiferI0..*Extension(Identifier)
labTestKitI0..*Extension(Reference(Device))
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueAttachmentAttachment
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueReferenceReference(Observation)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueCodecode
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueStringstring
url1..1uriFixed Value
bodyStructureR5I0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
basedOnΣ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed ValuePattern
versionΣ0..1string
codeΣ0..1codeFixed ValuePattern
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
studyType0..*CodeableConceptBinding
specialty0..*CodeableConceptBinding
codeS Σ1..1CodeableConceptIPSBinding
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
focusΣ0..*Reference(Resource)
encounterΣ0..1Reference(Encounter)
id0..1string
data-absent-reasonI0..1Extension(code)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedΣ0..1instant
id0..1string
performerFunctionI0..*Extension(CodeableConcept)
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
valueBooleanboolean
valueIntegerinteger
valueSampledDataSampledData
valueStringΣ I0..1string
valueRangeΣ I0..1RangeIPS
valueRatioΣ I0..1RatioEuLab
valueTimeΣ I0..1time
valueDateTimeΣ I0..1dateTime
valuePeriodΣ I0..1Period
valueQuantityΣ I0..1QuantityEuLab
valueCodeableConceptΣ I0..1CodeableConceptIPSBinding
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptIPSBinding
note0..*Annotation
bodySite0..1CodeableConcept
method0..1CodeableConceptIPSBinding
specimen0..1Reference(SpecimenEu)
device0..1Reference(Device | DeviceMetric)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
lowI0..1SimpleQuantity
highI0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
age0..1Range
text0..1string
hasMemberΣ0..*Reference(ObservationResultsLaboratoryEu)
derivedFromΣ0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueAttachmentAttachment
modifierExtensionΣ ?! I0..*Extension
codeΣ1..1CodeableConceptIPSBinding
valueBooleanboolean
valueIntegerinteger
valueSampledDataSampledData
valueStringΣ0..1string
valueRangeΣ0..1RangeIPS
valueRatioΣ0..1RatioEuLab
valueTimeΣ0..1time
valueDateTimeΣ0..1dateTime
valuePeriodΣ0..1Period
valueQuantityΣ0..1QuantityEuLab
valueCodeableConceptΣ0..1CodeableConceptIPSBinding
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

Detailed Descriptions

Observation
DefinitionThis observation may represent the result of a simple laboratory test such as hematocrit or it may group the set of results produced by a multi-test study or panel such as a complete blood count, a dynamic function test, a urine specimen study. In the latter case, the observation carries the overall conclusion of the study and references the atomic results of the study as "has-member" child observations
Cardinality0...*
AliasVital Signs, Measurement, Results, Tests
Comments

Represents either a lab simple observation or the group of observations produced by a laboratory study.

Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
    dataAbsentReason.empty() or value.empty()
  • obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
    value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
  • eu-lab-1: If observation status is other then "registered" or "cancelled", at least one of these Observation elements shall be provided: "value", "dataAbsentReason", "hasMember" or "component"
    (status in ('registered'|'cancelled')) or value.exists() or hasMember.exists() or component.exists() or dataAbsentReason.exists()
  • eu-lab-2: If observation has components and observation status is other then "registered" or "cancelled", at least one of these Observation.component elements shall be provided: "value" or "dataAbsentReason"
    component.exists() implies (status in ('registered'|'cancelled')) or component.value.exists() or component.dataAbsentReason.exists()
  • ukcore-obs-lab-001: Either `value`, `dataAbsentReason` or `note` SHOULD be populated
    value.exists() or dataAbsentReason.exists() or note.exists()
Mappings
  • rim: Entity. Role, or Act
  • workflow: Event
  • sct-concept: < 363787002 |Observable entity|
  • v2: OBX
  • rim: Observation[classCode=OBS, moodCode=EVN]
Observation.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typeid
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.

Observation.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())
Observation.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())
Observation.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())
Observation.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: Act.text?
Observation.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: N/A
Observation.extension
DefinitionThe laboratory test kit used for this test.
Cardinality0...*
TypeExtension
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()
Observation.extension:supportingInfo
DefinitionOther resources *from the patient record* that may be relevant to the event. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension **should not** be used if more specific inline elements or extensions are available. For example, use `Observation.hasMember` instead of supportingInformation for representing the members of an Observation panel.
Cardinality0...*
TypeExtension(Reference(Resource))
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()
Observation.extension:triggeredBy-r5
DefinitionOptional Extension Element - found in all resources.
Cardinality0...*
TypeExtension(Complex)
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
Observation.extension:triggeredBy-r5.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
Observation.extension:triggeredBy-r5.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
Observation.extension:triggeredBy-r5.extension:observation
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Observation.extension:triggeredBy-r5.extension:observation.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
Observation.extension:triggeredBy-r5.extension:observation.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Observation.extension:triggeredBy-r5.extension:observation.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

observation

Mappings
  • rim: N/A
Observation.extension:triggeredBy-r5.extension:observation.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality1...1
TypeReference(Observation)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:triggeredBy-r5.extension:type
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Observation.extension:triggeredBy-r5.extension:type.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
Observation.extension:triggeredBy-r5.extension:type.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Observation.extension:triggeredBy-r5.extension:type.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

type

Mappings
  • rim: N/A
Observation.extension:triggeredBy-r5.extension:type.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality1...1
Typecode
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:triggeredBy-r5.extension:reason
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Observation.extension:triggeredBy-r5.extension:reason.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
Observation.extension:triggeredBy-r5.extension:reason.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Observation.extension:triggeredBy-r5.extension:reason.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

reason

Mappings
  • rim: N/A
Observation.extension:triggeredBy-r5.extension:reason.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality1...1
Typestring
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:triggeredBy-r5.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy

Mappings
  • rim: N/A
Observation.extension:triggeredBy-r5.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality0...0
Typebase64Binary
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:certifiedRefMaterialCodeable
DefinitionThis extension links this observation with the certified reference material used for the calibration. The certified reference material is identified by using a CodeableConcept. This extension should be used when the unit is UCUM [IU].
Cardinality0...*
TypeExtension(CodeableConcept)
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()
Observation.extension:certifiedRefMaterialIdentifer
DefinitionThis extension links this observation with the certified reference material used for the calibration. The certified reference material is identified by using an Identifier. This extension should be used when the unit is UCUM [IU].
Cardinality0...*
TypeExtension(Identifier)
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()
Observation.extension:labTestKit
DefinitionThis extension links this observation with the laboratory test kit used for this test. Usually only one laboratory test kit is referred
Cardinality0...*
TypeExtension(Reference(Device))
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()
Observation.extension:value-r5
DefinitionOptional Extension Element - found in all resources.
Cardinality0...1
TypeExtension
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
Observation.extension:value-r5.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
Observation.extension:value-r5.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Observation.extension:value-r5.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value[x]

Mappings
  • rim: N/A
Observation.extension:value-r5.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality1...1
TypeAttachment
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:triggeredByR5
DefinitionIdentifies the observation(s) that triggered the performance of this observation.
Cardinality0...*
TypeExtension(Complex)
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
Observation.extension:triggeredByR5.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
Observation.extension:triggeredByR5.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.
Cardinality2...*
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
Observation.extension:triggeredByR5.extension:observation
DefinitionReference to the triggering observation.
Cardinality1...1
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.

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
Observation.extension:triggeredByR5.extension:observation.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
Observation.extension:triggeredByR5.extension:observation.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...0
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
Observation.extension:triggeredByR5.extension:observation.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

observation

Mappings
  • rim: N/A
Observation.extension:triggeredByR5.extension:observation.value[x]
DefinitionA reference to the triggering observation.
Cardinality1...1
TypeReference(Observation)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:triggeredByR5.extension:type
DefinitionThe type of trigger. Reflex | Repeat | Re-run.
Cardinality1...1
TypeExtension
BindingTriggeredBytype (required)
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
Observation.extension:triggeredByR5.extension:type.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
Observation.extension:triggeredByR5.extension:type.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...0
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
Observation.extension:triggeredByR5.extension:type.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

type

Mappings
  • rim: N/A
Observation.extension:triggeredByR5.extension:type.value[x]
DefinitionThe type of trigger. Reflex | Repeat | Re-run
Cardinality1...1
Typecode
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:triggeredByR5.extension:reason
DefinitionProvides the reason why this observation was performed as a result of the observation(s) referenced.
Cardinality0...1
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.

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
Observation.extension:triggeredByR5.extension:reason.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
Observation.extension:triggeredByR5.extension:reason.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...0
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
Observation.extension:triggeredByR5.extension:reason.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

reason

Mappings
  • rim: N/A
Observation.extension:triggeredByR5.extension:reason.value[x]
DefinitionProvides the reason why this observation was performed as a result of the observation referenced.
Cardinality1...1
Typestring
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:triggeredByR5.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy

Mappings
  • rim: N/A
Observation.extension:triggeredByR5.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).
Cardinality0...0
Typebase64Binary
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.extension:bodyStructureR5
DefinitionThe laboratory test kit used for this test.
Cardinality0...*
TypeExtension
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()
Observation.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.

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
Observation.identifier
DefinitionA unique identifier assigned to this observation.
Cardinality0...*
TypeIdentifier
SummaryTrue
Requirements

Allows observations to be distinguished and referenced.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.identifier
  • w5: FiveWs.identifier
  • v2: OBX.21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 2) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4.
  • rim: id
Observation.basedOn
DefinitionA plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed.
Cardinality0...*
TypeReference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
SummaryTrue
AliasFulfills
Requirements

Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.basedOn
  • v2: ORC
  • rim: .inboundRelationship[typeCode=COMP].source[moodCode=EVN]
Observation.partOf
DefinitionA larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure.
Cardinality0...*
TypeReference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
SummaryTrue
AliasContainer
Comments

To link an Observation to an Encounter use encounter. See the Notes below for guidance on referencing another Observation.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.partOf
  • v2: Varies by domain
  • rim: .outboundRelationship[typeCode=FLFS].target
Observation.status
DefinitionThe status of the result value.
Cardinality1...1
Typecode
Binding

Codes providing the status of an observation.

ObservationStatus (required)
Must SupportTrue
ModifierTrue
SummaryTrue
Requirements

Need to track the status of individual results. Some results are finalized before the whole report is finalized.

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
  • workflow: Event.status
  • w5: FiveWs.status
  • sct-concept: < 445584004 |Report by finality status|
  • v2: OBX-11
  • rim: status Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of "revise"
Observation.category
DefinitionA code that classifies the general type of observation being made.
Cardinality1...*
TypeCodeableConceptIPS
Binding

Codes for high level observation categories.

ObservationCategoryCodes (preferred)
Requirements

Used for filtering what observations are retrieved and displayed.

Comments

"laboratory" includes laboratory medicine and pathology

SlicingUnordered, Open, by $this(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
Observation.category:laboratory
DefinitionA code that classifies the general type of observation being made.
Cardinality1...1
TypeCodeableConcept
Binding

Codes for high level observation categories.

ObservationCategoryCodes (preferred)
Must SupportTrue
Requirements

Used for filtering what observations are retrieved and displayed.

Comments

In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Pattern

{
  "coding": [
    {
      "system": "http://terminology.hl7.org/CodeSystem/observation-category",
      "code": "laboratory"
    }
  ]
}

Mappings
  • w5: FiveWs.class
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
Observation.category:laboratory.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
Observation.category:laboratory.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
Observation.category:laboratory.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality0...*
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Pattern

{
  "system": "http://terminology.hl7.org/CodeSystem/observation-category",
  "code": "laboratory"
}

Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
Observation.category:laboratory.coding.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
Observation.category:laboratory.coding.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
Observation.category:laboratory.coding.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

http://terminology.hl7.org/CodeSystem/observation-category

Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
Observation.category:laboratory.coding.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
Observation.category:laboratory.coding.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality0...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

laboratory

Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
Observation.category:laboratory.coding.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
Observation.category:laboratory.coding.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
Observation.category:laboratory.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
Observation.category:studyType
DefinitionA code that classifies the general type of observation being made.
Cardinality0...*
TypeCodeableConcept
BindingLabStudyTypesEuVs (required)
Requirements

Used for filtering what observations are retrieved and displayed.

Comments

In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
Observation.category:specialty
DefinitionA code that classifies the general type of observation being made.
Cardinality0...*
TypeCodeableConcept
BindingLabSpecialtyEuVs (required)
Requirements

Used for filtering what observations are retrieved and displayed.

Comments

In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
Observation.code
DefinitionDescribes what was observed. Sometimes this is called the observation "name". In this profile this code represents either a simple laboratory test or a laboratory study with multiple child observations
Cardinality1...1
TypeCodeableConceptIPS
Binding

A code from the SNOMED Clinical Terminology UK coding system regarding laboratory medicine test results

https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables (preferred)
Must SupportTrue
SummaryTrue
AliasName
Requirements

Knowing what kind of observation is being made is essential to understanding the observation.

Comments

In the context of this Observation-laboratory-uv-ips profile, when the observation plays the role of a grouper of member sub-observations, the code represent the group (for instance a panel code). In case no code is available, at least a text shall be provided.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.code
  • w5: FiveWs.what[x]
  • sct-concept: < 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
  • v2: OBX-3
  • rim: code
  • sct-attr: 116680003 |Is a|
Observation.subject
DefinitionThe patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation.
Cardinality1...1
TypeReference(PatientAnimalEu | PatientEuLab | Group | Device | Location)
SummaryTrue
Requirements

Observations have no value if you don't know who or what they're about.

Comments

One would expect this element to be a cardinality of 1..1. The only circumstance in which the subject can be missing is when the observation is made by a device that does not know the patient. In this case, the observation SHALL be matched to a patient through some context/channel matching technique, and at this point, the observation should be updated.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.subject
  • w5: FiveWs.subject[x]
  • v2: PID-3
  • rim: participation[typeCode=RTGT]
  • w5: FiveWs.subject
Observation.subject.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
Observation.subject.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
Observation.subject.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality1...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.subject.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.subject.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .identifier
Observation.subject.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.focus
DefinitionThe actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.
Cardinality0...*
TypeReference(Resource)
SummaryTrue
Comments

Typically, an observation is made about the subject - a patient, or group of patients, location, or device - and the distinction between the subject and what is directly measured for an observation is specified in the observation code itself ( e.g., "Blood Glucose") and does not need to be represented separately using this element. Use specimen if a reference to a specimen is required. If a code is required instead of a resource use either bodysite for bodysites or the standard extension focusCode.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.subject[x]
  • v2: OBX-3
  • rim: participation[typeCode=SBJ]
  • w5: FiveWs.subject
Observation.encounter
DefinitionThe healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made.
Cardinality0...1
TypeReference(Encounter)
SummaryTrue
AliasContext
Requirements

For some observations it may be important to know the link between an observation and a particular encounter.

Comments

This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.context
  • w5: FiveWs.context
  • v2: PV1
  • rim: inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]
Observation.effective[x]
DefinitionThe time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the "physiologically relevant time". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.
Cardinality1...1
TypedateTime
SummaryTrue
AliasOccurrence
Requirements

Knowing when an observation was deemed true is important to its relevance as well as determining trends.

Comments

At least a date should be present unless this observation is a historical report. For recording imprecise or "fuzzy" times (For example, a blood glucose measurement taken "after breakfast") use the Timing datatype which allow the measurement to be tied to regular life events.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.occurrence[x]
  • w5: FiveWs.done[x]
  • v2: OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)
  • rim: effectiveTime
Observation.effective[x].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
Observation.effective[x].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
Observation.effective[x].extension:data-absent-reason
DefinitionProvides a reason why the effectiveTime is missing.
Cardinality0...1
TypeExtension(code)
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: ANY.nullFlavor
Observation.issued
DefinitionThe date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.
Cardinality0...1
Typeinstant
SummaryTrue
Comments

For Observations that don’t require review and verification, it may be the same as the lastUpdated time of the resource itself. For Observations that do require review and verification for certain updates, it might not be the same as the lastUpdated time of the resource itself due to a non-clinically significant update that doesn’t require the new version to be reviewed and verified again.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.recorded
  • v2: OBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made)
  • rim: participation[typeCode=AUT].time
Observation.performer
DefinitionWho was responsible for asserting the observed value as "true".
Cardinality1...*
TypeReference(PractitionerRoleEu | PractitionerEu | OrganizationUvIps | CareTeam | PatientEuLab | RelatedPerson)
SummaryTrue
Requirements

May give a degree of confidence in the observation and also indicates where follow-up questions should be directed.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Event.performer.actor
  • w5: FiveWs.actor
  • v2: OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO'
  • rim: participation[typeCode=PRF]
Observation.performer.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
Observation.performer.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
Observation.performer.extension:performerFunction
DefinitionDistinguishes the type of involvement of the performer in the event. For example, 'author', 'verifier' or 'responsible party'.
Cardinality0...*
TypeExtension(CodeableConcept)
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
  • workflow: Event.performer.function
Observation.performer.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.performer.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.performer.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .identifier
Observation.performer.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.value[x]
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeQuantity
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

SlicingUnordered, Open, by $this(Type)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.value[x]:valueString
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
Typestring
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.value[x]:valueRange
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeRangeIPS
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.value[x]:valueRatio
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeRatioEuLab
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.value[x]:valueTime
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
Typetime
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.value[x]:valueDateTime
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypedateTime
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.value[x]:valuePeriod
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypePeriod
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.value[x]:valueQuantity
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeQuantityEuLab
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.value[x]:valueCodeableConcept
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeCodeableConceptIPS
BindingResultsCodedValuesLaboratoryUvIps (preferred)
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.dataAbsentReason
DefinitionProvides a reason why the expected value in the element Observation.value[x] is missing.
Cardinality0...1
TypeCodeableConcept
Binding

Codes specifying why the result (Observation.value[x]) is missing.

DataAbsentReason (extensible)
Requirements

For many results it is necessary to handle exceptional values in measurements.

Comments

Null or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be "detected", "not detected", "inconclusive", or "specimen unsatisfactory".

The alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code "error" could be used when the measurement was not completed. Note that an observation may only be reported if there are values to report. For example differential cell counts values may be reported only when > 0. Because of these options, use-case agreements are required to interpret general observations for null or exceptional values.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: N/A
  • rim: value.nullFlavor
Observation.interpretation
DefinitionA categorical assessment of an observation value. For example, high, low, normal.
Cardinality0...*
TypeCodeableConceptIPS
Binding

Codes identifying interpretations of observations.

ObservationInterpretationCodes (extensible)
AliasAbnormal Flag
Requirements

For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.

Comments

Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 260245000 |Findings values|
  • v2: OBX-8
  • rim: interpretationCode
  • sct-attr: 363713009 |Has interpretation|
Observation.note
DefinitionComments about the observation or the results.
Cardinality0...*
TypeAnnotation
Requirements

Need to be able to provide free text additional information.

Comments

May include general statements about the observation, or statements about significant, unexpected or unreliable results values, or information about its source when relevant to its interpretation.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NTE.3 (partner NTE to OBX, or sometimes another (child?) OBX)
  • rim: subjectOf.observationEvent[code="annotation"].value
Observation.bodySite
DefinitionIndicates the site on the subject's body where the observation was made (i.e. the target site).
Cardinality0...1
TypeCodeableConcept
Binding

Codes describing anatomical locations. May include laterality.

SNOMEDCTBodyStructures (example)
Comments

Only used if not implicit in code found in Observation.code. In many systems, this may be represented as a related observation instead of an inline component.

If the use case requires BodySite to be handled as a separate resource (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
  • sct-concept: < 123037004 |Body structure|
  • v2: OBX-20
  • rim: targetSiteCode
  • sct-attr: 718497002 |Inherent location|
Observation.method
DefinitionLaboratory technigue that has been used
Cardinality0...1
TypeCodeableConceptIPS
BindingLabTechniqueEuVs (preferred)
Requirements

In some cases, method can impact results and is thus used for determining whether results can be compared or determining significance of results.

Comments

Laboratory technique (method of measurement) are integral parts of the test specification of some laboratory test coding systems (e.g. NPU), in LOINC hovewer measurement principle is not always present in the test definition. In some cases however knowledge of the used measurment techique is important for proper interpretation of the test result. That's why it is important to explicitly include informaiton about measurement method is such cases.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX-17
  • rim: methodCode
Observation.specimen
DefinitionThe specimen that was used when this observation was made.
Cardinality0...1
TypeReference(SpecimenEu)
Comments

When the specimen is applicable and known it shall be documented

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 123038009 |Specimen|
  • v2: SPM segment
  • rim: participation[typeCode=SPC].specimen
  • sct-attr: 704319004 |Inherent in|
Observation.device
DefinitionThe device used to generate the observation data.
Cardinality0...1
TypeReference(Device | DeviceMetric)
Comments

Note that this is not meant to represent a device involved in the transmission of the result, e.g., a gateway. Such devices may be documented using the Provenance resource where relevant.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 49062001 |Device|
  • v2: OBX-17 / PRT -10
  • rim: participation[typeCode=DEV]
  • sct-attr: 424226004 |Using device|
Observation.referenceRange
DefinitionGuidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an "OR". In other words, to represent two distinct target populations, two `referenceRange` elements would be used.
Cardinality0...*
TypeBackboneElement
Requirements

Knowing what values are considered "normal" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.

Comments

Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • obs-3: Must have at least a low or a high or text
    low.exists() or high.exists() or text.exists()
Mappings
  • v2: OBX.7
  • rim: outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
Observation.referenceRange.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
Observation.referenceRange.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.

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
Observation.referenceRange.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
Observation.referenceRange.low
DefinitionThe value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3).
Cardinality0...1
TypeSimpleQuantity
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX-7
  • rim: value:IVL_PQ.low
Observation.referenceRange.high
DefinitionThe value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3).
Cardinality0...1
TypeSimpleQuantity
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX-7
  • rim: value:IVL_PQ.high
Observation.referenceRange.type
DefinitionCodes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range.
Cardinality0...1
TypeCodeableConcept
Binding

Code for the meaning of a reference range.

ObservationReferenceRangeMeaningCodes (preferred)
Requirements

Need to be able to say what kind of reference range this is - normal, recommended, therapeutic, etc., - for proper interpretation.

Comments

This SHOULD be populated if there is more than one range. If this element is not present then the normal range is assumed.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 260245000 |Findings values| OR < 365860008 |General clinical state finding| OR < 250171008 |Clinical history or observation findings| OR < 415229000 |Racial group| OR < 365400002 |Finding of puberty stage| OR < 443938003 |Procedure carried out on subject|
  • v2: OBX-10
  • rim: interpretationCode
Observation.referenceRange.appliesTo
DefinitionCodes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an "AND" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used.
Cardinality0...*
TypeCodeableConcept
Binding

Codes identifying the population the reference range applies to.

ObservationReferenceRangeAppliesToCodes (example)
Requirements

Need to be able to identify the target population for proper interpretation.

Comments

This SHOULD be populated if there is more than one range. If this element is not present then the normal population is assumed.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 260245000 |Findings values| OR < 365860008 |General clinical state finding| OR < 250171008 |Clinical history or observation findings| OR < 415229000 |Racial group| OR < 365400002 |Finding of puberty stage| OR < 443938003 |Procedure carried out on subject|
  • v2: OBX-10
  • rim: interpretationCode
Observation.referenceRange.age
DefinitionThe age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.
Cardinality0...1
TypeRange
Requirements

Some analytes vary greatly over age.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: outboundRelationship[typeCode=PRCN].targetObservationCriterion[code="age"].value
Observation.referenceRange.text
DefinitionText based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of "Negative" or a list or table of "normals".
Cardinality0...1
Typestring
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX-7
  • rim: value:ST
Observation.hasMember
DefinitionA reference to another Observation profiled by Observation-results-laboratory-uv-ips. The target observation (for instance an individual test member of a panel) is considered as a sub-observation of the current one, which plays the role of a grouper.
Cardinality0...*
TypeReference(ObservationResultsLaboratoryEu)
SummaryTrue
Comments

This element is used in the context of international patient summary when there is a need to group a collection of observations, because they belong to the same panel, or because they share a common interpretation comment, or a common media attachment (illustrative image or graph). In these cases, the current observation is the grouper, and its set of sub-observations are related observations using the type "has-member". For a discussion on the ways Observations can be assembled in groups together see Observation Grouping.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Relationships established by OBX-4 usage
  • rim: outBoundRelationship
Observation.derivedFrom
DefinitionThe target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image.
Cardinality0...*
TypeReference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)
SummaryTrue
Comments

All the reference choices that are listed in this element can represent clinical observations and other measurements that may be the source for a derived value. The most common reference will be another Observation. For a discussion on the ways Observations can assembled in groups together, see Notes below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Relationships established by OBX-4 usage
  • rim: .targetObservation
Observation.component
DefinitionSome observations have multiple component observations. These component observations are expressed as separate code value pairs that share the same attributes. Examples include systolic and diastolic component observations for blood pressure measurement and multiple component observations for genetics observations.
Cardinality0...*
TypeBackboneElement
SummaryTrue
Requirements

Component observations share the same attributes in the Observation resource as the primary observation and are always treated a part of a single observation (they are not separable). However, the reference range for the primary observation value is not inherited by the component values and is required when appropriate for each component observation.

Comments

For a discussion on the ways Observations can be assembled in groups together see Notes below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: containment by OBX-4?
  • rim: outBoundRelationship[typeCode=COMP]
Observation.component.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
Observation.component.extension
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Observation.component.extension:value-r5
DefinitionOptional Extension Element - found in all resources.
Cardinality0...1
TypeExtension
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
Observation.component.extension:value-r5.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
Observation.component.extension:value-r5.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Observation.component.extension:value-r5.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value[x]

Mappings
  • rim: N/A
Observation.component.extension:value-r5.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).
Cardinality1...1
TypeAttachment
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Observation.component.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
Observation.component.code
DefinitionDescribes what was observed. Sometimes this is called the observation "code".
Cardinality1...1
TypeCodeableConceptIPS
BindingResultsLaboratoryObservationUvIps (preferred)
SummaryTrue
Requirements

Knowing what kind of observation is being made is essential to understanding the observation.

Comments

All code-value and component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.what[x]
  • sct-concept: < 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
  • v2: OBX-3
  • rim: code
Observation.component.value[x]
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeQuantity
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

SlicingUnordered, Open, by $this(Type)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.value[x]:valueString
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
Typestring
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.value[x]:valueRange
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeRangeIPS
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.value[x]:valueRatio
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeRatioEuLab
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.value[x]:valueTime
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
Typetime
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.value[x]:valueDateTime
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypedateTime
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.value[x]:valuePeriod
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypePeriod
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.value[x]:valueQuantity
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeQuantityEuLab
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.value[x]:valueCodeableConcept
DefinitionThe information determined as a result of making the observation, if the information has a simple value.
Cardinality0...1
TypeCodeableConceptIPS
BindingResultsCodedValuesLaboratoryUvIps (preferred)
SummaryTrue
Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comments

Used when observation has a set of component observations. An observation may have both a value (e.g. an Apgar score) and component observations (the observations from which the Apgar score was derived). If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: 363714003 |Interprets| < 441742003 |Evaluation finding|
  • v2: OBX.2, OBX.5, OBX.6
  • rim: value
  • sct-attr: 363714003 |Interprets|
Observation.component.dataAbsentReason
DefinitionProvides a reason why the expected value in the element Observation.component.value[x] is missing.
Cardinality0...1
TypeCodeableConcept
Binding

Codes specifying why the result (Observation.value[x]) is missing.

DataAbsentReason (extensible)
Requirements

For many results it is necessary to handle exceptional values in measurements.

Comments

"Null" or exceptional values can be represented two ways in FHIR Observations. One way is to simply include them in the value set and represent the exceptions in the value. For example, measurement values for a serology test could be "detected", "not detected", "inconclusive", or "test not done".

The alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values. For example, the dataAbsentReason code "error" could be used when the measurement was not completed. Because of these options, use-case agreements are required to interpret general observations for exceptional values.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: N/A
  • rim: value.nullFlavor
Observation.component.interpretation
DefinitionA categorical assessment of an observation value. For example, high, low, normal.
Cardinality0...*
TypeCodeableConcept
Binding

Codes identifying interpretations of observations.

ObservationInterpretationCodes (extensible)
AliasAbnormal Flag
Requirements

For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result.

Comments

Historically used for laboratory results (known as 'abnormal flag' ), its use extends to other use cases where coded interpretations are relevant. Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • sct-concept: < 260245000 |Findings values|
  • v2: OBX-8
  • rim: interpretationCode
  • sct-attr: 363713009 |Has interpretation|
Observation.component.referenceRange
DefinitionGuidance on how to interpret the value by comparison to a normal or recommended range.
Cardinality0...*
Typesee (referenceRange)
Requirements

Knowing what values are considered "normal" can help evaluate the significance of a particular result. Need to be able to provide multiple reference ranges for different contexts.

Comments

Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g., specific to the patient's age, gender, weight and other factors), but this might not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX.7
  • rim: outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]

Table View

Observation..
Observation.extensionExtension..
Observation.extension.extension..
Observation.extension.extension.value[x]..
Observation.extension.extension..
Observation.extension.extension.value[x]..
Observation.extension.extension..
Observation.extension.extension.value[x]..
Observation.extensionExtension..
Observation.status..
Observation.category1..1
Observation.category.coding..
Observation.category.coding.system..
Observation.category.coding.code..
Observation.code..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-Observation-Lab" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation-Lab" />
    <version value="2.0.1" />
    <name value="UKCoreObservationLab" />
    <title value="UK Core Observation Lab" />
    <status value="active" />
    <date value="2025-05-13" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [Observation](https://hl7.org/fhir/R4/Observation.html), in order to represent an individual laboratory test and result value. These tests can be grouped together using the UKCore-Observation-Group-Lab profile." />
    <purpose value="To provide the minimum expectations for each individual laboratory test." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Observation" />
    <baseDefinition value="http://hl7.eu/fhir/laboratory/StructureDefinition/Observation-resultslab-eu-lab" />
    <derivation value="constraint" />
    <differential>
        <element id="Observation">
            <path value="Observation" />
            <constraint>
                <key value="ukcore-obs-lab-001" />
                <severity value="warning" />
                <human value="Either `value`, `dataAbsentReason` or `note` SHOULD be populated" />
                <expression value="value.exists() or dataAbsentReason.exists() or note.exists()" />
            </constraint>
        </element>
        <element id="Observation.extension:triggeredByR5">
            <path value="Observation.extension" />
            <sliceName value="triggeredByR5" />
            <short value="Triggering observation(s). This is a R5 backport." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy" />
            </type>
        </element>
        <element id="Observation.extension:triggeredByR5.extension:observation">
            <path value="Observation.extension.extension" />
            <sliceName value="observation" />
        </element>
        <element id="Observation.extension:triggeredByR5.extension:observation.value[x]">
            <path value="Observation.extension.extension.value[x]" />
            <short value="Triggering observation." />
            <definition value="A reference to the triggering observation." />
        </element>
        <element id="Observation.extension:triggeredByR5.extension:type">
            <path value="Observation.extension.extension" />
            <sliceName value="type" />
        </element>
        <element id="Observation.extension:triggeredByR5.extension:type.value[x]">
            <path value="Observation.extension.extension.value[x]" />
            <short value="The type of trigger. Reflex | Repeat | Re-run" />
            <definition value="The type of trigger. Reflex | Repeat | Re-run" />
        </element>
        <element id="Observation.extension:triggeredByR5.extension:reason">
            <path value="Observation.extension.extension" />
            <sliceName value="reason" />
        </element>
        <element id="Observation.extension:triggeredByR5.extension:reason.value[x]">
            <path value="Observation.extension.extension.value[x]" />
            <short value="Reason that the observation was triggered." />
            <definition value="Provides the reason why this observation was performed as a result of the observation referenced." />
        </element>
        <element id="Observation.extension:bodyStructureR5">
            <path value="Observation.extension" />
            <sliceName value="bodyStructureR5" />
            <short value="Observed body structure. This is a R5 backport." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.bodyStructure" />
            </type>
        </element>
        <element id="Observation.status">
            <path value="Observation.status" />
            <short value="The status of the result value." />
            <mustSupport value="true" />
        </element>
        <element id="Observation.category:laboratory">
            <path value="Observation.category" />
            <sliceName value="laboratory" />
            <short value="A mandatory code, to identify this observation as being Lab related." />
            <min value="1" />
            <max value="1" />
            <mustSupport value="true" />
        </element>
        <element id="Observation.category:laboratory.coding.system">
            <path value="Observation.category.coding.system" />
            <fixedUri value="http://terminology.hl7.org/CodeSystem/observation-category" />
        </element>
        <element id="Observation.category:laboratory.coding.code">
            <path value="Observation.category.coding.code" />
            <fixedCode value="laboratory" />
        </element>
        <element id="Observation.code">
            <path value="Observation.code" />
            <short value="The type of lab related observation (code / type)." />
            <mustSupport value="true" />
            <binding>
                <strength value="preferred" />
                <description value="A code from the SNOMED Clinical Terminology UK coding system regarding laboratory medicine test results" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" />
            </binding>
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-Observation-Lab",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation-Lab",
    "version": "2.0.1",
    "name": "UKCoreObservationLab",
    "title": "UK Core Observation Lab",
    "status": "active",
    "date": "2025-05-13",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [Observation](https://hl7.org/fhir/R4/Observation.html), in order to represent an individual laboratory test and result value. These tests can be grouped together using the UKCore-Observation-Group-Lab profile.",
    "purpose": "To provide the minimum expectations for each individual laboratory test.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Observation",
    "baseDefinition": "http://hl7.eu/fhir/laboratory/StructureDefinition/Observation-resultslab-eu-lab",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Observation",
                "path": "Observation",
                "constraint":  [
                    {
                        "key": "ukcore-obs-lab-001",
                        "severity": "warning",
                        "human": "Either `value`, `dataAbsentReason` or `note` SHOULD be populated",
                        "expression": "value.exists() or dataAbsentReason.exists() or note.exists()"
                    }
                ]
            },
            {
                "id": "Observation.extension:triggeredByR5",
                "path": "Observation.extension",
                "sliceName": "triggeredByR5",
                "short": "Triggering observation(s). This is a R5 backport.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy"
                        ]
                    }
                ]
            },
            {
                "id": "Observation.extension:triggeredByR5.extension:observation",
                "path": "Observation.extension.extension",
                "sliceName": "observation"
            },
            {
                "id": "Observation.extension:triggeredByR5.extension:observation.value[x]",
                "path": "Observation.extension.extension.value[x]",
                "short": "Triggering observation.",
                "definition": "A reference to the triggering observation."
            },
            {
                "id": "Observation.extension:triggeredByR5.extension:type",
                "path": "Observation.extension.extension",
                "sliceName": "type"
            },
            {
                "id": "Observation.extension:triggeredByR5.extension:type.value[x]",
                "path": "Observation.extension.extension.value[x]",
                "short": "The type of trigger. Reflex | Repeat | Re-run",
                "definition": "The type of trigger. Reflex | Repeat | Re-run"
            },
            {
                "id": "Observation.extension:triggeredByR5.extension:reason",
                "path": "Observation.extension.extension",
                "sliceName": "reason"
            },
            {
                "id": "Observation.extension:triggeredByR5.extension:reason.value[x]",
                "path": "Observation.extension.extension.value[x]",
                "short": "Reason that the observation was triggered.",
                "definition": "Provides the reason why this observation was performed as a result of the observation referenced."
            },
            {
                "id": "Observation.extension:bodyStructureR5",
                "path": "Observation.extension",
                "sliceName": "bodyStructureR5",
                "short": "Observed body structure. This is a R5 backport.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.bodyStructure"
                        ]
                    }
                ]
            },
            {
                "id": "Observation.status",
                "path": "Observation.status",
                "short": "The status of the result value.",
                "mustSupport": true
            },
            {
                "id": "Observation.category:laboratory",
                "path": "Observation.category",
                "sliceName": "laboratory",
                "short": "A mandatory code, to identify this observation as being Lab related.",
                "min": 1,
                "max": "1",
                "mustSupport": true
            },
            {
                "id": "Observation.category:laboratory.coding.system",
                "path": "Observation.category.coding.system",
                "fixedUri": "http://terminology.hl7.org/CodeSystem/observation-category"
            },
            {
                "id": "Observation.category:laboratory.coding.code",
                "path": "Observation.category.coding.code",
                "fixedCode": "laboratory"
            },
            {
                "id": "Observation.code",
                "path": "Observation.code",
                "short": "The type of lab related observation (code / type).",
                "mustSupport": true,
                "binding": {
                    "strength": "preferred",
                    "description": "A code from the SNOMED Clinical Terminology UK coding system regarding laboratory medicine test results",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables"
                }
            }
        ]
    }
}

Feedback

Click here to:
Command 'page' could not render: Page not found.


Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient-Labdraft2.6.12025-05-13

This profile defines the UK constraints and extensions on the International FHIR resource Patient.


Profile_Purpose

This profile allows exchange of demographics and other administrative information about an individual receiving care or other health-related services.

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1id
extensionI0..0Extension
url1..1uriFixed Value
valueAddressAddressEu
sex-for-clinical-useI0..*Extension(Complex)
birthSexI0..1Extension(code)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueBooleanboolean
contactPreferenceI0..1Extension(Complex)
deathNotificationStatusI0..1Extension(Complex)
ethnicCategoryI0..1Extension(CodeableConcept)
fetalStatusI0..*Extension
residentialStatusI0..1Extension(CodeableConcept)
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueBooleanboolean
nhsNumberUnavailableReasonI0..1Extension(CodeableConcept)
modifierExtension?! I0..*Extension
id0..1string
nhsNumberVerificationStatusI0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
activeS Σ ?!0..1boolean
id0..1string
name-absent-reasonI0..*Extension(code)
useΣ ?!0..1codeBinding
textΣ0..1string
id0..1string
fathersFamilyI0..*Extension(string)
mothersFamilyI0..*Extension(string)
value0..1System.String
givenΣ0..*string
prefixΣ0..*string
suffixΣ0..*string
periodΣ0..1Period
id0..1string
extensionI0..*Extension
id0..1string
otherContactSystemI0..1Extension(Coding)
value0..1System.String
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ0..1Period
genderS Σ0..1codeBinding
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueDateTimedateTime
value0..1System.Date
deceasedBooleanboolean
deceasedDateTimedateTime
id0..1string
addressKeyI0..*Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
id0..1string
streetNameI0..*Extension(string)
houseNumberI0..*Extension(string)
postBoxI0..*Extension(string)
value0..1System.String
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeΣ0..1string
id0..1string
id0..1id
extensionI0..0Extension
url1..1uriFixed Value
valueCodingCoding
value0..1System.String
periodΣ0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photo0..*Attachment
id0..1string
contactRankI0..1Extension(positiveInt)
copyCorrespondenceIndicatorI0..1Extension(boolean)
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptIPSBinding
name0..1HumanName
id0..1string
extensionI0..*Extension
id0..1string
otherContactSystemI0..1Extension(Coding)
value0..1System.String
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ0..1Period
address0..1AddressEu
gender0..1codeBinding
organizationI0..1Reference(Organization)
period0..1Period
id0..1string
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueCodingCoding
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueCodingCoding
url1..1uriFixed Value
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitioner0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationS Σ0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

Detailed Descriptions

Patient
DefinitionDemographics and other administrative information about an individual or animal receiving care or other health-related services.
Cardinality0...*
AliasSubjectOfCare Client Resident
Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
Mappings
  • rim: Entity. Role, or Act
  • rim: Patient[classCode=PAT]
  • cda: ClinicalDocument.recordTarget.patientRole
Patient.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typeid
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.

Patient.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())
Patient.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())
Patient.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())
Patient.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: Act.text?
Patient.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: N/A
Patient.extension
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Patient.extension:birthPlace
DefinitionThe registered place of birth of the patient.
Cardinality0...1
TypeExtension(Address)
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()
Patient.extension:birthPlace.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
Typeid
Mappings
  • rim: n/a
Patient.extension:birthPlace.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Patient.extension:birthPlace.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/StructureDefinition/patient-birthPlace

Mappings
  • rim: N/A
Patient.extension:birthPlace.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R5/extensibility.html) for a list).
Cardinality1...1
TypeAddressEu
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Patient.extension:sex-for-clinical-use
DefinitionA parameter that provides guidance on how a recipient should apply settings or reference ranges that are derived from observable information such as an organ inventory, recent hormone lab tests, genetic testing, menstrual status, obstetric history, etc..
Cardinality0...*
TypeExtension(Complex)
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()
Patient.extension:birthSex
DefinitionThe patient's phenotypic sex at birth.
Cardinality0...1
TypeExtension(code)
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
Patient.extension:cadavericDonor
DefinitionFlag indicating whether the patient authorized the donation of body parts after death.
Cardinality0...1
TypeExtension(boolean)
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()
Patient.extension:cadavericDonor.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
Patient.extension:cadavericDonor.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Patient.extension:cadavericDonor.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor

Mappings
  • rim: N/A
Patient.extension:cadavericDonor.value[x]
DefinitionFlag indicating whether the patient authorized the donation of body parts after death.
Cardinality1...1
Typeboolean
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Patient.extension:contactPreference
DefinitionThe preferred method of contact, contact times and written communication format given by a Patient or Related Person.
Cardinality0...1
TypeExtension(Complex)
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
Patient.extension:deathNotificationStatus
DefinitionThe patient's death notification status.
Cardinality0...1
TypeExtension(Complex)
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
Patient.extension:ethnicCategory
DefinitionThe ethnicity of the subject.
Cardinality0...1
TypeExtension(CodeableConcept)
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
Patient.extension:fetalStatus
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Patient.extension:residentialStatus
DefinitionThe residential status of the patient. For example if this patient is a UK resident.
Cardinality0...1
TypeExtension(CodeableConcept)
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
Patient.extension:patientInterpreterRequired
DefinitionThis Patient requires an interpreter to communicate healthcare information to the practitioner.
Cardinality0...1
TypeExtension(boolean)
Comments

The Patient does not speak the default language of the organization, and hence requires an interpreter. If the patient has other languages in the Communications list, then that would be the type of interpreter required.

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()
Patient.extension:patientInterpreterRequired.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
Patient.extension:patientInterpreterRequired.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Patient.extension:patientInterpreterRequired.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired

Mappings
  • rim: N/A
Patient.extension:patientInterpreterRequired.value[x]
DefinitionIndicator showing if this Patient requires an interpreter to communicate healthcare information to the practitioner.
Cardinality1...1
Typeboolean
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Patient.extension:nhsNumberUnavailableReason
DefinitionThe reason why a patient does not have an NHS Number. For example if this patient is an overseas patient.
Cardinality0...1
TypeExtension(CodeableConcept)
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
Patient.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.

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
Patient.identifier
DefinitionAn identifier for this patient.
Cardinality0...*
TypeIdentifier
Must SupportTrue
SummaryTrue
Requirements

Patients are almost always assigned specific numerical identifiers.

SlicingUnordered, Open, by system(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.identifier
  • v2: PID-3
  • rim: id
  • cda: .id
Patient.identifier:nhsNumber
DefinitionAn identifier for this patient.
Cardinality0...1
TypeIdentifier
SummaryTrue
Requirements

Patients are almost always assigned specific numerical identifiers.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.identifier
  • v2: PID-3
  • rim: id
  • cda: .id
Patient.identifier:nhsNumber.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
Patient.identifier:nhsNumber.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
Patient.identifier:nhsNumber.extension:nhsNumberVerificationStatus
DefinitionThe verification/tracing status of the NHS number.
Cardinality0...1
TypeExtension(CodeableConcept)
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
Patient.identifier:nhsNumber.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: N/A
  • rim: Role.code or implied by context
Patient.identifier:nhsNumber.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: CX.5
  • rim: Role.code or implied by context
Patient.identifier:nhsNumber.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

https://fhir.nhs.uk/Id/nhs-number

Mappings
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
Patient.identifier:nhsNumber.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality1...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
Patient.identifier:nhsNumber.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
Patient.identifier:nhsNumber.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference(Organization)
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
Patient.active
DefinitionWhether this patient record is in active use. Many systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules. It is often used to filter patient lists to exclude inactive patients Deceased patients may also be marked as inactive for the same reasons, but may be active for some time after death.
Cardinality0...1
Typeboolean
Must SupportTrue
ModifierTrue
SummaryTrue
Requirements

Need to be able to mark a patient record as not to be used because it was created in error.

Comments

If a record is inactive, and linked to an active record, then future patient/record updates should occur on the other patient.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.status
  • rim: statusCode
  • cda: n/a
Patient.name
DefinitionA name associated with the individual.
Cardinality1...*
TypeHumanNameEu
Must SupportTrue
SummaryTrue
Requirements

Need to be able to track the patient by multiple names. Examples are your official name and a partner name. The Alphabetic representation of the name SHALL be always provided

Comments

A patient may have multiple names with different uses or applicable periods. For animals, the name is a "HumanName" in the sense that is assigned and used by humans and has the same patterns.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • eu-pat-1: given, family, text or a data-absent-reason extension SHALL be present
    family.exists() or given.exists() or text.exists() or extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists()
Mappings
  • v2: PID-5, PID-9
  • rim: name
  • cda: .patient.name
Patient.name.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
Patient.name.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
Patient.name.extension:name-absent-reason
DefinitionReason for not providing the name
Cardinality0...*
TypeExtension(code)
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: ANY.nullFlavor
Patient.name.use
DefinitionIdentifies the purpose for this name.
Cardinality0...1
Typecode
Binding

The use of a human name.

NameUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate name for a particular context of use to be selected from among a set of names.

Comments

Applications can assume that a name is current unless it explicitly says that it is temporary or old.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN.7, but often indicated by which field contains the name
  • rim: unique(./use)
  • servd: ./NamePurpose
Patient.name.text
DefinitionText representation of the full name. Due to the cultural variance around the world a consuming system may not know how to present the name correctly; moreover not all the parts of the name go in given or family. Creators are therefore strongly encouraged to provide through this element a presented version of the name. Future versions of this guide may require this element
Cardinality0...1
Typestring
SummaryTrue
Requirements

A renderable, unencoded form.

Comments

Can provide both a text representation and parts. Applications updating a name SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: implied by XPN.11
  • rim: ./formatted
Patient.name.family
DefinitionFamily name. When more the family is composed by more than one names, this element documents the full composed family name with the proper * name.familyrder. The parts are recorded in the fhater and mother family names extensions.
Cardinality0...1
Typestring
SummaryTrue
Aliassurname
Comments

Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
spanish name

Valero Iglesias


spanish

Valero Iglesias


Mappings
  • v2: XPN.1/FN.1
  • rim: ./part[partType = FAM]
  • servd: ./FamilyName
Patient.name.family.id
Definitionunique id for the element within a resource (for internal references)
Cardinality0...1
Typestring
Patient.name.family.extension
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Patient.name.family.extension:fathersFamily
DefinitionThe portion of the family name that is derived from the person's father.
Cardinality0...*
TypeExtension(string)
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()
Examples
spanish name

Valero


Mappings
  • v2: N/A
  • rim: N/A
Patient.name.family.extension:mothersFamily
DefinitionThe portion of the family name that is derived from the person's mother.
Cardinality0...*
TypeExtension(string)
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()
Examples
spanish name

Iglesias


Mappings
  • v2: N/A
  • rim: N/A
Patient.name.family.value
DefinitionThe actual value
Cardinality0...1
TypeSystem.String
Patient.name.given
DefinitionGiven name.
Cardinality0...*
Typestring
SummaryTrue
Aliasfirst name, middle name
Comments

If only initials are recorded, they may be used in place of the full name parts. Initials may be separated into multiple given names but often aren't due to paractical limitations. This element is not called "first name" since given names do not always come first.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
spanish name

Borja


Mappings
  • v2: XPN.2 + XPN.3
  • rim: ./part[partType = GIV]
  • servd: ./GivenNames
Patient.name.prefix
DefinitionPart of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.
Cardinality0...*
Typestring
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN.5
  • rim: ./part[partType = PFX]
  • servd: ./TitleCode
Patient.name.suffix
DefinitionPart of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.
Cardinality0...*
Typestring
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN/4
  • rim: ./part[partType = SFX]
Patient.name.period
DefinitionIndicates the period of time when this name was valid for the named person.
Cardinality0...1
TypePeriod
SummaryTrue
Requirements

Allows names to be placed in historical context.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN.13 + XPN.14
  • rim: ./usablePeriod[type="IVL<TS>"]
  • servd: ./StartDate and ./EndDate
Patient.telecom
DefinitionA contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.
Cardinality0...*
TypeContactPoint
Must SupportTrue
SummaryTrue
Requirements

People have (primary) ways to contact them in some way such as phone, email.

Comments

A Patient may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently and also to help with identification. The address might not go directly to the individual, but may reach another party that is able to proxy for the patient (i.e. home phone, or pet owner's phone).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-13, PID-14, PID-40
  • rim: telecom
  • cda: .telecom
Patient.telecom.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
Patient.telecom.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
Patient.telecom.system
DefinitionTelecommunications form for contact point - what communications system is required to make use of the contact.
Cardinality0...1
Typecode
Binding

Telecommunications form for contact point.

ContactPointSystem (required)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XTN.3
  • rim: ./scheme
  • servd: ./ContactPointType
Patient.telecom.system.id
Definitionunique id for the element within a resource (for internal references)
Cardinality0...1
Typestring
Patient.telecom.system.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()
Patient.telecom.system.extension:otherContactSystem
DefinitionOther contact system value which extends the system element in the ContactPoint datatype.
Cardinality0...1
TypeExtension(Coding)
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
Patient.telecom.system.value
DefinitionPrimitive value for code
Cardinality0...1
TypeSystem.String
Patient.telecom.value
DefinitionThe actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to support legacy numbers that are not in a tightly controlled format.

Comments

Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XTN.1 (or XTN.12)
  • rim: ./url
  • servd: ./Value
Patient.telecom.use
DefinitionIdentifies the purpose for the contact point.
Cardinality0...1
Typecode
Binding

Use of contact point.

ContactPointUse (required)
ModifierTrue
SummaryTrue
Requirements

Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose.

Comments

Applications can assume that a contact is current unless it explicitly says that it is temporary or old.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XTN.2 - but often indicated by field
  • rim: unique(./use)
  • servd: ./ContactPointPurpose
Patient.telecom.rank
DefinitionSpecifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.
Cardinality0...1
TypepositiveInt
SummaryTrue
Comments

Note that rank does not necessarily follow the order in which the contacts are represented in the instance.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: n/a
  • rim: n/a
Patient.telecom.period
DefinitionTime period when the contact point was/is in use.
Cardinality0...1
TypePeriod
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: N/A
  • rim: ./usablePeriod[type="IVL<TS>"]
  • servd: ./StartDate and ./EndDate
Patient.gender
DefinitionAdministrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.
Cardinality0...1
Typecode
Binding

The gender of a person used for administrative purposes.

AdministrativeGender (required)
Must SupportTrue
SummaryTrue
Requirements

Needed for identification of the individual, in combination with (at least) name and birth date.

Comments

The gender might not match the biological sex as determined by genetics or the individual's preferred identification. Note that for both humans and particularly animals, there are other legitimate possibilities than male and female, though the vast majority of systems and contexts only support male and female. Systems providing decision support or enforcing business rules should ideally do this on the basis of Observations dealing with the specific sex or gender aspect of interest (anatomical, chromosomal, social, etc.) However, because these observations are infrequently recorded, defaulting to the administrative gender is common practice. Where such defaulting occurs, rule enforcement should allow for the variation between administrative and biological, chromosomal and other gender aspects. For example, an alert about a hysterectomy on a male should be handled as a warning or overridable error, not a "hard" error. See the Patient Gender and Sex section for additional information about communicating patient gender and sex.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-8
  • rim: player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
  • cda: .patient.administrativeGenderCode
Patient.birthDate
DefinitionThe date of birth for the individual.
Cardinality1...1
Typedate
Must SupportTrue
SummaryTrue
Requirements

Age of the individual drives many clinical processes.

Comments

At least an estimated year should be provided as a guess if the real DOB is unknown There is a standard extension "patient-birthTime" available that should be used where Time is required (such as in maternity/infant care systems).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-7
  • rim: player[classCode=PSN|ANM and determinerCode=INSTANCE]/birthTime
  • cda: .patient.birthTime
  • loinc: 21112-8
Patient.birthDate.id
Definitionunique id for the element within a resource (for internal references)
Cardinality0...1
Typestring
Patient.birthDate.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()
Patient.birthDate.extension:birthTime
DefinitionThe time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively.
Cardinality0...1
TypeExtension(dateTime)
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()
Patient.birthDate.extension:birthTime.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
Patient.birthDate.extension:birthTime.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Patient.birthDate.extension:birthTime.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/StructureDefinition/patient-birthTime

Mappings
  • rim: N/A
Patient.birthDate.extension:birthTime.value[x]
DefinitionThe time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively.
Cardinality1...1
TypedateTime
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Patient.birthDate.value
DefinitionThe actual value
Cardinality0...1
TypeSystem.Date
Patient.deceased[x]
DefinitionIndicates if the individual is deceased or not.
Cardinality0...1
Typeboolean
ModifierTrue
SummaryTrue
Requirements

The fact that a patient is deceased influences the clinical process. Also, in human communication and relation management it is necessary to know whether the person is alive.

Comments

If there's no value in the instance, it means there is no statement on whether or not the individual is deceased. Most systems will interpret the absence of a value as a sign of the person being alive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-30 (bool) and PID-29 (datetime)
  • rim: player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedInd, player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedTime
  • cda: n/a
Patient.address
DefinitionAn address for the individual.
Cardinality0...*
TypeAddressEu
Must SupportTrue
SummaryTrue
Requirements

May need to keep track of patient addresses for contacting, billing or reporting requirements and also to help with identification.

Comments

Patient may have multiple addresses with different uses or applicable periods.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-11
  • rim: addr
  • cda: .addr
Patient.address.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
Patient.address.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
Patient.address.extension:addressKey
DefinitionA patient's address key and type.
Cardinality0...*
TypeExtension(Complex)
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
Patient.address.use
DefinitionThe purpose of this address.
Cardinality0...1
Typecode
Binding

The use of an address.

AddressUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows an appropriate address to be chosen from a list of many.

Comments

Applications can assume that an address is current unless it explicitly says that it is temporary or old.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

home


Mappings
  • v2: XAD.7
  • rim: unique(./use)
  • servd: ./AddressPurpose
Patient.address.type
DefinitionDistinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.
Cardinality0...1
Typecode
Binding

The type of an address (physical / postal).

AddressType (required)
SummaryTrue
Comments

The definition of Address states that "address is intended to describe postal addresses, not physical locations". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the Location resource).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

both


Mappings
  • v2: XAD.18
  • rim: unique(./use)
  • vcard: address type parameter
Patient.address.text
DefinitionSpecifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.
Cardinality0...1
Typestring
SummaryTrue
Requirements

A renderable, unencoded form.

Comments

Can provide both a text representation and parts. Applications updating an address SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

137 Nowhere Street, Erewhon 9132


Mappings
  • v2: XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6
  • rim: ./formatted
  • vcard: address label parameter
Patient.address.line
DefinitionThis component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.
Cardinality0...*
Typestring
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

137 Nowhere Street


Mappings
  • v2: XAD.1 + XAD.2 (note: XAD.1 and XAD.2 have different meanings for a company address than for a person address)
  • rim: AD.part[parttype = AL]
  • vcard: street
  • servd: ./StreetAddress (newline delimitted)
Patient.address.line.id
Definitionunique id for the element within a resource (for internal references)
Cardinality0...1
Typestring
Patient.address.line.extension
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Patient.address.line.extension:streetName
DefinitionstreetName.
Cardinality0...*
TypeExtension(string)
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: ADXP[partType=STR]
Patient.address.line.extension:houseNumber
DefinitionThe number of a building, house or lot alongside the street. Also known as "primary street number". This does not number the street but rather the building.
Cardinality0...*
TypeExtension(string)
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: ADXP[partType=BNR]
Patient.address.line.extension:postBox
DefinitionA numbered box located in a post station.
Cardinality0...*
TypeExtension(string)
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: ADXP[partType=POB]
Patient.address.line.value
DefinitionThe actual value
Cardinality0...1
TypeSystem.String
Patient.address.city
DefinitionThe name of the city, town, suburb, village or other community or delivery center.
Cardinality0...1
Typestring
SummaryTrue
AliasMunicpality
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

Erewhon


Mappings
  • v2: XAD.3
  • rim: AD.part[parttype = CTY]
  • vcard: locality
  • servd: ./Jurisdiction
Patient.address.district
DefinitionThe name of the administrative area (county).
Cardinality0...1
Typestring
SummaryTrue
AliasCounty
Comments

District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

Madison


Mappings
  • v2: XAD.9
  • rim: AD.part[parttype = CNT | CPA]
Patient.address.state
DefinitionSub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).
Cardinality0...1
Typestring
SummaryTrue
AliasProvince, Territory
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XAD.4
  • rim: AD.part[parttype = STA]
  • vcard: region
  • servd: ./Region
Patient.address.postalCode
DefinitionA postal code designating a region defined by the postal service.
Cardinality0...1
Typestring
SummaryTrue
AliasZip
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

9132


Mappings
  • v2: XAD.5
  • rim: AD.part[parttype = ZIP]
  • vcard: code
  • servd: ./PostalIdentificationCode
Patient.address.country
DefinitionCountry - a nation as commonly understood or generally accepted.
Cardinality0...1
Typestring
SummaryTrue
Comments

ISO 3166 3 letter codes can be used in place of a human readable country name.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XAD.6
  • rim: AD.part[parttype = CNT]
  • vcard: country
  • servd: ./Country
Patient.address.country.id
Definitionunique id for the element within a resource (for internal references)
Cardinality0...1
Typestring
Patient.address.country.extension
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Patient.address.country.extension:countryCode
DefinitionProvides a coded expression for the content represented in a string.
Cardinality0...1
TypeExtension(Coding)
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: SC.code
Patient.address.country.extension:countryCode.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
Typeid
Mappings
  • rim: n/a
Patient.address.country.extension:countryCode.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Patient.address.country.extension:countryCode.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/StructureDefinition/iso21090-SC-coding

Mappings
  • rim: N/A
Patient.address.country.extension:countryCode.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R5/extensibility.html) for a list).
Cardinality1...1
TypeCoding
BindingIso3166-1-2 (preferred)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Patient.address.country.value
DefinitionThe actual value
Cardinality0...1
TypeSystem.String
Patient.address.period
DefinitionTime period when address was/is in use.
Cardinality0...1
TypePeriod
SummaryTrue
Requirements

Allows addresses to be placed in historical context.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

{
  "start": "2010-03-23",
  "end": "2010-07-01"
}


Mappings
  • v2: XAD.12 / XAD.13 + XAD.14
  • rim: ./usablePeriod[type="IVL<TS>"]
  • servd: ./StartDate and ./EndDate
Patient.maritalStatus
DefinitionThis field contains a patient's most recent marital (civil) status.
Cardinality0...1
TypeCodeableConcept
Binding

An indicator to identify the legal marital status of a person

UKCorePersonMaritalStatusCode (extensible)
Requirements

Most, if not all systems capture it.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-16
  • rim: player[classCode=PSN]/maritalStatusCode
  • cda: .patient.maritalStatusCode
Patient.multipleBirth[x]
DefinitionIndicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer).
Cardinality0...1
Typeboolean
Requirements

For disambiguation of multiple-birth children, especially relevant where the care provider doesn't meet the patient, such as labs.

Comments

Where the valueInteger is provided, the number is the birth number in the sequence. E.g. The middle birth in triplets would be valueInteger=2 and the third born would have valueInteger=3 If a boolean value was provided for this triplets example, then all 3 patient records would have valueBoolean=true (the ordering is not indicated).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-24 (bool), PID-25 (integer)
  • rim: player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthInd, player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthOrderNumber
  • cda: n/a
Patient.photo
DefinitionImage of the patient.
Cardinality0...*
TypeAttachment
Requirements

Many EHR systems have the capability to capture an image of the patient. Fits with newer social media usage too.

Comments

Guidelines:

  • Use id photos, not clinical photos.
  • Limit dimensions to thumbnail.
  • Keep byte count low to ease resource updates.
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX-5 - needs a profile
  • rim: player[classCode=PSN|ANM and determinerCode=INSTANCE]/desc
  • cda: n/a
Patient.contact
DefinitionA contact party (e.g. guardian, partner, friend) for the patient.
Cardinality0...*
TypeBackboneElement
Requirements

Need to track people you can contact about the patient.

Comments

Contact covers all kinds of contact parties: family members, business contacts, guardians, caregivers. Not applicable to register pedigree and family ties beyond use of having contact.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • pat-1: SHALL at least contain a contact's details or a reference to an organization
    name.exists() or telecom.exists() or address.exists() or organization.exists()
Mappings
  • rim: player[classCode=PSN|ANM and determinerCode=INSTANCE]/scopedRole[classCode=CON]
  • cda: n/a
Patient.contact.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
Patient.contact.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
Patient.contact.extension:contactRank
DefinitionThe preferred ranking or order of contact applied to a contact on a patient's contact list.
Cardinality0...1
TypeExtension(positiveInt)
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
Patient.contact.extension:copyCorrespondenceIndicator
DefinitionExtension carrying a boolean indicator showing that a patient's contact or related person SHALL be copied in to patient correspondence.
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
Patient.contact.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
Patient.contact.relationship
DefinitionThe nature of the relationship between the patient and the contact person.
Cardinality0...*
TypeCodeableConceptIPS
Binding

The nature of the relationship between a patient and a contact person for that patient.

UKCorePersonRelationshipType (extensible)
Requirements

Used to determine which contact person is the most relevant to approach, depending on circumstances.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NK1-7, NK1-3
  • rim: code
  • cda: n/a
Patient.contact.name
DefinitionA name associated with the contact person.
Cardinality0...1
TypeHumanName
Requirements

Contact persons need to be identified by name, but it is uncommon to need details about multiple other names for that contact person.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NK1-2
  • rim: name
  • cda: n/a
Patient.contact.telecom
DefinitionA contact detail for the person, e.g. a telephone number or an email address.
Cardinality0...*
TypeContactPoint
Requirements

People have (primary) ways to contact them in some way such as phone, email.

Comments

Contact may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently, and also to help with identification.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NK1-5, NK1-6, NK1-40
  • rim: telecom
  • cda: n/a
Patient.contact.telecom.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
Patient.contact.telecom.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
Patient.contact.telecom.system
DefinitionTelecommunications form for contact point - what communications system is required to make use of the contact.
Cardinality0...1
Typecode
Binding

Telecommunications form for contact point.

ContactPointSystem (required)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XTN.3
  • rim: ./scheme
  • servd: ./ContactPointType
Patient.contact.telecom.system.id
Definitionunique id for the element within a resource (for internal references)
Cardinality0...1
Typestring
Patient.contact.telecom.system.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()
Patient.contact.telecom.system.extension:otherContactSystem
DefinitionOther contact system value which extends the system element in the ContactPoint datatype.
Cardinality0...1
TypeExtension(Coding)
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
Patient.contact.telecom.system.value
DefinitionPrimitive value for code
Cardinality0...1
TypeSystem.String
Patient.contact.telecom.value
DefinitionThe actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to support legacy numbers that are not in a tightly controlled format.

Comments

Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XTN.1 (or XTN.12)
  • rim: ./url
  • servd: ./Value
Patient.contact.telecom.use
DefinitionIdentifies the purpose for the contact point.
Cardinality0...1
Typecode
Binding

Use of contact point.

ContactPointUse (required)
ModifierTrue
SummaryTrue
Requirements

Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose.

Comments

Applications can assume that a contact is current unless it explicitly says that it is temporary or old.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XTN.2 - but often indicated by field
  • rim: unique(./use)
  • servd: ./ContactPointPurpose
Patient.contact.telecom.rank
DefinitionSpecifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.
Cardinality0...1
TypepositiveInt
SummaryTrue
Comments

Note that rank does not necessarily follow the order in which the contacts are represented in the instance.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: n/a
  • rim: n/a
Patient.contact.telecom.period
DefinitionTime period when the contact point was/is in use.
Cardinality0...1
TypePeriod
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: N/A
  • rim: ./usablePeriod[type="IVL<TS>"]
  • servd: ./StartDate and ./EndDate
Patient.contact.address
DefinitionAddress for the contact person.
Cardinality0...1
TypeAddressEu
Requirements

Need to keep track where the contact person can be contacted per postal mail or visited.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NK1-4
  • rim: addr
  • cda: n/a
Patient.contact.gender
DefinitionAdministrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.
Cardinality0...1
Typecode
Binding

The gender of a person used for administrative purposes.

AdministrativeGender (required)
Requirements

Needed to address the person correctly.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NK1-15
  • rim: player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
  • cda: n/a
Patient.contact.organization
DefinitionOrganization on behalf of which the contact is acting or for which the contact is working.
Cardinality0...1
TypeReference(Organization)
Requirements

For guardians or business related contacts, the organization is relevant.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NK1-13, NK1-30, NK1-31, NK1-32, NK1-41
  • rim: scoper
  • cda: n/a
Patient.contact.period
DefinitionThe period during which this contact person or organization is valid to be contacted relating to this patient.
Cardinality0...1
TypePeriod
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: effectiveTime
  • cda: n/a
Patient.communication
DefinitionA language which may be used to communicate with the patient about his or her health.
Cardinality0...*
TypeBackboneElement
Requirements

If a patient does not speak the local language, interpreters may be required, so languages spoken and proficiency are important things to keep track of both for patient and other persons of interest.

Comments

If no language is specified, this implies that the default local language is spoken. If you need to convey proficiency for multiple modes, then you need multiple Patient.Communication associations. For animals, language is not a relevant field, and should be absent from the instance. If the Patient does not speak the default local language, then the Interpreter Required Standard can be used to explicitly declare that an interpreter is required.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: LanguageCommunication
  • cda: patient.languageCommunication
Patient.communication.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
Patient.communication.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
Patient.communication.extension:proficiency
DefinitionProficiency level of the communication.
Cardinality0...1
TypeExtension(Complex)
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
Patient.communication.extension:proficiency.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
Patient.communication.extension:proficiency.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
Patient.communication.extension:proficiency.extension:level
DefinitionHow well the patient can communicate this communication (good, poor, etc.).
Cardinality0...1
TypeExtension
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()
Patient.communication.extension:proficiency.extension:level.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
Patient.communication.extension:proficiency.extension:level.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Patient.communication.extension:proficiency.extension:level.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

level

Mappings
  • rim: N/A
Patient.communication.extension:proficiency.extension:level.value[x]
DefinitionThe proficiency level for the communication.
Cardinality1...1
TypeCoding
Binding

The proficiency level for the communication.

v3.LanguageAbilityProficiency (preferred)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Patient.communication.extension:proficiency.extension:type
DefinitionWhat type of communication for the proficiency (spoken, written, etc.).
Cardinality0...*
TypeExtension
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()
Patient.communication.extension:proficiency.extension:type.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
Patient.communication.extension:proficiency.extension:type.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Patient.communication.extension:proficiency.extension:type.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

type

Mappings
  • rim: N/A
Patient.communication.extension:proficiency.extension:type.value[x]
DefinitionThe proficiency type for the communication.
Cardinality1...1
TypeCoding
Binding

The proficiency type for the communication.

v3.LanguageAbilityMode (preferred)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Patient.communication.extension:proficiency.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/StructureDefinition/patient-proficiency

Mappings
  • rim: N/A
Patient.communication.extension:proficiency.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/extensibility.html) for a list).
Cardinality0...0
Typebase64Binary
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Patient.communication.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
Patient.communication.language
DefinitionA ValueSet that identifies the language used by a person.
Cardinality1...1
TypeCodeableConcept
Binding

A ValueSet that identifies the language used by a person.

AllLanguages (required)
Requirements

Most systems in multilingual countries will want to convey language. Not all systems actually need the regional dialect.

Comments

The structure aa-BB with this exact casing is one the most widely used notations for locale. However not all systems actually code this but instead have it as free text. Hence CodeableConcept instead of code as the data type.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-15, LAN-2
  • rim: player[classCode=PSN|ANM and determinerCode=INSTANCE]/languageCommunication/code
  • cda: .languageCode
Patient.communication.preferred
DefinitionIndicates whether or not the patient prefers this language (over other languages he masters up a certain level).
Cardinality0...1
Typeboolean
Requirements

People that master multiple languages up to certain level may prefer one or more, i.e. feel more confident in communicating in a particular language making other languages sort of a fall back method.

Comments

This language is specifically identified for communicating healthcare information.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-15
  • rim: preferenceInd
  • cda: .preferenceInd
Patient.generalPractitioner
DefinitionPatient's nominated care provider.
Cardinality0...*
TypeReference(Organization | Practitioner | PractitionerRole)
AliascareProvider
Comments

This may be the primary care provider (in a GP context), or it may be a patient nominated care manager in a community/disability setting, or even organization that will provide people to perform the care provider roles. It is not to be used to record Care Teams, these should be in a CareTeam resource that may be linked to the CarePlan or EpisodeOfCare resources. Multiple GPs may be recorded against the patient for various reasons, such as a student that has his home GP listed along with the GP at university during the school semesters, or a "fly-in/fly-out" worker that has the onsite GP also included with his home GP to remain aware of medical issues.

Jurisdictions may decide that they can profile this down to 1 if desired, or 1 per type.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PD1-4
  • rim: subjectOf.CareEvent.performer.AssignedEntity
  • cda: n/a
Patient.managingOrganization
DefinitionOrganization that is the custodian of the patient record.
Cardinality0...1
TypeReference(Organization)
Must SupportTrue
SummaryTrue
Requirements

Need to know who recognizes this patient record, manages and updates it.

Comments

There is only one managing organization for a specific patient record. Other organizations will have their own Patient record, and may use the Link property to join the records together (or a Person resource which can include confidence ratings for the association).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: scoper
  • cda: .providerOrganization
Patient.link
DefinitionLink to another patient resource that concerns the same actual patient.
Cardinality0...*
TypeBackboneElement
ModifierTrue
SummaryTrue
Requirements

There are multiple use cases:

  • Duplicate patient records due to the clerical errors associated with the difficulties of identifying humans consistently, and
  • Distribution of patient information across multiple servers.
Comments

There is no assumption that linked patient records have mutual links.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: outboundLink
  • cda: n/a
Patient.link.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
Patient.link.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.

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
Patient.link.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
Patient.link.other
DefinitionThe other patient resource that the link refers to.
Cardinality1...1
TypeReference(Patient | RelatedPerson)
SummaryTrue
Comments

Referencing a RelatedPerson here removes the need to use a Person record to associate a Patient and RelatedPerson as the same individual.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-3, MRG-1
  • rim: id
  • cda: n/a
Patient.link.type
DefinitionThe type of link between this patient resource and another patient resource.
Cardinality1...1
Typecode
Binding

The type of link between this patient resource and another patient resource.

LinkType (required)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: typeCode
  • cda: n/a

Table View

Patient..
Patient.extensionExtension..
Patient.extension.value[x]..
Patient.extensionExtension..
Patient.extensionExtension..
Patient.extension.value[x]..
Patient.extensionExtension..
Patient.extensionExtension..
Patient.extensionExtension..1
Patient.extensionExtension..
Patient.extensionExtension..
Patient.extensionExtension..
Patient.extension.value[x]..
Patient.extensionExtension..
Patient.identifier..
Patient.identifier..1
Patient.identifier.extensionExtension..1
Patient.identifier.system1..
Patient.identifier.value1..
Patient.active..
Patient.name..
Patient.telecom..
Patient.telecom.system..
Patient.telecom.system.extensionExtension..
Patient.gender..
Patient.birthDate..
Patient.birthDate.extensionExtension..
Patient.birthDate.extension.value[x]..
Patient.address..
Patient.address.extensionExtension..
Patient.maritalStatus..
Patient.contact..
Patient.contact.extensionExtension..
Patient.contact.extensionExtension..
Patient.contact.relationship..
Patient.contact.telecom..
Patient.contact.telecom.system..
Patient.contact.telecom.system.extensionExtension..
Patient.communication..
Patient.communication.extensionExtension..1
Patient.communication.extension.extension..
Patient.communication.extension.extension.value[x]..
Patient.communication.extension.extension..
Patient.communication.extension.extension.value[x]..
Patient.communication.language..
Patient.managingOrganization..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-Patient-Lab" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient-Lab" />
    <version value="2.6.1" />
    <name value="UKCorePatientLab" />
    <title value="UK Core Patient Lab" />
    <status value="draft" />
    <date value="2025-05-13" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [Patient](https://hl7.org/fhir/R4/Patient.html)." />
    <purpose value="This profile allows exchange of demographics and other administrative information about an individual receiving care or other health-related services." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Patient" />
    <baseDefinition value="http://hl7.eu/fhir/laboratory/StructureDefinition/Patient-eu-lab" />
    <derivation value="constraint" />
    <differential>
        <element id="Patient.extension:birthPlace">
            <path value="Patient.extension" />
            <sliceName value="birthPlace" />
            <short value="The registered place of birth of the patient." />
            <definition value="The registered place of birth of the patient." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/StructureDefinition/patient-birthPlace" />
            </type>
        </element>
        <element id="Patient.extension:birthPlace.value[x]">
            <path value="Patient.extension.value[x]" />
            <short value="The registered place of birth of the patient." />
        </element>
        <element id="Patient.extension:birthSex">
            <path value="Patient.extension" />
            <sliceName value="birthSex" />
            <short value="The patient&#39;s phenotypic sex at birth." />
            <definition value="The patient&#39;s phenotypic sex at birth." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BirthSex" />
            </type>
        </element>
        <element id="Patient.extension:cadavericDonor">
            <path value="Patient.extension" />
            <sliceName value="cadavericDonor" />
            <short value="Post-mortem donor status." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor" />
            </type>
        </element>
        <element id="Patient.extension:cadavericDonor.value[x]">
            <path value="Patient.extension.value[x]" />
            <short value="Post-mortem donor status." />
            <definition value="Flag indicating whether the patient authorized the donation of body parts after death." />
        </element>
        <element id="Patient.extension:contactPreference">
            <path value="Patient.extension" />
            <sliceName value="contactPreference" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference" />
            </type>
        </element>
        <element id="Patient.extension:deathNotificationStatus">
            <path value="Patient.extension" />
            <sliceName value="deathNotificationStatus" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeathNotificationStatus" />
            </type>
        </element>
        <element id="Patient.extension:ethnicCategory">
            <path value="Patient.extension" />
            <sliceName value="ethnicCategory" />
            <short value="The ethnicity of the subject." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory" />
            </type>
        </element>
        <element id="Patient.extension:fetalStatus">
            <path value="Patient.extension" />
            <sliceName value="fetalStatus" />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/6.0/StructureDefinition/extension-Patient.fetalStatus" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="Patient.extension:residentialStatus">
            <path value="Patient.extension" />
            <sliceName value="residentialStatus" />
            <short value="The residential status of the patient." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ResidentialStatus" />
            </type>
        </element>
        <element id="Patient.extension:patientInterpreterRequired">
            <path value="Patient.extension" />
            <sliceName value="patientInterpreterRequired" />
            <short value="Indicator showing whether the patient needs an interpreter." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired" />
            </type>
        </element>
        <element id="Patient.extension:patientInterpreterRequired.value[x]">
            <path value="Patient.extension.value[x]" />
            <short value="Indicator showing whether the patient needs an interpreter" />
            <definition value="Indicator showing if this Patient requires an interpreter to communicate healthcare information to the practitioner." />
        </element>
        <element id="Patient.extension:nhsNumberUnavailableReason">
            <path value="Patient.extension" />
            <sliceName value="nhsNumberUnavailableReason" />
            <short value="Reason why this Patient does not include an NHS Number identifier." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberUnavailableReason" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="Patient.identifier">
            <path value="Patient.identifier" />
            <slicing>
                <discriminator>
                    <type value="value" />
                    <path value="system" />
                </discriminator>
                <ordered value="false" />
                <rules value="open" />
            </slicing>
            <short value="An identifier for this patient." />
            <mustSupport value="true" />
        </element>
        <element id="Patient.identifier:nhsNumber">
            <path value="Patient.identifier" />
            <sliceName value="nhsNumber" />
            <short value="The patient&#39;s NHS number." />
            <max value="1" />
            <mustSupport value="false" />
        </element>
        <element id="Patient.identifier:nhsNumber.extension:nhsNumberVerificationStatus">
            <path value="Patient.identifier.extension" />
            <sliceName value="nhsNumberVerificationStatus" />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus" />
            </type>
            <mustSupport value="false" />
        </element>
        <element id="Patient.identifier:nhsNumber.system">
            <path value="Patient.identifier.system" />
            <min value="1" />
            <fixedUri value="https://fhir.nhs.uk/Id/nhs-number" />
        </element>
        <element id="Patient.identifier:nhsNumber.value">
            <path value="Patient.identifier.value" />
            <min value="1" />
        </element>
        <element id="Patient.active">
            <path value="Patient.active" />
            <short value="Whether this patient&#39;s record is in active use." />
            <mustSupport value="true" />
        </element>
        <element id="Patient.name">
            <path value="Patient.name" />
            <short value="A name associated with the patient." />
            <mustSupport value="true" />
        </element>
        <element id="Patient.telecom">
            <path value="Patient.telecom" />
            <short value="A contact detail for the individual." />
            <mustSupport value="true" />
        </element>
        <element id="Patient.telecom.system.extension:otherContactSystem">
            <path value="Patient.telecom.system.extension" />
            <sliceName value="otherContactSystem" />
            <short value="Information about other contact methods which could be used in addition to those listed in `ContactPoint.system`." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem" />
            </type>
        </element>
        <element id="Patient.gender">
            <path value="Patient.gender" />
            <short value="The gender that the patient is considered to have for administration and record keeping purposes." />
            <mustSupport value="true" />
        </element>
        <element id="Patient.birthDate">
            <path value="Patient.birthDate" />
            <short value="The date of birth for the individual." />
            <mustSupport value="true" />
        </element>
        <element id="Patient.birthDate.extension:birthTime">
            <path value="Patient.birthDate.extension" />
            <sliceName value="birthTime" />
            <short value="The time of day that the patient was born. This SHOULD be included when the birth time is relevant." />
            <definition value="The time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/StructureDefinition/patient-birthTime" />
            </type>
        </element>
        <element id="Patient.birthDate.extension:birthTime.value[x]">
            <path value="Patient.birthDate.extension.value[x]" />
            <short value="Time of day of birth." />
            <definition value="The time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively." />
        </element>
        <element id="Patient.address">
            <path value="Patient.address" />
            <mustSupport value="true" />
        </element>
        <element id="Patient.address.extension:addressKey">
            <path value="Patient.address.extension" />
            <sliceName value="addressKey" />
            <short value="A patient&#39;s address key and type" />
            <definition value="A patient&#39;s address key and type." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AddressKey" />
            </type>
            <mustSupport value="false" />
        </element>
        <element id="Patient.maritalStatus">
            <path value="Patient.maritalStatus" />
            <binding>
                <strength value="extensible" />
                <description value="An indicator to identify the legal marital status of a person" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-PersonMaritalStatusCode" />
            </binding>
        </element>
        <element id="Patient.contact.extension:contactRank">
            <path value="Patient.contact.extension" />
            <sliceName value="contactRank" />
            <short value="The preferred ranking or order of contact applied to a contact on a Patient&#39;s contact list." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank" />
            </type>
        </element>
        <element id="Patient.contact.extension:copyCorrespondenceIndicator">
            <path value="Patient.contact.extension" />
            <sliceName value="copyCorrespondenceIndicator" />
            <short value="Indicates that a must be copied in to all related correspondence." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CopyCorrespondenceIndicator" />
            </type>
        </element>
        <element id="Patient.contact.relationship">
            <path value="Patient.contact.relationship" />
            <binding>
                <strength value="extensible" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType" />
            </binding>
        </element>
        <element id="Patient.contact.telecom.system.extension:otherContactSystem">
            <path value="Patient.contact.telecom.system.extension" />
            <sliceName value="otherContactSystem" />
            <short value="Information about other contact methods which could be used in addition to those listed in `ContactPoint.system`." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem" />
            </type>
        </element>
        <element id="Patient.communication.extension:proficiency">
            <path value="Patient.communication.extension" />
            <sliceName value="proficiency" />
            <short value="The patient&#39;s proficiency level of the communication method." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/StructureDefinition/patient-proficiency" />
            </type>
        </element>
        <element id="Patient.communication.extension:proficiency.extension:level">
            <path value="Patient.communication.extension.extension" />
            <sliceName value="level" />
        </element>
        <element id="Patient.communication.extension:proficiency.extension:level.value[x]">
            <path value="Patient.communication.extension.extension.value[x]" />
            <short value="The proficiency level for the communication" />
            <definition value="The proficiency level for the communication." />
        </element>
        <element id="Patient.communication.extension:proficiency.extension:type">
            <path value="Patient.communication.extension.extension" />
            <sliceName value="type" />
        </element>
        <element id="Patient.communication.extension:proficiency.extension:type.value[x]">
            <path value="Patient.communication.extension.extension.value[x]" />
            <short value="The proficiency type for the communication" />
            <definition value="The proficiency type for the communication." />
        </element>
        <element id="Patient.communication.language">
            <path value="Patient.communication.language" />
            <short value="A ValueSet that identifies the language used by a person." />
            <definition value="A ValueSet that identifies the language used by a person." />
            <binding>
                <strength value="required" />
                <description value="A ValueSet that identifies the language used by a person." />
                <valueSet value="http://hl7.org/fhir/ValueSet/all-languages" />
            </binding>
        </element>
        <element id="Patient.managingOrganization">
            <path value="Patient.managingOrganization" />
            <mustSupport value="true" />
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-Patient-Lab",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient-Lab",
    "version": "2.6.1",
    "name": "UKCorePatientLab",
    "title": "UK Core Patient Lab",
    "status": "draft",
    "date": "2025-05-13",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [Patient](https://hl7.org/fhir/R4/Patient.html).",
    "purpose": "This profile allows exchange of demographics and other administrative information about an individual receiving care or other health-related services.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Patient",
    "baseDefinition": "http://hl7.eu/fhir/laboratory/StructureDefinition/Patient-eu-lab",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Patient.extension:birthPlace",
                "path": "Patient.extension",
                "sliceName": "birthPlace",
                "short": "The registered place of birth of the patient.",
                "definition": "The registered place of birth of the patient.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/StructureDefinition/patient-birthPlace"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.extension:birthPlace.value[x]",
                "path": "Patient.extension.value[x]",
                "short": "The registered place of birth of the patient."
            },
            {
                "id": "Patient.extension:birthSex",
                "path": "Patient.extension",
                "sliceName": "birthSex",
                "short": "The patient's phenotypic sex at birth.",
                "definition": "The patient's phenotypic sex at birth.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BirthSex"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.extension:cadavericDonor",
                "path": "Patient.extension",
                "sliceName": "cadavericDonor",
                "short": "Post-mortem donor status.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.extension:cadavericDonor.value[x]",
                "path": "Patient.extension.value[x]",
                "short": "Post-mortem donor status.",
                "definition": "Flag indicating whether the patient authorized the donation of body parts after death."
            },
            {
                "id": "Patient.extension:contactPreference",
                "path": "Patient.extension",
                "sliceName": "contactPreference",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.extension:deathNotificationStatus",
                "path": "Patient.extension",
                "sliceName": "deathNotificationStatus",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeathNotificationStatus"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.extension:ethnicCategory",
                "path": "Patient.extension",
                "sliceName": "ethnicCategory",
                "short": "The ethnicity of the subject.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.extension:fetalStatus",
                "path": "Patient.extension",
                "sliceName": "fetalStatus",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/6.0/StructureDefinition/extension-Patient.fetalStatus"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "Patient.extension:residentialStatus",
                "path": "Patient.extension",
                "sliceName": "residentialStatus",
                "short": "The residential status of the patient.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ResidentialStatus"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.extension:patientInterpreterRequired",
                "path": "Patient.extension",
                "sliceName": "patientInterpreterRequired",
                "short": "Indicator showing whether the patient needs an interpreter.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.extension:patientInterpreterRequired.value[x]",
                "path": "Patient.extension.value[x]",
                "short": "Indicator showing whether the patient needs an interpreter",
                "definition": "Indicator showing if this Patient requires an interpreter to communicate healthcare information to the practitioner."
            },
            {
                "id": "Patient.extension:nhsNumberUnavailableReason",
                "path": "Patient.extension",
                "sliceName": "nhsNumberUnavailableReason",
                "short": "Reason why this Patient does not include an NHS Number identifier.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberUnavailableReason"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "Patient.identifier",
                "path": "Patient.identifier",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "value",
                            "path": "system"
                        }
                    ],
                    "ordered": false,
                    "rules": "open"
                },
                "short": "An identifier for this patient.",
                "mustSupport": true
            },
            {
                "id": "Patient.identifier:nhsNumber",
                "path": "Patient.identifier",
                "sliceName": "nhsNumber",
                "short": "The patient's NHS number.",
                "max": "1",
                "mustSupport": false
            },
            {
                "id": "Patient.identifier:nhsNumber.extension:nhsNumberVerificationStatus",
                "path": "Patient.identifier.extension",
                "sliceName": "nhsNumberVerificationStatus",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus"
                        ]
                    }
                ],
                "mustSupport": false
            },
            {
                "id": "Patient.identifier:nhsNumber.system",
                "path": "Patient.identifier.system",
                "min": 1,
                "fixedUri": "https://fhir.nhs.uk/Id/nhs-number"
            },
            {
                "id": "Patient.identifier:nhsNumber.value",
                "path": "Patient.identifier.value",
                "min": 1
            },
            {
                "id": "Patient.active",
                "path": "Patient.active",
                "short": "Whether this patient's record is in active use.",
                "mustSupport": true
            },
            {
                "id": "Patient.name",
                "path": "Patient.name",
                "short": "A name associated with the patient.",
                "mustSupport": true
            },
            {
                "id": "Patient.telecom",
                "path": "Patient.telecom",
                "short": "A contact detail for the individual.",
                "mustSupport": true
            },
            {
                "id": "Patient.telecom.system.extension:otherContactSystem",
                "path": "Patient.telecom.system.extension",
                "sliceName": "otherContactSystem",
                "short": "Information about other contact methods which could be used in addition to those listed in `ContactPoint.system`.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.gender",
                "path": "Patient.gender",
                "short": "The gender that the patient is considered to have for administration and record keeping purposes.",
                "mustSupport": true
            },
            {
                "id": "Patient.birthDate",
                "path": "Patient.birthDate",
                "short": "The date of birth for the individual.",
                "mustSupport": true
            },
            {
                "id": "Patient.birthDate.extension:birthTime",
                "path": "Patient.birthDate.extension",
                "sliceName": "birthTime",
                "short": "The time of day that the patient was born. This SHOULD be included when the birth time is relevant.",
                "definition": "The time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/StructureDefinition/patient-birthTime"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.birthDate.extension:birthTime.value[x]",
                "path": "Patient.birthDate.extension.value[x]",
                "short": "Time of day of birth.",
                "definition": "The time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively."
            },
            {
                "id": "Patient.address",
                "path": "Patient.address",
                "mustSupport": true
            },
            {
                "id": "Patient.address.extension:addressKey",
                "path": "Patient.address.extension",
                "sliceName": "addressKey",
                "short": "A patient's address key and type",
                "definition": "A patient's address key and type.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AddressKey"
                        ]
                    }
                ],
                "mustSupport": false
            },
            {
                "id": "Patient.maritalStatus",
                "path": "Patient.maritalStatus",
                "binding": {
                    "strength": "extensible",
                    "description": "An indicator to identify the legal marital status of a person",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-PersonMaritalStatusCode"
                }
            },
            {
                "id": "Patient.contact.extension:contactRank",
                "path": "Patient.contact.extension",
                "sliceName": "contactRank",
                "short": "The preferred ranking or order of contact applied to a contact on a Patient's contact list.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.contact.extension:copyCorrespondenceIndicator",
                "path": "Patient.contact.extension",
                "sliceName": "copyCorrespondenceIndicator",
                "short": "Indicates that a must be copied in to all related correspondence.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CopyCorrespondenceIndicator"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.contact.relationship",
                "path": "Patient.contact.relationship",
                "binding": {
                    "strength": "extensible",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType"
                }
            },
            {
                "id": "Patient.contact.telecom.system.extension:otherContactSystem",
                "path": "Patient.contact.telecom.system.extension",
                "sliceName": "otherContactSystem",
                "short": "Information about other contact methods which could be used in addition to those listed in `ContactPoint.system`.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.communication.extension:proficiency",
                "path": "Patient.communication.extension",
                "sliceName": "proficiency",
                "short": "The patient's proficiency level of the communication method.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/StructureDefinition/patient-proficiency"
                        ]
                    }
                ]
            },
            {
                "id": "Patient.communication.extension:proficiency.extension:level",
                "path": "Patient.communication.extension.extension",
                "sliceName": "level"
            },
            {
                "id": "Patient.communication.extension:proficiency.extension:level.value[x]",
                "path": "Patient.communication.extension.extension.value[x]",
                "short": "The proficiency level for the communication",
                "definition": "The proficiency level for the communication."
            },
            {
                "id": "Patient.communication.extension:proficiency.extension:type",
                "path": "Patient.communication.extension.extension",
                "sliceName": "type"
            },
            {
                "id": "Patient.communication.extension:proficiency.extension:type.value[x]",
                "path": "Patient.communication.extension.extension.value[x]",
                "short": "The proficiency type for the communication",
                "definition": "The proficiency type for the communication."
            },
            {
                "id": "Patient.communication.language",
                "path": "Patient.communication.language",
                "short": "A ValueSet that identifies the language used by a person.",
                "definition": "A ValueSet that identifies the language used by a person.",
                "binding": {
                    "strength": "required",
                    "description": "A ValueSet that identifies the language used by a person.",
                    "valueSet": "http://hl7.org/fhir/ValueSet/all-languages"
                }
            },
            {
                "id": "Patient.managingOrganization",
                "path": "Patient.managingOrganization",
                "mustSupport": true
            }
        ]
    }
}

Feedback

Click here to:
Command 'page' could not render: Page not found.


Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Practitioner-Labdraft2.4.02025-05-13

This profile defines the UK constraints and extensions on the International FHIR resource Practitioner.


Profile_Purpose

This profile allows exchange of information about all individuals who are engaged in the healthcare process and healthcare-related services as part of their formal responsibilities, is used for attribution of activities and responsibilities to these individuals.

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierS Σ0..*Identifier
activeΣ0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ0..1string
givenS Σ0..*string
prefixΣ0..*string
suffixΣ0..*string
periodΣ0..1Period
telecomS Σ0..*ContactPoint
addressS Σ0..*Address
genderΣ0..1codeBinding
birthDateΣ0..1date
photo0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
identifier0..*Identifier
code1..1CodeableConcept
period0..1Period
issuer0..1Reference(Organization)
communication0..*CodeableConceptBinding

Detailed Descriptions

Practitioner
DefinitionA person who is directly or indirectly involved in the provisioning of healthcare.
Cardinality0...*
Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
Mappings
  • rim: Entity. Role, or Act
  • v2: PRD (as one example)
  • rim: Role
  • servd: Provider
Practitioner.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typeid
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.

Practitioner.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())
Practitioner.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())
Practitioner.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())
Practitioner.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: Act.text?
Practitioner.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: N/A
Practitioner.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.

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
Practitioner.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.

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
Practitioner.identifier
DefinitionAn identifier that applies to this person in this role.
Cardinality0...*
TypeIdentifier
Must SupportTrue
SummaryTrue
Requirements

Often, specific identities are assigned for the agent.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.identifier
  • v2: PRD-7 (or XCN.1)
  • rim: ./id
  • servd: ./Identifiers
Practitioner.active
DefinitionWhether this practitioner's record is in active use.
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

Need to be able to mark a practitioner record as not to be used because it was created in error.

Comments

If the practitioner is not in use by one organization, then it should mark the period on the PractitonerRole with an end date (even if they are active) as they may be active in another role.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.status
  • rim: ./statusCode
Practitioner.name
DefinitionThe name(s) associated with the practitioner.
Cardinality1...*
TypeHumanName
Must SupportTrue
SummaryTrue
Requirements

The name(s) that a Practitioner is known by. Where there are multiple, the name that the practitioner is usually known as should be used in the display.

Comments

The selection of the use property should ensure that there is a single usual name specified, and others use the nickname (alias), old, or other values as appropriate.

In general, select the value to be used in the ResourceReference.display based on this:

  1. There is more than 1 name
  2. Use = usual
  3. Period is current to the date of the usage
  4. Use = official
  5. Other order as decided by internal business rules.
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XCN Components
  • rim: ./name
  • servd: ./PreferredName (GivenNames, FamilyName, TitleCode)
Practitioner.name.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
Practitioner.name.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
Practitioner.name.use
DefinitionIdentifies the purpose for this name.
Cardinality0...1
Typecode
Binding

The use of a human name.

NameUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate name for a particular context of use to be selected from among a set of names.

Comments

Applications can assume that a name is current unless it explicitly says that it is temporary or old.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN.7, but often indicated by which field contains the name
  • rim: unique(./use)
  • servd: ./NamePurpose
Practitioner.name.text
DefinitionSpecifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.
Cardinality0...1
Typestring
SummaryTrue
Requirements

A renderable, unencoded form.

Comments

Can provide both a text representation and parts. Applications updating a name SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: implied by XPN.11
  • rim: ./formatted
Practitioner.name.family
DefinitionThe part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.
Cardinality0...1
Typestring
Must SupportTrue
SummaryTrue
Aliassurname
Comments

Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN.1/FN.1
  • rim: ./part[partType = FAM]
  • servd: ./FamilyName
Practitioner.name.given
DefinitionGiven name.
Cardinality0...*
Typestring
Must SupportTrue
SummaryTrue
Aliasfirst name, middle name
Comments

If only initials are recorded, they may be used in place of the full name parts. Initials may be separated into multiple given names but often aren't due to paractical limitations. This element is not called "first name" since given names do not always come first.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN.2 + XPN.3
  • rim: ./part[partType = GIV]
  • servd: ./GivenNames
Practitioner.name.prefix
DefinitionPart of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.
Cardinality0...*
Typestring
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN.5
  • rim: ./part[partType = PFX]
  • servd: ./TitleCode
Practitioner.name.suffix
DefinitionPart of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.
Cardinality0...*
Typestring
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN/4
  • rim: ./part[partType = SFX]
Practitioner.name.period
DefinitionIndicates the period of time when this name was valid for the named person.
Cardinality0...1
TypePeriod
SummaryTrue
Requirements

Allows names to be placed in historical context.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: XPN.13 + XPN.14
  • rim: ./usablePeriod[type="IVL<TS>"]
  • servd: ./StartDate and ./EndDate
Practitioner.telecom
DefinitionA contact detail for the practitioner, e.g. a telephone number or an email address.
Cardinality0...*
TypeContactPoint
Must SupportTrue
SummaryTrue
Requirements

Need to know how to reach a practitioner independent to any roles the practitioner may have.

Comments

Person may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently and to help with identification. These typically will have home numbers, or mobile numbers that are not role specific.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PRT-15, STF-10, ROL-12
  • rim: ./telecom
  • servd: ./ContactPoints
Practitioner.address
DefinitionAddress(es) of the practitioner that are not role specific (typically home address). Work addresses are not typically entered in this property as they are usually role dependent.
Cardinality0...*
TypeAddress
Must SupportTrue
SummaryTrue
Requirements

The home/mailing address of the practitioner is often required for employee administration purposes, and also for some rostering services where the start point (practitioners home) can be used in calculations.

Comments

The PractitionerRole does not have an address value on it, as it is expected that the location property be used for this purpose (which has an address).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: ORC-24, STF-11, ROL-11, PRT-14
  • rim: ./addr
  • servd: ./Addresses
Practitioner.gender
DefinitionAdministrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
Cardinality0...1
Typecode
Binding

The gender of a person used for administrative purposes.

AdministrativeGender (required)
SummaryTrue
Requirements

Needed to address the person correctly.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: STF-5
  • rim: ./administrativeGender
  • servd: ./GenderCode
Practitioner.birthDate
DefinitionThe date of birth for the practitioner.
Cardinality0...1
Typedate
SummaryTrue
Requirements

Needed for identification.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: STF-6
  • rim: ./birthTime
  • servd: (not represented in ServD)
Practitioner.photo
DefinitionImage of the person.
Cardinality0...*
TypeAttachment
Requirements

Many EHR systems have the capability to capture an image of patients and personnel. Fits with newer social media usage too.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: ./subjectOf/ObservationEvent[code="photo"]/value
  • servd: ./ImageURI (only supports the URI reference)
Practitioner.qualification
DefinitionThe official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certian locality.
Cardinality0...*
TypeBackboneElement
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: CER?
  • rim: .playingEntity.playingRole[classCode=QUAL].code
  • servd: ./Qualifications
Practitioner.qualification.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
Practitioner.qualification.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.

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
Practitioner.qualification.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
Practitioner.qualification.identifier
DefinitionAn identifier that applies to this person's qualification in this role.
Cardinality0...*
TypeIdentifier
Requirements

Often, specific identities are assigned for the qualification.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .playingEntity.playingRole[classCode=QUAL].id
Practitioner.qualification.code
DefinitionCoded representation of the qualification.
Cardinality1...1
TypeCodeableConcept
Binding

Specific qualification the practitioner has to provide a service.

v2.0360.2.7 (example)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .playingEntity.playingRole[classCode=QUAL].code
  • servd: ./Qualifications.Value
Practitioner.qualification.period
DefinitionPeriod during which the qualification is valid.
Cardinality0...1
TypePeriod
Requirements

Qualifications are often for a limited period of time, and can be revoked.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .playingEntity.playingRole[classCode=QUAL].effectiveTime
  • servd: ./Qualifications.StartDate and ./Qualifications.EndDate
Practitioner.qualification.issuer
DefinitionOrganization that regulates and issues the qualification.
Cardinality0...1
TypeReference(Organization)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .playingEntity.playingRole[classCode=QUAL].scoper
Practitioner.communication
DefinitionA language the practitioner can use in patient communication.
Cardinality0...*
TypeCodeableConcept
Binding

A ValueSet that identifies the language used by a person.

AllLanguages (required)
Requirements

Knowing which language a practitioner speaks can help in facilitating communication with patients.

Comments

The structure aa-BB with this exact casing is one the most widely used notations for locale. However not all systems code this but instead have it as free text. Hence CodeableConcept instead of code as the data type.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PID-15, NK1-20, LAN-2
  • rim: ./languageCommunication
  • servd: ./Languages.LanguageSpokenCode

Table View

Practitioner..
Practitioner.identifier..
Practitioner.name..
Practitioner.telecom..
Practitioner.communication..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-Practitioner-Lab" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Practitioner-Lab" />
    <version value="2.4.0" />
    <name value="UKCorePractitionerLab" />
    <title value="UK Core Practitioner Lab" />
    <status value="draft" />
    <date value="2025-05-13" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [Practitioner](https://hl7.org/fhir/R4/Practitioner.html)." />
    <purpose value="This profile allows exchange of information about all individuals who are engaged in the healthcare process and healthcare-related services as part of their formal responsibilities, is used for attribution of activities and responsibilities to these individuals." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Practitioner" />
    <baseDefinition value="http://hl7.eu/fhir/laboratory/StructureDefinition/Practitioner-eu-lab" />
    <derivation value="constraint" />
    <differential>
        <element id="Practitioner.identifier">
            <path value="Practitioner.identifier" />
            <short value="An identifier that applies to this person in this role." />
            <mustSupport value="true" />
        </element>
        <element id="Practitioner.name">
            <path value="Practitioner.name" />
            <short value="The name(s) associated with the practitioner." />
            <mustSupport value="true" />
        </element>
        <element id="Practitioner.telecom">
            <path value="Practitioner.telecom" />
            <short value="A contact detail for the practitioner (that apply to all roles)." />
            <mustSupport value="true" />
        </element>
        <element id="Practitioner.communication">
            <path value="Practitioner.communication" />
            <binding>
                <strength value="required" />
                <description value="A ValueSet that identifies the language used by a person." />
                <valueSet value="http://hl7.org/fhir/ValueSet/all-languages" />
            </binding>
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-Practitioner-Lab",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Practitioner-Lab",
    "version": "2.4.0",
    "name": "UKCorePractitionerLab",
    "title": "UK Core Practitioner Lab",
    "status": "draft",
    "date": "2025-05-13",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [Practitioner](https://hl7.org/fhir/R4/Practitioner.html).",
    "purpose": "This profile allows exchange of information about all individuals who are engaged in the healthcare process and healthcare-related services as part of their formal responsibilities, is used for attribution of activities and responsibilities to these individuals.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Practitioner",
    "baseDefinition": "http://hl7.eu/fhir/laboratory/StructureDefinition/Practitioner-eu-lab",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Practitioner.identifier",
                "path": "Practitioner.identifier",
                "short": "An identifier that applies to this person in this role.",
                "mustSupport": true
            },
            {
                "id": "Practitioner.name",
                "path": "Practitioner.name",
                "short": "The name(s) associated with the practitioner.",
                "mustSupport": true
            },
            {
                "id": "Practitioner.telecom",
                "path": "Practitioner.telecom",
                "short": "A contact detail for the practitioner (that apply to all roles).",
                "mustSupport": true
            },
            {
                "id": "Practitioner.communication",
                "path": "Practitioner.communication",
                "binding": {
                    "strength": "required",
                    "description": "A ValueSet that identifies the language used by a person.",
                    "valueSet": "http://hl7.org/fhir/ValueSet/all-languages"
                }
            }
        ]
    }
}

Feedback

Click here to:
Command 'page' could not render: Page not found.


Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole-IPSdraft2.4.02025-05-13

This profile defines the UK constraints and extensions on the International FHIR resource PractitionerRole.


Profile_Purpose

This profile allows exchange of a specific set of roles, specialties and services that a practitioner may perform at an organisation for a period of time.

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
activeS Σ0..1boolean
periodS Σ0..1Period
practitionerS Σ0..1Reference(PractitionerUvIps)
organizationS Σ0..1Reference(OrganizationUvIps)
code0..*CodeableConceptIPSBinding
specialtyS Σ0..*CodeableConceptBinding
locationS Σ0..*Reference(Location)
healthcareService0..*Reference(HealthcareService)
telecomS Σ0..*ContactPoint
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
description1..1string
during0..1Period
availabilityExceptions0..1string
endpoint0..*Reference(Endpoint)

Detailed Descriptions

PractitionerRole
DefinitionA specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.
Cardinality0...*
Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
Mappings
  • rim: Entity. Role, or Act
  • v2: PRD (as one example)
  • rim: Role
  • servd: ServiceSiteProvider
PractitionerRole.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typeid
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.

PractitionerRole.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())
PractitionerRole.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())
PractitionerRole.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())
PractitionerRole.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: Act.text?
PractitionerRole.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: N/A
PractitionerRole.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.

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
PractitionerRole.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.

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
PractitionerRole.identifier
DefinitionBusiness Identifiers that are specific to a role/location.
Cardinality0...*
TypeIdentifier
SummaryTrue
Requirements

Often, specific identities are assigned for the agent.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.identifier
  • v2: PRD-7 (or XCN.1)
  • rim: .id
  • servd: ./Identifiers
PractitionerRole.active
DefinitionWhether this practitioner role record is in active use.
Cardinality0...1
Typeboolean
Must SupportTrue
SummaryTrue
Requirements

Need to be able to mark a practitioner role record as not to be used because it was created in error, or otherwise no longer in active use.

Comments

If this value is false, you may refer to the period to see when the role was in active use. If there is no period specified, no inference can be made about when it was active.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.status
  • v2: STF-7
  • rim: .statusCode
PractitionerRole.period
DefinitionThe period during which the person is authorized to act as a practitioner in these role(s) for the organization.
Cardinality0...1
TypePeriod
Must SupportTrue
SummaryTrue
Requirements

Even after the agencies is revoked, the fact that it existed must still be recorded.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.done[x]
  • v2: PRD-8/9 / PRA-5.4
  • rim: .performance[@typeCode <= 'PPRF'].ActDefinitionOrEvent.effectiveTime
  • servd: (ServD maps Practitioners and Organizations via another entity, so this concept is not available)
PractitionerRole.practitioner
DefinitionPractitioner that is able to provide the defined services for the organization.
Cardinality0...1
TypeReference(PractitionerUvIps)
Must SupportTrue
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .player
PractitionerRole.organization
DefinitionThe organization where the Practitioner performs the roles associated.
Cardinality0...1
TypeReference(OrganizationUvIps)
Must SupportTrue
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .scoper
PractitionerRole.code
DefinitionRoles which this practitioner is authorized to perform for the organization.
Cardinality0...*
TypeCodeableConceptIPS
Binding

Healthcare professional role codes from International Standard Classification of Occupations (ISCO).

HealthcareProfessionalRolesUvIps (preferred)
Requirements

Need to know what authority the practitioner has - what can they do?

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
PractitionerRole.specialty
DefinitionSpecific specialty of the practitioner.
Cardinality0...*
TypeCodeableConcept
Binding

Specific specialty associated with the agency.

UKCorePracticeSettingCode (extensible)
Must SupportTrue
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: PRA-5
  • rim: .player.HealthCareProvider[@classCode = 'PROV'].code
  • servd: ./Specialty
PractitionerRole.location
DefinitionThe location(s) at which this practitioner provides care.
Cardinality0...*
TypeReference(Location)
Must SupportTrue
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.where[x]
  • rim: .performance.ActDefinitionOrEvent.ServiceDeliveryLocation[@classCode = 'SDLOC']
  • servd: (ServD maps Practitioners and Organizations via another entity, so this concept is not available)<br/> However these are accessed via the Site.ServiceSite.ServiceSiteProvider record. (The Site has the location)
PractitionerRole.healthcareService
DefinitionThe list of healthcare services that this worker provides for this role's Organization/Location(s).
Cardinality0...*
TypeReference(HealthcareService)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: EDU-2 / AFF-3
  • rim: .player.QualifiedEntity[@classCode = 'QUAL'].code
PractitionerRole.telecom
DefinitionContact details that are specific to the role/location/service.
Cardinality0...*
TypeContactPoint
Must SupportTrue
SummaryTrue
Requirements

Often practitioners have a dedicated line for each location (or service) that they work at, and need to be able to define separate contact details for each of these.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .telecom
PractitionerRole.availableTime
DefinitionA collection of times the practitioner is available or performing this role at the location and/or healthcareservice.
Cardinality0...*
TypeBackboneElement
Comments

More detailed availability information may be provided in associated Schedule/Slot resources.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
PractitionerRole.availableTime.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
PractitionerRole.availableTime.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.

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
PractitionerRole.availableTime.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
PractitionerRole.availableTime.daysOfWeek
DefinitionIndicates which days of the week are available between the start and end Times.
Cardinality0...*
Typecode
Binding

The days of the week.

DaysOfWeek (required)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
PractitionerRole.availableTime.allDay
DefinitionIs this always available? (hence times are irrelevant) e.g. 24 hour service.
Cardinality0...1
Typeboolean
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
PractitionerRole.availableTime.availableStartTime
DefinitionThe opening time of day. Note: If the AllDay flag is set, then this time is ignored.
Cardinality0...1
Typetime
Comments

The timezone is expected to be for where this HealthcareService is provided at.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
PractitionerRole.availableTime.availableEndTime
DefinitionThe closing time of day. Note: If the AllDay flag is set, then this time is ignored.
Cardinality0...1
Typetime
Comments

The timezone is expected to be for where this HealthcareService is provided at.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
PractitionerRole.notAvailable
DefinitionThe practitioner is not available or performing this role during this period of time due to the provided reason.
Cardinality0...*
TypeBackboneElement
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
PractitionerRole.notAvailable.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
PractitionerRole.notAvailable.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.

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
PractitionerRole.notAvailable.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
PractitionerRole.notAvailable.description
DefinitionThe reason that can be presented to the user as to why this time is not available.
Cardinality1...1
Typestring
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
PractitionerRole.notAvailable.during
DefinitionService is not available (seasonally or for a public holiday) from this date.
Cardinality0...1
TypePeriod
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
PractitionerRole.availabilityExceptions
DefinitionA description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.
Cardinality0...1
Typestring
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .effectiveTime
PractitionerRole.endpoint
DefinitionTechnical endpoints providing access to services operated for the practitioner with this role.
Cardinality0...*
TypeReference(Endpoint)
Requirements

Organizations have multiple systems that provide various services and ,ay also be different for practitioners too.

So the endpoint satisfies the need to be able to define the technical connection details for how to connect to them, and for what purpose.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a

Table View

PractitionerRole..
PractitionerRole.active..
PractitionerRole.period..
PractitionerRole.practitioner..
PractitionerRole.organization..
PractitionerRole.specialty..
PractitionerRole.location..
PractitionerRole.telecom..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-PractitionerRole-IPS" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole-IPS" />
    <version value="2.4.0" />
    <name value="UKCorePractitionerRoleIPS" />
    <title value="UK Core Practitioner Role IPS" />
    <status value="draft" />
    <date value="2025-05-13" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [PractitionerRole](https://hl7.org/fhir/R4/PractitionerRole.html)." />
    <purpose value="This profile allows exchange of a specific set of roles, specialties and services that a practitioner may perform at an organisation for a period of time." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="PractitionerRole" />
    <baseDefinition value="http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips" />
    <derivation value="constraint" />
    <differential>
        <element id="PractitionerRole.active">
            <path value="PractitionerRole.active" />
            <short value="Whether this practitioner role record is in active use." />
            <mustSupport value="true" />
        </element>
        <element id="PractitionerRole.period">
            <path value="PractitionerRole.period" />
            <short value="The period during which the practitioner is authorized to perform in these role(s)." />
            <mustSupport value="true" />
        </element>
        <element id="PractitionerRole.practitioner">
            <path value="PractitionerRole.practitioner" />
            <short value="Practitioner that is able to provide the defined services for the organization." />
            <mustSupport value="true" />
        </element>
        <element id="PractitionerRole.organization">
            <path value="PractitionerRole.organization" />
            <short value="Organization where the roles are available." />
            <mustSupport value="true" />
        </element>
        <element id="PractitionerRole.specialty">
            <path value="PractitionerRole.specialty" />
            <short value="Specific specialty of the practitioner." />
            <mustSupport value="true" />
            <binding>
                <strength value="extensible" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-PracticeSettingCode" />
            </binding>
        </element>
        <element id="PractitionerRole.location">
            <path value="PractitionerRole.location" />
            <short value="The location(s) at which this practitioner provides care." />
            <mustSupport value="true" />
        </element>
        <element id="PractitionerRole.telecom">
            <path value="PractitionerRole.telecom" />
            <short value="Contact details that are specific to the role/location/service." />
            <mustSupport value="true" />
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-PractitionerRole-IPS",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole-IPS",
    "version": "2.4.0",
    "name": "UKCorePractitionerRoleIPS",
    "title": "UK Core Practitioner Role IPS",
    "status": "draft",
    "date": "2025-05-13",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [PractitionerRole](https://hl7.org/fhir/R4/PractitionerRole.html).",
    "purpose": "This profile allows exchange of a specific set of roles, specialties and services that a practitioner may perform at an organisation for a period of time.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "PractitionerRole",
    "baseDefinition": "http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "PractitionerRole.active",
                "path": "PractitionerRole.active",
                "short": "Whether this practitioner role record is in active use.",
                "mustSupport": true
            },
            {
                "id": "PractitionerRole.period",
                "path": "PractitionerRole.period",
                "short": "The period during which the practitioner is authorized to perform in these role(s).",
                "mustSupport": true
            },
            {
                "id": "PractitionerRole.practitioner",
                "path": "PractitionerRole.practitioner",
                "short": "Practitioner that is able to provide the defined services for the organization.",
                "mustSupport": true
            },
            {
                "id": "PractitionerRole.organization",
                "path": "PractitionerRole.organization",
                "short": "Organization where the roles are available.",
                "mustSupport": true
            },
            {
                "id": "PractitionerRole.specialty",
                "path": "PractitionerRole.specialty",
                "short": "Specific specialty of the practitioner.",
                "mustSupport": true,
                "binding": {
                    "strength": "extensible",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-PracticeSettingCode"
                }
            },
            {
                "id": "PractitionerRole.location",
                "path": "PractitionerRole.location",
                "short": "The location(s) at which this practitioner provides care.",
                "mustSupport": true
            },
            {
                "id": "PractitionerRole.telecom",
                "path": "PractitionerRole.telecom",
                "short": "Contact details that are specific to the role/location/service.",
                "mustSupport": true
            }
        ]
    }
}

Feedback

Click here to:
Command 'page' could not render: Page not found.


Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-ServiceRequest-Labactive2.0.02025-05-13

This profile defines the specific UK constraints and extensions on the International FHIR resource ServiceRequest, in order to support requesting laboratory services.


Profile_Purpose

To provide implementers additional support for requesting a procedure or diagnostic or other service to be planned, proposed, or performed, with regards to a laboratory observation or a laboratory diagnostic report.

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
sourceOfServiceRequestI0..1Extension(CodeableConcept)
additionalContactI0..*Extension(Reference(UKCoreOrganization | UKCorePractitioner | UKCorePractitionerRole))
coverageI0..1Extension(CodeableConcept)
modifierExtension?! I0..*Extension
identifierΣ1..*Identifier
instantiatesCanonicalΣ0..*canonical(ActivityDefinition | PlanDefinition)
instantiatesUriΣ0..*uri
basedOnΣ0..*Reference(CarePlan | ServiceRequest | MedicationRequest)
replacesΣ0..*Reference(ServiceRequest)
requisitionΣ0..1Identifier
statusS Σ ?!1..1codeBinding
intentS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
priorityReasonI0..*Extension(CodeableConcept)
value0..1System.String
doNotPerformΣ ?!0..1boolean
codeΣ0..1CodeableConceptBinding
orderDetailΣ I0..*CodeableConceptBinding
quantityQuantityQuantity
quantityRatioRatio
quantityRangeRange
subjectS Σ1..1Reference(PatientEuLab | PatientAnimalEu | Group | Location | Device)
encounterΣ0..1Reference(Encounter)
occurrenceDateTimedateTime
occurrencePeriodPeriod
occurrenceTimingTiming
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
authoredOnΣ0..1dateTime
requesterS Σ0..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)
performerTypeΣ0..1CodeableConcept
performerΣ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson)
locationCodeΣ0..*CodeableConcept
locationReferenceΣ0..*Reference(Location)
reasonCodeΣ0..*CodeableConceptBinding
reasonReferenceΣ0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
insurance0..*Reference(Coverage)
supportingInfo0..*Reference(Resource)
specimenΣ0..*Reference(SpecimenEu)
bodySiteΣ0..*CodeableConceptBinding
note0..*Annotation
patientInstructionΣ0..1string
relevantHistory0..*Reference(Provenance)

Detailed Descriptions

ServiceRequest
DefinitionLaboratory Order composition.
Cardinality0...*
Aliasdiagnostic request, referral, referral request, transfer of care request
Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • prr-1: orderDetail SHALL only be present if code is present
    orderDetail.empty() or code.exists()
Mappings
  • rim: Entity. Role, or Act
  • workflow: Request
  • v2: ORC
  • rim: Act[moodCode<=INT]
ServiceRequest.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typeid
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.

ServiceRequest.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())
ServiceRequest.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())
ServiceRequest.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())
ServiceRequest.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: Act.text?
ServiceRequest.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: N/A
ServiceRequest.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
ServiceRequest.extension:sourceOfServiceRequest
DefinitionThis represents the source of referral.
Cardinality0...1
TypeExtension(CodeableConcept)
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
ServiceRequest.extension:additionalContact
DefinitionDetails of an additional contact, who should be contacted regarding questions arising from the service request.
Cardinality0...*
TypeExtension(Reference(UKCoreOrganization | UKCorePractitioner | UKCorePractitionerRole))
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
ServiceRequest.extension:coverage
DefinitionThe funding category for the Service Request.
Cardinality0...1
TypeExtension(CodeableConcept)
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
ServiceRequest.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.

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
ServiceRequest.identifier
DefinitionIdentifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller.
Cardinality1...*
TypeIdentifier
SummaryTrue
Comments

The identifier.type element is used to distinguish between the identifiers assigned by the orderer (known as the 'Placer' in HL7 v2) and the producer of the observations in response to the order (known as the 'Filler' in HL7 v2). For further discussion and examples see the resource notes section below.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.identifier
  • w5: FiveWs.identifier
  • v2: ORC.2, ORC.3, RF1-6 / RF1-11,
  • rim: .identifier
  • quick: ClinicalStatement.identifier
ServiceRequest.instantiatesCanonical
DefinitionThe URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.
Cardinality0...*
Typecanonical(ActivityDefinition | PlanDefinition)
SummaryTrue
Comments

Note: This is a business identifier, not a resource identifier (see discussion). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.instantiatesCanonical
  • v2: Varies by domain
  • rim: .outboundRelationship[typeCode=DEFN].target
ServiceRequest.instantiatesUri
DefinitionThe URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.
Cardinality0...*
Typeuri
SummaryTrue
Comments

This might be an HTML page, PDF, etc. or could just be a non-resolvable URI identifier.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.instantiatesUri
  • v2: Varies by domain
  • rim: .outboundRelationship[typeCode=DEFN].target
ServiceRequest.basedOn
DefinitionPlan/proposal/order fulfilled by this request.
Cardinality0...*
TypeReference(CarePlan | ServiceRequest | MedicationRequest)
SummaryTrue
Aliasfulfills
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.basedOn
  • v2: ORC.8 (plus others)
  • rim: .outboundRelationship[typeCode=FLFS].target
ServiceRequest.replaces
DefinitionThe request takes the place of the referenced completed or terminated request(s).
Cardinality0...*
TypeReference(ServiceRequest)
SummaryTrue
Aliassupersedes, prior, renewed order
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.replaces
  • v2: Handled by message location of ORC (ORC.1=RO or RU)
  • rim: .outboundRelationship[typeCode=RPLC].target
ServiceRequest.requisition
DefinitionA shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier.
Cardinality0...1
TypeIdentifier
SummaryTrue
AliasgrouperId, groupIdentifier
Requirements

Some business processes need to know if multiple items were ordered as part of the same "requisition" for billing or other purposes.

Comments

Requests are linked either by a "basedOn" relationship (i.e. one request is fulfilling another) or by having a common requisition. Requests that are part of the same requisition are generally treated independently from the perspective of changing their state or maintaining them after initial creation.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.groupIdentifier
  • v2: ORC.4
  • rim: .inboundRelationship(typeCode=COMP].source[moodCode=INT].identifier
ServiceRequest.status
DefinitionThe status of the order.
Cardinality1...1
Typecode
Binding

The status of a service order.

RequestStatus (required)
Must SupportTrue
ModifierTrue
SummaryTrue
Comments

The status is generally fully in the control of the requester - they determine whether the order is draft or active and, after it has been activated, competed, cancelled or suspended. States relating to the activities of the performer are reflected on either the corresponding event (see Event Pattern for general discussion) or using the Task resource.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.status
  • w5: FiveWs.status
  • v2: ORC.5,RF1-1
  • rim: .status
  • quick: Action.currentStatus
ServiceRequest.intent
DefinitionWhether the request is a proposal, plan, an original order or a reflex order.
Cardinality1...1
Typecode
Binding

The kind of service request.

RequestIntent (required)
Must SupportTrue
ModifierTrue
SummaryTrue
Comments

This element is labeled as a modifier because the intent alters when and how the resource is actually applicable.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.intent
  • w5: FiveWs.class
  • v2: N/A
  • rim: .moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere)
ServiceRequest.category
DefinitionA code that classifies the service for searching, sorting and display purposes (e.g. "Surgical Procedure").
Cardinality0...*
TypeCodeableConcept
Binding

Classification of the requested service.

ServiceRequestCategoryCodes (example)
SummaryTrue
Requirements

Used for filtering what service request are retrieved and displayed.

Comments

There may be multiple axis of categorization depending on the context or use case for retrieving or displaying the resource. The level of granularity is defined by the category concepts in the value set.

SlicingUnordered, Open, by coding.system(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • v2: RF1-5
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="INT"].code
ServiceRequest.category:genomicsWholeCaseSequencing
DefinitionA code that classifies the service for Genomics, whether it is a Whole Case Genome Sequencing or non-Whole Genome Sequencing for cancer or rare diseases
Cardinality0...*
TypeCodeableConcept
Binding

Classification of the requested service.

UKCoreGenomeSequencingCategory (extensible)
SummaryTrue
Requirements

Used for filtering what service request are retrieved and displayed.

Comments

There may be multiple axis of categorization depending on the context or use case for retrieving or displaying the resource. The level of granularity is defined by the category concepts in the value set.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.class
  • v2: RF1-5
  • rim: .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="INT"].code
ServiceRequest.category:genomicsWholeCaseSequencing.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
ServiceRequest.category:genomicsWholeCaseSequencing.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
ServiceRequest.category:genomicsWholeCaseSequencing.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality0...*
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
ServiceRequest.category:genomicsWholeCaseSequencing.coding.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
ServiceRequest.category:genomicsWholeCaseSequencing.coding.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
ServiceRequest.category:genomicsWholeCaseSequencing.coding.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

https://fhir.hl7.org.uk/CodeSystem/UKCore-GenomeSequencingCategory

Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
ServiceRequest.category:genomicsWholeCaseSequencing.coding.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
ServiceRequest.category:genomicsWholeCaseSequencing.coding.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality0...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
ServiceRequest.category:genomicsWholeCaseSequencing.coding.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
ServiceRequest.category:genomicsWholeCaseSequencing.coding.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
ServiceRequest.category:genomicsWholeCaseSequencing.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
ServiceRequest.priority
DefinitionIndicates how quickly the ServiceRequest should be addressed with respect to other requests.
Cardinality0...1
Typecode
Binding

Identifies the level of importance to be assigned to actioning the request.

RequestPriority (required)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.priority
  • w5: FiveWs.grade
  • v2: TQ1.9, RF1-2
  • rim: .priorityCode
ServiceRequest.priority.id
Definitionunique id for the element within a resource (for internal references)
Cardinality0...1
Typestring
ServiceRequest.priority.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()
ServiceRequest.priority.extension:priorityReason
DefinitionA SNOMED CT concept representing the reason a Service Request is urgent
Cardinality0...*
TypeExtension(CodeableConcept)
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
ServiceRequest.priority.value
DefinitionPrimitive value for code
Cardinality0...1
TypeSystem.String
ServiceRequest.doNotPerform
DefinitionSet this to true if the record is saying that the service/procedure should NOT be performed.
Cardinality0...1
Typeboolean
ModifierTrue
SummaryTrue
Requirements

Used for do not ambulate, do not elevate head of bed, do not flush NG tube, do not take blood pressure on a certain arm, etc.

Comments

In general, only the code and timeframe will be present, though occasional additional qualifiers such as body site or even performer could be included to narrow the scope of the prohibition. If the ServiceRequest.code and ServiceRequest.doNotPerform both contain negation, that will reinforce prohibition and should not have a double negative interpretation.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.doNotPerform
  • rim: .actionNegationInd
ServiceRequest.code
DefinitionA set of codes from the SNOMED Clinical Terminology UK coding system regarding laboratory medicine test requests.
Cardinality0...1
TypeCodeableConcept
Binding

A set of codes that define laboratory medicine test requests. Selected from the SNOMED CT UK coding system.

https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineProcedures (preferred)
SummaryTrue
Aliasservice requested
Comments

Many laboratory and radiology procedure codes embed the specimen/organ system in the test order name, for example, serum or serum/plasma glucose, or a chest x-ray. The specimen might not be recorded separately from the test code.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.code
  • w5: FiveWs.what[x]
  • v2: PR1-3 / OBR-4 (varies by domain)
  • rim: .code
  • quick: Procedure.procedureCode
ServiceRequest.orderDetail
DefinitionAdditional details and instructions about the how the services are to be delivered. For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied.
Cardinality0...*
TypeCodeableConcept
Binding

Codified order entry details which are based on order context.

UKCoreProcedureCode (preferred)
SummaryTrue
Aliasdetailed instructions
Comments

For information from the medical record intended to support the delivery of the requested services, use the supportingInformation element.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NTE
  • rim: .code
  • quick: Procedure.procedureCode
ServiceRequest.quantity[x]
DefinitionAn amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).
Cardinality0...1
TypeQuantity
SummaryTrue
Requirements

When ordering a service the number of service items may need to be specified separately from the the service item.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NTE
  • rim: .quantity
ServiceRequest.subject
DefinitionOn whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).
Cardinality1...1
TypeReference(PatientEuLab | PatientAnimalEu | Group | Location | Device)
Must SupportTrue
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.subject
  • w5: FiveWs.subject[x]
  • v2: PID
  • rim: .participation[typeCode=SBJ].role
  • quick: ClinicalStatement.subject
  • w5: FiveWs.subject
ServiceRequest.encounter
DefinitionAn encounter that provides additional information about the healthcare context in which this request is made.
Cardinality0...1
TypeReference(Encounter)
SummaryTrue
Aliascontext
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.encounter
  • w5: FiveWs.context
  • v2: PV1
  • rim: .inboundRelationship(typeCode=COMP].source[classCode<=PCPR, moodCode=EVN]
  • quick: ClinicalStatement.encounter
ServiceRequest.occurrence[x]
DefinitionThe date/time at which the requested service should occur.
Cardinality0...1
TypedateTime
SummaryTrue
Aliasschedule
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.occurrence[x]
  • w5: FiveWs.planned
  • v2: TQ1/TQ2, OBR-7/OBR-8
  • rim: .effectiveTime
  • quick: Procedure.procedureSchedule
ServiceRequest.asNeeded[x]
DefinitionIf a CodeableConcept is present, it indicates the pre-condition for performing the service. For example "pain", "on flare-up", etc.
Cardinality0...1
Typeboolean
Binding

A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc.

SNOMEDCTMedicationAsNeededReasonCodes (example)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: boolean: precondition.negationInd (inversed - so negationInd = true means asNeeded=false CodeableConcept: precondition.observationEventCriterion[code="Assertion"].value
  • quick: Proposal.prnReason.reason
ServiceRequest.authoredOn
DefinitionWhen the request transitioned to being actionable.
Cardinality0...1
TypedateTime
SummaryTrue
AliasorderedOn
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.authoredOn
  • w5: FiveWs.recorded
  • v2: ORC.9, RF1-7 / RF1-9
  • rim: .participation[typeCode=AUT].time
  • quick: Proposal.proposedAtTime
ServiceRequest.requester
DefinitionThe individual who initiated the request and has responsibility for its activation.
Cardinality0...1
TypeReference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)
Must SupportTrue
SummaryTrue
Aliasauthor, orderer
Comments

This not the dispatcher, but rather who is the authorizer. This element is not intended to handle delegation which would generally be managed through the Provenance resource.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.requester
  • w5: FiveWs.author
  • v2: ORC.12, PRT
  • rim: .participation[typeCode=AUT].role
  • quick: ClinicalStatement.statementAuthor
ServiceRequest.performerType
DefinitionDesired type of performer for doing the requested service.
Cardinality0...1
TypeCodeableConcept
Binding

Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.

ParticipantRoles (example)
SummaryTrue
Aliasspecialty
Comments

This is a role, not a participation type. In other words, does not describe the task but describes the capacity. For example, “compounding pharmacy”, “psychiatrist” or “internal referral”.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.performerType
  • w5: FiveWs.actor
  • v2: PRT, RF!-3
  • rim: .participation[typeCode=PRF].role[scoper.determinerCode=KIND].code
ServiceRequest.performer
DefinitionThe desired performer for doing the requested service. For example, the surgeon, dermatopathologist, endoscopist, etc.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson)
SummaryTrue
Aliasrequest recipient
Comments

If multiple performers are present, it is interpreted as a list of alternative performers without any preference regardless of order. If order of preference is needed use the request-performerOrder extension. Use CareTeam to represent a group of performers (for example, Practitioner A and Practitioner B).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.performer
  • w5: FiveWs.actor
  • v2: PRT, Practitioner: PRD-2/PRD-7 where PRD-3 = RT; Organization: PRD-10 where PRD-3 = RT
  • rim: .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
ServiceRequest.locationCode
DefinitionThe preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center.
Cardinality0...*
TypeCodeableConcept
Binding

A location type where services are delivered.

v3.ServiceDeliveryLocationRoleType (example)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.actor
  • rim: .participation[typeCode=LOC].role[scoper.determinerCode=KIND].code
ServiceRequest.locationReference
DefinitionA reference to the the preferred location(s) where the procedure should actually happen. E.g. at home or nursing day care center.
Cardinality0...*
TypeReference(Location)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • w5: FiveWs.actor
  • rim: .participation[typeCode=LOC].role[scoper.determinerCode=INSTANCE]
ServiceRequest.reasonCode
DefinitionAn explanation or justification for why this service is being requested in coded or textual form. This is often for billing purposes. May relate to the resources referred to in `supportingInfo`.
Cardinality0...*
TypeCodeableConcept
Binding

A set of codes that define a reason for a service request.

UKCoreServiceRequestReasonCode (preferred)
SummaryTrue
Comments

This element represents why the referral is being made and may be used to decide how the service will be performed, or even if it will be performed at all. Use CodeableConcept.text element if the data is free (uncoded) text as shown in the CT Scan example.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.reasonCode
  • w5: FiveWs.why[x]
  • v2: ORC.16, RF1-10
  • rim: .reasonCode
ServiceRequest.reasonReference
DefinitionIndicates another resource that provides a justification for why this service is being requested. May relate to the resources referred to in `supportingInfo`.
Cardinality0...*
TypeReference(Condition | Observation | DiagnosticReport | DocumentReference)
SummaryTrue
Comments

This element represents why the referral is being made and may be used to decide how the service will be performed, or even if it will be performed at all. To be as specific as possible, a reference to Observation or Condition should be used if available. Otherwise when referencing DiagnosticReport it should contain a finding in DiagnosticReport.conclusion and/or DiagnosticReport.conclusionCode. When using a reference to DocumentReference, the target document should contain clear findings language providing the relevant reason for this service request. Use the CodeableConcept text element in ServiceRequest.reasonCode if the data is free (uncoded) text as shown in the CT Scan example.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.reasonReference
  • w5: FiveWs.why[x]
  • v2: ORC.16
  • rim: .outboundRelationship[typeCode=RSON].target
ServiceRequest.insurance
DefinitionInsurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service.
Cardinality0...*
TypeReference(Coverage)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.insurance
  • v2: IN1/IN2
  • rim: .outboundRelationship[typeCode=COVBY].target
ServiceRequest.supportingInfo
DefinitionAdditional clinical information about the patient or specimen that may influence the services or their interpretations. This information includes diagnosis, clinical findings and other observations. In laboratory ordering these are typically referred to as "ask at order entry questions (AOEs)". This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example, reporting the amount of inspired oxygen for blood gas measurements.
Cardinality0...*
TypeReference(Resource)
AliasAsk at order entry question, AOE
Comments

To represent information about how the services are to be delivered use the instructions element.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.supportingInfo
  • v2: Accompanying segments
  • rim: .outboundRelationship[typeCode=PERT].target
ServiceRequest.specimen
DefinitionOne or more specimens that the laboratory procedure will use.
Cardinality0...*
TypeReference(SpecimenEu)
SummaryTrue
Comments

If the specimen information are known when the order is created then the ServiceRequest.specimen should be used. If the ServiceRequest can be updated when the specimen is collected then the ServiceRequest.specimen or the Specimen.request could be used. Otherwise the relationship is recorded in the Specimen.request element

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SPM
  • rim: .participation[typeCode=SPC].role
ServiceRequest.bodySite
DefinitionAnatomic location where the procedure should be performed. This is the target site.
Cardinality0...*
TypeCodeableConcept
Binding

Codes describing anatomical locations. May include laterality.

SNOMEDCTBodyStructures (preferred)
SummaryTrue
Aliaslocation
Requirements

Knowing where the procedure is performed is important for tracking if multiple sites are possible.

Comments

Only used if not implicit in the code found in ServiceRequest.code. 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 procedure-targetBodyStructure.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SPM
  • rim: targetSiteCode
  • quick: Procedure.targetBodySite
ServiceRequest.note
DefinitionAny other notes and comments made about the service request. For example, internal billing notes.
Cardinality0...*
TypeAnnotation
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.note
  • v2: NTE
  • rim: .inboundRelationship(typeCode=SUBJ].source[classCode=ANNGEN, moodCode=EVN].value[xsi:type=ST]
  • quick: ClinicalStatement.additionalText
ServiceRequest.patientInstruction
DefinitionInstructions in terms that are understood by the patient or consumer.
Cardinality0...1
Typestring
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: NTE
  • rim: .text
ServiceRequest.relevantHistory
DefinitionKey events in the history of the request.
Cardinality0...*
TypeReference(Provenance)
Comments

This might not include provenances for all versions of the request – only those deemed “relevant” or important. This SHALL NOT include the Provenance associated with this current version of the resource. (If that provenance is deemed to be a “relevant” change, it will need to be added as part of a later update. Until then, it can be queried directly as the Provenance that points to this version using _revinclude All Provenances should have some historical version of this Request as their subject.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • workflow: Request.relevantHistory
  • v2: N/A
  • rim: .inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]

Table View

ServiceRequest..
ServiceRequest.extensionExtension..1
ServiceRequest.extensionExtension..
ServiceRequest.extensionExtension..1
ServiceRequest.status..
ServiceRequest.intent..
ServiceRequest.category..
ServiceRequest.category..
ServiceRequest.category.coding..
ServiceRequest.category.coding.system..
ServiceRequest.priority..
ServiceRequest.priority.extensionExtension..
ServiceRequest.code..
ServiceRequest.orderDetail..
ServiceRequest.subject..
ServiceRequest.requester..
ServiceRequest.reasonCode..
ServiceRequest.bodySite..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-ServiceRequest-Lab" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-ServiceRequest-Lab" />
    <version value="2.0.0" />
    <name value="UKCoreServiceRequestLab" />
    <title value="UK Core Service Request Lab" />
    <status value="active" />
    <date value="2025-05-13" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the specific UK constraints and extensions on the International FHIR resource [ServiceRequest](https://hl7.org/fhir/R4/ServiceRequest.html), in order to support requesting laboratory services." />
    <purpose value="To provide implementers additional support for requesting a procedure or diagnostic or other service to be planned, proposed, or performed, with regards to a laboratory observation or a laboratory diagnostic report." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="ServiceRequest" />
    <baseDefinition value="http://hl7.eu/fhir/laboratory/StructureDefinition/ServiceRequest-eu-lab" />
    <derivation value="constraint" />
    <differential>
        <element id="ServiceRequest.extension:sourceOfServiceRequest">
            <path value="ServiceRequest.extension" />
            <sliceName value="sourceOfServiceRequest" />
            <short value="Describes the source of the Service Request." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SourceOfServiceRequest" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="ServiceRequest.extension:additionalContact">
            <path value="ServiceRequest.extension" />
            <sliceName value="additionalContact" />
            <short value="Supports recording of additional contacts, who should be contacted regarding questions arising from the service request. This differs from the requester and responsibleClinician." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AdditionalContact" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="ServiceRequest.extension:coverage">
            <path value="ServiceRequest.extension" />
            <sliceName value="coverage" />
            <short value="Supports the exchange of information describing the method of funding for the Service Request." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-Coverage" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="ServiceRequest.status">
            <path value="ServiceRequest.status" />
            <short value="The status of the order." />
            <mustSupport value="true" />
        </element>
        <element id="ServiceRequest.intent">
            <path value="ServiceRequest.intent" />
            <short value="Whether the request is a proposal, plan, an original order or a reflex order." />
            <mustSupport value="true" />
        </element>
        <element id="ServiceRequest.category">
            <path value="ServiceRequest.category" />
            <slicing>
                <discriminator>
                    <type value="value" />
                    <path value="coding.system" />
                </discriminator>
                <rules value="open" />
            </slicing>
        </element>
        <element id="ServiceRequest.category:genomicsWholeCaseSequencing">
            <path value="ServiceRequest.category" />
            <sliceName value="genomicsWholeCaseSequencing" />
            <short value="Classification of Genomics service" />
            <definition value="A code that classifies the service for Genomics, whether it is a Whole Case Genome Sequencing or non-Whole Genome Sequencing for cancer or rare diseases" />
            <binding>
                <strength value="extensible" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-GenomeSequencingCategory" />
            </binding>
        </element>
        <element id="ServiceRequest.category:genomicsWholeCaseSequencing.coding.system">
            <path value="ServiceRequest.category.coding.system" />
            <fixedUri value="https://fhir.hl7.org.uk/CodeSystem/UKCore-GenomeSequencingCategory" />
        </element>
        <element id="ServiceRequest.priority.extension:priorityReason">
            <path value="ServiceRequest.priority.extension" />
            <sliceName value="priorityReason" />
            <short value="Supports the underlying reason why a Service Request is urgent." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-PriorityReason" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="ServiceRequest.code">
            <path value="ServiceRequest.code" />
            <definition value="A set of codes from the SNOMED Clinical Terminology UK coding system regarding laboratory medicine test requests." />
            <binding>
                <strength value="preferred" />
                <description value="A set of codes that define laboratory medicine test requests. Selected from the SNOMED CT UK coding system." />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineProcedures" />
            </binding>
        </element>
        <element id="ServiceRequest.orderDetail">
            <path value="ServiceRequest.orderDetail" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-ProcedureCode" />
            </binding>
        </element>
        <element id="ServiceRequest.subject">
            <path value="ServiceRequest.subject" />
            <short value="The individual or entity the service is ordered for." />
            <mustSupport value="true" />
        </element>
        <element id="ServiceRequest.requester">
            <path value="ServiceRequest.requester" />
            <short value="Who / what is requesting the service" />
            <mustSupport value="true" />
        </element>
        <element id="ServiceRequest.reasonCode">
            <path value="ServiceRequest.reasonCode" />
            <binding>
                <strength value="preferred" />
                <description value="A set of codes that define a reason for a service request." />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-ServiceRequestReasonCode" />
            </binding>
        </element>
        <element id="ServiceRequest.bodySite">
            <path value="ServiceRequest.bodySite" />
            <binding>
                <strength value="preferred" />
            </binding>
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-ServiceRequest-Lab",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-ServiceRequest-Lab",
    "version": "2.0.0",
    "name": "UKCoreServiceRequestLab",
    "title": "UK Core Service Request Lab",
    "status": "active",
    "date": "2025-05-13",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the specific UK constraints and extensions on the International FHIR resource [ServiceRequest](https://hl7.org/fhir/R4/ServiceRequest.html), in order to support requesting laboratory services.",
    "purpose": "To provide implementers additional support for requesting a procedure or diagnostic or other service to be planned, proposed, or performed, with regards to a laboratory observation or a laboratory diagnostic report.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "ServiceRequest",
    "baseDefinition": "http://hl7.eu/fhir/laboratory/StructureDefinition/ServiceRequest-eu-lab",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "ServiceRequest.extension:sourceOfServiceRequest",
                "path": "ServiceRequest.extension",
                "sliceName": "sourceOfServiceRequest",
                "short": "Describes the source of the Service Request.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SourceOfServiceRequest"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "ServiceRequest.extension:additionalContact",
                "path": "ServiceRequest.extension",
                "sliceName": "additionalContact",
                "short": "Supports recording of additional contacts, who should be contacted regarding questions arising from the service request. This differs from the requester and responsibleClinician.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AdditionalContact"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "ServiceRequest.extension:coverage",
                "path": "ServiceRequest.extension",
                "sliceName": "coverage",
                "short": "Supports the exchange of information describing the method of funding for the Service Request.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-Coverage"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "ServiceRequest.status",
                "path": "ServiceRequest.status",
                "short": "The status of the order.",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.intent",
                "path": "ServiceRequest.intent",
                "short": "Whether the request is a proposal, plan, an original order or a reflex order.",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.category",
                "path": "ServiceRequest.category",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "value",
                            "path": "coding.system"
                        }
                    ],
                    "rules": "open"
                }
            },
            {
                "id": "ServiceRequest.category:genomicsWholeCaseSequencing",
                "path": "ServiceRequest.category",
                "sliceName": "genomicsWholeCaseSequencing",
                "short": "Classification of Genomics service",
                "definition": "A code that classifies the service for Genomics, whether it is a Whole Case Genome Sequencing or non-Whole Genome Sequencing for cancer or rare diseases",
                "binding": {
                    "strength": "extensible",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-GenomeSequencingCategory"
                }
            },
            {
                "id": "ServiceRequest.category:genomicsWholeCaseSequencing.coding.system",
                "path": "ServiceRequest.category.coding.system",
                "fixedUri": "https://fhir.hl7.org.uk/CodeSystem/UKCore-GenomeSequencingCategory"
            },
            {
                "id": "ServiceRequest.priority.extension:priorityReason",
                "path": "ServiceRequest.priority.extension",
                "sliceName": "priorityReason",
                "short": "Supports the underlying reason why a Service Request is urgent.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-PriorityReason"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "ServiceRequest.code",
                "path": "ServiceRequest.code",
                "definition": "A set of codes from the SNOMED Clinical Terminology UK coding system regarding laboratory medicine test requests.",
                "binding": {
                    "strength": "preferred",
                    "description": "A set of codes that define laboratory medicine test requests. Selected from the SNOMED CT UK coding system.",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineProcedures"
                }
            },
            {
                "id": "ServiceRequest.orderDetail",
                "path": "ServiceRequest.orderDetail",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-ProcedureCode"
                }
            },
            {
                "id": "ServiceRequest.subject",
                "path": "ServiceRequest.subject",
                "short": "The individual or entity the service is ordered for.",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.requester",
                "path": "ServiceRequest.requester",
                "short": "Who / what is requesting the service",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.reasonCode",
                "path": "ServiceRequest.reasonCode",
                "binding": {
                    "strength": "preferred",
                    "description": "A set of codes that define a reason for a service request.",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-ServiceRequestReasonCode"
                }
            },
            {
                "id": "ServiceRequest.bodySite",
                "path": "ServiceRequest.bodySite",
                "binding": {
                    "strength": "preferred"
                }
            }
        ]
    }
}

Feedback

Click here to:
Command 'page' could not render: Page not found.


Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Specimen-Labdraft3.1.02025-05-13

This profile defines the UK constraints and extensions on the International FHIR resource Specimen.


Profile_Purpose

This profile allows the exchange of information about a sample to be used for analysis.

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
sampleCategoryI0..1Extension(CodeableConcept)
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
accessionIdentifierΣ0..1Identifier
statusS Σ ?!0..1codeBinding
typeS Σ0..1CodeableConceptBinding
subjectS Σ0..1Reference(PatientEuLab | PatientAnimalEu | Group | Device | Substance | Location)
receivedTimeS Σ0..1dateTime
parent0..*Reference(SpecimenEu)
request0..*Reference(ServiceRequest)
id0..1string
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueReferenceReference(BodyStructureEuLab)
specialHandlingI0..*Extension(CodeableConcept)
collectorR5I0..1Extension(Reference(UKCorePatient | UKCoreRelatedPerson))
modifierExtensionΣ ?! I0..*Extension
collectorΣ0..1Reference(Practitioner | PractitionerRole)
collectedDateTimedateTime
collectedPeriodPeriod
durationΣ0..1Duration
quantity0..1SimpleQuantity
method0..1CodeableConcept
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueReferenceReference(BodyStructure)
codingΣ0..*Coding
textΣ0..1string
fastingStatusCodeableConceptCodeableConcept
fastingStatusDurationDuration
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
description0..1string
procedure0..1CodeableConcept
additive0..*Reference(Substance | SpecimenAdditiveSubstance)
timeDateTimedateTime
timePeriodPeriod
id0..1string
deviceI0..1Extension
deviceR5I0..1Extension
locationR5I0..1Extension
modifierExtensionΣ ?! I0..*Extension
identifierΣ0..*Identifier
description0..1string
type0..1CodeableConceptBinding
capacity0..1SimpleQuantity
specimenQuantity0..1SimpleQuantity
conditionΣ0..*CodeableConceptBinding
note0..*Annotation

Detailed Descriptions

Specimen
DefinitionLaboratory specimen
Cardinality0...*
Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
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
Typeid
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())
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())
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())
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: 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: 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
Specimen.extension:sampleCategory
DefinitionThis extension allows the recording of the category of a sample for use within Genomics, whether it is a tumour or germline sample.
Cardinality0...1
TypeExtension(CodeableConcept)
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.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.

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
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
  • 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
  • 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)
Must SupportTrue
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
  • w5: FiveWs.status
  • v2: SPM-20
  • rim: status
Specimen.type
DefinitionThe kind of material that forms the specimen.
Cardinality0...1
TypeCodeableConcept
Binding

A code from the SNOMED CT UK Clinical Terminology coding system

UKCoreSpecimenType (preferred)
Must SupportTrue
SummaryTrue
Comments

If the specimen.type conveys information about the site the specimen has been collected from, then, if the bodySite is present, it shall be coherent with the type

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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(PatientEuLab | PatientAnimalEu | Group | Device | Substance | Location)
Must SupportTrue
SummaryTrue
Requirements

Must know the subject context.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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
Must SupportTrue
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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(SpecimenEu)
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())
Mappings
  • 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

If the specimen information are known when the order is created then the ServiceRequest.specimen should be used. If the ServiceRequest can be updated when the specimen is collected then the ServiceRequest.specimen or the Specimen.request could be used. Otherwise the relationship is recorded in the Specimen.request element

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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())
  • ukcore-spec-001: Only one of Specimen.collection.collector or Specimen.collection.extension:collectorR5 can be populated at a time.
    collector.reference.empty() or collector.extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.collection.collector').empty()
Mappings
  • 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
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Specimen.collection.extension:bodySite
DefinitionRecord details about the anatomical location of a specimen or body part. This resource may be used when a coded concept does not provide the necessary detail needed for the use case.
Cardinality0...1
TypeExtension
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()
Specimen.collection.extension:bodySite.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:bodySite.extension
DefinitionAn Extension
Cardinality0...0
TypeExtension
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()
Specimen.collection.extension:bodySite.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

http://hl7.org/fhir/StructureDefinition/bodySite

Mappings
  • rim: N/A
Specimen.collection.extension:bodySite.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/extensibility.html) for a list).
Cardinality1...1
TypeReference(BodyStructureEuLab)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Specimen.collection.extension:specialHandling
DefinitionSpecial handling during the collection, transport, or storage of the specimen.
Cardinality0...*
TypeExtension(CodeableConcept)
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()
Specimen.collection.extension:collectorR5
DefinitionPerson who collected the specimen.
Cardinality0...1
TypeExtension(Reference(UKCorePatient | UKCoreRelatedPerson))
Comments

If this extension is used then Specimen.collection.collector SHALL NOT have a value to keep the cardinality restraint 0..1

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
Specimen.collection.collector
DefinitionPerson who collected the specimen.
Cardinality0...1
TypeReference(Practitioner | PractitionerRole)
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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
  • 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
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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
BindingUKCoreSpecimenBodySite (preferred)
Comments

If the specimen.type conveys information about the site the specimen has been collected from, then, if the bodySite if present it shall be coherent with the type

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SPM-8 and SPM-9
  • rim: .targetSiteCode
Specimen.collection.bodySite.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.bodySite.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
Specimen.collection.bodySite.extension:bodySiteReference
DefinitionAn extension to replicate the changes within R5 altering the data type of Specimen.collection.bodySite from CodeableConcept to CodeableReference (bodyStructure).
Cardinality0...1
TypeExtension(Reference(BodyStructure))
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.collection.bodySite.extension:bodySiteReference.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.bodySite.extension:bodySiteReference.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
Specimen.collection.bodySite.extension:bodySiteReference.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BodySiteReference

Mappings
  • rim: N/A
Specimen.collection.bodySite.extension:bodySiteReference.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).
Cardinality1...1
TypeReference(BodyStructure)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
Specimen.collection.bodySite.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality0...*
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
Specimen.collection.bodySite.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
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
  • 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: .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.

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
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
Specimen.processing.description
DefinitionTextual description of procedure.
Cardinality0...1
Typestring
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .code
Specimen.processing.additive
DefinitionMaterial used in the processing step.
Cardinality0...*
TypeReference(Substance | SpecimenAdditiveSubstance)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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: .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: .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
DefinitionAn Extension
Cardinality0...*
TypeExtension
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()
Specimen.container.extension:device
DefinitionOptional Extension Element - found in all resources.
Cardinality0...1
TypeExtension
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:deviceR5
DefinitionAn Extension
Cardinality0...1
TypeExtension
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()
Specimen.container.extension:locationR5
DefinitionAn Extension
Cardinality0...1
TypeExtension
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()
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
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
  • v2: SAC-3
  • rim: .id
Specimen.container.description
DefinitionTextual description of the container.
Cardinality0...1
Typestring
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: .desc
Specimen.container.type
DefinitionThe type of container associated with the specimen (e.g. slide, aliquot, etc.).
Cardinality0...1
TypeCodeableConcept
BindingLabSpecimenContainerEu (preferred)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SPM-27
  • rim: .code
Specimen.container.capacity
DefinitionThe capacity (volume or other measure) the container may contain.
Cardinality0...1
TypeSimpleQuantity
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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...0
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
  • 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.

https://fhir.hl7.org.uk/ValueSet/UKCore-SampleState (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
  • 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
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: OBX
  • rim: .inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code="annotation"].value

Table View

Specimen..
Specimen.extensionExtension..1
Specimen.status..
Specimen.type..
Specimen.subject..
Specimen.receivedTime..
Specimen.collection..
Specimen.collection.extensionExtension..
Specimen.collection.extensionExtension..1
Specimen.collection.bodySite..
Specimen.collection.bodySite.extensionExtension..1
Specimen.collection.bodySite.extension.value[x]..
Specimen.container..
Specimen.container.extensionExtension..1
Specimen.container.extensionExtension..1
Specimen.container.type..
Specimen.condition..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-Specimen-Lab" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Specimen-Lab" />
    <version value="3.1.0" />
    <name value="UKCoreSpecimenLab" />
    <title value="UK Core Specimen Lab" />
    <status value="draft" />
    <date value="2025-05-13" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [Specimen](https://hl7.org/fhir/R4/Specimen.html)." />
    <purpose value="This profile allows the exchange of information about a sample to be used for analysis." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Specimen" />
    <baseDefinition value="http://hl7.eu/fhir/laboratory/StructureDefinition/Specimen-eu-lab" />
    <derivation value="constraint" />
    <differential>
        <element id="Specimen.extension:sampleCategory">
            <path value="Specimen.extension" />
            <sliceName value="sampleCategory" />
            <short value="An extension to record the category of a sample." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SampleCategory" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="Specimen.status">
            <path value="Specimen.status" />
            <short value="The availability of the specimen sample." />
            <mustSupport value="true" />
        </element>
        <element id="Specimen.type">
            <path value="Specimen.type" />
            <short value="The kind of material that forms the specimen." />
            <mustSupport value="true" />
            <binding>
                <strength value="preferred" />
                <description value="A code from the SNOMED CT UK Clinical Terminology coding system" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-SpecimenType" />
            </binding>
        </element>
        <element id="Specimen.subject">
            <path value="Specimen.subject" />
            <short value="Where the specimen came from." />
            <mustSupport value="true" />
        </element>
        <element id="Specimen.receivedTime">
            <path value="Specimen.receivedTime" />
            <short value="The time when specimen was received for processing." />
            <mustSupport value="true" />
        </element>
        <element id="Specimen.collection">
            <path value="Specimen.collection" />
            <constraint>
                <key value="ukcore-spec-001" />
                <severity value="error" />
                <human value="Only one of Specimen.collection.collector or Specimen.collection.extension:collectorR5 can be populated at a time." />
                <expression value="collector.reference.empty() or collector.extension(&#39;http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.collection.collector&#39;).empty()" />
            </constraint>
        </element>
        <element id="Specimen.collection.extension:specialHandling">
            <path value="Specimen.collection.extension" />
            <sliceName value="specialHandling" />
            <short value="This SHOULD be included if there is a high contamination risk reason for a sample / biopsy." />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/StructureDefinition/specimen-specialHandling" />
            </type>
        </element>
        <element id="Specimen.collection.extension:CollectorR5">
            <path value="Specimen.collection.extension" />
            <sliceName value="collectorR5" />
            <comment value="If this extension is used then Specimen.collection.collector SHALL NOT have a value to keep the cardinality restraint 0..1" />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.collection.collector" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="Specimen.collection.bodySite">
            <path value="Specimen.collection.bodySite" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-SpecimenBodySite" />
            </binding>
        </element>
        <element id="Specimen.collection.bodySite.extension:bodySiteReference">
            <path value="Specimen.collection.bodySite.extension" />
            <sliceName value="bodySiteReference" />
            <short value="An extension to allow referencing to a BodyStructure." />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BodySiteReference" />
            </type>
            <isModifier value="false" />
        </element>
        <element id="Specimen.collection.bodySite.extension:bodySiteReference.value[x]">
            <path value="Specimen.collection.bodySite.extension.value[x]" />
            <short value="A reference to a BodyStructure" />
        </element>
        <element id="Specimen.container.extension:deviceR5">
            <path value="Specimen.container.extension" />
            <sliceName value="deviceR5" />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.container.device" />
            </type>
        </element>
        <element id="Specimen.container.extension:locationR5">
            <path value="Specimen.container.extension" />
            <sliceName value="locationR5" />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.container.location" />
            </type>
        </element>
        <element id="Specimen.container.type">
            <path value="Specimen.container.type" />
            <binding>
                <strength value="preferred" />
            </binding>
        </element>
        <element id="Specimen.condition">
            <path value="Specimen.condition" />
            <binding>
                <strength value="extensible" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-SampleState" />
            </binding>
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-Specimen-Lab",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Specimen-Lab",
    "version": "3.1.0",
    "name": "UKCoreSpecimenLab",
    "title": "UK Core Specimen Lab",
    "status": "draft",
    "date": "2025-05-13",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [Specimen](https://hl7.org/fhir/R4/Specimen.html).",
    "purpose": "This profile allows the exchange of information about a sample to be used for analysis.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Specimen",
    "baseDefinition": "http://hl7.eu/fhir/laboratory/StructureDefinition/Specimen-eu-lab",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Specimen.extension:sampleCategory",
                "path": "Specimen.extension",
                "sliceName": "sampleCategory",
                "short": "An extension to record the category of a sample.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SampleCategory"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "Specimen.status",
                "path": "Specimen.status",
                "short": "The availability of the specimen sample.",
                "mustSupport": true
            },
            {
                "id": "Specimen.type",
                "path": "Specimen.type",
                "short": "The kind of material that forms the specimen.",
                "mustSupport": true,
                "binding": {
                    "strength": "preferred",
                    "description": "A code from the SNOMED CT UK Clinical Terminology coding system",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-SpecimenType"
                }
            },
            {
                "id": "Specimen.subject",
                "path": "Specimen.subject",
                "short": "Where the specimen came from.",
                "mustSupport": true
            },
            {
                "id": "Specimen.receivedTime",
                "path": "Specimen.receivedTime",
                "short": "The time when specimen was received for processing.",
                "mustSupport": true
            },
            {
                "id": "Specimen.collection",
                "path": "Specimen.collection",
                "constraint":  [
                    {
                        "key": "ukcore-spec-001",
                        "severity": "error",
                        "human": "Only one of Specimen.collection.collector or Specimen.collection.extension:collectorR5 can be populated at a time.",
                        "expression": "collector.reference.empty() or collector.extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.collection.collector').empty()"
                    }
                ]
            },
            {
                "id": "Specimen.collection.extension:specialHandling",
                "path": "Specimen.collection.extension",
                "sliceName": "specialHandling",
                "short": "This SHOULD be included if there is a high contamination risk reason for a sample / biopsy.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/StructureDefinition/specimen-specialHandling"
                        ]
                    }
                ]
            },
            {
                "id": "Specimen.collection.extension:CollectorR5",
                "path": "Specimen.collection.extension",
                "sliceName": "collectorR5",
                "comment": "If this extension is used then Specimen.collection.collector SHALL NOT have a value to keep the cardinality restraint 0..1",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.collection.collector"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "Specimen.collection.bodySite",
                "path": "Specimen.collection.bodySite",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-SpecimenBodySite"
                }
            },
            {
                "id": "Specimen.collection.bodySite.extension:bodySiteReference",
                "path": "Specimen.collection.bodySite.extension",
                "sliceName": "bodySiteReference",
                "short": "An extension to allow referencing to a BodyStructure.",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BodySiteReference"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "Specimen.collection.bodySite.extension:bodySiteReference.value[x]",
                "path": "Specimen.collection.bodySite.extension.value[x]",
                "short": "A reference to a BodyStructure"
            },
            {
                "id": "Specimen.container.extension:deviceR5",
                "path": "Specimen.container.extension",
                "sliceName": "deviceR5",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.container.device"
                        ]
                    }
                ]
            },
            {
                "id": "Specimen.container.extension:locationR5",
                "path": "Specimen.container.extension",
                "sliceName": "locationR5",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://hl7.org/fhir/5.0/StructureDefinition/extension-Specimen.container.location"
                        ]
                    }
                ]
            },
            {
                "id": "Specimen.container.type",
                "path": "Specimen.container.type",
                "binding": {
                    "strength": "preferred"
                }
            },
            {
                "id": "Specimen.condition",
                "path": "Specimen.condition",
                "binding": {
                    "strength": "extensible",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-SampleState"
                }
            }
        ]
    }
}

Feedback

Click here to:
Command 'page' could not render: Page not found.