MyHealtheVet PHR FHIR API
0.3.9-current - ci-build United States of America flag

MyHealtheVet PHR FHIR API, published by VA Digital Services. This guide is not an authorized publication; it is the continuous build for version 0.3.9-current built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/department-of-veterans-affairs/mhv-fhir-phr-mapping/ and changes regularly. See the Directory of published versions

Resource Profile: VA MHV PHR HDR Chem-Hem Report

Official URL: https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition/VA.MHV.PHR.chReport Version: 0.3.9-current
Standards status: Trial-use Maturity Level: 3 Computable Name: MHVchReport

Profile on DiagnosticReport for Chem-Hem lab report.

For API details see:

  • DiagnosticReport shows all of the DiagnosticReport. Including Microbiology, Pathology, and Chem-Hem.

Usage:

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..* USCoreDiagnosticReportProfileLaboratoryReporting A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... note S 0..* string Notes
URL: https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition/Notes
... Slices for identifier 1..* Identifier Business identifier for report
Slice: Unordered, Open by pattern:use
.... identifier:Rid 0..1 Identifier Business identifier for report
..... use 1..1 code usual | official | temp | secondary | old (If known)
Required Pattern: usual
..... system 0..1 uri DNS universalIdType: `urn:fdc:` + {universalID} + `:` + {namespaceId}
..... value 0..1 string {labTestPromises.recordIdentifier.identity}
.... identifier:TOid 0..1 Identifier Business identifier for report
..... use 1..1 code usual | official | temp | secondary | old (If known)
Required Pattern: secondary
..... system C 0..1 uri urn:oid:2.16.840.1.113883.4.349.4.{stationNbr}
TOid-startswithoid: ID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
..... value 0..1 string `recordIdentifier.identifier` | `/` | {specimentTakenDate.literal}
... basedOn S 1..* Reference(VA MHV PHR CH labTests.orderedTestCode) {c} What was requested
... status 1..1 code registered | partial | preliminary | final +
... category 2..* CodeableConcept Service category
... Slices for category Content/Rules for all slices
.... category:ChSlice 1..1 CodeableConcept Service category
Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: CH
... code
.... coding 0..0
.... text S 1..1 string Plain text representation of the concept
Required Pattern: CH
... subject 1..1 Reference(US Core Patient Profile) The subject of the report - usually, but not always, the patient
... encounter 0..0
... Slices for effective[x] 1..1 dateTime Diagnostically relevant time (typically the time of specimen collection)
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime S 1..1 dateTime S Diagnostically relevant time (typically the time of specimen collection)
... issued 1..1 instant When the report was released
... performer 1..1 Reference(VA MHV PHR Organization) {c} recordSource
... resultsInterpreter 0..0
... specimen S 1..1 Reference(VA MHV PHR HDR CH Specimen) {c} Specimens this report is based on
... result 0..* Reference(VA MHV PHR CH labTest.chemistryResults) {c} Observations
... imagingStudy 0..0
... media 0..0
... conclusion 0..0
... conclusionCode 0..0
... presentedForm 0..0

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
TOid-startswithoiderrorDiagnosticReport.identifier:TOid.systemID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
: value.startsWith('urn:oid:2.16.840.1.113883.4.349.4.')
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C 0..* USCoreDiagnosticReportProfileLaboratoryReporting A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... note S 0..* string Notes
URL: https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition/Notes
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier Business identifier for report
Slice: Unordered, Open by pattern:use
.... identifier:Rid Σ 0..1 Identifier Business identifier for report
..... use ?!Σ 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


Required Pattern: usual
..... system Σ 0..1 uri DNS universalIdType: `urn:fdc:` + {universalID} + `:` + {namespaceId}
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string {labTestPromises.recordIdentifier.identity}
Example General: 123456
.... identifier:TOid Σ 0..1 Identifier Business identifier for report
..... use ?!Σ 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


Required Pattern: secondary
..... system ΣC 0..1 uri urn:oid:2.16.840.1.113883.4.349.4.{stationNbr}
TOid-startswithoid: ID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string `recordIdentifier.identifier` | `/` | {specimentTakenDate.literal}
Example General: 123456
... basedOn S 1..* Reference(VA MHV PHR CH labTests.orderedTestCode) {c} What was requested
... status ?!SΣC 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ 2..* CodeableConcept Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


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



Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: LAB
.... category:ChSlice SΣ 1..1 CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: CH
... code SΣ 1..1 CodeableConcept US Core Laboratory Report Order Code
Binding: US Core Diagnostic Report Laboratory Codes (extensible): LOINC codes

.... text SΣ 1..1 string Plain text representation of the concept
Required Pattern: CH
... subject SΣ 1..1 Reference(US Core Patient Profile) The subject of the report - usually, but not always, the patient
... Slices for effective[x] SΣC 1..1 dateTime Diagnostically relevant time (typically the time of specimen collection)
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime SΣC 1..1 dateTime Diagnostically relevant time (typically the time of specimen collection)
... issued SΣC 1..1 instant When the report was released
... performer SΣ 1..1 Reference(VA MHV PHR Organization) {c} recordSource
... specimen S 1..1 Reference(VA MHV PHR HDR CH Specimen) {c} Specimens this report is based on
... result S 0..* Reference(VA MHV PHR CH labTest.chemistryResults) {c} Observations

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
DiagnosticReport.identifier:Rid.userequiredPattern: usual
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
DiagnosticReport.identifier:TOid.userequiredPattern: secondary
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.category:ChSliceexamplePattern: CH
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.codeextensibleUSCoreDiagnosticReportLabCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-lab-codes

Constraints

IdGradePath(s)DetailsRequirements
TOid-startswithoiderrorDiagnosticReport.identifier:TOid.systemID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
: value.startsWith('urn:oid:2.16.840.1.113883.4.349.4.')
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C 0..* USCoreDiagnosticReportProfileLaboratoryReporting A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... note S 0..* string Notes
URL: https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition/Notes
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier Business identifier for report
Slice: Unordered, Open by pattern:use
.... identifier:Rid Σ 0..1 Identifier Business identifier for report
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


Required Pattern: usual
..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system Σ 0..1 uri DNS universalIdType: `urn:fdc:` + {universalID} + `:` + {namespaceId}
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string {labTestPromises.recordIdentifier.identity}
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
.... identifier:TOid Σ 0..1 Identifier Business identifier for report
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


Required Pattern: secondary
..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system ΣC 0..1 uri urn:oid:2.16.840.1.113883.4.349.4.{stationNbr}
TOid-startswithoid: ID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string `recordIdentifier.identifier` | `/` | {specimentTakenDate.literal}
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... basedOn S 1..* Reference(VA MHV PHR CH labTests.orderedTestCode) {c} What was requested
... status ?!SΣC 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ 2..* CodeableConcept Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


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



Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... version 0..1 string Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: LAB
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
..... text 0..1 string Plain text representation of the concept
.... category:ChSlice SΣ 1..1 CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... version 0..1 string Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: CH
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
..... text 0..1 string Plain text representation of the concept
... code SΣ 1..1 CodeableConcept US Core Laboratory Report Order Code
Binding: US Core Diagnostic Report Laboratory Codes (extensible): LOINC codes

.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... text SΣ 1..1 string Plain text representation of the concept
Required Pattern: CH
... subject SΣ 1..1 Reference(US Core Patient Profile) The subject of the report - usually, but not always, the patient
... Slices for effective[x] SΣC 1..1 dateTime S Diagnostically relevant time (typically the time of specimen collection)
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime SΣC 1..1 dateTime S Diagnostically relevant time (typically the time of specimen collection)
... issued SΣC 1..1 instant When the report was released
... performer SΣ 1..1 Reference(VA MHV PHR Organization) {c} recordSource
... specimen S 1..1 Reference(VA MHV PHR HDR CH Specimen) {c} Specimens this report is based on
... result S 0..* Reference(VA MHV PHR CH labTest.chemistryResults) {c} Observations

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
DiagnosticReport.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
DiagnosticReport.identifier:Rid.userequiredPattern: usual
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
DiagnosticReport.identifier:Rid.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
DiagnosticReport.identifier:TOid.userequiredPattern: secondary
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
DiagnosticReport.identifier:TOid.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.category:ChSliceexamplePattern: CH
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.codeextensibleUSCoreDiagnosticReportLabCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-lab-codes

Constraints

IdGradePath(s)DetailsRequirements
TOid-startswithoiderrorDiagnosticReport.identifier:TOid.systemID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
: value.startsWith('urn:oid:2.16.840.1.113883.4.349.4.')

Differential View

This structure is derived from USCoreDiagnosticReportProfileLaboratoryReporting

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..* USCoreDiagnosticReportProfileLaboratoryReporting A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... note S 0..* string Notes
URL: https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition/Notes
... Slices for identifier 1..* Identifier Business identifier for report
Slice: Unordered, Open by pattern:use
.... identifier:Rid 0..1 Identifier Business identifier for report
..... use 1..1 code usual | official | temp | secondary | old (If known)
Required Pattern: usual
..... system 0..1 uri DNS universalIdType: `urn:fdc:` + {universalID} + `:` + {namespaceId}
..... value 0..1 string {labTestPromises.recordIdentifier.identity}
.... identifier:TOid 0..1 Identifier Business identifier for report
..... use 1..1 code usual | official | temp | secondary | old (If known)
Required Pattern: secondary
..... system C 0..1 uri urn:oid:2.16.840.1.113883.4.349.4.{stationNbr}
TOid-startswithoid: ID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
..... value 0..1 string `recordIdentifier.identifier` | `/` | {specimentTakenDate.literal}
... basedOn S 1..* Reference(VA MHV PHR CH labTests.orderedTestCode) {c} What was requested
... status 1..1 code registered | partial | preliminary | final +
... category 2..* CodeableConcept Service category
... Slices for category Content/Rules for all slices
.... category:ChSlice 1..1 CodeableConcept Service category
Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: CH
... code
.... coding 0..0
.... text S 1..1 string Plain text representation of the concept
Required Pattern: CH
... subject 1..1 Reference(US Core Patient Profile) The subject of the report - usually, but not always, the patient
... encounter 0..0
... Slices for effective[x] 1..1 dateTime Diagnostically relevant time (typically the time of specimen collection)
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime S 1..1 dateTime S Diagnostically relevant time (typically the time of specimen collection)
... issued 1..1 instant When the report was released
... performer 1..1 Reference(VA MHV PHR Organization) {c} recordSource
... resultsInterpreter 0..0
... specimen S 1..1 Reference(VA MHV PHR HDR CH Specimen) {c} Specimens this report is based on
... result 0..* Reference(VA MHV PHR CH labTest.chemistryResults) {c} Observations
... imagingStudy 0..0
... media 0..0
... conclusion 0..0
... conclusionCode 0..0
... presentedForm 0..0

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
TOid-startswithoiderrorDiagnosticReport.identifier:TOid.systemID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
: value.startsWith('urn:oid:2.16.840.1.113883.4.349.4.')

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C 0..* USCoreDiagnosticReportProfileLaboratoryReporting A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... note S 0..* string Notes
URL: https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition/Notes
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier Business identifier for report
Slice: Unordered, Open by pattern:use
.... identifier:Rid Σ 0..1 Identifier Business identifier for report
..... use ?!Σ 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


Required Pattern: usual
..... system Σ 0..1 uri DNS universalIdType: `urn:fdc:` + {universalID} + `:` + {namespaceId}
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string {labTestPromises.recordIdentifier.identity}
Example General: 123456
.... identifier:TOid Σ 0..1 Identifier Business identifier for report
..... use ?!Σ 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


Required Pattern: secondary
..... system ΣC 0..1 uri urn:oid:2.16.840.1.113883.4.349.4.{stationNbr}
TOid-startswithoid: ID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string `recordIdentifier.identifier` | `/` | {specimentTakenDate.literal}
Example General: 123456
... basedOn S 1..* Reference(VA MHV PHR CH labTests.orderedTestCode) {c} What was requested
... status ?!SΣC 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ 2..* CodeableConcept Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


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



Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: LAB
.... category:ChSlice SΣ 1..1 CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



Required Pattern: At least the following
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: CH
... code SΣ 1..1 CodeableConcept US Core Laboratory Report Order Code
Binding: US Core Diagnostic Report Laboratory Codes (extensible): LOINC codes

.... text SΣ 1..1 string Plain text representation of the concept
Required Pattern: CH
... subject SΣ 1..1 Reference(US Core Patient Profile) The subject of the report - usually, but not always, the patient
... Slices for effective[x] SΣC 1..1 dateTime Diagnostically relevant time (typically the time of specimen collection)
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime SΣC 1..1 dateTime Diagnostically relevant time (typically the time of specimen collection)
... issued SΣC 1..1 instant When the report was released
... performer SΣ 1..1 Reference(VA MHV PHR Organization) {c} recordSource
... specimen S 1..1 Reference(VA MHV PHR HDR CH Specimen) {c} Specimens this report is based on
... result S 0..* Reference(VA MHV PHR CH labTest.chemistryResults) {c} Observations

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
DiagnosticReport.identifier:Rid.userequiredPattern: usual
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
DiagnosticReport.identifier:TOid.userequiredPattern: secondary
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.category:ChSliceexamplePattern: CH
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.codeextensibleUSCoreDiagnosticReportLabCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-lab-codes

Constraints

IdGradePath(s)DetailsRequirements
TOid-startswithoiderrorDiagnosticReport.identifier:TOid.systemID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
: value.startsWith('urn:oid:2.16.840.1.113883.4.349.4.')

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C 0..* USCoreDiagnosticReportProfileLaboratoryReporting A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... note S 0..* string Notes
URL: https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition/Notes
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier Business identifier for report
Slice: Unordered, Open by pattern:use
.... identifier:Rid Σ 0..1 Identifier Business identifier for report
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


Required Pattern: usual
..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system Σ 0..1 uri DNS universalIdType: `urn:fdc:` + {universalID} + `:` + {namespaceId}
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string {labTestPromises.recordIdentifier.identity}
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
.... identifier:TOid Σ 0..1 Identifier Business identifier for report
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 1..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


Required Pattern: secondary
..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system ΣC 0..1 uri urn:oid:2.16.840.1.113883.4.349.4.{stationNbr}
TOid-startswithoid: ID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
Example General: http://www.acme.com/identifiers/patient
..... value Σ 0..1 string `recordIdentifier.identifier` | `/` | {specimentTakenDate.literal}
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... basedOn S 1..* Reference(VA MHV PHR CH labTests.orderedTestCode) {c} What was requested
... status ?!SΣC 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ 2..* CodeableConcept Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


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



Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... version 0..1 string Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: LAB
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
..... text 0..1 string Plain text representation of the concept
.... category:ChSlice SΣ 1..1 CodeableConcept Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



Required Pattern: At least the following
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... version 0..1 string Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: CH
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
..... text 0..1 string Plain text representation of the concept
... code SΣ 1..1 CodeableConcept US Core Laboratory Report Order Code
Binding: US Core Diagnostic Report Laboratory Codes (extensible): LOINC codes

.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... text SΣ 1..1 string Plain text representation of the concept
Required Pattern: CH
... subject SΣ 1..1 Reference(US Core Patient Profile) The subject of the report - usually, but not always, the patient
... Slices for effective[x] SΣC 1..1 dateTime S Diagnostically relevant time (typically the time of specimen collection)
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime SΣC 1..1 dateTime S Diagnostically relevant time (typically the time of specimen collection)
... issued SΣC 1..1 instant When the report was released
... performer SΣ 1..1 Reference(VA MHV PHR Organization) {c} recordSource
... specimen S 1..1 Reference(VA MHV PHR HDR CH Specimen) {c} Specimens this report is based on
... result S 0..* Reference(VA MHV PHR CH labTest.chemistryResults) {c} Observations

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
DiagnosticReport.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
DiagnosticReport.identifier:Rid.userequiredPattern: usual
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
DiagnosticReport.identifier:Rid.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
DiagnosticReport.identifier:TOid.userequiredPattern: secondary
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
DiagnosticReport.identifier:TOid.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.category:ChSliceexamplePattern: CH
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.codeextensibleUSCoreDiagnosticReportLabCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-diagnosticreport-lab-codes

Constraints

IdGradePath(s)DetailsRequirements
TOid-startswithoiderrorDiagnosticReport.identifier:TOid.systemID system must start with urn:oid:2.16.840.1.113883.4.349.4. The next would be the {stationNbr}
: value.startsWith('urn:oid:2.16.840.1.113883.4.349.4.')

 

Other representations of profile: CSV, Excel, Schematron

Notes:

  • Chem-Hem comes from HDR (not VIA), thus is different schema than the others.
  • The given labTestPromise example aligns with the CDS WSClient Lab.xsd schema.
  • A profile showing how labTestPromise is mapped into a FHIR DiagnosticReport, ServiceRequest, Observation, and Specimen. Where the labTestPromise only has labSubscript of CH (Chem-Hem).
  • The mock data examples
  • This profile is based on:
  • should have meta.profile set to https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition/VA.MHV.PHR.chReport to indicate the intent to be compliant with this profile
  • The labTestPromises is mapped onto this FHIR DiagnosticReport for laboratory reporting. The mapping to HDR labTestPromise
    • code.text must be CH. No other coding values
  • category must be http://terminology.hl7.org/CodeSystem/v2-0074#LAB
  • category also holds 1..* codes from the contained Observation.code – This is only to allow possibility to find the contained Observations, as there might be an interest to find lab observations like Cholesterol.
  • the labTestPromises.labTests.orderedTestCode is recorded as a Ordered test that is contained in the DiagnosticReport. The map to HDR orderedTestCode.
  • The labTestPromises.labTests.chemistryResult are each recorded as a FHIR Observation result that is contained in the DiagnosticReport. The map to HDR chTestPromise.
  • The labTestPromises.specimen is mapped into a FHIR Specimen resource that is contained in the DiagnosticReport. The map to HDR Specimen.
    • There is only one Specimen.
    • There is no Specimen profile in us-core 5.0
  • The use of contained means that we do not need to de-duplicate the lab tests or specimen. Note that means that the ServiceRequest, Specimen and Observations are not individually findable or referenceable.
    • Future improvement that is not needed today, devise some way that these resources are able to be not-contained. For now this is okay for the use-cases.
  • note to API use, the Observations here are lab results and thus would include: Blood Sugar, Cholesterol, and INR
  • See 99VA code system conversion (i.e., 99VA60 = http://va.gov/terminology/vistaDefinedTerms/60)
  • ChemistryResult ObservationStatus translated to Observation.status using concept map translation
  • ChemistryResult ObservationValue Quantity should normalize the UCUM code as explained on the UCUM code section
  • DiagnosticReport.status is set to final if all Observations are final; and preliminary if any Observations are not final.
  • DiagnosticReport.status could be set to entered-in-error if ORDER CANCELLED or deleted
  • ServiceRequest.status is always unknown as we are creating a contained resource for this
  • added an alternative identifier handling, as we have seen in the realworld different recordIdentifier formats that use as the identity a degenerate identifier that CDW calls a shortAccessionNumber. These numbers are reused, so would not be unique within that station. Thus we must add the specimen dateTime. added an example variant of ex-MHV-chReport-1 secondary

Mapping Concerns

  • would like to have vista field mapping, but so far few fields are sure
    • are trying to find older data that might be more traceable
    • have gotten a mapping table from HDR but it is to HL7v2, so not helpful
  • Need data
    • different status
    • deleted/entered-in-error
  • have seen in real-world identifiers such as "HE 0301 33". That is found to be duplicated in real-world data. So, combine with the specimen date to get a unique value.
  • jira ticket for encoding problems - MHV-59253 github PR 145

Most common types of Chem-Hem Labs

  • Basic Metabolic Panel or BMP
  • Comprehensive Metabolic Panel or CMP
  • CBC (complete blood count)
  • Hemoglobin A1C

Business Rules

rules interpreted from ChemistryTransformer.java

  • Ignore anything not CH
  • Ignore anything without a stationNumber
  • hold is calculated from reportCompleteDate, (midnight on this day is presumed)
    • DiagnosticReport.issued
  • no hold date for reports that have been amended (status of C)
  • no hold date for COVID

Mapping

MHV eVault has one object definition that gets replicated for each portion (Lab, Order, and Test), identified by recordSubType element. (Test is chemistryResult, Order is orderedTest, Lab is overall?)

DiagnosticReportidentifier;basedOn;category=`#LAB`+`#CH`;code.text=`CH`;subject;effectiveDateTime;issued;performer;specimen;results;extension[notes];ServiceRequeststatus=#unknown;intent=#order;category;code;subject;requester;performer;Specimenstatus;type;request;collection.collectionDateTime;ObservationbasedOn;status;category=#laboratory;code;subject;effectiveDateTime;issued;performer;value[x];interpretation;note;specimen;referenceRange;1..1 specimen1..1 request1..* basedOn1..1 basedOn0..* results1..1 specimen
Figure: Chem-Hem Labs


V Vn HDR labTestPromises MHV eVault FHIR Note
      icn={icn} DiagnosticReport.subject  
    recordSource/ stationNumber={namespaceId} DiagnosticReport.performer[org1]  
    (labTestRequest, specimen, labTests) recordSubType   LAB / PANEL / TEST
63.07-3   labTests[n]/orderedTestCode/ orderedTest = {displayText} ServiceRequest[n].code  
    labTests[n]/chemistryResults[m]/testIdentifier/ labTestName={originalText} Observation[m].code  
63.04-10   labTests[n]/chemistryResults[m]/observationStatus status Observation[m].status see table below
    labTests[n]/chemistryResults[m]/observationValue result Observation[m].value[x]  
    labTests[n]/chemistryResults[m]/observationUnits units Observation[m].valueQuantity.units  
    labTests[n]/chemistryResults[m]/valueInterpretation resultIndicator Observation[m].interpretation see translation
    labTests[n]/chemistryResults[m]/referenceRange referenceRange Observation[m].referenceRange.text  
    labTests[n]/chemistryResults[m]/labCommentEvents interpretation Observation[m].note.text multiple
    labTests[n]/chemistryResults[m]/performingOrganization/ performingLocation={location} Observation[m].performer[org2]  
    "" performingLocationName={name}    
    labTestRequest/author/ orderingProvider={name} ServiceRequest[n].requester  
    labCommentEvents comments DiagnosticReport.extension[notes] multiple
    labSubscript labType DiagnosticReport.code.text CH
    specimen/specimenTakenDate collectedOnDatePrecise Specimen.collectedDateTime  
    "" collectedOnDateImprecise    
    ""   DiagnosticReport.effectiveDateTime  
    ""   Observation[*].effectiveDateTime  
    recordIdentifier recordId DiagnosticReport.identifier[Rid]  
    specimen/specimenSource/ specimenSource={displayText} Specimen.type  
    labTestRequest/orderingFacilityIdentifier/ orderingLocation={name} ServiceRequest[n].performer[org3]  
    reportCompleteDate reportCompleteDatePrecise DiagnosticReport.issued  
    "" reportCompleteDateImprecise    
    reportCompleteDate reportCompleteDatePrecise Observation[*].issued  
        DiagnosticReport.category=LAB also all chTest code
        DiagnosticReport.category=v2-0074#CH  
        DiagnosticReport.status based on all Observation.status. So final or preliminary
        Specimen.status=available  
        Specimen.request = {ServiceRequest} multiple
        ServiceRequest[n].category=Laboratory procedure  
        ServiceRequest[n].status=unknown  
        ServiceRequest[n].intent=order  
        Observation[m].category=laboratory  
        Observation[m].specimen = {Specimen}  
        Observation[m].basedOn = {ServiceRequest}  
        DiagnosticReport.result={Observation}  
    recordVersion      
    recordUpdateTime/      
observationStatus code

FHIR mapping. Same as concept map translation

code meaning MHV PHR FHIR Observation.status
C CORRECTED RESULTS AMENDED corrected
F FINAL RESULTS FINAL final
Y NO ORDER ON RECORD UNKNOWN unknown
R NOT VERIFIED UNKNOWN preliminary
X ORDER CANCELLED CANCELLED cancelled
O ORDER RECEIVED UNKNOWN registered
P PRELIMINARY UNKNOWN preliminary
S PROCEDURE SCHEDULED UNKNOWN registered
A SOME RESULTS AVAILABLE UNKNOWN unknown
I SPECIMEN RECEIVED PRELIMINARY preliminary

How to convert a recordIdentifier into an Identifier

Given:

      <labTestPromises>
         <recordIdentifier>
            <identity>1103030001</identity>
            <namespaceId>LR</namespaceId>
            <universalId>TEST.SALT-LAKE.MED.VA.GOV</universalId>
            <universalIdType>DNS</universalIdType>
         </recordIdentifier>

Option to use urn encoding with a "Federated Content" according to RFC 4198

convert as:

* identifier[Rid].system ^short = "DNS universalIdType: `urn:fdc:` + {universalID} + `:` + {namespaceId}"
* identifier[Rid].value ^short = "{labTestPromises.recordIdentifier.identity}"

becomes:

* identifier[Rid].value = "1103030001" 
* identifier[Rid].system = "urn:fdc:TEST.SALT-LAKE.MED.VA.GOV:LR"
valueInterpretation - Observation.interpretation.coding

The string we are given in valueInterpretation always goes into Observation.interpretation.text

FHIR mapping. Same as concept map translation

code meaning FHIR Observation.intepretation.coding
L Low L
LL Very Low LL
L* Very Low LL
H High H
HH Very High HH
H* Very High HH
A Abnormal A

All other codes do NOT translate into a code.