US Veterans Health Administration FHIR Map Set Implementation Guide
1.6.49 - 250701
Publication Build: This will be filled in by the publication tooling
Draft as of 2025-06-13 |
Mappings for the LabObservationMicrobiologyBacteriologyDiagnosticReport resource profile.
Scroll down for the Raw FHIR, CDW & SDA mappings (if any).
Note that the CDW, SDA and VPR XML mappings are derived from a look-up based on the VistA source.
FHIR Path | VistA | CDW | SDA | VPR |
---|---|---|---|---|
DiagnosticReport.extension[http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.note].valueAnnotation | 63.33-.01 | Micro.BacteriologyReports.BacteriologyReportRemark | accession.value [m] | |
DiagnosticReport.identifier.value | 63.5-.001 | |||
DiagnosticReport.basedOn | 63.5-3 | Micro.MicroOrderedTest.CPRSOrderIEN SStaff.SMicroOrderedTest.CPRSOrderIEN |
||
DiagnosticReport.status | 63.5-10 | Micro.MicroOrderedTest.DispositionLabCodeIEN SStaff.SMicroOrderedTest.DispositionLabCodeIEN |
||
DiagnosticReport.effectiveDateTime | 63.05-.01 | Micro.AntibioticSensitivity.SpecimenTakenDateTime Micro.AntibioticSensitivityComment.SpecimenTakenDateTime Micro.BacteriologyReports.SpecimenTakenDateTime Micro.MicroAntibioticLevel.SpecimenTakenDateTime Micro.MicroAudit.SpecimenTakenDateTime Micro.Microbiology.SpecimenTakenDateTime Micro.MicroOrderedTest.SpecimenTakenDateTime Micro.MicroSterilityResults.SpecimenTakenDateTime Micro.MycobacteriologyReports.SpecimenTakenDateTime Micro.Mycology.SpecimenTakenDateTime Micro.MycologyReports.SpecimenTakenDateTime Micro.Parasitology.SpecimenTakenDateTime Micro.ParasitologyReports.SpecimenTakenDateTime Micro.ParasitologyStage.SpecimenTakenDateTime Micro.Virology.SpecimenTakenDateTime Micro.VirologyReports.SpecimenTakenDateTime SStaff.SMicroOrderedTest.SpecimenTakenDateTime |
||
DiagnosticReport.issued | 63.05-.03 | Micro.Microbiology.ReportCompletedDateTime | Documents.ToTime LabOrder.Result.ResultTime |
|
DiagnosticReport.performer[va-by] | 63.05-.04 | Micro.Microbiology.VerifyingStaffIEN | Documents.Clinician Documents.Extension[DocumentExtension].CareProviders LabOrder.Result.VerifiedBy |
|
DiagnosticReport.performer[va-at] | 63.05-.112 | Micro.Microbiology.AccessioningInstitutionIEN | Documents.EnteredAt LabOrder.Result.EnteredAt |
|
DiagnosticReport.category.text | 64.21-.01 | |||
DiagnosticReport.code.coding | 95.3 | |||
DiagnosticReport.code.coding.code | 95.3-.01 | Dim.LOINC.LOINC | ||
DiagnosticReport.code.coding.display | 95.3-1 | Dim.LOINC.Component | ||
DiagnosticReport.code.text | 60-.01 | Dim.LabChemTest.LabChemTestName | panel.test med.prescription lab.test pharmacy (med).prescription |
|
DiagnosticReport.subject | 2- |
key | status | direction | source | mapApproach | mapCase | FHIR Path | subPath | mapValue | mapParameter | mapComment | FHIR URL | Ver |
---|---|---|---|---|---|---|---|---|---|---|---|
1442 | in process | V2F | MICROBIOLOGY - BACT RPT REMARK > BACT RPT REMARK - BACT RPT REMARK (63.05-13 > 63.33-.01) | source value | DiagnosticReport.extension[http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.note] | .valueAnnotation | This is the correct mapping, however, .note was not added to DR until FHIR R5. Use pre-adopt extension. | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||
1605 | in process | V2F | MICROBIOLOGY - ORDERED TEST > ORDERED TEST - IEN (63.05-.35 > 63.5-.001) | source value | DiagnosticReport.identifier | .value | .system = http://va.gov/identifiers/$Sta3n/63.5 | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||
1690 | in process | V2F | MICROBIOLOGY - ORDERED TEST > ORDERED TEST - CPRS ORDER # (63.05-.35 > 63.5-3) | reference | DiagnosticReport.basedOn | http://hl7.org/fhir/StructureDefinition/ServiceRequest | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | ||||
1416 | in process | V2F | MICROBIOLOGY - ORDERED TEST > ORDERED TEST - DISPOSITION (63.05-.35 > 63.5-10) | terminologyMaps | DiagnosticReport.status | VF_DiagnosticReportLabStatus | disposition based on HL7 Table 0123 status codes US Core 5 has new constraints: if status is partial, preliminary, final, ammended, corrected or appended effective[x] and issued are required | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||
1424 | in process | V2F | MICROBIOLOGY - DATE/TIME SPECIMEN TAKEN (63.05-.01) | source value | DiagnosticReport.effectiveDateTime | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||||
1429 | in process | V2F | MICROBIOLOGY - DATE REPORT COMPLETED (63.05-.03) | source value | DiagnosticReport.issued | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||||
1434 | in process | V2F | MICROBIOLOGY - VERIFY PERSON (63.05-.04) | reference | DiagnosticReport.performer[va-by] | /Practitioner | US Core Practitioner is must support resource | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||
1682 | in process | V2F | MICROBIOLOGY - ACCESSIONING INSTITUTION (63.05-.112) | reference | DiagnosticReport.performer[va-at] | /Organization | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | ||||
1419 | in process | V2F | fixed value | DiagnosticReport.category[LaboratorySlice] | http://terminology.hl7.org/CodeSystem/v2-0074#LAB | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||||
1662 | in process | V2F | LABORATORY TEST - NATIONAL VA LAB CODE > WKLD CODE - WKLD CODE LAB SECTION > WKLD CODE LAB SECT - NAME (60-64 > 64-13 > 64.21-.01) | source value | DiagnosticReport.category | .text | Lab Section | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||
1420 | in process | V2F | LABORATORY TEST - NATIONAL VA LAB CODE > WKLD CODE - DEFAULT LOINC CODE > LAB LOINC (60-64 > 64-25 > 95.3) | source value | DiagnosticReport.code.coding | .code = {CODE (.01)} .system = "http://loinc.org" .display = {COMPONENT (1)} |
Typically LOINC. Changed VistA mapping to support some coded values and add the lab test name (non-standardized) | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||
1661 | in process | V2F | LABORATORY TEST - NAME (60-.01) | source value | DiagnosticReport.code | .text | Added the lab test name (non-standardized) | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | |||
1421 | in process | V2F | PATIENT - (2-) | reference | {63>63} | DiagnosticReport.subject | /Patient | Pointer from PATIENT (2) | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 | ||
1437 | in process | V2F | See mapping for Lab Observation | reference | DiagnosticReport.result | Observation | http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab | 5.0.1 |
LabObservationMicrobiologyBacteriologyDiagnosticReport | ||
DiagnosticReport | ||
extension | ||
extension (extension-DiagnosticReport-note) | ||
value[x] | 1442: source value based on MICROBIOLOGY - BACT RPT REMARK > BACT RPT REMARK - BACT RPT REMARK (63.05-13 > 63.33-.01) | This is the correct mapping, however, .note was not added to DR until FHIR R5. Use pre-adopt extension. |
identifier | ||
system | 1605-1: fixed value = http://va.gov/identifiers/$Sta3n/63.5 | generated from mapParameter line 1 |
value | 1605: source value based on MICROBIOLOGY - ORDERED TEST > ORDERED TEST - IEN (63.05-.35 > 63.5-.001) | |
basedOn | 1690: reference based on MICROBIOLOGY - ORDERED TEST > ORDERED TEST - CPRS ORDER # (63.05-.35 > 63.5-3) | |
status | 1416: terminologyMaps using VF_DiagnosticReportLabStatus on MICROBIOLOGY - ORDERED TEST > ORDERED TEST - DISPOSITION (63.05-.35 > 63.5-10) | disposition based on HL7 Table 0123 status codes US Core 5 has new constraints: if status is partial, preliminary, final, ammended, corrected or appended effective[x] and issued are required |
category | ||
text | 1662: source value based on LABORATORY TEST - NATIONAL VA LAB CODE > WKLD CODE - WKLD CODE LAB SECTION > WKLD CODE LAB SECT - NAME (60-64 > 64-13 > 64.21-.01) | Lab Section |
category (LaboratorySlice) | 1419: fixed value = http://terminology.hl7.org/CodeSystem/v2-0074#LAB | |
code | ||
coding | 1420: source value based on LABORATORY TEST - NATIONAL VA LAB CODE > WKLD CODE - DEFAULT LOINC CODE > LAB LOINC (60-64 > 64-25 > 95.3) | Typically LOINC. Changed VistA mapping to support some coded values and add the lab test name (non-standardized) |
system | 1420-2: fixed value = http://loinc.org | generated from mapParameter line 2 |
code | 1420-1: source value based on LABORATORY TEST - NATIONAL VA LAB CODE > WKLD CODE - DEFAULT LOINC CODE > LAB LOINC - CODE (60-64 > 64-25 > 95.3-.01) | generated from mapParameter line 1 |
display | 1420-3: source value based on LABORATORY TEST - NATIONAL VA LAB CODE > WKLD CODE - DEFAULT LOINC CODE > LAB LOINC - COMPONENT (60-64 > 64-25 > 95.3-1) | generated from mapParameter line 3 |
text | 1661: source value based on LABORATORY TEST - NAME (60-.01) | Added the lab test name (non-standardized) |
subject | 1421: reference based on PATIENT - (2-) if {63>63} | Pointer from PATIENT (2) |
effective[x] (effectiveDateTime) | 1424: source value based on MICROBIOLOGY - DATE/TIME SPECIMEN TAKEN (63.05-.01) | |
issued | 1429: source value based on MICROBIOLOGY - DATE REPORT COMPLETED (63.05-.03) | |
performer (va-by) | 1434: reference based on MICROBIOLOGY - VERIFY PERSON (63.05-.04) | US Core Practitioner is must support resource |
performer (va-at) | 1682: reference based on MICROBIOLOGY - ACCESSIONING INSTITUTION (63.05-.112) | |
result | 1437: reference based on See mapping for Lab Observation |
LabObservationMicrobiologyBacteriologyDiagnosticReport | ||
DiagnosticReport | ||
extension | ||
extension (extension-DiagnosticReport-note) | ||
value[x] | Micro.BacteriologyReports.BacteriologyReportRemark | |
basedOn | Micro.MicroOrderedTest.CPRSOrderIEN SStaff.SMicroOrderedTest.CPRSOrderIEN | |
status | Micro.MicroOrderedTest.DispositionLabCodeIEN SStaff.SMicroOrderedTest.DispositionLabCodeIEN | |
category | ||
text | Dim.LabChemTest.NationalVALabCodeIEN | |
code | ||
coding | Dim.LabChemTest.NationalVALabCodeIEN | |
code | Dim.LabChemTest.NationalVALabCodeIEN | |
display | Dim.LabChemTest.NationalVALabCodeIEN | |
text | Dim.LabChemTest.LabChemTestName | |
effective[x] (effectiveDateTime) | Micro.AntibioticSensitivity.SpecimenTakenDateTime Micro.AntibioticSensitivityComment.SpecimenTakenDateTime Micro.BacteriologyReports.SpecimenTakenDateTime Micro.MicroAntibioticLevel.SpecimenTakenDateTime Micro.MicroAudit.SpecimenTakenDateTime Micro.Microbiology.SpecimenTakenDateTime Micro.MicroOrderedTest.SpecimenTakenDateTime Micro.MicroSterilityResults.SpecimenTakenDateTime Micro.MycobacteriologyReports.SpecimenTakenDateTime Micro.Mycology.SpecimenTakenDateTime Micro.MycologyReports.SpecimenTakenDateTime Micro.Parasitology.SpecimenTakenDateTime Micro.ParasitologyReports.SpecimenTakenDateTime Micro.ParasitologyStage.SpecimenTakenDateTime Micro.Virology.SpecimenTakenDateTime Micro.VirologyReports.SpecimenTakenDateTime SStaff.SMicroOrderedTest.SpecimenTakenDateTime | |
issued | Micro.Microbiology.ReportCompletedDateTime | |
performer (va-by) | Micro.Microbiology.VerifyingStaffIEN | |
performer (va-at) | Micro.Microbiology.AccessioningInstitutionIEN |
LabObservationMicrobiologyBacteriologyDiagnosticReport | ||
DiagnosticReport | ||
issued | Documents.ToTime LabOrder.Result.ResultTime | |
performer (va-by) | Documents.Clinician Documents.Extension[DocumentExtension].CareProviders LabOrder.Result.VerifiedBy | |
performer (va-at) | Documents.EnteredAt LabOrder.Result.EnteredAt |
LabObservationMicrobiologyBacteriologyDiagnosticReport | ||
DiagnosticReport | ||
extension | ||
extension (extension-DiagnosticReport-note) | ||
value[x] | accession.value [m] | |
code | ||
text | panel.test med.prescription lab.test pharmacy (med).prescription |
LabObservationMicrobiologyBacteriologyDiagnosticReport | ||
DiagnosticReport | Event | |
identifier | Event.identifier | |
basedOn | Event.basedOn | |
status | Event.status | |
code | Event.code | |
subject | Event.subject | |
encounter | Event.encounter | |
effective[x] | Event.occurrence[x] | |
effective[x] (effectiveDateTime) | Event.occurrence[x] | |
performer | Event.performer.actor | |
performer (va-by) | Event.performer.actor | |
performer (va-at) | Event.performer.actor | |
resultsInterpreter | Event.performer.actor |
LabObservationMicrobiologyBacteriologyDiagnosticReport | ||
DiagnosticReport | ORU -> OBR | |
identifier | OBR-51/ for globally unique filler ID - OBR-3 , For non-globally unique filler-id the flller/placer number must be combined with the universal service Id - OBR-2(if present)+OBR-3+OBR-4 | |
use | N/A | |
type | CX.5 | |
system | CX.4 / EI-2-4 | |
value | CX.1 / EI.1 | |
period | CX.7 + CX.8 | |
assigner | CX.4 / (CX.4,CX.9,CX.10) | |
basedOn | ORC? OBR-2/3? | |
status | OBR-25 (not 1:1 mapping) | |
category | OBR-24 | |
coding | C*E.1-8, C*E.10-22 | |
text | C*E.9. But note many systems use C*E.2 for this | |
category (LaboratorySlice) | OBR-24 | |
code | OBR-4 (HL7 v2 doesn't provide an easy way to indicate both the ordered test and the performed panel) | |
coding | C*E.1-8, C*E.10-22 | |
system | C*E.3 | |
version | C*E.7 | |
code | C*E.1 | |
display | C*E.2 - but note this is not well followed | |
userSelected | Sometimes implied by being first | |
text | C*E.9. But note many systems use C*E.2 for this | |
subject | PID-3 (no HL7 v2 mapping for Group or Device) | |
encounter | PV1-19 | |
effective[x] | OBR-7 | |
effective[x] (effectiveDateTime) | OBR-7 | |
issued | OBR-22 | |
performer | PRT-8 (where this PRT-4-Participation = "PO") | |
performer (va-by) | PRT-8 (where this PRT-4-Participation = "PO") | |
performer (va-at) | PRT-8 (where this PRT-4-Participation = "PO") | |
resultsInterpreter | OBR-32, PRT-8 (where this PRT-4-Participation = "PI") | |
specimen | SPM | |
result | OBXs | |
media | OBX? | |
conclusion | OBX | |
conclusionCode | OBX | |
presentedForm | OBX |
LabObservationMicrobiologyBacteriologyDiagnosticReport | ||
DiagnosticReport | Entity. Role, or Act, Observation[classCode=OBS, moodCode=EVN] | |
text | Act.text? | |
contained | N/A | |
extension | ||
extension (extension-DiagnosticReport-note) | n/a, N/A | |
id | n/a | |
url | N/A | |
value[x] | N/A | |
modifierExtension | N/A | |
identifier | id | |
id | n/a | |
extension | n/a | |
use | Role.code or implied by context | |
type | Role.code or implied by context | |
system | II.root or Role.id.root | |
value | II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root) | |
period | Role.effectiveTime or implied by context | |
assigner | II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper | |
basedOn | outboundRelationship[typeCode=FLFS].target | |
status | statusCode Note: final and amended are distinguished by whether observation is the subject of a ControlAct event of type "revise" | |
category | inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code | |
id | n/a | |
extension | n/a | |
coding | union(., ./translation) | |
text | ./originalText[mediaType/code="text/plain"]/data | |
category (LaboratorySlice) | inboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code | |
code | code | |
id | n/a | |
extension | n/a | |
coding | union(., ./translation) | |
id | n/a | |
extension | n/a | |
system | ./codeSystem | |
version | ./codeSystemVersion | |
code | ./code | |
display | CV.displayName | |
userSelected | CD.codingRationale | |
text | ./originalText[mediaType/code="text/plain"]/data | |
subject | participation[typeCode=SBJ] | |
encounter | inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN] | |
effective[x] | effectiveTime | |
effective[x] (effectiveDateTime) | effectiveTime | |
issued | participation[typeCode=VRF or AUT].time | |
performer | .participation[typeCode=PRF] | |
performer (va-by) | .participation[typeCode=PRF] | |
performer (va-at) | .participation[typeCode=PRF] | |
resultsInterpreter | .participation[typeCode=PRF] | |
specimen | participation[typeCode=SBJ] | |
result | outboundRelationship[typeCode=COMP].target | |
imagingStudy | outboundRelationship[typeCode=COMP].target[classsCode=DGIMG, moodCode=EVN] | |
media | outboundRelationship[typeCode=COMP].target | |
id | n/a | |
extension | n/a | |
modifierExtension | N/A | |
comment | .inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="annotation"].value | |
link | .value.reference | |
conclusion | inboundRelationship[typeCode="SPRT"].source[classCode=OBS, moodCode=EVN, code=LOINC:48767-8].value (type=ST) | |
conclusionCode | inboundRelationship[typeCode=SPRT].source[classCode=OBS, moodCode=EVN, code=LOINC:54531-9].value (type=CD) | |
presentedForm | text (type=ED) |
LabObservationMicrobiologyBacteriologyDiagnosticReport | ||
DiagnosticReport | ||
identifier | FiveWs.identifier | |
status | FiveWs.status | |
category | FiveWs.class | |
category (LaboratorySlice) | FiveWs.class | |
code | FiveWs.what[x] | |
subject | FiveWs.subject[x], FiveWs.subject | |
encounter | FiveWs.context | |
effective[x] | FiveWs.done[x] | |
effective[x] (effectiveDateTime) | FiveWs.done[x] | |
issued | FiveWs.recorded | |
performer | FiveWs.actor | |
performer (va-by) | FiveWs.actor | |
performer (va-at) | FiveWs.actor | |
resultsInterpreter | FiveWs.actor |