NCPI FHIR Implementation Guide v2
0.1.0 - ci-build

NCPI FHIR Implementation Guide v2 - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: NCPISample - Detailed Descriptions

Draft as of 2024-11-25

Definitions for the ncpi-sample resource profile.

Guidance on how to interpret the contents of this table can be found here

0. Specimen
2. Specimen.extension
SlicingThis element introduces a set of slices on Specimen.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 4. Specimen.extension:biospecimen-spatial
    Slice Namebiospecimen-spatial
    ShortAny spatial/location qualifiers
    Control0..1
    TypeExtension(Spatial Information) (Extension Type: code)
    6. Specimen.extension:biospecimen-laterality
    Slice Namebiospecimen-laterality
    ShortLaterality information for the site
    Control0..1
    TypeExtension(Laterality Information) (Extension Type: code)
    8. Specimen.extension:aliquot-availability
    Slice Namealiquot-availability
    ShortCan this Sample be requested for further analysis?
    Control0..1
    TypeExtension(Availability Status of Aliquot) (Extension Type: code)
    10. Specimen.extension:aliquot-concentration
    Slice Namealiquot-concentration
    ShortWhat is the concentration of the analyte in the Aliquot?
    Control0..1
    TypeExtension(Concentration of the Aliquot) (Extension Type: Quantity)
    12. Specimen.identifier
    ShortUnique ID for this sample
    NoteThis is a business identifier, not a resource identifier (see discussion)
    Control1..1
    14. Specimen.status
    ShortCan this Sample be requested for further analysis?
    16. Specimen.type
    ShortThe type of material of which this Sample is comprised
    Control1..?
    18. Specimen.subject
    ShortThe participant from whom the biospecimen was taken
    Control1..?
    20. Specimen.parent
    ShortThe Sample from which this Sample was derived
    22. Specimen.collection
    24. Specimen.collection.collected[x]
    ShortThe age at which this biospecimen was collected. Could be expressed with a term, an age, or an age range. (for ages use http://hl7.org/fhir/StructureDefinition/cqf-relativeDateTime)
    TypedateTime, Period
    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    26. Specimen.collection.quantity
    ShortThe total quantity of the specimen
    28. Specimen.collection.method
    ShortThe approach used to collect the biospecimen
    30. Specimen.collection.bodySite
    ShortThe location of the specimen collection
    32. Specimen.processing
    34. Specimen.processing.procedure
    ShortProcessing that was applied to the Parent Sample or from the Biospecimen Collection that yielded this distinct sample
    Control1..?
    36. Specimen.container
    38. Specimen.container.identifier
    ShortUnique ID for this aliquot
    NoteThis is a business identifier, not a resource identifier (see discussion)
    Control1..1
    40. Specimen.container.specimenQuantity
    ShortWhat is the volume of the Aliquot?
    42. Specimen.condition
    ShortHow is the Sample stored, eg, Frozen or with additives

    Guidance on how to interpret the contents of this table can be found here

    0. Specimen
    Definition

    A sample to be used for analysis.

    ShortSample for analysis
    Control0..*
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsdom-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.exists() and ('#'+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(uri) = '#').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())
    2. Specimen.implicitRules
    Definition

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

    ShortA set of rules under which this content was created
    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.

    Control0..1
    Typeuri
    Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    4. Specimen.extension
    Definition

    An Extension


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

    ShortExtensionAdditional content defined by implementations
    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.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-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())
    SlicingThis element introduces a set of slices on Specimen.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 6. Specimen.extension:biospecimen-spatial
      Slice Namebiospecimen-spatial
      Definition

      Spatial Information

      ShortAny spatial/location qualifiers
      Control0..1
      This element is affected by the following invariants: ele-1
      TypeExtension(Spatial Information) (Extension Type: code)
      Is Modifierfalse
      Must Supportfalse
      Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      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())
      8. Specimen.extension:biospecimen-laterality
      Slice Namebiospecimen-laterality
      Definition

      Laterality Information

      ShortLaterality information for the site
      Control0..1
      This element is affected by the following invariants: ele-1
      TypeExtension(Laterality Information) (Extension Type: code)
      Is Modifierfalse
      Must Supportfalse
      Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      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())
      10. Specimen.extension:aliquot-availability
      Slice Namealiquot-availability
      Definition

      Availability Status of Aliquot

      ShortCan this Sample be requested for further analysis?
      Control0..1
      This element is affected by the following invariants: ele-1
      TypeExtension(Availability Status of Aliquot) (Extension Type: code)
      Is Modifierfalse
      Must Supportfalse
      Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      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())
      12. Specimen.extension:aliquot-concentration
      Slice Namealiquot-concentration
      Definition

      Concentration of the Aliquot

      ShortWhat is the concentration of the analyte in the Aliquot?
      Control0..1
      This element is affected by the following invariants: ele-1
      TypeExtension(Concentration of the Aliquot) (Extension Type: Quantity)
      Is Modifierfalse
      Must Supportfalse
      Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      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())
      14. Specimen.modifierExtension
      Definition

      May 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).

      ShortExtensions that cannot be ignored
      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.

      Control0..*
      TypeExtension
      Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
      Must Supportfalse
      Summaryfalse
      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.

      Alternate Namesextensions, user content
      Invariantsele-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())
      16. Specimen.identifier
      Definition

      Id for specimen.

      ShortUnique ID for this sampleExternal Identifier
      NoteThis is a business identifier, not a resource identifier (see discussion)
      Control10..1*
      TypeIdentifier
      Is Modifierfalse
      Must Supportfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      18. Specimen.status
      Definition

      The availability of the specimen.

      ShortCan this Sample be requested for further analysis?available | unavailable | unsatisfactory | entered-in-error
      Comments

      This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

      Control0..1
      BindingThe codes SHALL be taken from SpecimenStatushttp://hl7.org/fhir/ValueSet/specimen-status|4.3.0
      (required to http://hl7.org/fhir/ValueSet/specimen-status|4.3.0)

      Codes providing the status/availability of a specimen.

      Typecode
      Is Modifiertrue because This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Must Supportfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      20. Specimen.type
      Definition

      The kind of material that forms the specimen.

      ShortThe type of material of which this Sample is comprisedKind of material that forms the specimen
      Comments

      The type can change the way that a specimen is handled and drives what kind of analyses can properly be performed on the specimen. It is frequently used in diagnostic work flow decision making systems.

      Control10..1
      BindingFor example codes, see hl7VS-specimenTypehttp://terminology.hl7.org/ValueSet/v2-0487
      (example to http://terminology.hl7.org/ValueSet/v2-0487)

      The type of the specimen.

      TypeCodeableConcept
      Is Modifierfalse
      Must Supportfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      22. Specimen.subject
      Definition

      Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device.

      ShortThe participant from whom the biospecimen was takenWhere 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
      Control10..1
      TypeReference(Patient, Group, Device, Substance, Location)
      Is Modifierfalse
      Must Supportfalse
      Summarytrue
      Requirements

      Must know the subject context.

      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      24. Specimen.parent
      Definition

      Reference to the parent (source) specimen which is used when the specimen was either derived from or a component of another specimen.

      ShortThe Sample from which this Sample was derivedSpecimen from which this specimen originated
      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.

      Control0..*
      TypeReference(Specimen)
      Is Modifierfalse
      Must Supportfalse
      Summaryfalse
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      26. Specimen.condition
      Definition

      A mode or state of being that describes the nature of the specimen.

      ShortHow is the Sample stored, eg, Frozen or with additivesState of the specimen
      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.

      Control0..*
      BindingUnless not suitable, these codes SHALL be taken from hl7VS-specimenConditionhttp://terminology.hl7.org/ValueSet/v2-0493
      (extensible to http://terminology.hl7.org/ValueSet/v2-0493)

      Codes describing the state of the specimen.

      TypeCodeableConcept
      Is Modifierfalse
      Must Supportfalse
      Summarytrue
      Requirements

      The specimen condition can be used to assess its quality or appropriateness for a specific test.

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

      Guidance on how to interpret the contents of this table can be found here

      0. Specimen
      Definition

      A sample to be used for analysis.

      ShortSample for analysis
      Control0..*
      Is Modifierfalse
      Must Supportfalse
      Summaryfalse
      Invariantsdom-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.exists() and ('#'+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(uri) = '#').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())
      2. Specimen.id
      Definition

      The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

      ShortLogical id of this artifact
      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.

      Control0..1
      Typeid
      Is Modifierfalse
      Must Supportfalse
      Summarytrue
      4. Specimen.meta
      Definition

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

      ShortMetadata about the resource
      Control0..1
      TypeMeta
      Is Modifierfalse
      Must Supportfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      6. Specimen.implicitRules
      Definition

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

      ShortA set of rules under which this content was created
      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.

      Control0..1
      Typeuri
      Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Must Supportfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      8. Specimen.language
      Definition

      The base language in which the resource is written.

      ShortLanguage of the resource content
      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).

      Control0..1
      BindingThe codes SHOULD be taken from CommonLanguages
      (preferred to http://hl7.org/fhir/ValueSet/languages)

      IETF language tag

      Additional BindingsPurpose
      AllLanguagesMax Binding
      Typecode
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Must Supportfalse
      Summaryfalse
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      10. Specimen.text
      Definition

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

      ShortText summary of the resource, for human interpretation
      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.

      Control0..1
      TypeNarrative
      Is Modifierfalse
      Must Supportfalse
      Summaryfalse
      Alternate Namesnarrative, html, xhtml, display
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      12. Specimen.contained
      Definition

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

      ShortContained, inline 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.

      Control0..*
      TypeResource
      Is Modifierfalse
      Must Supportfalse
      Summaryfalse
      Alternate Namesinline resources, anonymous resources, contained resources
      Invariantsdom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems (($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic))
      14. Specimen.extension
      Definition

      An Extension

      ShortExtension
      Control0..*
      TypeExtension
      Is Modifierfalse
      Must Supportfalse
      Summaryfalse
      Invariantsele-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())
      SlicingThis element introduces a set of slices on Specimen.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 16. Specimen.extension:biospecimen-spatial
        Slice Namebiospecimen-spatial
        Definition

        Spatial Information

        ShortAny spatial/location qualifiers
        Control0..1
        This element is affected by the following invariants: ele-1
        TypeExtension(Spatial Information) (Extension Type: code)
        Is Modifierfalse
        Must Supportfalse
        Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        18. Specimen.extension:biospecimen-laterality
        Slice Namebiospecimen-laterality
        Definition

        Laterality Information

        ShortLaterality information for the site
        Control0..1
        This element is affected by the following invariants: ele-1
        TypeExtension(Laterality Information) (Extension Type: code)
        Is Modifierfalse
        Must Supportfalse
        Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        20. Specimen.extension:aliquot-availability
        Slice Namealiquot-availability
        Definition

        Availability Status of Aliquot

        ShortCan this Sample be requested for further analysis?
        Control0..1
        This element is affected by the following invariants: ele-1
        TypeExtension(Availability Status of Aliquot) (Extension Type: code)
        Is Modifierfalse
        Must Supportfalse
        Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        22. Specimen.extension:aliquot-concentration
        Slice Namealiquot-concentration
        Definition

        Concentration of the Aliquot

        ShortWhat is the concentration of the analyte in the Aliquot?
        Control0..1
        This element is affected by the following invariants: ele-1
        TypeExtension(Concentration of the Aliquot) (Extension Type: Quantity)
        Is Modifierfalse
        Must Supportfalse
        Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        24. Specimen.modifierExtension
        Definition

        May 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).

        ShortExtensions that cannot be ignored
        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.

        Control0..*
        TypeExtension
        Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
        Must Supportfalse
        Summaryfalse
        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.

        Alternate Namesextensions, user content
        Invariantsele-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())
        26. Specimen.identifier
        Definition

        Id for specimen.

        ShortUnique ID for this sample
        NoteThis is a business identifier, not a resource identifier (see discussion)
        Control1..1
        TypeIdentifier
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        28. Specimen.accessionIdentifier
        Definition

        The identifier assigned by the lab when accessioning specimen(s). This is not necessarily the same as the specimen identifier, depending on local lab procedures.

        ShortIdentifier assigned by the lab
        Control0..1
        TypeIdentifier
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        30. Specimen.status
        Definition

        The availability of the specimen.

        ShortCan this Sample be requested for further analysis?
        Comments

        This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

        Control0..1
        BindingThe codes SHALL be taken from SpecimenStatus
        (required to http://hl7.org/fhir/ValueSet/specimen-status|4.3.0)

        Codes providing the status/availability of a specimen.

        Typecode
        Is Modifiertrue because This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        32. Specimen.type
        Definition

        The kind of material that forms the specimen.

        ShortThe type of material of which this Sample is comprised
        Comments

        The type can change the way that a specimen is handled and drives what kind of analyses can properly be performed on the specimen. It is frequently used in diagnostic work flow decision making systems.

        Control1..1
        BindingFor example codes, see hl7VS-specimenType
        (example to http://terminology.hl7.org/ValueSet/v2-0487)

        The type of the specimen.

        TypeCodeableConcept
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        34. Specimen.subject
        Definition

        Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device.

        ShortThe participant from whom the biospecimen was taken
        Control1..1
        TypeReference(Patient, Group, Device, Substance, Location)
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Requirements

        Must know the subject context.

        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        36. Specimen.receivedTime
        Definition

        Time when specimen was received for processing or testing.

        ShortThe time when specimen was received for processing
        Control0..1
        TypedateTime
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        38. Specimen.parent
        Definition

        Reference to the parent (source) specimen which is used when the specimen was either derived from or a component of another specimen.

        ShortThe Sample from which this Sample was derived
        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.

        Control0..*
        TypeReference(Specimen)
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        40. Specimen.request
        Definition

        Details concerning a service request that required a specimen to be collected.

        ShortWhy the specimen was collected
        Comments

        The request may be explicit or implied such with a ServiceRequest that requires a blood draw.

        Control0..*
        TypeReference(ServiceRequest)
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        42. Specimen.collection
        Definition

        Details concerning the specimen collection.

        ShortCollection details
        Control0..1
        TypeBackboneElement
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
        44. Specimen.collection.id
        Definition

        Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

        ShortUnique id for inter-element referencing
        Control0..1
        Typestring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        46. Specimen.collection.extension
        Definition

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

        ShortAdditional content defined by implementations
        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.

        Control0..*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Alternate Namesextensions, user content
        Invariantsele-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())
        48. Specimen.collection.modifierExtension
        Definition

        May 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).

        ShortExtensions that cannot be ignored even if unrecognized
        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.

        Control0..*
        TypeExtension
        Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
        Summarytrue
        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.

        Alternate Namesextensions, user content, modifiers
        Invariantsele-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())
        50. Specimen.collection.collector
        Definition

        Person who collected the specimen.

        ShortWho collected the specimen
        Control0..1
        TypeReference(Practitioner, PractitionerRole)
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        52. Specimen.collection.collected[x]
        Definition

        Time when specimen was collected from subject - the physiologically relevant time.

        ShortThe age at which this biospecimen was collected. Could be expressed with a term, an age, or an age range. (for ages use http://hl7.org/fhir/StructureDefinition/cqf-relativeDateTime)
        Control0..1
        TypedateTime
        [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        54. Specimen.collection.duration
        Definition

        The span of time over which the collection of a specimen occurred.

        ShortHow long it took to collect specimen
        Control0..1
        TypeDuration
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        56. Specimen.collection.quantity
        Definition

        The quantity of specimen collected; for instance the volume of a blood sample, or the physical measurement of an anatomic pathology sample.

        ShortThe total quantity of the specimen
        Control0..1
        TypeQuantity(SimpleQuantity)
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        58. Specimen.collection.method
        Definition

        A coded value specifying the technique that is used to perform the procedure.

        ShortThe approach used to collect the biospecimen
        Control0..1
        BindingFor example codes, see FHIRSpecimenCollectionMethod
        (example to http://hl7.org/fhir/ValueSet/specimen-collection-method)

        The technique that is used to perform the procedure.

        TypeCodeableConcept
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        60. Specimen.collection.bodySite
        Definition

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

        ShortThe location of the specimen collection
        Comments

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

        Control0..1
        BindingFor example codes, see SNOMEDCTBodyStructures
        (example to http://hl7.org/fhir/ValueSet/body-site)

        SNOMED CT Body site concepts

        TypeCodeableConcept
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        62. Specimen.collection.fastingStatus[x]
        Definition

        Abstinence or reduction from some or all food, drink, or both, for a period of time prior to sample collection.

        ShortWhether or how long patient abstained from food and/or drink
        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).

        Control0..1
        BindingUnless not suitable, these codes SHALL be taken from hl7VS-relevantClincialInformation
        (extensible to http://terminology.hl7.org/ValueSet/v2-0916)

        Codes describing the fasting status of the patient.

        TypeChoice of: CodeableConcept, Duration
        [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Requirements

        Many diagnostic tests require fasting to facilitate accurate interpretation.

        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        64. Specimen.processing
        Definition

        Details concerning processing and processing steps for the specimen.

        ShortProcessing and processing step details
        Control0..*
        TypeBackboneElement
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
        66. Specimen.processing.id
        Definition

        Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

        ShortUnique id for inter-element referencing
        Control0..1
        Typestring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        68. Specimen.processing.extension
        Definition

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

        ShortAdditional content defined by implementations
        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.

        Control0..*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Alternate Namesextensions, user content
        Invariantsele-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())
        70. Specimen.processing.modifierExtension
        Definition

        May 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).

        ShortExtensions that cannot be ignored even if unrecognized
        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.

        Control0..*
        TypeExtension
        Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
        Summarytrue
        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.

        Alternate Namesextensions, user content, modifiers
        Invariantsele-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())
        72. Specimen.processing.description
        Definition

        Textual description of procedure.

        ShortTextual description of procedure
        Control0..1
        Typestring
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        74. Specimen.processing.procedure
        Definition

        A coded value specifying the procedure used to process the specimen.

        ShortProcessing that was applied to the Parent Sample or from the Biospecimen Collection that yielded this distinct sample
        Control1..1
        BindingFor example codes, see SpecimenProcessingProcedure
        (example to http://hl7.org/fhir/ValueSet/specimen-processing-procedure)

        Type indicating the technique used to process the specimen.

        TypeCodeableConcept
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        76. Specimen.processing.additive
        Definition

        Material used in the processing step.

        ShortMaterial used in the processing step
        Control0..*
        TypeReference(Substance)
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        78. Specimen.processing.time[x]
        Definition

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

        ShortDate and time of specimen processing
        Control0..1
        TypeChoice of: dateTime, Period
        [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        80. Specimen.container
        Definition

        The container holding the specimen. The recursive nature of containers; i.e. blood in tube in tray in rack is not addressed here.

        ShortDirect container of specimen (tube/slide, etc.)
        Control0..*
        TypeBackboneElement
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children unless an empty Parameters resource (hasValue() or (children().count() > id.count()) or $this is Parameters)
        82. Specimen.container.id
        Definition

        Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

        ShortUnique id for inter-element referencing
        Control0..1
        Typestring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        84. Specimen.container.extension
        Definition

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

        ShortAdditional content defined by implementations
        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.

        Control0..*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Alternate Namesextensions, user content
        Invariantsele-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())
        86. Specimen.container.modifierExtension
        Definition

        May 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).

        ShortExtensions that cannot be ignored even if unrecognized
        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.

        Control0..*
        TypeExtension
        Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
        Summarytrue
        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.

        Alternate Namesextensions, user content, modifiers
        Invariantsele-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())
        88. Specimen.container.identifier
        Definition

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

        ShortUnique ID for this aliquot
        NoteThis is a business identifier, not a resource identifier (see discussion)
        Control1..1
        TypeIdentifier
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        90. Specimen.container.description
        Definition

        Textual description of the container.

        ShortTextual description of the container
        Control0..1
        Typestring
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        92. Specimen.container.type
        Definition

        The type of container associated with the specimen (e.g. slide, aliquot, etc.).

        ShortKind of container directly associated with specimen
        Control0..1
        BindingFor example codes, see SpecimenContainer
        (example to http://hl7.org/fhir/ValueSet/specimen-container-type)

        Type of specimen container.

        TypeCodeableConcept
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        94. Specimen.container.capacity
        Definition

        The capacity (volume or other measure) the container may contain.

        ShortContainer volume or size
        Control0..1
        TypeQuantity(SimpleQuantity)
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        96. Specimen.container.specimenQuantity
        Definition

        The quantity of specimen in the container; may be volume, dimensions, or other appropriate measurements, depending on the specimen type.

        ShortWhat is the volume of the Aliquot?
        Control0..1
        TypeQuantity(SimpleQuantity)
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        98. Specimen.container.additive[x]
        Definition

        Introduced substance to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA.

        ShortAdditive associated with container
        Control0..1
        BindingFor example codes, see hl7VS-additivePreservative
        (example to http://terminology.hl7.org/ValueSet/v2-0371)

        Substance added to specimen container.

        TypeChoice of: CodeableConcept, Reference(Substance)
        [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        100. Specimen.condition
        Definition

        A mode or state of being that describes the nature of the specimen.

        ShortHow is the Sample stored, eg, Frozen or with additives
        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.

        Control0..*
        BindingUnless not suitable, these codes SHALL be taken from hl7VS-specimenCondition
        (extensible to http://terminology.hl7.org/ValueSet/v2-0493)

        Codes describing the state of the specimen.

        TypeCodeableConcept
        Is Modifierfalse
        Must Supportfalse
        Summarytrue
        Requirements

        The specimen condition can be used to assess its quality or appropriateness for a specific test.

        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        102. Specimen.note
        Definition

        To communicate any details or issues about the specimen or during the specimen collection. (for example: broken vial, sent with patient, frozen).

        ShortComments
        Control0..*
        TypeAnnotation
        Is Modifierfalse
        Must Supportfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))