Vital Records Death Reporting (VRDR) FHIR Implementation Guide
3.0.0 - STU3  flag

Vital Records Death Reporting (VRDR) FHIR Implementation Guide, published by HL7 International / Public Health. This guide is not an authorized publication; it is the continuous build for version 3.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/vrdr/ and changes regularly. See the Directory of published versions

Resource Profile: DemographicCodedContentBundle - Detailed Descriptions

Active as of 2025-02-19

Definitions for the vrdr-demographic-coded-content-bundle resource profile.

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

0. Bundle
Definition

A container for a collection of resources.

ShortContains a collection of resources
Control0..*
Is Modifierfalse
Summaryfalse
Invariantsbdl-1: total only when a search or history (total.empty() or (type = 'searchset') or (type = 'history'))
bdl-2: entry.search only when a search (entry.search.empty() or (type = 'searchset'))
bdl-3: entry.request mandatory for batch/transaction/history, otherwise prohibited (entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history')))
bdl-4: entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited (entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history')))
bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles) ((type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&resource.meta.versionId).isDistinct())
bdl-9: A document must have an identifier with a system and a value (type = 'document' implies (identifier.system.exists() and identifier.value.exists()))
bdl-10: A document must have a date (type = 'document' implies (timestamp.hasValue()))
bdl-11: A document must have a Composition as the first resource (type = 'document' implies entry.first().resource.is(Composition))
bdl-12: A message must have a MessageHeader as the first resource (type = 'message' implies entry.first().resource.is(MessageHeader))
bdl-1: total only when a search or history (total.empty() or (type = 'searchset') or (type = 'history'))
bdl-2: entry.search only when a search (entry.search.empty() or (type = 'searchset'))
bdl-3: entry.request mandatory for batch/transaction/history, otherwise prohibited (entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history')))
bdl-4: entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited (entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history')))
bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles) ((type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&resource.meta.versionId).isDistinct())
bdl-9: A document must have an identifier with a system and a value (type = 'document' implies (identifier.system.exists() and identifier.value.exists()))
bdl-10: A document must have a date (type = 'document' implies (timestamp.hasValue()))
bdl-11: A document must have a Composition as the first resource (type = 'document' implies entry.first().resource.is(Composition))
bdl-12: A message must have a MessageHeader as the first resource (type = 'message' implies entry.first().resource.is(MessageHeader))
2. Bundle.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
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. Bundle.identifier
Definition

A persistent identifier for the bundle that won't change as a bundle is copied from server to server.

ShortPersistent identifier for the bundle
Comments

Persistent identity generally only matters for batches of type Document, Message, and Collection. It would not normally be populated for search and history results and servers ignore Bundle.identifier when processing batches and transactions. For Documents the .identifier SHALL be populated such that the .identifier is globally unique.

NoteThis is a business identifier, not a resource identifier (see discussion)
Control10..1
TypeIdentifier
Is Modifierfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
6. Bundle.identifier.extension:certificateNumber
Slice NamecertificateNumber
Definition

Certificate number. Six digit number. Leading zeroes are optional.

ShortCertificate Number
Control0..1
TypeExtension(Certificate Number) (Extension Type: string)
Is Modifierfalse
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())
8. Bundle.identifier.extension:auxiliaryStateIdentifier1
Slice NameauxiliaryStateIdentifier1
Definition

The first of two twelve character strings associated by the submitted jurisdiction with a specific certificate number. Identifier1 can be provided separately, or with Identifier2

ShortAuxiliary State Identifier1 Vital Records
Control0..1
TypeExtension(Auxiliary State Identifier1 Vital Records) (Extension Type: string)
Is Modifierfalse
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())
10. Bundle.identifier.extension:auxiliaryStateIdentifier2
Slice NameauxiliaryStateIdentifier2
Definition

The second of two twelve character strings associated by the submitted jurisdiction with a specific certificate number. Identifier2 can be provided separately, or with Identifier1.

ShortAuxiliary State Identifier2 Vital Records
Control0..1
TypeExtension(Auxiliary State Identifier2 Vital Records) (Extension Type: string)
Is Modifierfalse
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())
12. Bundle.identifier.use
Definition

The purpose of this identifier.

Shortusual | official | temp | secondary | old (If known)
Comments

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

Control0..1
BindingThe codes SHALL be taken from IdentifierUsehttp://hl7.org/fhir/ValueSet/identifier-use|4.0.1
(required to http://hl7.org/fhir/ValueSet/identifier-use|4.0.1)

Identifies the purpose for this identifier, if known .

Typecode
Is Modifiertrue because This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one.
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

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

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

A unique value used by the NCHS to identify a death record. The NCHS uniquely identifies death records by combining three concepts: the year of death (as a four digit number), the jurisdiction of death (as a two character jurisdiction identifier), and the death certificate number assigned by the jurisdiction (a number with up to six digits, left padded with zeros).


The portion of the identifier typically relevant to the user and which is unique within the context of the system.

ShortDeath Record Identifier (YYYYJJNNNNNN)The value that is unique
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.

Control0..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Max Length:12
Example<br/><b>General</b>:123456
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
16. Bundle.type
Definition

Indicates the purpose of this bundle - how it is intended to be used.

Shortdocument | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Comments

It's possible to use a bundle for other purposes (e.g. a document can be accepted as a transaction). This is primarily defined so that there can be specific rules for some of the bundle types.

Control1..1
BindingThe codes SHALL be taken from BundleTypehttp://hl7.org/fhir/ValueSet/bundle-type|4.0.1
(required to http://hl7.org/fhir/ValueSet/bundle-type|4.0.1)

Indicates the purpose of a bundle - how it is intended to be used.

Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Fixed Valuecollection
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
18. Bundle.entry
Definition

An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).

ShortEntry in the bundle - will have a resource or information
Control0..*
TypeBackboneElement
Is Modifierfalse
Summarytrue
Invariantsbdl-5: must be a resource unless there's a request or response (resource.exists() or request.exists() or response.exists())
bdl-8: fullUrl cannot be a version specific reference (fullUrl.contains('/_history/').not())
ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
bdl-5: must be a resource unless there's a request or response (resource.exists() or request.exists() or response.exists())
bdl-8: fullUrl cannot be a version specific reference (fullUrl.contains('/_history/').not())
SlicingThis element introduces a set of slices on Bundle.entry. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • profile @ resource
  • 20. Bundle.entry.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())
    22. Bundle.entry.resource
    Definition

    The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.

    ShortA resource in the bundle
    Control10..1
    TypeResource
    Is Modifierfalse
    Summarytrue
    24. Bundle.entry:CodedRaceAndEthnicity
    Slice NameCodedRaceAndEthnicity
    Definition

    CodedRaceAndEthnicity


    An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).

    ShortCodedRaceAndEthnicityEntry in the bundle - will have a resource or information
    Control0..1*
    TypeBackboneElement
    Is Modifierfalse
    Summarytrue
    Invariantsbdl-5: must be a resource unless there's a request or response (resource.exists() or request.exists() or response.exists())
    bdl-8: fullUrl cannot be a version specific reference (fullUrl.contains('/_history/').not())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    bdl-5: must be a resource unless there's a request or response (resource.exists() or request.exists() or response.exists())
    bdl-8: fullUrl cannot be a version specific reference (fullUrl.contains('/_history/').not())
    26. Bundle.entry:CodedRaceAndEthnicity.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())
    28. Bundle.entry:CodedRaceAndEthnicity.resource
    Definition

    Measurements and simple assertions made about a patient, device or other subject.


    The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.

    ShortMeasurements and simple assertionsA resource in the bundle
    Comments

    Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.

    Control10..1
    TypeObservationResource(Observation - Coded Race and Ethnicity Vital Records)
    Is Modifierfalse
    Summaryfalse
    Alternate NamesVital Signs, Measurement, Results, Tests
    30. Bundle.entry:InputRaceAndEthnicity
    Slice NameInputRaceAndEthnicity
    Definition

    InputRaceAndEthnicity


    An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).

    ShortInputRaceAndEthnicityEntry in the bundle - will have a resource or information
    Control0..1*
    TypeBackboneElement
    Is Modifierfalse
    Summarytrue
    Invariantsbdl-5: must be a resource unless there's a request or response (resource.exists() or request.exists() or response.exists())
    bdl-8: fullUrl cannot be a version specific reference (fullUrl.contains('/_history/').not())
    ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    bdl-5: must be a resource unless there's a request or response (resource.exists() or request.exists() or response.exists())
    bdl-8: fullUrl cannot be a version specific reference (fullUrl.contains('/_history/').not())
    32. Bundle.entry:InputRaceAndEthnicity.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())
    34. Bundle.entry:InputRaceAndEthnicity.resource
    Definition

    Measurements and simple assertions made about a patient, device or other subject.


    The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.

    ShortMeasurements and simple assertionsA resource in the bundle
    Comments

    Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.

    Control10..1
    TypeObservationResource(Observation - Input Race and Ethnicity Vital Records)
    Is Modifierfalse
    Summaryfalse
    Alternate NamesVital Signs, Measurement, Results, Tests