Case Based Surveillance Implementation Guide
0.2.1 - ci-build

Case Based Surveillance Implementation Guide - Local Development build (v0.2.1). See the Directory of published versions

Resource Profile: US Case Based Surveillance Lab Diagnostic Report

Official URL: http://cbsig.chai.gatech.edu/StructureDefinition/us-cbs-lab-diagnosticreport Version: 0.2.1
Active as of 2021-01-01 Computable Name: USCaseBasedSurveillanceLabDiagnosticReport

This profile sets minimum expectations for the Observation resource to represent data requested as part of the U.S. Public Health Case Based Surveillance messaging guides. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile. This profile is built on top of the [US Core Laboratory Result Observation] profile.

Example Usage Scenarios:

The following are example usage scenarios for the US CBS Lab Observation profile:

  • Provide for a collection of lab observations, specimens, and performers to provide summary information requested by surveillance programs, such as the interpretative lab group in many MMG documents.
  • Group together a panel of related lab observations.

Relationship to CDC Message Mapping Guides

The Center for Disease Control’s (CDC) Message Mapping Guides (MMGs) provide guidance on the transmission of records from jurisdictions to case based surveillance programs. MMG documents are publicly available through the CDC’s website. Lab data is typically captured in one of two ways:

  1. as an “interpretive group”, which is set of elements focused on providing summary data explicitly requested by surveillance programs, tied to a condition specific MMG.
  2. as part of the lab repeating group/lab template, an additional MMG document which provides an appendix of standard lab results as per electronic lab reporting standards.

Mandatory and Must Support Data Elements

The following data-elements must always be present (Mandatory definition]) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each Observation must have:

  1. a status
  2. a category with a fixed value
  3. a code
  4. a subject reference
  5. an effective time or a data absent reason
  6. an issued instant (may be machine generated)

Each Observation must support:

  1. a performer
  2. a specimen or specimens
  3. a result observation or observations

Profile specific implementation guidance:

  • The US CBS Diagnostic Report provides for the most direct mapping of a complex condition specific MMG interpretive lab group. Individual test results may be included in the Diagnostic Report as US CBS Lab Observations collecting all relevant values as appropriate to the code provided (e.g. titers). For clinical interpretations, including qualitative assessments of labs, the DiagnosticReport.conclusion or DiagnosticReport.conclusionCode elements may be used.
  • If additional epi data is to be included about a lab or diagnostic report, relevant resources and profiles from ECR, US Core, or base FHIR should be used. If additional epi related Observations are included which are directly tied to a lab result, the Observation.focus in those other resource may provide a reference to the related US CBS Lab Observation or US CBS Lab Diagnostic Report.

Formal Views of Profile Content

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

This structure is derived from USCoreDiagnosticReportProfileLaboratoryReporting

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..*USCoreDiagnosticReportProfileLaboratoryReportingA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... code 1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: Combined ValueSet for Lab DiagnosticReport Code. (extensible)
... subject 1..1Reference(US Case Based Surveillance Patient Profile)The subject of the report - usually, but not always, the patient
... effective[x]
.... data-absent-reason S0..1codeunknown | asked | temp | notasked | masked | unsupported | astext | error
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required): Used to specify why the normally expected content of the data element is missing.

... specimen S0..*Reference(Case Based Surveillance Specimen Profile)Specimens this report is based on
... result 0..*Reference(US Case Based Surveillance Lab Observation)Observations

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..*USCoreDiagnosticReportProfileLaboratoryReportingA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness identifier for report
... basedOn 0..*Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)What was requested
... status ?!SΣ1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:LaboratorySlice SΣ1..1CodeableConceptService category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: LAB
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
... code SΣ1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: Combined ValueSet for Lab DiagnosticReport Code. (extensible)
... subject SΣ1..1Reference(US Case Based Surveillance Patient Profile)The subject of the report - usually, but not always, the patient
... encounter Σ0..1Reference(Encounter)Health care event when test ordered
... effective[x] SΣ1..1Clinically relevant time/time-period for report
.... effective[x]:All Types Content/Rules for all Types
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... data-absent-reason S0..1codeunknown | asked | temp | notasked | masked | unsupported | astext | error
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required): Used to specify why the normally expected content of the data element is missing.


.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued SΣ1..1instantDateTime this version was made
... performer SΣ0..1Reference(US Case Based Surveillance Performing Laboratory Profile)Responsible Diagnostic Service
... resultsInterpreter Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Primary result interpreter
... specimen S0..*Reference(Case Based Surveillance Specimen Profile)Specimens this report is based on
... result S0..*Reference(US Case Based Surveillance Lab Observation)Observations
... imagingStudy 0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media Σ0..*BackboneElementKey images associated with this report
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... comment 0..1stringComment about the image (e.g. explanation)
.... link Σ1..1Reference(Media)Reference to the image source
... conclusion 0..1stringClinical conclusion (interpretation) of test results
... conclusionCode 0..*CodeableConceptCodes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.


... presentedForm 0..*AttachmentEntire report as issued

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..*USCoreDiagnosticReportProfileLaboratoryReportingA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... status ?!Σ1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category Σ1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:LaboratorySlice Σ1..1CodeableConceptService category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: LAB
... code Σ1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: Combined ValueSet for Lab DiagnosticReport Code. (extensible)
... effective[x] Σ1..1Clinically relevant time/time-period for report
.... effective[x]:All Types Content/Rules for all Types
..... data-absent-reason 0..1codeunknown | asked | temp | notasked | masked | unsupported | astext | error
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required): Used to specify why the normally expected content of the data element is missing.


.... effectiveDateTimedateTime
... issued Σ1..1instantDateTime this version was made
... performer Σ0..1Reference(US Case Based Surveillance Performing Laboratory Profile)Responsible Diagnostic Service
... specimen 0..*Reference(Case Based Surveillance Specimen Profile)Specimens this report is based on
... result 0..*Reference(US Case Based Surveillance Lab Observation)Observations

doco Documentation for this format

Differential View

This structure is derived from USCoreDiagnosticReportProfileLaboratoryReporting

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..*USCoreDiagnosticReportProfileLaboratoryReportingA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... code 1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: Combined ValueSet for Lab DiagnosticReport Code. (extensible)
... subject 1..1Reference(US Case Based Surveillance Patient Profile)The subject of the report - usually, but not always, the patient
... effective[x]
.... data-absent-reason S0..1codeunknown | asked | temp | notasked | masked | unsupported | astext | error
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required): Used to specify why the normally expected content of the data element is missing.

... specimen S0..*Reference(Case Based Surveillance Specimen Profile)Specimens this report is based on
... result 0..*Reference(US Case Based Surveillance Lab Observation)Observations

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..*USCoreDiagnosticReportProfileLaboratoryReportingA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness identifier for report
... basedOn 0..*Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)What was requested
... status ?!SΣ1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:LaboratorySlice SΣ1..1CodeableConceptService category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: LAB
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
... code SΣ1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: Combined ValueSet for Lab DiagnosticReport Code. (extensible)
... subject SΣ1..1Reference(US Case Based Surveillance Patient Profile)The subject of the report - usually, but not always, the patient
... encounter Σ0..1Reference(Encounter)Health care event when test ordered
... effective[x] SΣ1..1Clinically relevant time/time-period for report
.... effective[x]:All Types Content/Rules for all Types
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... data-absent-reason S0..1codeunknown | asked | temp | notasked | masked | unsupported | astext | error
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required): Used to specify why the normally expected content of the data element is missing.


.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued SΣ1..1instantDateTime this version was made
... performer SΣ0..1Reference(US Case Based Surveillance Performing Laboratory Profile)Responsible Diagnostic Service
... resultsInterpreter Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Primary result interpreter
... specimen S0..*Reference(Case Based Surveillance Specimen Profile)Specimens this report is based on
... result S0..*Reference(US Case Based Surveillance Lab Observation)Observations
... imagingStudy 0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media Σ0..*BackboneElementKey images associated with this report
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... comment 0..1stringComment about the image (e.g. explanation)
.... link Σ1..1Reference(Media)Reference to the image source
... conclusion 0..1stringClinical conclusion (interpretation) of test results
... conclusionCode 0..*CodeableConceptCodes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.


... presentedForm 0..*AttachmentEntire report as issued

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
DiagnosticReport.languagepreferredCommonLanguages
Max Binding: AllLanguages
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
DiagnosticReport.codeextensibleCBSLabDiagnosticReportVS
DiagnosticReport.conclusionCodeexampleSNOMEDCTClinicalFindings

Constraints

IdGradePathDetailsRequirements
dom-2errorDiagnosticReportIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorDiagnosticReportIf 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-4errorDiagnosticReportIf 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-5errorDiagnosticReportIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeDiagnosticReportA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorDiagnosticReport.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDiagnosticReport.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDiagnosticReport.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDiagnosticReport.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDiagnosticReport.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.basedOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.category:LaboratorySliceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.effective[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.effective[x].extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDiagnosticReport.effective[x].extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDiagnosticReport.effective[x].extension:dataAbsentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDiagnosticReport.effective[x].extension:dataAbsentReasonMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDiagnosticReport.issuedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.resultsInterpreterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.specimenAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.resultAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.imagingStudyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.mediaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.media.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDiagnosticReport.media.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDiagnosticReport.media.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDiagnosticReport.media.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDiagnosticReport.media.commentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.media.linkAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.conclusionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.conclusionCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDiagnosticReport.presentedFormAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())