JohnMoehrke PHR FHIR API
0.5.2 - ci-build United States of America flag

JohnMoehrke PHR FHIR API, published by John Moehrke (himself). This guide is not an authorized publication; it is the continuous build for version 0.5.2 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/JohnMoehrke/phr/ and changes regularly. See the Directory of published versions

Artifacts Summary

This page provides a list of the FHIR artifacts defined as part of this implementation guide.

Behavior: Capability Statements

The following artifacts define the specific capabilities that different types of systems are expected to have in order to comply with this implementation guide. Systems conforming to this implementation guide are expected to declare conformance to one or more of the following capability statements.

This indicates how MHV exposes PHR using FHIR

CapabilityStatement prototype for MHV as a FHIR Server exposing PHR data

Structures: Resource Profiles

These define constraints on FHIR resources for systems conforming to this implementation guide.

VA MHV AVS DocumentReference

After Visit Summary (AVS) profile on the DocumentReference resource.

VA MHV All DocumentReference

A profile on the DocumentReference resource that covers all uses of FHIR DocumentReference in the johnmoehrke.phr FHIR API. This includes Physician Notes, Discharge Summary, and ECG/EKG reports.

VA MHV DiagnosticReport

This defines the use for Chem-Hem and DiagnosticReport, with contained Observation and Specimen as needed.

VA MHV PHR Allergy and Intolerance

A profile on the AllergyIntolerance resource for MHV PHR exposing Allergies using FHIR API.

VA MHV PHR CH labTest.chemistryResults

A profile showing how HDR labTests.chemistryResults will be exposed using FHIR API to johnmoehrke.phr PHR.

One Observation holds one labTests.chemistryResults

  • This profile is based on US-Core Lab
    • category must have http://terminology.hl7.org/CodeSystem/observation-category#laboratory
  • .subject must be the patient from the DiagnosticReport
  • valueInterpretation -> .interpretation
  • testIdentifier -> .code – where LN is Loinc
  • referenceRange -> .referenceRange.text – dont try to break out further as there is little use of this value
  • labCommentEvents -> .note.text
  • value[x] either String or Quantity with units
  • observationValue -> .valueQuantity.value
  • observationUnits.unit -> .valueQuantity.unit
  • observationUnits.code -> .valueQuantity.code - likely need to adjust some
  • observationUnits.codingSystem -> .valueQuantity.system
  • performingOrganization -> .performer
  • labCommentEvents -> '.note`
  • effective[x] is same as the DiagnosticReport
  • issued is same as the DiagnosticReport
  • specimen = specimen
  • basedOn = ServiceRequest
  • ObservationStatus' -> [concept map translation](ConceptMap-VF-ChemistryResult-ObservationStatus.html) -> .status`
VA MHV PHR CH labTests.orderedTestCode

A profile showing how HDR labTests.orderedTestCode (Order) using FHIR API to johnmoehrke.phr PHR.

One ServiceRequest holds one labTests.orderedTestCode. Where multiple orderedTestCode elements exist, multiple ServiceRequest are used.

  • .subject must be the patient from the DiagnosticReport
  • code = {labTests.orderedTestCode}
  • status = unknown
  • intent = order
  • category = SCT#108252007 Laboratory procedure
  • specimen = specimen
  • not populating US-Core must support as we dont have the values
    • occurrence[x], authoredOn
  • requester is the requesting provider
  • facility is the requesting facility
  • no other elements are populated
VA MHV PHR CVIX Study Report

A profile on the DiagnosticReport resource for MHV PHR exposing CVIX Study Report using FHIR API.

VA MHV PHR ECG

A profile on the DocumentReference resource for MHV PHR exposing ECG/EKG (ClinicalProcedureTO) using FHIR API.

VA MHV PHR HDR CH Specimen

A profile showing how the labTestPromises.specimen is mapped into a FHIR Specimen.

  • This is usually a contained resource, contained in the Lab Report. The use of contained is for simplicity sake and to limit the need to manage Specimen resource instances
  • must have a type
    • Specimen.type.text <- labTestPromises.specimen.specimenSource
  • should have a collectedDateTime derived from labTestPromises.specimen.specimenTakenDate
VA MHV PHR HDR Chem-Hem Report

Profile on DiagnosticReport for Chem-Hem lab report.

VA MHV PHR Imaging Report

A profile on the DiagnosticReport resource for MHV PHR exposing Imaging Report (ImagingExamTO) using FHIR API.

VA MHV PHR ImagingExamTO.order

A profile showing how ImagingExamTO.order (Order) using FHIR API to johnmoehrke.phr PHR.

One ServiceRequest holds one ImagingExamTO.order. Where multiple order elements exist, multiple ServiceRequest are used.

  • .subject must be the patient from the DiagnosticReport
  • code.text = {imagingExamTO.order.type.name1}
  • status = unknown
  • intent = order
  • category = SCT#363679005 Imaging
  • not populating US-Core must support as we dont have the values
    • occurrence[x], authoredOn
  • requester is the requesting provider
  • facility is the requesting facility
  • no other elements are populated
VA MHV PHR Immunization

A profile on the Immunization that declares how MHV will expose PHR immunization.

VA MHV PHR Lab Specimen

A profile showing how the Microbiology and Pathology LabSpecimenTO is mapped into a FHIR Specimen.

VA MHV PHR Location

A profile on the Location resource for MHV PHR exposing Location using FHIR API.

  • based on US-Core for Location
  • identifier
    • system = urn:oid:2.16.840.1.113883.4.349
  • name is the name as known
  • always a contained resource, so not exposed RESTfully

NOT USING Mapping to VIA HospitalLocationTO.

VA MHV PHR MB Lab Report

A profile showing how Microbiology LabReportTO is mapped into a FHIR DiagnosticReport, Observation, and Specimen.

VA MHV PHR Notes

A profile on the DocumentReference resource for MHV PHR exposing Notes (NoteTO) using FHIR API.

VA MHV PHR Organization

A profile on the Organization resource for MHV PHR exposing Organization using FHIR API.

  • based on US-Core for Organization
    • must have a status
    • must have a name
    • there are other things us-core defines that are not manditory (NPI, CLIA)
  • two identifier types defined TOid and HDRid
  • used for Lab Site. In FHIR R4, the Lab site needs to go into .performer which can't take a Location. (TechnicalDebt)
  • always a contained resource, so not exposed RESTfully

Map to VIA labSiteID

Map to HDR PerformingOrganization

HDR IntoleranceCondition has an element recordSource with the identifier of the facility the allergy was recorded. Given that this does not include a friendly name, but MHV has a manually managed table with this, then we will populate the Organization.name with the value from that table (when it is available) - MHV FACILITY_INFO table {FACILITY_INFO.NAME}

VA MHV PHR Patient

A profile on the Patient resource for MHV PHR exposing Patient using FHIR API.

  • based on US-Core for Patient
  • mapping from patient details in eVault (not from VIA/HDR transaction)
    • all elements populated from eVault PHR patient service
    • phrVPRDAO.fetchDetailPatientInfo(icn)
  • identifier
    • value = GetPatientId
    • system = http://va.gov/identifiers/system/200MH
    • not using ICN but rather the id value known to eVault. There is concern the ICN is not unique enough.
  • name - First and Last Name
  • gender
  • birthDate
  • active = true
  • The Identifier for the ICN in an identifier with system=urn:oid:2.16.840.1.113883.4.349
  • populating identifier with GetPatientId() - the MHV patientId (jwt subjectId) with system value of http://va.gov/identifiers/system/200MH

mapping concerns:

  • name seems to only populate first and last, but puts them both in given
  • eVault also has, but are not being used in the FHIR Patient
    • MiddleName
    • Ssn
    • Email
    • Icn
  • set .meta.profile
  • Would be even better if we could use a common Patient registry.
  • The Patient resource can hold much more such as religion, birth place, other identifiers, etc…
  • Integration with Cerner will force even more federation of identities
  • Not mapping PatientTO
VA MHV PHR Practitioner

A profile on the Practitioner resource for MHV PHR exposing Practitioner using FHIR API.

  • NOT based on US-Core for Practitioner, as that makes slicing on VA OID pattern impossible
  • used for VIDF UserTO, and AuthorTO
  • used for HDR PractitionerLite
  • might be used for PersonTO or is that RelatedPerson?
  • always a contained resource, so not exposed RESTfully

Mapping to VIA UserTO and VIA AuthorTO

Mapping to HDR PractitionerLite

VA MHV PHR Pulse Oximetry Vital-Signs

A profile on the Observation resource for MHV PHR exposing Pluse Oximetry Vital-Signs using FHIR API.

Note that VIA does not provide us the supplemental O2 concentration or flowrate

VA MHV PHR SP Lab Report

A profile showing how SP LabReportTO is mapped into a FHIR DiagnosticReport, Observation, and Specimen.

VA MHV PHR Vital-Signs

A profile on the Observation resource for MHV PHR exposing Vital-Signs using FHIR API.

VA MHV PHR Vital-Signs for Blood Pressure

A profile on the Observation resource for Blood Pressure

VA MHV PHR Vital-Signs for PAIN

A profile on the Observation resource for Pain

Not drived from us-core vitals, us-core does not have Pain and forbids valueInteger.

VA MHV PHR labTest

A profile showing how Microbiology and Pathology LabTestTO and LabResultTO will be exposed using FHIR API to johnmoehrke.phr PHR.

  • This profile is based on US-Core Lab Observation
VA MHV PHR problems

A profile on the Condition resource for MHV PHR exposing Problems using FHIR API.

Structures: Extension Definitions

These define constraints on FHIR data types for systems conforming to this implementation guide.

Allergy Observed vs Historic

Maps to Vista 120.8 (Allergy) - (6) OBSERVED/HISTORICAL 'o' FOR OBSERVED; 'h' FOR HISTORICAL; LAST EDITED: DEC 07, 1990 DESCRIPTION:
Indicates whether this allergy/adverse reaction has been observed by some personnel, or if it is historical data gathered about the patient. RECORD INDEXES: AHDR (#482)

Notes

Notes

When the authentication happened

DateTime of when the authentication happened

Terminology: Value Sets

These define sets of codes used by systems conforming to this implementation guide.

Allergy Observed vs Historic ValueSet

The codes for Allergy Observed vs Historic

Known DocumentReference types

DocumentReference types

Known Note types

Note types

Known Surgical Pathology types

Surgical Pathology types

Subset of allergy intolerance category

not all of them

Subset of condition clinical status

Not all of them

Subset of condition verification status

not all of them

Terminology: Code Systems

These define new code systems used by systems conforming to this implementation guide.

Allergy Observed vs Historic CodeSystem

The codes for Allergy Observed vs Historic

Terminology: Concept Maps

These define transformations to convert between codes by systems conforming with this implementation guide.

Map between ChemistryResult ObservationStatus to FHIR Observation.status codes

Map between ChemistryResult.ObservationStatus and FHIR Observation.status code.

Map between ChemistryResult valueInterpretation to FHIR Observation.interpretation codes

Map between ChemistryResult.valueInterpretation and FHIR Observation.interpretation.coding.

Map between Vital Sign ObservationTypeTO.name to Loinc Code

Map between VitalSignTO.type(ObservationTypeTO.name) VUID/string and LOINC code.

Mapping between Vista Pathology types and LOINC

Mapping between Vista Pathology types and LOINC

Mapping from Vista used drug units string to formal UCUM codes

Vista units are close but often not exactly correct. This map gives the proper formal UCUM code.

  • DrugUcum.csv - 11/08/2021, vhaislstewar, VHAT 325
Vitals Device used to SNOMED code

Map between VitalSignTO.qualifier VUID/string and SNOMED code for Observation.extension[observation-deviceCode].valueCodeableConcept

Vitals Laterality used to SNOMED code

Map between VitalSignTO.qualifier VUID/string and SNOMED code for Laterality Observation

Vitals Method used to SNOMED code

Map between VitalSignTO.qualifier VUID/string and SNOMED code for Observation.method

Vitals Position used to SNOMED code

Map between VitalSignTO.qualifier VUID/string and SNOMED code for Observation.extension[bodyPosition].valueCodeableConcept

Vitals Site used to SNOMED code

Map between VitalSignTO.qualifier VUID/string and SNOMED code for Observation.bodySite

Vitals qualifier Units used

Map between VitalSignTO.qualifier VUID/string when a units of measure should be dropped

Example: Example Instances

These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like.

Disable Searches

This Bundle resource demonstrates how to disable searches on a resource type.

Other

These are resources that are used within this implementation guide that do not fit into one of the other categories.

Parameters for Terminology selection of US SNOMED CT

This parameter resource is used to specify the system version of US SNOMED CT to be used in the terminology service.