Azure’s Support for Health Care: Quick Overview

Sannidhi Siva
8 min readJan 5, 2023

--

Part 1: Introduction to FHIR

Access to healthcare is a critical issue, as it can have a significant impact on an individual’s overall health and well-being.

Photo by Irwan @tweetbyirwan on Unsplash
Photo by Jair Lázaro on Unsplash

The use of health devices has become increasingly common in recent years, due in part to the increasing availability of these devices and the growing emphasis on preventative healthcare. Health devices can be a crucial tool for individuals looking to manage their health and for healthcare providers looking to monitor and treat their patients.

There is a high demand for standardized formats to support all devices and interactions.

FHIR

FHIR (Fast Healthcare Interoperability Resources) is a modern, lightweight standard for exchanging healthcare information electronically.

It is based on web technologies and is designed to be both human and machine readable. FHIR was developed by HL7, an international standards organization for healthcare informatics, and is now widely used in the healthcare industry.

One of the key challenges in healthcare today is the lack of interoperability between different systems and organizations. FHIR helps to address this issue by providing a standard way for different systems to communicate and exchange data. This enables better care coordination and can help to improve patient outcomes

One of the key benefits of FHIR is its flexibility. It can be used to exchange a wide range of healthcare data, including electronic health records, clinical documents, and patient data. It also supports a variety of use cases, such as data sharing between healthcare providers, population health management, and personal health record systems.

Here is a simple example to help understand FHIR:

Imagine that you are in a hospital, and you have a medical record that contains information about your health, such as your allergies, medications, and past surgeries. This record is stored in the hospital’s electronic health record (EHR) system.

Now, let’s say that you move to a different city and need to see a new doctor. You would like your new doctor to have access to your medical record so that they can provide the best possible care. However, the hospital’s EHR system is not compatible with the doctor’s EHR system.

This is where FHIR comes in. FHIR allows the hospital’s EHR system to share your medical record with the doctor’s EHR system in a standardized format. This way, the doctor can easily access and view your medical record and make informed decisions about your care.

I hope this example helps to give you an understanding of how FHIR can be used to improve healthcare.

FHR Defines Transport standards & Content Standards for Health Data

Index — FHIR v4.3.0 (hl7.org)

Ref: Patient-example.json — FHIR v4.3.0 (hl7.org)

{
"resourceType": "Patient",
"id": "example",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<table>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Name</td>\n\t\t\t\t\t\t<td>Peter James \n <b>Chalmers</b> (&quot;Jim&quot;)\n </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Address</td>\n\t\t\t\t\t\t<td>534 Erewhon, Pleasantville, Vic, 3999</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Contacts</td>\n\t\t\t\t\t\t<td>Home: unknown. Work: (03) 5555 6473</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Id</td>\n\t\t\t\t\t\t<td>MRN: 12345 (Acme Healthcare)</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>"
},
"identifier": [
{
"use": "usual",
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
"code": "MR"
}
]
},
"system": "urn:oid:1.2.36.146.595.217.0.1",
"value": "12345",
"period": {
"start": "2001-05-06"
},
"assigner": {
"display": "Acme Healthcare"
}
}
],
"active": true,
"name": [
{
"use": "official",
"family": "Chalmers",
"given": [
"Peter",
"James"
]
},
{
"use": "usual",
"given": [
"Jim"
]
},
{
"use": "maiden",
"family": "Windsor",
"given": [
"Peter",
"James"
],
"period": {
"end": "2002"
}
}
],
"telecom": [
{
"use": "home"
},
{
"system": "phone",
"value": "(03) 5555 6473",
"use": "work",
"rank": 1
},
{
"system": "phone",
"value": "(03) 3410 5613",
"use": "mobile",
"rank": 2
},
{
"system": "phone",
"value": "(03) 5555 8834",
"use": "old",
"period": {
"end": "2014"
}
}
],
"gender": "male",
"birthDate": "1974-12-25",
"_birthDate": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/patient-birthTime",
"valueDateTime": "1974-12-25T14:35:45-05:00"
}
]
},
"deceasedBoolean": false,
"address": [
{
"use": "home",
"type": "both",
"text": "534 Erewhon St PeasantVille, Rainbow, Vic 3999",
"line": [
"534 Erewhon St"
],
"city": "PleasantVille",
"district": "Rainbow",
"state": "Vic",
"postalCode": "3999",
"period": {
"start": "1974-12-25"
}
}
],
"contact": [
{
"relationship": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0131",
"code": "N"
}
]
}
],
"name": {
"family": "du Marché",
"_family": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/humanname-own-prefix",
"valueString": "VV"
}
]
},
"given": [
"Bénédicte"
]
},
"telecom": [
{
"system": "phone",
"value": "+33 (237) 998327"
}
],
"address": {
"use": "home",
"type": "both",
"line": [
"534 Erewhon St"
],
"city": "PleasantVille",
"district": "Rainbow",
"state": "Vic",
"postalCode": "3999",
"period": {
"start": "1974-12-25"
}
},
"gender": "female",
"period": {
"start": "2012"
}
}
],
"managingOrganization": {
"reference": "Organization/1"
}
}

Concepts in the FHIR Framework

REST APIs

Documents (CDA)

Messaging

Services

RESOURCE

In the FHIR (Fast Healthcare Interoperability Resources) Standard, a resource is the smallest unit of data that contains meaningful information. It is a fundamental building block of the standard

Resourcelist — FHIR v4.3.0 (hl7.org)

Example:

Patient

Encounter

Appointment

Ref:Encounter — FHIR v4.3.0 (hl7.org)

{
"resourceType" : "Encounter",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"identifier" : [{ Identifier }], // Identifier(s) by which this encounter is known
"status" : "<code>", // R! planned | arrived | triaged | in-progress | onleave | finished | cancelled +
"statusHistory" : [{ // List of past encounter statuses
"status" : "<code>", // R! planned | arrived | triaged | in-progress | onleave | finished | cancelled +
"period" : { Period } // R! The time that the episode was in the specified status
}],
"class" : { Coding }, // R! Classification of patient encounter
"classHistory" : [{ // List of past encounter classes
"class" : { Coding }, // R! inpatient | outpatient | ambulatory | emergency +
"period" : { Period } // R! The time that the episode was in the specified class
}],
"type" : [{ CodeableConcept }], // Specific type of encounter
"serviceType" : { CodeableConcept }, // Specific type of service
"priority" : { CodeableConcept }, // Indicates the urgency of the encounter
"subject" : { Reference(Group|Patient) }, // The patient or group present at the encounter
"episodeOfCare" : [{ Reference(EpisodeOfCare) }], // Episode(s) of care that this encounter should be recorded against
"basedOn" : [{ Reference(ServiceRequest) }], // The ServiceRequest that initiated this encounter
"participant" : [{ // List of participants involved in the encounter
"type" : [{ CodeableConcept }], // Role of participant in encounter
"period" : { Period }, // Period of time during the encounter that the participant participated
"individual" : { Reference(Practitioner|PractitionerRole|RelatedPerson) } // Persons involved in the encounter other than the patient
}],
"appointment" : [{ Reference(Appointment) }], // The appointment that scheduled this encounter
"period" : { Period }, // The start and end time of the encounter
"length" : { Duration }, // Quantity of time the encounter lasted (less time absent)
"reasonCode" : [{ CodeableConcept }], // Coded reason the encounter takes place
"reasonReference" : [{ Reference(Condition|ImmunizationRecommendation|
Observation|Procedure) }], // Reason the encounter takes place (reference)
"diagnosis" : [{ // The list of diagnosis relevant to this encounter
"condition" : { Reference(Condition|Procedure) }, // R! The diagnosis or procedure relevant to the encounter
"use" : { CodeableConcept }, // Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …)
"rank" : "<positiveInt>" // Ranking of the diagnosis (for each role type)
}],
"account" : [{ Reference(Account) }], // The set of accounts that may be used for billing for this Encounter
"hospitalization" : { // Details about the admission to a healthcare service
"preAdmissionIdentifier" : { Identifier }, // Pre-admission identifier
"origin" : { Reference(Location|Organization) }, // The location/organization from which the patient came before admission
"admitSource" : { CodeableConcept }, // From where patient was admitted (physician referral, transfer)
"reAdmission" : { CodeableConcept }, // The type of hospital re-admission that has occurred (if any). If the value is absent, then this is not identified as a readmission
"dietPreference" : [{ CodeableConcept }], // Diet preferences reported by the patient
"specialCourtesy" : [{ CodeableConcept }], // Special courtesies (VIP, board member)
"specialArrangement" : [{ CodeableConcept }], // Wheelchair, translator, stretcher, etc.
"destination" : { Reference(Location|Organization) }, // Location/organization to which the patient is discharged
"dischargeDisposition" : { CodeableConcept } // Category or kind of location after discharge
},
"location" : [{ // List of locations where the patient has been
"location" : { Reference(Location) }, // R! Location the encounter takes place
"status" : "<code>", // planned | active | reserved | completed
"physicalType" : { CodeableConcept }, // The physical type of the location (usually the level in the location hierachy - bed room ward etc.)
"period" : { Period } // Time period during which the patient was present at the location
}],
"serviceProvider" : { Reference(Organization) }, // The organization (facility) responsible for this encounter
"partOf" : { Reference(Encounter) } // Another Encounter this encounter is part of
}

What is Codeable Concept?

A Codeable Concept is a value that can be represented by referencing one or more terminologies or by defining it with text.

A FHIR resource can have the following components:

  1. Metadata: This includes additional details about the resource such as the resource ID, version, profiles, and tags.
  2. Narrative: This is a human-readable version of the resource’s content.
  3. Extensions: These are used to handle unique cases not covered by the core specification.
  4. Elements/Body: This contains the actual content of the resource.

PROFILES

Profiles define constraints on the FHIR Core Data Type, FHIR Core Resource, and other FHIR profiles

DIFFERENCE BETWEEN RESOURCE & DATATYPE?

“Datatypes are part of resource. Like Address is datatype and it is part of patient profile”

StructureDefinition: observation-heartrate — FHIR v4.3.0 (hl7.org)

I have covered the basics of FHIR before discussing Azure API for FHIR & FHIR Server for Azure. Please find help links section to learn more about FHIR.

Tools:

Forge — SIMPLIFIER.NET

Part 2: FHIR Server for Azure

Help links

FHIR for Developers: Part 0. Introduction to the series | by Jaideep Pahwa | Nerd For Tech | Medium

Education On Demand (pathlms.com)

HL7 Fundamentals Course | HL7 International

Sidharth Ramesh — YouTube

--

--

No responses yet