SlideShare a Scribd company logo
1 of 21
Download to read offline
Seamless, decoupled, multi-directional and
standards-based interoperability in the E-Health
Space
Ifunga Ndana
MIKA Hotel Kabulonga
11th July 2019
E-Health Interoperability
Layer through Kafka
Interoperability Layer
“An interoperability layer is a system that
enables simpler interoperability between
disparate information systems. In the context of
Electronic Health, these are Health Information
Systems (HISs) such as a Client Registry, Lab
Information System, Facility Registry and a
shared Health Record.” – https://ohie.org
2
Quick Outline
•We will begin by discussing the Interoperability
Layer based on the OpenHIE architecture as a
reference point.
•Following this we will touch on how a technology
called Apache Kafka can be applied to achieve
seamless, decoupled, multi-directional and
standards based interoperability in an effective
manner.
3
Architecture & Principles
“The fundamental basis of interoperability is in harmonizing the context with
which information is collected in so that it’s broadly reusable to a much
larger set of stakeholders.”
“The OpenHIE architecture supports interoperability by creating a framework
that maximally leverages health information standards, enables flexible
implementation by country partners, and supports interchangeability of
individual components.”
https://ohie.org/architecture/
4
An Interoperability Layer must:
•Harmonize the context with which information is collected;
•Utilize Health information standards (HL7, LOINC, ICD10);
•Be broadly reusable (plug & play);
•Cater to a large set of stakeholders;
•Allow for Flexible/independent implementation within each
system;
•Allow for interchangeability of individual components; and
•Allow for identification (Authorization/Authentication);
5
What is Apache Kafka®?
•Apache Kafka® is a distributed data streaming platform.
•It was originally developed by LinkedIn before being
donated to the Apache Foundation as an open-source
project.
•The project aims to provide a unified, high-throughput,
low-latency platform for handling real-time data feeds
•Kafka has several features which make it well suited for
use as an interoperability layer.
6
How does Apache Kafka® work?
Kafka leverages two system design principles for its core implementation: Message Queuing
and The Publisher/Subscriber model
“Message queues allow different parts of an ecosystem (e.g. Microservices / disparate
systems) to communicate and process operations asynchronously. A message queue
provides a buffer which stores messages for a defined period, and endpoints (connections)
that allow software components to communicate with the queue in order to send and receive
messages.” – Amazon
“The Publisher-Subscriber pattern enables an application to automatically announce events to
multiple interested consumers asynchronously, without coupling the senders to the
receivers.” - Microsoft
7
Apache Kafka® - Topics
• In Kafka, one or more Message Queues can be defined. These Message Queues are called
Topics. All messages must be written (Published) to and also read (Subscribed) from
specific Topics
• One or multiple systems can Subscribe to one or multiple Topics. One or multiple systems
can Publish to one or multiple Topics. In short communication can be multi-directional.
• Any systems in the space will only need to interface with Kafka (the Interoperability Layer) and
not each other directly. These systems will be completely decoupled.
• This way the development, upgrade and roll-out of each system is completely independent
of each other.
• Furthermore, this allows the Interoperability Layer to be plug and play as any number of
systems can be added to the ecosystem as long as they adhere to the Topic Message
Template.
8
HL7 2X Messaging Standards
• Kafka’s use of Topics is well suited to the HL7 2X Messaging Standard developed by an
organization called Health Level Seven International
• HL7 has standard Message Templates, each covering specific domains within the E-Health
space. For example, the message template for a Patient Registration is ADT_A04 while the
message template for a Lab Order is OML_O21.
• In the Interoperability Layer, the HL7 Message Templates would be used to define Topics
• One or more systems would Subscribe to relevant Topics to automatically read all
incoming messages on the queue.
• Similarly one or more systems would Publish messages to specific Topics as well, these
messages would then be automatically broadcast to ALL subscribing systems without
need for manual polling or system notifications
• With this in place, and using reliable Patient Identification, a system such as DISA could post
a Lab Result to the relevant Topic (ORL_O22). Following this, SmartCare (and indeed any
other subscribed system) would automatically be made aware of a new message on the
ORL_O22 Queue and process this it, updating the client record.
9
HL7 2X Messaging Standards
• HL7 Messaging Templates would allow each system in the space to have
unique/independent underlying implementations. The only requirement is that
outgoing messages be encoded in standard HL7 Message Templates.
• With this systems such as SmartCare or ELMIS would not have to modify
their underlying data structures, rather, only need to expose their information
in a standard HL7 Message Template that any other system can translate.
• Similarly, systems such as SmartCare or ELMIS could have their underlying
data structures or indeed technology completely rewritten from the ground up
without compromising the ecosystem granted that the correct HL7 Message
Template is adhered to.
• In short, adopting HL7 Messaging (as well as other standards such as LOINC,
ICPC2 & ICD10) adds both consistency and flexibility to the entire E-Health
ecosystem
10
HL7 2X Messaging Standards
• HL7 Message Templates are self-contained. Meaning each message has enough meta-data to satisfy
a request without need for follow-up calls.
• Specifically each HL7 Message Template has a MSH (Header) section
• The Header Includes:
• The sending application e.g. SmartCare
• The sending application version e.g. August 2019 Release
• The sending facility e.g. Chilenje 1st Level Hospital (System level ID for consistency)
• The sending timestamp
• Furthermore, most messages include a PV1 (Patient Visit), a PID (Patient Identification) and a PID1
(Patient Demographics) section
• In short, if a system like DISA got an HL7 Lab Order Message from SmartCare it would not need to
call SmartCare for additional information such as the gender or age of a client as all of this would be
provided upfront.
• In short HL7 is very efficient for use in Interoperability
• HL7 2X is a separate topic which I encourage further reading on – Carepoint Health
11
HL7 Messages - Sample
MSH|^~&|OF|Chemistry|AM|Automation|200309060825||OML^O21^OML_O21|msgOF101|T|2.5.1|123||||USA||EN
PID|1||12345^5^M10^Memphis_Hosp^PI||EVERYMAN^ADAM^^JR^^^L||19800101|M
PV1|1|O|Ward|||||||||||||||12345
ORC|NW|||666^gastric|||||200309060824|222221^NURSE^NANCY||||||||||| Entero-gastric^^^^^^FI^^^EG02
TQ1|||||||||A
OBR||555_1^chemistry||GLUC^GLUCOSE^L||||||1234^BLEEDER|S|||||222222^PHYSICIAN^^^^DR |821
SPM|1|123456781^gastric ||SER|||||||P||||||200309060735|200309060821||||||||1
ORC|NW|||666^gastric|||||200309060710|222221^NURSE^NANCY||||||||||| Entero-gastric^^^^^^FI^^^EG02
TQ1|||||||||A
OBR||555_2^chemistry||GLUC^GLUCOSE^L||||||1234^BLEEDER|S||||| 222222^PHYSICIAN^^^^DR|821
SPM|1|123456782^gastric||SER|||||||P||||||200309060755|200309060821||||||||1
12
Use Case – Lab Orders, Results and Pharmacy Prescriptions
• We have SmartCare which is the National EHR sitting in multiple facilities
• During the provision of care Lab Orders would be created within SmartCare
• Following this, we would expect these Lab Orders (with all relevant
information) to be shared with a dedicated Lab Information System, in this
case DISA
• Lab Technicians should be able to see all incoming Lab Orders in DISA, and
based on the availability of samples, run various tests
• These Lab Orders should be entered in DISA and shared back to SmartCare
• It would be beneficial to monitor the flow of all lab orders and lab results at
higher aggregation levels
• For this, a dedicated Statistics Aggregation Application called Lab Trans
would be expected to be aware of all these transactions
13
Use Case – Lab Orders, Results and Pharmacy Prescriptions
14
Benefits
• Multiple systems can co-exist in the same space.
• These systems all speak the same "language" due to the use of standardized
HL7 2X messages
• New systems can be added to the space without major disruption, this is
because the systems are decoupled
• Full transparency at national aggregation level (MOH has visibility on all
shared messages)
• If any system is down, the other systems continue to function regardless
• Backlogs (for both the sending & receiving of messages) are resolved
automatically when the system comes back online
• Every system can be extended, upgraded, rewritten and deployed
independently of each other.
15
Benefits - Single source of truth and audit-trail
• All messages coming to all topics defined in Kafka can have a set storage
period applied. While the default is 7 days this can be set to several years or
even infinity. Alternatively this data can be configured to be written to a
conventional database such as MySQL or PostgreSQL for backup through
“Kafka Connectors” (a means of directly outputting Kafka messages to
Database Tables)
• This means that through Kafka the Ministry of Health and relevant
stakeholders could have access to every message sent by every system in
one location.
• Furthermore this allows newly introduced or existing systems to access all
historic data for backlog or ETL/re-importing purposes.
16
Benefits - A mature technology with robust support and
documentation
• Kafka is used in production by many of the worlds largest organisations
(LinkedIn, Uber, Netflix, Twitter etc)
• Kafka can be easily integrated into existing systems through libraries
developed by Confluence (official Kafka maintainer) and organisations like
Microsoft and Oracle.
• Once integrated into systems developer effort would be dedicated to the
creation and parsing of HL7 Message Templates only. Polling, Reading,
Writing, Synchronization and Offsets are all handled by Kafka leaving
implementors to focus more on the messages rather than on low level
technology.
• Kafka is free to use and open-source with no need for licensing fees
• Kafka can be hosted on-premise, within a Data-Centre (ZNDC) or on the
cloud.
17
Code Sample – Basic Producer in C#
18https://github.com/confluentinc/confluent-kafka-dotnet
Code Sample – Basic Consumer in C#
19
https://github.com/confluentinc/confluent-kafka-dotnet
Code Samples – Other Languages
20
•Code samples for more languages Java, Kotlin & C# can
be found here: https://github.com/confluentinc/examples
Thank you
•Questions ??
21

More Related Content

What's hot

How to use source control with apex?
How to use source control with apex?How to use source control with apex?
How to use source control with apex?Oliver Lemm
 
VMware Log Insight
VMware Log Insight VMware Log Insight
VMware Log Insight Iwan Rahabok
 
FRONT-END WEB DEVELOPMENT WITH REACTJS
FRONT-END WEB DEVELOPMENT WITH REACTJSFRONT-END WEB DEVELOPMENT WITH REACTJS
FRONT-END WEB DEVELOPMENT WITH REACTJSTran Phong Phu
 
Speed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerSpeed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerLaravel Poland MeetUp
 
06 august meetup - enterprise integration architecture
06   august meetup - enterprise integration architecture06   august meetup - enterprise integration architecture
06 august meetup - enterprise integration architectureAldo Fernandez
 
BI in the Cloud - Microsoft Power BI Overview and Demo
BI in the Cloud - Microsoft Power BI Overview and DemoBI in the Cloud - Microsoft Power BI Overview and Demo
BI in the Cloud - Microsoft Power BI Overview and DemoChristopher Foot
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application ArchitectureSteven Herod
 
Migrating Visualforce Pages to Lightning
Migrating Visualforce Pages to LightningMigrating Visualforce Pages to Lightning
Migrating Visualforce Pages to LightningSalesforce Developers
 
Approvals and workflow in salesforce
Approvals and workflow in salesforceApprovals and workflow in salesforce
Approvals and workflow in salesforcemallareddy0107
 
Agile with Atlassian Jira
Agile with Atlassian JiraAgile with Atlassian Jira
Agile with Atlassian JiraMarek Kowalski
 
Salesforce Process builder Vs Workflows
Salesforce Process builder Vs WorkflowsSalesforce Process builder Vs Workflows
Salesforce Process builder Vs WorkflowsPrasanna Deshpande ☁
 
Hosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRHosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRWoonsan Ko
 
Instruction on creating a cluster on jboss eap environment
Instruction on creating a cluster on jboss eap environmentInstruction on creating a cluster on jboss eap environment
Instruction on creating a cluster on jboss eap environmentMadhusudan Pisipati
 
How to Use the Activity Custom Lookup Field to Get More Out of Events and Tas...
How to Use the Activity Custom Lookup Field to Get More Out of Events and Tas...How to Use the Activity Custom Lookup Field to Get More Out of Events and Tas...
How to Use the Activity Custom Lookup Field to Get More Out of Events and Tas...Salesforce Admins
 

What's hot (20)

How to use source control with apex?
How to use source control with apex?How to use source control with apex?
How to use source control with apex?
 
VMware Log Insight
VMware Log Insight VMware Log Insight
VMware Log Insight
 
Horizon 8 + Instant Clones
Horizon 8 + Instant ClonesHorizon 8 + Instant Clones
Horizon 8 + Instant Clones
 
Chef fundamentals
Chef fundamentalsChef fundamentals
Chef fundamentals
 
FRONT-END WEB DEVELOPMENT WITH REACTJS
FRONT-END WEB DEVELOPMENT WITH REACTJSFRONT-END WEB DEVELOPMENT WITH REACTJS
FRONT-END WEB DEVELOPMENT WITH REACTJS
 
Jasper Reports.pptx
Jasper Reports.pptxJasper Reports.pptx
Jasper Reports.pptx
 
Speed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerSpeed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using Docker
 
06 august meetup - enterprise integration architecture
06   august meetup - enterprise integration architecture06   august meetup - enterprise integration architecture
06 august meetup - enterprise integration architecture
 
BI in the Cloud - Microsoft Power BI Overview and Demo
BI in the Cloud - Microsoft Power BI Overview and DemoBI in the Cloud - Microsoft Power BI Overview and Demo
BI in the Cloud - Microsoft Power BI Overview and Demo
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture
 
Migrating Visualforce Pages to Lightning
Migrating Visualforce Pages to LightningMigrating Visualforce Pages to Lightning
Migrating Visualforce Pages to Lightning
 
Approvals and workflow in salesforce
Approvals and workflow in salesforceApprovals and workflow in salesforce
Approvals and workflow in salesforce
 
Agile with Atlassian Jira
Agile with Atlassian JiraAgile with Atlassian Jira
Agile with Atlassian Jira
 
Oracle ebs opm refernce guide for gulf oil
Oracle ebs opm refernce guide for gulf oilOracle ebs opm refernce guide for gulf oil
Oracle ebs opm refernce guide for gulf oil
 
Salesforce Process builder Vs Workflows
Salesforce Process builder Vs WorkflowsSalesforce Process builder Vs Workflows
Salesforce Process builder Vs Workflows
 
Hosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRHosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCR
 
Instruction on creating a cluster on jboss eap environment
Instruction on creating a cluster on jboss eap environmentInstruction on creating a cluster on jboss eap environment
Instruction on creating a cluster on jboss eap environment
 
Maven
MavenMaven
Maven
 
How to Use the Activity Custom Lookup Field to Get More Out of Events and Tas...
How to Use the Activity Custom Lookup Field to Get More Out of Events and Tas...How to Use the Activity Custom Lookup Field to Get More Out of Events and Tas...
How to Use the Activity Custom Lookup Field to Get More Out of Events and Tas...
 

Similar to E health interoperability layer through kafka

DISTRIBUTED SYSTEM.docx
DISTRIBUTED SYSTEM.docxDISTRIBUTED SYSTEM.docx
DISTRIBUTED SYSTEM.docxvinaypandey170
 
Bahmni - Open Source EHR System (By Ranjan Sakalley)
Bahmni - Open Source EHR System (By Ranjan Sakalley)Bahmni - Open Source EHR System (By Ranjan Sakalley)
Bahmni - Open Source EHR System (By Ranjan Sakalley)Bahmni
 
1. Overview of Distributed Systems
1. Overview of Distributed Systems1. Overview of Distributed Systems
1. Overview of Distributed SystemsDaminda Herath
 
Inter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsInter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsAya Mahmoud
 
Distributed system
Distributed systemDistributed system
Distributed systemchirag patil
 
Chapter Introductionn to distributed system .pptx
Chapter Introductionn to distributed system .pptxChapter Introductionn to distributed system .pptx
Chapter Introductionn to distributed system .pptxTekle12
 
Comp8 unit7 lecture_slides
Comp8 unit7 lecture_slidesComp8 unit7 lecture_slides
Comp8 unit7 lecture_slidesCMDLMS
 
Interoperability Between Healthcare Applications
Interoperability Between Healthcare ApplicationsInteroperability Between Healthcare Applications
Interoperability Between Healthcare ApplicationsJohn Gillson
 
Designing Application over mobile environment
Designing Application over mobile environmentDesigning Application over mobile environment
Designing Application over mobile environmentMaulik Patel
 
Clustercomputingpptl2 120204125126-phpapp01
Clustercomputingpptl2 120204125126-phpapp01Clustercomputingpptl2 120204125126-phpapp01
Clustercomputingpptl2 120204125126-phpapp01Ankit Soni
 
Cluster computing pptl (2)
Cluster computing pptl (2)Cluster computing pptl (2)
Cluster computing pptl (2)Rohit Jain
 
Reactive Stream Processing for Data-centric Publish/Subscribe
Reactive Stream Processing for Data-centric Publish/SubscribeReactive Stream Processing for Data-centric Publish/Subscribe
Reactive Stream Processing for Data-centric Publish/SubscribeSumant Tambe
 
openEHR Medinfo2015 Brazil Sponsor Session
openEHR Medinfo2015 Brazil Sponsor SessionopenEHR Medinfo2015 Brazil Sponsor Session
openEHR Medinfo2015 Brazil Sponsor SessionopenEHR Foundation
 
20IT703_PDS_PPT_Unit_I.ppt
20IT703_PDS_PPT_Unit_I.ppt20IT703_PDS_PPT_Unit_I.ppt
20IT703_PDS_PPT_Unit_I.pptsuganthi66742
 
De La Salle University Library System Migration: a Strategic Decision
De La Salle University Library System Migration: a Strategic DecisionDe La Salle University Library System Migration: a Strategic Decision
De La Salle University Library System Migration: a Strategic DecisionDe La Salle University Library
 
Chapter-1-IntroDistributeddffsfdfsdf-1.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptxChapter-1-IntroDistributeddffsfdfsdf-1.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptxmeharikiros2
 
Chapter 1-Introduction.ppt
Chapter 1-Introduction.pptChapter 1-Introduction.ppt
Chapter 1-Introduction.pptbalewayalew
 
Distributed system Tanenbaum chapter 1,2,3,4 notes
Distributed system Tanenbaum chapter 1,2,3,4 notes Distributed system Tanenbaum chapter 1,2,3,4 notes
Distributed system Tanenbaum chapter 1,2,3,4 notes SAhammedShakil
 

Similar to E health interoperability layer through kafka (20)

DISTRIBUTED SYSTEM.docx
DISTRIBUTED SYSTEM.docxDISTRIBUTED SYSTEM.docx
DISTRIBUTED SYSTEM.docx
 
Bahmni
BahmniBahmni
Bahmni
 
Bahmni - Open Source EHR System (By Ranjan Sakalley)
Bahmni - Open Source EHR System (By Ranjan Sakalley)Bahmni - Open Source EHR System (By Ranjan Sakalley)
Bahmni - Open Source EHR System (By Ranjan Sakalley)
 
1. Overview of Distributed Systems
1. Overview of Distributed Systems1. Overview of Distributed Systems
1. Overview of Distributed Systems
 
Ds1 int (1)
Ds1 int (1)Ds1 int (1)
Ds1 int (1)
 
Inter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsInter-Process Communication in distributed systems
Inter-Process Communication in distributed systems
 
Distributed system
Distributed systemDistributed system
Distributed system
 
Chapter Introductionn to distributed system .pptx
Chapter Introductionn to distributed system .pptxChapter Introductionn to distributed system .pptx
Chapter Introductionn to distributed system .pptx
 
Comp8 unit7 lecture_slides
Comp8 unit7 lecture_slidesComp8 unit7 lecture_slides
Comp8 unit7 lecture_slides
 
Interoperability Between Healthcare Applications
Interoperability Between Healthcare ApplicationsInteroperability Between Healthcare Applications
Interoperability Between Healthcare Applications
 
Designing Application over mobile environment
Designing Application over mobile environmentDesigning Application over mobile environment
Designing Application over mobile environment
 
Clustercomputingpptl2 120204125126-phpapp01
Clustercomputingpptl2 120204125126-phpapp01Clustercomputingpptl2 120204125126-phpapp01
Clustercomputingpptl2 120204125126-phpapp01
 
Cluster computing pptl (2)
Cluster computing pptl (2)Cluster computing pptl (2)
Cluster computing pptl (2)
 
Reactive Stream Processing for Data-centric Publish/Subscribe
Reactive Stream Processing for Data-centric Publish/SubscribeReactive Stream Processing for Data-centric Publish/Subscribe
Reactive Stream Processing for Data-centric Publish/Subscribe
 
openEHR Medinfo2015 Brazil Sponsor Session
openEHR Medinfo2015 Brazil Sponsor SessionopenEHR Medinfo2015 Brazil Sponsor Session
openEHR Medinfo2015 Brazil Sponsor Session
 
20IT703_PDS_PPT_Unit_I.ppt
20IT703_PDS_PPT_Unit_I.ppt20IT703_PDS_PPT_Unit_I.ppt
20IT703_PDS_PPT_Unit_I.ppt
 
De La Salle University Library System Migration: a Strategic Decision
De La Salle University Library System Migration: a Strategic DecisionDe La Salle University Library System Migration: a Strategic Decision
De La Salle University Library System Migration: a Strategic Decision
 
Chapter-1-IntroDistributeddffsfdfsdf-1.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptxChapter-1-IntroDistributeddffsfdfsdf-1.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptx
 
Chapter 1-Introduction.ppt
Chapter 1-Introduction.pptChapter 1-Introduction.ppt
Chapter 1-Introduction.ppt
 
Distributed system Tanenbaum chapter 1,2,3,4 notes
Distributed system Tanenbaum chapter 1,2,3,4 notes Distributed system Tanenbaum chapter 1,2,3,4 notes
Distributed system Tanenbaum chapter 1,2,3,4 notes
 

Recently uploaded

Presentation for Bella Mahl 2024-03-28-24-MW-Overview-Bella.pptx
Presentation for Bella Mahl 2024-03-28-24-MW-Overview-Bella.pptxPresentation for Bella Mahl 2024-03-28-24-MW-Overview-Bella.pptx
Presentation for Bella Mahl 2024-03-28-24-MW-Overview-Bella.pptxpdamico1
 
METHODS OF ACQUIRING KNOWLEDGE IN NURSING.pptx by navdeep kaur
METHODS OF ACQUIRING KNOWLEDGE IN NURSING.pptx by navdeep kaurMETHODS OF ACQUIRING KNOWLEDGE IN NURSING.pptx by navdeep kaur
METHODS OF ACQUIRING KNOWLEDGE IN NURSING.pptx by navdeep kaurNavdeep Kaur
 
Primary headache and facial pain. (2024)
Primary headache and facial pain. (2024)Primary headache and facial pain. (2024)
Primary headache and facial pain. (2024)Mohamed Rizk Khodair
 
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand UniversityCEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand UniversityHarshChauhan475104
 
Nutrition of OCD for my Nutritional Neuroscience Class
Nutrition of OCD for my Nutritional Neuroscience ClassNutrition of OCD for my Nutritional Neuroscience Class
Nutrition of OCD for my Nutritional Neuroscience Classmanuelazg2001
 
ANTI-DIABETICS DRUGS - PTEROCARPUS AND GYMNEMA
ANTI-DIABETICS DRUGS - PTEROCARPUS AND GYMNEMAANTI-DIABETICS DRUGS - PTEROCARPUS AND GYMNEMA
ANTI-DIABETICS DRUGS - PTEROCARPUS AND GYMNEMADivya Kanojiya
 
SYNDESMOTIC INJURY- ANATOMICAL REPAIR.pptx
SYNDESMOTIC INJURY- ANATOMICAL REPAIR.pptxSYNDESMOTIC INJURY- ANATOMICAL REPAIR.pptx
SYNDESMOTIC INJURY- ANATOMICAL REPAIR.pptxdrashraf369
 
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic AnalysisVarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic AnalysisGolden Helix
 
Apiculture Chapter 1. Introduction 2.ppt
Apiculture Chapter 1. Introduction 2.pptApiculture Chapter 1. Introduction 2.ppt
Apiculture Chapter 1. Introduction 2.pptkedirjemalharun
 
Giftedness: Understanding Everyday Neurobiology for Self-Knowledge
Giftedness: Understanding Everyday Neurobiology for Self-KnowledgeGiftedness: Understanding Everyday Neurobiology for Self-Knowledge
Giftedness: Understanding Everyday Neurobiology for Self-Knowledgeassessoriafabianodea
 
97111 47426 Call Girls In Delhi MUNIRKAA
97111 47426 Call Girls In Delhi MUNIRKAA97111 47426 Call Girls In Delhi MUNIRKAA
97111 47426 Call Girls In Delhi MUNIRKAAjennyeacort
 
low cost antibiotic cement nail for infected non union.pptx
low cost antibiotic cement nail for infected non union.pptxlow cost antibiotic cement nail for infected non union.pptx
low cost antibiotic cement nail for infected non union.pptxdrashraf369
 
April 2024 ONCOLOGY CARTOON by DR KANHU CHARAN PATRO
April 2024 ONCOLOGY CARTOON by  DR KANHU CHARAN PATROApril 2024 ONCOLOGY CARTOON by  DR KANHU CHARAN PATRO
April 2024 ONCOLOGY CARTOON by DR KANHU CHARAN PATROKanhu Charan
 
Music Therapy's Impact in Palliative Care| IAPCON2024| Dr. Tara Rajendran
Music Therapy's Impact in Palliative Care| IAPCON2024| Dr. Tara RajendranMusic Therapy's Impact in Palliative Care| IAPCON2024| Dr. Tara Rajendran
Music Therapy's Impact in Palliative Care| IAPCON2024| Dr. Tara RajendranTara Rajendran
 
History and Development of Pharmacovigilence.pdf
History and Development of Pharmacovigilence.pdfHistory and Development of Pharmacovigilence.pdf
History and Development of Pharmacovigilence.pdfSasikiranMarri
 
Introduction to Sports Injuries by- Dr. Anjali Rai
Introduction to Sports Injuries by- Dr. Anjali RaiIntroduction to Sports Injuries by- Dr. Anjali Rai
Introduction to Sports Injuries by- Dr. Anjali RaiGoogle
 
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdfMedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdfSasikiranMarri
 
PERFECT BUT PAINFUL TKR -ROLE OF SYNOVECTOMY.pptx
PERFECT BUT PAINFUL TKR -ROLE OF SYNOVECTOMY.pptxPERFECT BUT PAINFUL TKR -ROLE OF SYNOVECTOMY.pptx
PERFECT BUT PAINFUL TKR -ROLE OF SYNOVECTOMY.pptxdrashraf369
 
maternal mortality and its causes and how to reduce maternal mortality
maternal mortality and its causes and how to reduce maternal mortalitymaternal mortality and its causes and how to reduce maternal mortality
maternal mortality and its causes and how to reduce maternal mortalityhardikdabas3
 

Recently uploaded (20)

Presentation for Bella Mahl 2024-03-28-24-MW-Overview-Bella.pptx
Presentation for Bella Mahl 2024-03-28-24-MW-Overview-Bella.pptxPresentation for Bella Mahl 2024-03-28-24-MW-Overview-Bella.pptx
Presentation for Bella Mahl 2024-03-28-24-MW-Overview-Bella.pptx
 
METHODS OF ACQUIRING KNOWLEDGE IN NURSING.pptx by navdeep kaur
METHODS OF ACQUIRING KNOWLEDGE IN NURSING.pptx by navdeep kaurMETHODS OF ACQUIRING KNOWLEDGE IN NURSING.pptx by navdeep kaur
METHODS OF ACQUIRING KNOWLEDGE IN NURSING.pptx by navdeep kaur
 
Primary headache and facial pain. (2024)
Primary headache and facial pain. (2024)Primary headache and facial pain. (2024)
Primary headache and facial pain. (2024)
 
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand UniversityCEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
 
Nutrition of OCD for my Nutritional Neuroscience Class
Nutrition of OCD for my Nutritional Neuroscience ClassNutrition of OCD for my Nutritional Neuroscience Class
Nutrition of OCD for my Nutritional Neuroscience Class
 
ANTI-DIABETICS DRUGS - PTEROCARPUS AND GYMNEMA
ANTI-DIABETICS DRUGS - PTEROCARPUS AND GYMNEMAANTI-DIABETICS DRUGS - PTEROCARPUS AND GYMNEMA
ANTI-DIABETICS DRUGS - PTEROCARPUS AND GYMNEMA
 
SYNDESMOTIC INJURY- ANATOMICAL REPAIR.pptx
SYNDESMOTIC INJURY- ANATOMICAL REPAIR.pptxSYNDESMOTIC INJURY- ANATOMICAL REPAIR.pptx
SYNDESMOTIC INJURY- ANATOMICAL REPAIR.pptx
 
Epilepsy
EpilepsyEpilepsy
Epilepsy
 
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic AnalysisVarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
 
Apiculture Chapter 1. Introduction 2.ppt
Apiculture Chapter 1. Introduction 2.pptApiculture Chapter 1. Introduction 2.ppt
Apiculture Chapter 1. Introduction 2.ppt
 
Giftedness: Understanding Everyday Neurobiology for Self-Knowledge
Giftedness: Understanding Everyday Neurobiology for Self-KnowledgeGiftedness: Understanding Everyday Neurobiology for Self-Knowledge
Giftedness: Understanding Everyday Neurobiology for Self-Knowledge
 
97111 47426 Call Girls In Delhi MUNIRKAA
97111 47426 Call Girls In Delhi MUNIRKAA97111 47426 Call Girls In Delhi MUNIRKAA
97111 47426 Call Girls In Delhi MUNIRKAA
 
low cost antibiotic cement nail for infected non union.pptx
low cost antibiotic cement nail for infected non union.pptxlow cost antibiotic cement nail for infected non union.pptx
low cost antibiotic cement nail for infected non union.pptx
 
April 2024 ONCOLOGY CARTOON by DR KANHU CHARAN PATRO
April 2024 ONCOLOGY CARTOON by  DR KANHU CHARAN PATROApril 2024 ONCOLOGY CARTOON by  DR KANHU CHARAN PATRO
April 2024 ONCOLOGY CARTOON by DR KANHU CHARAN PATRO
 
Music Therapy's Impact in Palliative Care| IAPCON2024| Dr. Tara Rajendran
Music Therapy's Impact in Palliative Care| IAPCON2024| Dr. Tara RajendranMusic Therapy's Impact in Palliative Care| IAPCON2024| Dr. Tara Rajendran
Music Therapy's Impact in Palliative Care| IAPCON2024| Dr. Tara Rajendran
 
History and Development of Pharmacovigilence.pdf
History and Development of Pharmacovigilence.pdfHistory and Development of Pharmacovigilence.pdf
History and Development of Pharmacovigilence.pdf
 
Introduction to Sports Injuries by- Dr. Anjali Rai
Introduction to Sports Injuries by- Dr. Anjali RaiIntroduction to Sports Injuries by- Dr. Anjali Rai
Introduction to Sports Injuries by- Dr. Anjali Rai
 
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdfMedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
 
PERFECT BUT PAINFUL TKR -ROLE OF SYNOVECTOMY.pptx
PERFECT BUT PAINFUL TKR -ROLE OF SYNOVECTOMY.pptxPERFECT BUT PAINFUL TKR -ROLE OF SYNOVECTOMY.pptx
PERFECT BUT PAINFUL TKR -ROLE OF SYNOVECTOMY.pptx
 
maternal mortality and its causes and how to reduce maternal mortality
maternal mortality and its causes and how to reduce maternal mortalitymaternal mortality and its causes and how to reduce maternal mortality
maternal mortality and its causes and how to reduce maternal mortality
 

E health interoperability layer through kafka

  • 1. Seamless, decoupled, multi-directional and standards-based interoperability in the E-Health Space Ifunga Ndana MIKA Hotel Kabulonga 11th July 2019 E-Health Interoperability Layer through Kafka
  • 2. Interoperability Layer “An interoperability layer is a system that enables simpler interoperability between disparate information systems. In the context of Electronic Health, these are Health Information Systems (HISs) such as a Client Registry, Lab Information System, Facility Registry and a shared Health Record.” – https://ohie.org 2
  • 3. Quick Outline •We will begin by discussing the Interoperability Layer based on the OpenHIE architecture as a reference point. •Following this we will touch on how a technology called Apache Kafka can be applied to achieve seamless, decoupled, multi-directional and standards based interoperability in an effective manner. 3
  • 4. Architecture & Principles “The fundamental basis of interoperability is in harmonizing the context with which information is collected in so that it’s broadly reusable to a much larger set of stakeholders.” “The OpenHIE architecture supports interoperability by creating a framework that maximally leverages health information standards, enables flexible implementation by country partners, and supports interchangeability of individual components.” https://ohie.org/architecture/ 4
  • 5. An Interoperability Layer must: •Harmonize the context with which information is collected; •Utilize Health information standards (HL7, LOINC, ICD10); •Be broadly reusable (plug & play); •Cater to a large set of stakeholders; •Allow for Flexible/independent implementation within each system; •Allow for interchangeability of individual components; and •Allow for identification (Authorization/Authentication); 5
  • 6. What is Apache Kafka®? •Apache Kafka® is a distributed data streaming platform. •It was originally developed by LinkedIn before being donated to the Apache Foundation as an open-source project. •The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds •Kafka has several features which make it well suited for use as an interoperability layer. 6
  • 7. How does Apache Kafka® work? Kafka leverages two system design principles for its core implementation: Message Queuing and The Publisher/Subscriber model “Message queues allow different parts of an ecosystem (e.g. Microservices / disparate systems) to communicate and process operations asynchronously. A message queue provides a buffer which stores messages for a defined period, and endpoints (connections) that allow software components to communicate with the queue in order to send and receive messages.” – Amazon “The Publisher-Subscriber pattern enables an application to automatically announce events to multiple interested consumers asynchronously, without coupling the senders to the receivers.” - Microsoft 7
  • 8. Apache Kafka® - Topics • In Kafka, one or more Message Queues can be defined. These Message Queues are called Topics. All messages must be written (Published) to and also read (Subscribed) from specific Topics • One or multiple systems can Subscribe to one or multiple Topics. One or multiple systems can Publish to one or multiple Topics. In short communication can be multi-directional. • Any systems in the space will only need to interface with Kafka (the Interoperability Layer) and not each other directly. These systems will be completely decoupled. • This way the development, upgrade and roll-out of each system is completely independent of each other. • Furthermore, this allows the Interoperability Layer to be plug and play as any number of systems can be added to the ecosystem as long as they adhere to the Topic Message Template. 8
  • 9. HL7 2X Messaging Standards • Kafka’s use of Topics is well suited to the HL7 2X Messaging Standard developed by an organization called Health Level Seven International • HL7 has standard Message Templates, each covering specific domains within the E-Health space. For example, the message template for a Patient Registration is ADT_A04 while the message template for a Lab Order is OML_O21. • In the Interoperability Layer, the HL7 Message Templates would be used to define Topics • One or more systems would Subscribe to relevant Topics to automatically read all incoming messages on the queue. • Similarly one or more systems would Publish messages to specific Topics as well, these messages would then be automatically broadcast to ALL subscribing systems without need for manual polling or system notifications • With this in place, and using reliable Patient Identification, a system such as DISA could post a Lab Result to the relevant Topic (ORL_O22). Following this, SmartCare (and indeed any other subscribed system) would automatically be made aware of a new message on the ORL_O22 Queue and process this it, updating the client record. 9
  • 10. HL7 2X Messaging Standards • HL7 Messaging Templates would allow each system in the space to have unique/independent underlying implementations. The only requirement is that outgoing messages be encoded in standard HL7 Message Templates. • With this systems such as SmartCare or ELMIS would not have to modify their underlying data structures, rather, only need to expose their information in a standard HL7 Message Template that any other system can translate. • Similarly, systems such as SmartCare or ELMIS could have their underlying data structures or indeed technology completely rewritten from the ground up without compromising the ecosystem granted that the correct HL7 Message Template is adhered to. • In short, adopting HL7 Messaging (as well as other standards such as LOINC, ICPC2 & ICD10) adds both consistency and flexibility to the entire E-Health ecosystem 10
  • 11. HL7 2X Messaging Standards • HL7 Message Templates are self-contained. Meaning each message has enough meta-data to satisfy a request without need for follow-up calls. • Specifically each HL7 Message Template has a MSH (Header) section • The Header Includes: • The sending application e.g. SmartCare • The sending application version e.g. August 2019 Release • The sending facility e.g. Chilenje 1st Level Hospital (System level ID for consistency) • The sending timestamp • Furthermore, most messages include a PV1 (Patient Visit), a PID (Patient Identification) and a PID1 (Patient Demographics) section • In short, if a system like DISA got an HL7 Lab Order Message from SmartCare it would not need to call SmartCare for additional information such as the gender or age of a client as all of this would be provided upfront. • In short HL7 is very efficient for use in Interoperability • HL7 2X is a separate topic which I encourage further reading on – Carepoint Health 11
  • 12. HL7 Messages - Sample MSH|^~&|OF|Chemistry|AM|Automation|200309060825||OML^O21^OML_O21|msgOF101|T|2.5.1|123||||USA||EN PID|1||12345^5^M10^Memphis_Hosp^PI||EVERYMAN^ADAM^^JR^^^L||19800101|M PV1|1|O|Ward|||||||||||||||12345 ORC|NW|||666^gastric|||||200309060824|222221^NURSE^NANCY||||||||||| Entero-gastric^^^^^^FI^^^EG02 TQ1|||||||||A OBR||555_1^chemistry||GLUC^GLUCOSE^L||||||1234^BLEEDER|S|||||222222^PHYSICIAN^^^^DR |821 SPM|1|123456781^gastric ||SER|||||||P||||||200309060735|200309060821||||||||1 ORC|NW|||666^gastric|||||200309060710|222221^NURSE^NANCY||||||||||| Entero-gastric^^^^^^FI^^^EG02 TQ1|||||||||A OBR||555_2^chemistry||GLUC^GLUCOSE^L||||||1234^BLEEDER|S||||| 222222^PHYSICIAN^^^^DR|821 SPM|1|123456782^gastric||SER|||||||P||||||200309060755|200309060821||||||||1 12
  • 13. Use Case – Lab Orders, Results and Pharmacy Prescriptions • We have SmartCare which is the National EHR sitting in multiple facilities • During the provision of care Lab Orders would be created within SmartCare • Following this, we would expect these Lab Orders (with all relevant information) to be shared with a dedicated Lab Information System, in this case DISA • Lab Technicians should be able to see all incoming Lab Orders in DISA, and based on the availability of samples, run various tests • These Lab Orders should be entered in DISA and shared back to SmartCare • It would be beneficial to monitor the flow of all lab orders and lab results at higher aggregation levels • For this, a dedicated Statistics Aggregation Application called Lab Trans would be expected to be aware of all these transactions 13
  • 14. Use Case – Lab Orders, Results and Pharmacy Prescriptions 14
  • 15. Benefits • Multiple systems can co-exist in the same space. • These systems all speak the same "language" due to the use of standardized HL7 2X messages • New systems can be added to the space without major disruption, this is because the systems are decoupled • Full transparency at national aggregation level (MOH has visibility on all shared messages) • If any system is down, the other systems continue to function regardless • Backlogs (for both the sending & receiving of messages) are resolved automatically when the system comes back online • Every system can be extended, upgraded, rewritten and deployed independently of each other. 15
  • 16. Benefits - Single source of truth and audit-trail • All messages coming to all topics defined in Kafka can have a set storage period applied. While the default is 7 days this can be set to several years or even infinity. Alternatively this data can be configured to be written to a conventional database such as MySQL or PostgreSQL for backup through “Kafka Connectors” (a means of directly outputting Kafka messages to Database Tables) • This means that through Kafka the Ministry of Health and relevant stakeholders could have access to every message sent by every system in one location. • Furthermore this allows newly introduced or existing systems to access all historic data for backlog or ETL/re-importing purposes. 16
  • 17. Benefits - A mature technology with robust support and documentation • Kafka is used in production by many of the worlds largest organisations (LinkedIn, Uber, Netflix, Twitter etc) • Kafka can be easily integrated into existing systems through libraries developed by Confluence (official Kafka maintainer) and organisations like Microsoft and Oracle. • Once integrated into systems developer effort would be dedicated to the creation and parsing of HL7 Message Templates only. Polling, Reading, Writing, Synchronization and Offsets are all handled by Kafka leaving implementors to focus more on the messages rather than on low level technology. • Kafka is free to use and open-source with no need for licensing fees • Kafka can be hosted on-premise, within a Data-Centre (ZNDC) or on the cloud. 17
  • 18. Code Sample – Basic Producer in C# 18https://github.com/confluentinc/confluent-kafka-dotnet
  • 19. Code Sample – Basic Consumer in C# 19 https://github.com/confluentinc/confluent-kafka-dotnet
  • 20. Code Samples – Other Languages 20 •Code samples for more languages Java, Kotlin & C# can be found here: https://github.com/confluentinc/examples