SlideShare a Scribd company logo
A GraphQL approach to Healthcare Information
Exchange with HL7 FHIR
Suresh Kumar Mukhiya, Fazle Rabbi, Ka I Violet Pun,
Adrian Rutle, Yngve Lamo
� skmu@hvl.no
November 5, 2019
(HVL) Health Information Exchange November 5, 2019 1 / 34
Who are we?
Our aim is to improve public mental health with Adaptive
technologies (ICT) and psychological treatments.
Team of Domain experts, Software Engineers, ML engineers, HCI
engineers and Industry.
(HVL) Health Information Exchange November 5, 2019 2 / 34
Why is Health Information(HI) management so hard?
Health
Information Management
Complex health information
Life and death
Confidentiality
Diversity of information
Free Text
Medication handling
Questionnaire, Checklist etc
Images, Videos, Files etc
Diversity among healthcare professionals
Mobile population
Clinical diversity
Continually growing
(HVL) Health Information Exchange November 5, 2019 3 / 34
Why do we need to structure HI?
Avoid repetitive data entry
Retrieval and overview
Reuse of record info
For technical integration
For information exchange
Clinical decision support
Quality indicators
Management data
(HVL) Health Information Exchange November 5, 2019 4 / 34
How can we structure HI?
By using of consistent standards defining syntactic and semantic meaning
of information being exchanged.
(HVL) Health Information Exchange November 5, 2019 5 / 34
Health Information Interchange
REST
API
REpresentational State Transfer
CORBA
Common Object Re-
quest Broker Architecture
SOAP Simple Object Access Protocol
RPC Remote procedure call
(HVL) Health Information Exchange November 5, 2019 6 / 34
Issues with RESTful API
Query Complexity
Overfetching
Under-fetching and n+1 request problem
Modifiability
API versioning
(HVL) Health Information Exchange November 5, 2019 7 / 34
RESTFul approach - Patients
- Base URL: http://hapi.fhir.org/baseDstu3
GET /Patient All Patients
POST /Patient Create Patient
GET /Patient/649227 Single Patient
PUT /Patient/649227 Update Patient
DELETE /Patient/649227 Delete Patient
https://www.hl7.org/fhir/resourcelist.html lists 143 HL7 FHIR
resources.
Assuming Best Case, each resources needs 5 endpoints (CRUD)
resulting (143 x 5 = 715) endpoints.
Worst Case: Custom endpoints based on custom requirements. Eg.
all patients over 30 years, all patients only from Bergen etc.
(HVL) Health Information Exchange November 5, 2019 8 / 34
Self Assessment App
1. (name, description), 2. (name, description, title), 3. Question and options
(HVL) Health Information Exchange November 5, 2019 9 / 34
Response From REST - Overfetching
Getting more information than required - overfetching.
Getting less information than required - Underfetching
Need for addition HTTP request to get all the required resource - n+1
request problem
(HVL) Health Information Exchange November 5, 2019 10 / 34
Response From REST - Visualization
(HVL) Health Information Exchange November 5, 2019 11 / 34
API versioning
the requirements of clients are
often dynamic.
can modify the existing
endpoints or create endpoints
to only fetch required
resources. BUT requirements
changes quickly.
modification quickly becomes
inflexible as one need to think
about how to support existing
customers while providing new
functionality.
(HVL) Health Information Exchange November 5, 2019 12 / 34
Our solution
GraphQL
GraphQL developed by Facebook and has been embraced users including
Coursera, GitHub, Pinterest, Neo4J, PayPal and others.
Prototype
Web Client
Authorization
Server
Resource
Server
Mobile Client
(HVL) Health Information Exchange November 5, 2019 13 / 34
Architecture Centric Development (ACD)
(HVL) Health Information Exchange November 5, 2019 14 / 34
Mapping HL7 FHIR resources to GraphQL schema
Algorithm 1: Mapping HL7 FHIR resources to GraphQL schema
Input: HL7 Resource
Output: GraphQL Schema
1 function recursive_hl7fhir_graphql_mapper (Resource)
2 schema = {};
3 foreach field ∈ HL7 Resource.fields do
4 switch Resource.field do
5 case field.Type is ScalarTypeDefinition do
6 if field.cardinality is 0,1 then
7 add_to_schema(field, type)
8 end if
9 if field.cardinality is 0,* then
10 add_to_schema_as_list(field, type)
11 end if
12 end case
13 case field.Type is EnumTypeDefinition do
14 if EnumTypeDefinition already exists then
15 - reference to schema
16 else
17 - define_new_type_enum(**args)
18 - reference to schema
19 end if
20 end case
21 case field.Type is Custom OR field.Type is HL7 FHIR Resource do
22 if Custom OR Resource already exists then
23 - reference to schema
24 else
25 - define new type Resource
26 - reference to schema
27 - recursive_hl7fhir_graphql_mapper(Resource)
28 end if
29 end case (HVL) Health Information Exchange November 5, 2019 15 / 34
Mapping HL7 FHIR with GraphQL schema
Constraint Model
t ype Per son {
name: St r i ng
pi ct ur e( si ze: I nt ) : Ur l
}
Resource
Element
Definition
Data Types
Profile
Conformance
Statement
ValueSet
Code System
Information Model Terminology Model
GraphQL Schema
RootOperationTypeDefinition
Types
ObjectTypeDefinition
ScalarTypeDefinition
EnumerationTypeDefinition
Field
NameDataTypeArguments
<<mapsTo>>
<<mapsTo>>
<<mapsTo>>
schema {
quer y: MyQuer yRoot Type
}
t ype MyQuer yRoot Type {
someFi el d: St r i ng
}
Cardinality
ScalarType EnumType
(HVL) Health Information Exchange November 5, 2019 16 / 34
Case Study - Questionnaire
Questionnaire Item AnswerOption
Code
Response
questions answerOptions
responseItems
[0..*][1..*]
Score
[=] answer
[inj]
[1..*]
Class DataType
attribute
reference
hasCode
hasScore
Model, M1
Model, M0
Patient
questionnaire
[1..1]
[1..1]
[1..*]
ResponseItem
source
(HVL) Health Information Exchange November 5, 2019 17 / 34
Schema Definition
type Questionnaire {
resourceType: String
url: String
identifier: [Identifier]
version: String
name: String
title: String
status: statusEnumType
experimental: Boolean
publisher: String
description: String
item: [QuestionnaireItem]
}
type Identifier {
system: String
value: String
use: indentifierEnumType
}
type QuestionnaireItem {
linkId: String
prefix: String
text: String
type:
QuestionnaireItemTypeEnum
required: Boolean
answerValueSet: [ValueSet]
}
type ValueSet {
resourceType: String
url: String
identifier: [Identifier]
version: String
name: String
title: String
status: statusEnumType
experimental: Boolean
publisher: String
description: String
compose: Compose
}
type Compose {
inactive: Boolean
include: [ComposeInclude]
}
type ComposeInclude {
concept: [
ComposeIncludeConcept
]
}
type ComposeIncludeConcept {
code: coding
display: String
extension: [Extension]
}
type Extension {
uri: String
valueDecimal: Float
}
enum statusEnumType {
draft
active
retired
unknown
}
enum indentifierEnum {
usual
official
temp
secondary
old
}
enum TypeEnum {
group
display
boolean
decimal
integer
date
dateTime +
}
type Query {
(HVL) Health Information Exchange November 5, 2019 18 / 34
Evaluation of Response size and Time
4.07
2.26
2.0
4.0
6.0
8.0
NumberofKilobytes
3.33
1.59
7.42
4.34
4.22
2.5
6.94
3.56
PHQ-9
GAD7
ASRSV1
M
DI
ASRM
S
90.1
79.5
80.0
90.0
100.0
110.0
Timeinmilliseconds
88.1
80.7
109.3
91.9
106.9
85.4
94.5
85.8
PHQ-9
GAD7
ASRSV1
M
DI
ASRM
S
94.5
Kilobytes fetched (REST)
Kilobytes used (GraphQL)
Time to fetch all attributes (REST)
Time to fetch required attributes (GraphQL)
(HVL) Health Information Exchange November 5, 2019 19 / 34
Throughput and response time with RESTful approach
(HVL) Health Information Exchange November 5, 2019 20 / 34
Throughput and response time with GraphQL
(HVL) Health Information Exchange November 5, 2019 21 / 34
Performance Test statistics
Throughput :average number of HTTP/s requests per second
generated by the test
Response Time: average amount of time from first bit sent to the
network card to the last byte received by the client.
(HVL) Health Information Exchange November 5, 2019 22 / 34
Challenge: Circular relationship complexity
type ThreadDefinition {
title: String
text(first: Int, after: String): [
MessageDefinition]
}
type MessageDefinition {
text: String
thread: ThreadDefinition
}
type Query {
thread(id: ID!): ThreadDefinition
}
query complicatedQuery {
thread(id: "ID") {
text(first: 100000) {
thread {
text(first: 100000) {
thread {
# ...repeat 100000 (n) times
...
}
}
}
}
}
}
}
(HVL) Health Information Exchange November 5, 2019 23 / 34
Challenge: Schema Duplication
schema definition based on the choice of the database being used
(this project uses mongoDB, so schema are based on mongoose 1);
schema definition for a GraphQL endpoint.
Good thing is community is already aware of both issues. And there
are solutions being worked out currently.
1
https://mongoosejs.com/
(HVL) Health Information Exchange November 5, 2019 24 / 34
Future Directions
Schema Stitching or Schema federation to promote interoperability
between current health systems and legacy systems.
Creation of adaptive Internet-Delivered Psychological Interventions
(IDPT) using GraphQL based HIE.
Create a comprehensible dashboard for better visualization for
therapists.
Further research in both development of Adaptive system and clinical
trials are required.
(HVL) Health Information Exchange November 5, 2019 25 / 34
Conclusion: ISO/IEC 25000.ISO/IEC 25000:2005
Interoperability HL7 FHIR
Security SMART on FHIR
Modifiability SOA-Oriented architecture, GraphQL
Scalability SOA-Oriented architecture
Testability TDD Approach
(HVL) Health Information Exchange November 5, 2019 26 / 34
Thank You
skmu@hvl.no
(HVL) Health Information Exchange November 5, 2019 27 / 34
HL7 FHIR ER Diagram
Or gani zat i on
i dent i f i er
par t Of
Pat i ent
i dent i f i er
managi ngOr gani zat i on
gener al Pr act i t i oner
Quest i onnai r e
i dent i f i er
answer Val ueSet
Pr act i t i oner
i dent i f i er
Car ePl an
i dent i f i er
subj ect
0. . . *
0. . . 1
1. . . 1
Val ueSet
i dent i f i er
0. . . 1
Quest i onnai r eResponse
basedOn
par t Of
quest i onnai r e
Obser vat i on
i dent i f i er
basedOn
subj ect
0. . . 1
0. . . *
0. . . *
0. . . * 0. . . 1
(HVL) Health Information Exchange November 5, 2019 28 / 34
How does GraphQL work?FrontendClient
GraphQLquery
Executiontree
HTTP Request
Query
Mutation
Subscription
BackendOperations
Resolver
Resolver
Resolver
Resolver
Database
DataStore
DBModels
DBConnectors
(HVL) Health Information Exchange November 5, 2019 29 / 34
Resolvers
What is a resolver?
A resolver is a function that resolves a value for a type or field in a
schema. If an Object is returned, execution continues to the next child
field. If a scalar is returned (typically at a leaf node), execution completes.
If null is returned, execution halts and does not continue.
Executing queries
Parse: A query is parsed into an abstract syntax tree (or AST).
Validate: The AST is validated against the schema. Checks for
correct query syntax and if the fields exist.
Execute: The runtime walks through the AST, starting from the root
of the tree, invokes resolvers, collects up results, and emits JSON.
(HVL) Health Information Exchange November 5, 2019 30 / 34
References I
Duane Bender and Kamran Sartipi.
HL7 FHIR: An agile and RESTful approach to healthcare information exchange.
In Proceedings of CBMS 2013 - 26th IEEE International Symposium on Computer-Based Medical Systems, 2013.
M. Bryant.
Graphql for archival metadata: An overview of the ehri graphql api.
In 2017 IEEE International Conference on Big Data (Big Data), pages 2225–2230, Dec 2017.
ISO/IEC 25000.
ISO/IEC 25000:2005 Software Engineering - Software product Quality Requirements and Evaluation (SQuaRE) - Guide
to SQuaRE, 2005.
R. Srinivasan.
RPC: Remote Procedure Call Protocol Specification Version 2.
RFC 1831, DDN Network Information Center, 1995.
Roy Fielding.
Architectural Styles and the Design of Network-based Software Architectures.
PhD thesis, 2000.
Hl7 FHIR SMART app launch, Retrieved December 28.
Roberto Rodriguez-Echeverria, Javier Luis Cánovas Izquierdo, and Jordi Cabot.
Towards a UML and IFML Mapping to GraphQL.
In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in
Bioinformatics), 2018.
Facebook.
Graphql: A query language for apis, Retrieved April 11, 2019.
(HVL) Health Information Exchange November 5, 2019 31 / 34
References II
Ka I Pun Yngve Lamo Suresh Kumar Mukhiya, Fazle Rabbi.
An architectural design forself-reporting e-health systems.
In ICSE 2019 Proceedings in the IEEE Digital Library, 2018.
Hevner, March, Park, and Ram.
Design Science in Information Systems Research.
MIS Quarterly,, 2004.
H. Ulrich, J. Kern, D. Tas, A. K. Kock-Schoppenhauer, F. Ückert, J. Ingenerf, and M. Lablans.
QL 4 MDR: A GraphQL query language for ISO 11179-based metadata repositories.
BMC Medical Informatics and Decision Making, 2019.
Jun Li, Yingfei Xiong, Xuanzhe Liu, and Lu Zhang.
How does web service API evolution affect clients?
In Proceedings - IEEE 20th International Conference on Web Services, ICWS 2013, 2013.
Khalil Khoumbati and Marinos Themistocleous.
Integrating the IT Infrastructures in Healthcare Organisations : a Proposition of Influential Factors.
Electronic Journal of e-Government, 2006.
Yigang Xu, Dominique Sauquet, Eric Zapletal, David Lemaitre, and Patrice Degoulet.
Integration of medical applications: The ’mediator service’ of the SynEx platform.
International Journal of Medical Informatics, 2000.
Olaf Hartig and Jorge Pérez.
Semantics and Complexity of GraphQL .
2018.
(HVL) Health Information Exchange November 5, 2019 32 / 34
References III
Nat Sakimura, John Bradley, Michael B. Jones, Breno Medeiros, and Chuck Mortimore.
Final: OpenID Connect Core 1.0 incorporating, 2014.
P. Ferguson and D. Senie.
Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing.
Technical report, 2000.
Cross-origin Resource Sharing.
Cross-Origin Resource Sharing.
Options, 2011.
Suresh Kumar Mukhiya and Khac Hoang Hung.
An Architectural Style for Single Page Scalable Modern Web Application.
5(4):6–13, 2018.
ISO/IEC 25000.
ISO/IEC 25000:2005 Software Engineering - Software product Quality Requirements and Evaluation (SQuaRE) - Guide
to SQuaRE, 2005.
Scott Ambler.
Process Patterns Building Large-Scale Systems Using Object Technology.
1998.
(HVL) Health Information Exchange November 5, 2019 33 / 34
A GraphQL approach to Healthcare Information
Exchange with HL7 FHIR
Suresh Kumar Mukhiya, Fazle Rabbi, Ka I Violet Pun,
Adrian Rutle, Yngve Lamo
� skmu@hvl.no
November 5, 2019
(HVL) Health Information Exchange November 5, 2019 34 / 34

More Related Content

What's hot

Strategic Enterprise Architecture Roadmap
Strategic Enterprise Architecture RoadmapStrategic Enterprise Architecture Roadmap
Strategic Enterprise Architecture Roadmap
Joaquin Marques
 
Best Practices for a CoE
Best Practices for a CoEBest Practices for a CoE
Best Practices for a CoE
Splunk
 
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
marksimpsongw
 
Supplier Management 101: Drive Spend Toward Preferred Suppliers and Reduce Risk
Supplier Management 101: Drive Spend Toward Preferred Suppliers and Reduce Risk Supplier Management 101: Drive Spend Toward Preferred Suppliers and Reduce Risk
Supplier Management 101: Drive Spend Toward Preferred Suppliers and Reduce Risk
SAP Ariba
 
IT4IT / DevOps Tooling Landscape 2022
IT4IT / DevOps Tooling Landscape 2022 IT4IT / DevOps Tooling Landscape 2022
IT4IT / DevOps Tooling Landscape 2022
Rob Akershoek
 
How will you create a supplier management software.pptx
How will you create a supplier management software.pptxHow will you create a supplier management software.pptx
How will you create a supplier management software.pptx
ssuser50762b
 
SAP GRC
SAP GRC SAP GRC
Take the Next Step to S/4HANA with "RISE with SAP"
Take the Next Step to S/4HANA with "RISE with SAP"Take the Next Step to S/4HANA with "RISE with SAP"
Take the Next Step to S/4HANA with "RISE with SAP"
panayaofficial
 
Product Catalog and IT Service Management
Product Catalog and IT Service ManagementProduct Catalog and IT Service Management
Product Catalog and IT Service Management
Drew Madelung
 
The Digital Decoupling Journey | John Kriter, Accenture
The Digital Decoupling Journey | John Kriter, AccentureThe Digital Decoupling Journey | John Kriter, Accenture
The Digital Decoupling Journey | John Kriter, Accenture
HostedbyConfluent
 
Core Capabilities Of RPA Center Of Excellence Operating Framework
Core Capabilities Of RPA Center Of Excellence Operating FrameworkCore Capabilities Of RPA Center Of Excellence Operating Framework
Core Capabilities Of RPA Center Of Excellence Operating Framework
SlideTeam
 
SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)
Harsh Jegadeesan
 
Transform Procurement with the SAP S/4HANA Digital Core and SAP Ariba Solutions
Transform Procurement with the SAP S/4HANA Digital Core and SAP Ariba SolutionsTransform Procurement with the SAP S/4HANA Digital Core and SAP Ariba Solutions
Transform Procurement with the SAP S/4HANA Digital Core and SAP Ariba Solutions
SAP Ariba
 
Best Practices to Administer, Operate, and Monitor an SAP HANA System
Best Practices to Administer, Operate, and Monitor an SAP HANA SystemBest Practices to Administer, Operate, and Monitor an SAP HANA System
Best Practices to Administer, Operate, and Monitor an SAP HANA System
SAPinsider Events
 
Migration to sap s4 hana
Migration to sap s4 hanaMigration to sap s4 hana
Migration to sap s4 hana
Марина Ковалёва
 
SysML v2 and the Next Generation of Modeling Languages
SysML v2 and the Next Generation of Modeling LanguagesSysML v2 and the Next Generation of Modeling Languages
SysML v2 and the Next Generation of Modeling Languages
Ed Seidewitz
 
SAP Business One
SAP Business OneSAP Business One
SAP Business One
Stridely Solutions
 
Structured Approach to Solution Architecture
Structured Approach to Solution ArchitectureStructured Approach to Solution Architecture
Structured Approach to Solution Architecture
Alan McSweeney
 
SAP Implementation Phase!!
SAP Implementation Phase!!SAP Implementation Phase!!
SAP Implementation Phase!!
Ainul Hossain Tushar
 

What's hot (20)

Strategic Enterprise Architecture Roadmap
Strategic Enterprise Architecture RoadmapStrategic Enterprise Architecture Roadmap
Strategic Enterprise Architecture Roadmap
 
Best Practices for a CoE
Best Practices for a CoEBest Practices for a CoE
Best Practices for a CoE
 
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
 
Supplier Management 101: Drive Spend Toward Preferred Suppliers and Reduce Risk
Supplier Management 101: Drive Spend Toward Preferred Suppliers and Reduce Risk Supplier Management 101: Drive Spend Toward Preferred Suppliers and Reduce Risk
Supplier Management 101: Drive Spend Toward Preferred Suppliers and Reduce Risk
 
IT4IT / DevOps Tooling Landscape 2022
IT4IT / DevOps Tooling Landscape 2022 IT4IT / DevOps Tooling Landscape 2022
IT4IT / DevOps Tooling Landscape 2022
 
How will you create a supplier management software.pptx
How will you create a supplier management software.pptxHow will you create a supplier management software.pptx
How will you create a supplier management software.pptx
 
SAP GRC
SAP GRC SAP GRC
SAP GRC
 
Take the Next Step to S/4HANA with "RISE with SAP"
Take the Next Step to S/4HANA with "RISE with SAP"Take the Next Step to S/4HANA with "RISE with SAP"
Take the Next Step to S/4HANA with "RISE with SAP"
 
Product Catalog and IT Service Management
Product Catalog and IT Service ManagementProduct Catalog and IT Service Management
Product Catalog and IT Service Management
 
The Digital Decoupling Journey | John Kriter, Accenture
The Digital Decoupling Journey | John Kriter, AccentureThe Digital Decoupling Journey | John Kriter, Accenture
The Digital Decoupling Journey | John Kriter, Accenture
 
Core Capabilities Of RPA Center Of Excellence Operating Framework
Core Capabilities Of RPA Center Of Excellence Operating FrameworkCore Capabilities Of RPA Center Of Excellence Operating Framework
Core Capabilities Of RPA Center Of Excellence Operating Framework
 
SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)
 
Transform Procurement with the SAP S/4HANA Digital Core and SAP Ariba Solutions
Transform Procurement with the SAP S/4HANA Digital Core and SAP Ariba SolutionsTransform Procurement with the SAP S/4HANA Digital Core and SAP Ariba Solutions
Transform Procurement with the SAP S/4HANA Digital Core and SAP Ariba Solutions
 
Best Practices to Administer, Operate, and Monitor an SAP HANA System
Best Practices to Administer, Operate, and Monitor an SAP HANA SystemBest Practices to Administer, Operate, and Monitor an SAP HANA System
Best Practices to Administer, Operate, and Monitor an SAP HANA System
 
QlikView
QlikViewQlikView
QlikView
 
Migration to sap s4 hana
Migration to sap s4 hanaMigration to sap s4 hana
Migration to sap s4 hana
 
SysML v2 and the Next Generation of Modeling Languages
SysML v2 and the Next Generation of Modeling LanguagesSysML v2 and the Next Generation of Modeling Languages
SysML v2 and the Next Generation of Modeling Languages
 
SAP Business One
SAP Business OneSAP Business One
SAP Business One
 
Structured Approach to Solution Architecture
Structured Approach to Solution ArchitectureStructured Approach to Solution Architecture
Structured Approach to Solution Architecture
 
SAP Implementation Phase!!
SAP Implementation Phase!!SAP Implementation Phase!!
SAP Implementation Phase!!
 

Similar to A GraphQL approach to Healthcare Information Exchange with HL7 FHIR

Anish Arora - Playing With FHIR - A Practical Approach
Anish Arora - Playing With FHIR - A Practical ApproachAnish Arora - Playing With FHIR - A Practical Approach
Anish Arora - Playing With FHIR - A Practical Approach
HealthDev
 
Hl7 v2 messaging conformance jan 2011
Hl7 v2 messaging conformance jan 2011Hl7 v2 messaging conformance jan 2011
Hl7 v2 messaging conformance jan 2011
Abdul-Malik Shakir
 
HL7 Survival Guide - Chapter 3 - The Heart of the Matter: Data Formats, Workf...
HL7 Survival Guide - Chapter 3 - The Heart of the Matter: Data Formats, Workf...HL7 Survival Guide - Chapter 3 - The Heart of the Matter: Data Formats, Workf...
HL7 Survival Guide - Chapter 3 - The Heart of the Matter: Data Formats, Workf...
Caristix
 
Hl7 & FHIR
Hl7 & FHIRHl7 & FHIR
Edifecs- warming up to fhir
Edifecs- warming up to fhirEdifecs- warming up to fhir
Edifecs- warming up to fhir
Edifecs Inc
 
Interfaces Demo Eclipsys Baroda India Part One
Interfaces Demo  Eclipsys Baroda India Part OneInterfaces Demo  Eclipsys Baroda India Part One
Interfaces Demo Eclipsys Baroda India Part OneMonisha Ghuman
 
Standards Driven Healthcare Information Integration Infrastructure
Standards Driven Healthcare Information Integration InfrastructureStandards Driven Healthcare Information Integration Infrastructure
Standards Driven Healthcare Information Integration Infrastructure
Abdul-Malik Shakir
 
Ontologising the Health Level Seven (HL7) Standard
Ontologising the Health Level Seven (HL7) StandardOntologising the Health Level Seven (HL7) Standard
Ontologising the Health Level Seven (HL7) Standard
Ratnesh Sahay
 
HL7 - Whats Hot and Whats Not
HL7 - Whats Hot and Whats NotHL7 - Whats Hot and Whats Not
HL7 - Whats Hot and Whats Not
Health Informatics New Zealand
 
Interoperability, the rise of HL7 and FHIR
Interoperability, the rise of HL7 and FHIRInteroperability, the rise of HL7 and FHIR
Interoperability, the rise of HL7 and FHIR
Suranga Nath Kasthurirathne
 
Hl7 reference information model
Hl7 reference information modelHl7 reference information model
Hl7 reference information model
Abdul-Malik Shakir
 
What are 3 of the main functions of the HL7 StandardDiscuss the i.pdf
What are 3 of the main functions of the HL7 StandardDiscuss the i.pdfWhat are 3 of the main functions of the HL7 StandardDiscuss the i.pdf
What are 3 of the main functions of the HL7 StandardDiscuss the i.pdf
rbjain2007
 
Hl7 Standards
Hl7 StandardsHl7 Standards
Hl7 Standards
Hl7 StandardsHl7 Standards
Nursing Practice Literature Evaluation Table Article Paper.pdf
Nursing Practice Literature Evaluation Table Article Paper.pdfNursing Practice Literature Evaluation Table Article Paper.pdf
Nursing Practice Literature Evaluation Table Article Paper.pdf
bkbk37
 
Population Stratification Made Easy, Quick, and Transparent for Anyone
Population Stratification Made Easy, Quick, and Transparent for AnyonePopulation Stratification Made Easy, Quick, and Transparent for Anyone
Population Stratification Made Easy, Quick, and Transparent for Anyone
Health Catalyst
 

Similar to A GraphQL approach to Healthcare Information Exchange with HL7 FHIR (20)

Anish Arora - Playing With FHIR - A Practical Approach
Anish Arora - Playing With FHIR - A Practical ApproachAnish Arora - Playing With FHIR - A Practical Approach
Anish Arora - Playing With FHIR - A Practical Approach
 
Innovation pre-empts Standardization – The FHIR Experience
Innovation pre-empts Standardization – The FHIR ExperienceInnovation pre-empts Standardization – The FHIR Experience
Innovation pre-empts Standardization – The FHIR Experience
 
Hl7 v2 messaging conformance jan 2011
Hl7 v2 messaging conformance jan 2011Hl7 v2 messaging conformance jan 2011
Hl7 v2 messaging conformance jan 2011
 
HL7 Survival Guide - Chapter 3 - The Heart of the Matter: Data Formats, Workf...
HL7 Survival Guide - Chapter 3 - The Heart of the Matter: Data Formats, Workf...HL7 Survival Guide - Chapter 3 - The Heart of the Matter: Data Formats, Workf...
HL7 Survival Guide - Chapter 3 - The Heart of the Matter: Data Formats, Workf...
 
Hl7 & FHIR
Hl7 & FHIRHl7 & FHIR
Hl7 & FHIR
 
Exploring HL7 CDA & Its Structures
Exploring HL7 CDA & Its StructuresExploring HL7 CDA & Its Structures
Exploring HL7 CDA & Its Structures
 
Edifecs- warming up to fhir
Edifecs- warming up to fhirEdifecs- warming up to fhir
Edifecs- warming up to fhir
 
Interfaces Demo Eclipsys Baroda India Part One
Interfaces Demo  Eclipsys Baroda India Part OneInterfaces Demo  Eclipsys Baroda India Part One
Interfaces Demo Eclipsys Baroda India Part One
 
Hl7 overview
Hl7 overviewHl7 overview
Hl7 overview
 
Standards Driven Healthcare Information Integration Infrastructure
Standards Driven Healthcare Information Integration InfrastructureStandards Driven Healthcare Information Integration Infrastructure
Standards Driven Healthcare Information Integration Infrastructure
 
Amia now! session two
Amia now! session twoAmia now! session two
Amia now! session two
 
Ontologising the Health Level Seven (HL7) Standard
Ontologising the Health Level Seven (HL7) StandardOntologising the Health Level Seven (HL7) Standard
Ontologising the Health Level Seven (HL7) Standard
 
HL7 - Whats Hot and Whats Not
HL7 - Whats Hot and Whats NotHL7 - Whats Hot and Whats Not
HL7 - Whats Hot and Whats Not
 
Interoperability, the rise of HL7 and FHIR
Interoperability, the rise of HL7 and FHIRInteroperability, the rise of HL7 and FHIR
Interoperability, the rise of HL7 and FHIR
 
Hl7 reference information model
Hl7 reference information modelHl7 reference information model
Hl7 reference information model
 
What are 3 of the main functions of the HL7 StandardDiscuss the i.pdf
What are 3 of the main functions of the HL7 StandardDiscuss the i.pdfWhat are 3 of the main functions of the HL7 StandardDiscuss the i.pdf
What are 3 of the main functions of the HL7 StandardDiscuss the i.pdf
 
Hl7 Standards
Hl7 StandardsHl7 Standards
Hl7 Standards
 
Hl7 Standards
Hl7 StandardsHl7 Standards
Hl7 Standards
 
Nursing Practice Literature Evaluation Table Article Paper.pdf
Nursing Practice Literature Evaluation Table Article Paper.pdfNursing Practice Literature Evaluation Table Article Paper.pdf
Nursing Practice Literature Evaluation Table Article Paper.pdf
 
Population Stratification Made Easy, Quick, and Transparent for Anyone
Population Stratification Made Easy, Quick, and Transparent for AnyonePopulation Stratification Made Easy, Quick, and Transparent for Anyone
Population Stratification Made Easy, Quick, and Transparent for Anyone
 

Recently uploaded

the IUA Administrative Board and General Assembly meeting
the IUA Administrative Board and General Assembly meetingthe IUA Administrative Board and General Assembly meeting
the IUA Administrative Board and General Assembly meeting
ssuser787e5c1
 
GLOBAL WARMING BY PRIYA BHOJWANI @..pptx
GLOBAL WARMING BY PRIYA BHOJWANI @..pptxGLOBAL WARMING BY PRIYA BHOJWANI @..pptx
GLOBAL WARMING BY PRIYA BHOJWANI @..pptx
priyabhojwani1200
 
CONSTRUCTION OF TEST IN MANAGEMENT .docx
CONSTRUCTION OF TEST IN MANAGEMENT .docxCONSTRUCTION OF TEST IN MANAGEMENT .docx
CONSTRUCTION OF TEST IN MANAGEMENT .docx
PGIMS Rohtak
 
Dimensions of Healthcare Quality
Dimensions of Healthcare QualityDimensions of Healthcare Quality
Dimensions of Healthcare Quality
Naeemshahzad51
 
💘Ludhiana ℂall Girls 📞]][89011★83002][[ 📱 ❤ESCORTS service in Ludhiana💃💦Ludhi...
💘Ludhiana ℂall Girls 📞]][89011★83002][[ 📱 ❤ESCORTS service in Ludhiana💃💦Ludhi...💘Ludhiana ℂall Girls 📞]][89011★83002][[ 📱 ❤ESCORTS service in Ludhiana💃💦Ludhi...
💘Ludhiana ℂall Girls 📞]][89011★83002][[ 📱 ❤ESCORTS service in Ludhiana💃💦Ludhi...
ranishasharma67
 
.Metabolic.disordersYYSSSFFSSSSSSSSSSDDD
.Metabolic.disordersYYSSSFFSSSSSSSSSSDDD.Metabolic.disordersYYSSSFFSSSSSSSSSSDDD
.Metabolic.disordersYYSSSFFSSSSSSSSSSDDD
samahesh1
 
Empowering ACOs: Leveraging Quality Management Tools for MIPS and Beyond
Empowering ACOs: Leveraging Quality Management Tools for MIPS and BeyondEmpowering ACOs: Leveraging Quality Management Tools for MIPS and Beyond
Empowering ACOs: Leveraging Quality Management Tools for MIPS and Beyond
Health Catalyst
 
Yemen National Tuberculosis Program .ppt
Yemen National Tuberculosis Program .pptYemen National Tuberculosis Program .ppt
Yemen National Tuberculosis Program .ppt
Esam43
 
Nursing Care of Client With Acute And Chronic Renal Failure.ppt
Nursing Care of Client With Acute And Chronic Renal Failure.pptNursing Care of Client With Acute And Chronic Renal Failure.ppt
Nursing Care of Client With Acute And Chronic Renal Failure.ppt
Rommel Luis III Israel
 
Leading the Way in Nephrology: Dr. David Greene's Work with Stem Cells for Ki...
Leading the Way in Nephrology: Dr. David Greene's Work with Stem Cells for Ki...Leading the Way in Nephrology: Dr. David Greene's Work with Stem Cells for Ki...
Leading the Way in Nephrology: Dr. David Greene's Work with Stem Cells for Ki...
Dr. David Greene Arizona
 
Navigating Challenges: Mental Health, Legislation, and the Prison System in B...
Navigating Challenges: Mental Health, Legislation, and the Prison System in B...Navigating Challenges: Mental Health, Legislation, and the Prison System in B...
Navigating Challenges: Mental Health, Legislation, and the Prison System in B...
Guillermo Rivera
 
Surgery-Mini-OSCE-All-Past-Years-Questions-Modified.
Surgery-Mini-OSCE-All-Past-Years-Questions-Modified.Surgery-Mini-OSCE-All-Past-Years-Questions-Modified.
Surgery-Mini-OSCE-All-Past-Years-Questions-Modified.
preciousstephanie75
 
Deep Leg Vein Thrombosis (DVT): Meaning, Causes, Symptoms, Treatment, and Mor...
Deep Leg Vein Thrombosis (DVT): Meaning, Causes, Symptoms, Treatment, and Mor...Deep Leg Vein Thrombosis (DVT): Meaning, Causes, Symptoms, Treatment, and Mor...
Deep Leg Vein Thrombosis (DVT): Meaning, Causes, Symptoms, Treatment, and Mor...
The Lifesciences Magazine
 
POLYCYSTIC OVARIAN SYNDROME (PCOS)......
POLYCYSTIC OVARIAN SYNDROME (PCOS)......POLYCYSTIC OVARIAN SYNDROME (PCOS)......
POLYCYSTIC OVARIAN SYNDROME (PCOS)......
Ameena Kadar
 
Navigating Women's Health: Understanding Prenatal Care and Beyond
Navigating Women's Health: Understanding Prenatal Care and BeyondNavigating Women's Health: Understanding Prenatal Care and Beyond
Navigating Women's Health: Understanding Prenatal Care and Beyond
Aboud Health Group
 
CANCER CANCER CANCER CANCER CANCER CANCER
CANCER  CANCER  CANCER  CANCER  CANCER CANCERCANCER  CANCER  CANCER  CANCER  CANCER CANCER
CANCER CANCER CANCER CANCER CANCER CANCER
KRISTELLEGAMBOA2
 
Introduction to Forensic Pathology course
Introduction to Forensic Pathology courseIntroduction to Forensic Pathology course
Introduction to Forensic Pathology course
fprxsqvnz5
 
Navigating Healthcare with Telemedicine
Navigating Healthcare with  TelemedicineNavigating Healthcare with  Telemedicine
Navigating Healthcare with Telemedicine
Iris Thiele Isip-Tan
 
BOWEL ELIMINATION BY ANUSHRI SRIVASTAVA.pptx
BOWEL ELIMINATION BY ANUSHRI SRIVASTAVA.pptxBOWEL ELIMINATION BY ANUSHRI SRIVASTAVA.pptx
BOWEL ELIMINATION BY ANUSHRI SRIVASTAVA.pptx
AnushriSrivastav
 
Haridwar ❤CALL Girls 🔝 89011★83002 🔝 ❤ℂall Girls IN Haridwar ESCORT SERVICE❤
Haridwar ❤CALL Girls 🔝 89011★83002 🔝 ❤ℂall Girls IN Haridwar ESCORT SERVICE❤Haridwar ❤CALL Girls 🔝 89011★83002 🔝 ❤ℂall Girls IN Haridwar ESCORT SERVICE❤
Haridwar ❤CALL Girls 🔝 89011★83002 🔝 ❤ℂall Girls IN Haridwar ESCORT SERVICE❤
ranishasharma67
 

Recently uploaded (20)

the IUA Administrative Board and General Assembly meeting
the IUA Administrative Board and General Assembly meetingthe IUA Administrative Board and General Assembly meeting
the IUA Administrative Board and General Assembly meeting
 
GLOBAL WARMING BY PRIYA BHOJWANI @..pptx
GLOBAL WARMING BY PRIYA BHOJWANI @..pptxGLOBAL WARMING BY PRIYA BHOJWANI @..pptx
GLOBAL WARMING BY PRIYA BHOJWANI @..pptx
 
CONSTRUCTION OF TEST IN MANAGEMENT .docx
CONSTRUCTION OF TEST IN MANAGEMENT .docxCONSTRUCTION OF TEST IN MANAGEMENT .docx
CONSTRUCTION OF TEST IN MANAGEMENT .docx
 
Dimensions of Healthcare Quality
Dimensions of Healthcare QualityDimensions of Healthcare Quality
Dimensions of Healthcare Quality
 
💘Ludhiana ℂall Girls 📞]][89011★83002][[ 📱 ❤ESCORTS service in Ludhiana💃💦Ludhi...
💘Ludhiana ℂall Girls 📞]][89011★83002][[ 📱 ❤ESCORTS service in Ludhiana💃💦Ludhi...💘Ludhiana ℂall Girls 📞]][89011★83002][[ 📱 ❤ESCORTS service in Ludhiana💃💦Ludhi...
💘Ludhiana ℂall Girls 📞]][89011★83002][[ 📱 ❤ESCORTS service in Ludhiana💃💦Ludhi...
 
.Metabolic.disordersYYSSSFFSSSSSSSSSSDDD
.Metabolic.disordersYYSSSFFSSSSSSSSSSDDD.Metabolic.disordersYYSSSFFSSSSSSSSSSDDD
.Metabolic.disordersYYSSSFFSSSSSSSSSSDDD
 
Empowering ACOs: Leveraging Quality Management Tools for MIPS and Beyond
Empowering ACOs: Leveraging Quality Management Tools for MIPS and BeyondEmpowering ACOs: Leveraging Quality Management Tools for MIPS and Beyond
Empowering ACOs: Leveraging Quality Management Tools for MIPS and Beyond
 
Yemen National Tuberculosis Program .ppt
Yemen National Tuberculosis Program .pptYemen National Tuberculosis Program .ppt
Yemen National Tuberculosis Program .ppt
 
Nursing Care of Client With Acute And Chronic Renal Failure.ppt
Nursing Care of Client With Acute And Chronic Renal Failure.pptNursing Care of Client With Acute And Chronic Renal Failure.ppt
Nursing Care of Client With Acute And Chronic Renal Failure.ppt
 
Leading the Way in Nephrology: Dr. David Greene's Work with Stem Cells for Ki...
Leading the Way in Nephrology: Dr. David Greene's Work with Stem Cells for Ki...Leading the Way in Nephrology: Dr. David Greene's Work with Stem Cells for Ki...
Leading the Way in Nephrology: Dr. David Greene's Work with Stem Cells for Ki...
 
Navigating Challenges: Mental Health, Legislation, and the Prison System in B...
Navigating Challenges: Mental Health, Legislation, and the Prison System in B...Navigating Challenges: Mental Health, Legislation, and the Prison System in B...
Navigating Challenges: Mental Health, Legislation, and the Prison System in B...
 
Surgery-Mini-OSCE-All-Past-Years-Questions-Modified.
Surgery-Mini-OSCE-All-Past-Years-Questions-Modified.Surgery-Mini-OSCE-All-Past-Years-Questions-Modified.
Surgery-Mini-OSCE-All-Past-Years-Questions-Modified.
 
Deep Leg Vein Thrombosis (DVT): Meaning, Causes, Symptoms, Treatment, and Mor...
Deep Leg Vein Thrombosis (DVT): Meaning, Causes, Symptoms, Treatment, and Mor...Deep Leg Vein Thrombosis (DVT): Meaning, Causes, Symptoms, Treatment, and Mor...
Deep Leg Vein Thrombosis (DVT): Meaning, Causes, Symptoms, Treatment, and Mor...
 
POLYCYSTIC OVARIAN SYNDROME (PCOS)......
POLYCYSTIC OVARIAN SYNDROME (PCOS)......POLYCYSTIC OVARIAN SYNDROME (PCOS)......
POLYCYSTIC OVARIAN SYNDROME (PCOS)......
 
Navigating Women's Health: Understanding Prenatal Care and Beyond
Navigating Women's Health: Understanding Prenatal Care and BeyondNavigating Women's Health: Understanding Prenatal Care and Beyond
Navigating Women's Health: Understanding Prenatal Care and Beyond
 
CANCER CANCER CANCER CANCER CANCER CANCER
CANCER  CANCER  CANCER  CANCER  CANCER CANCERCANCER  CANCER  CANCER  CANCER  CANCER CANCER
CANCER CANCER CANCER CANCER CANCER CANCER
 
Introduction to Forensic Pathology course
Introduction to Forensic Pathology courseIntroduction to Forensic Pathology course
Introduction to Forensic Pathology course
 
Navigating Healthcare with Telemedicine
Navigating Healthcare with  TelemedicineNavigating Healthcare with  Telemedicine
Navigating Healthcare with Telemedicine
 
BOWEL ELIMINATION BY ANUSHRI SRIVASTAVA.pptx
BOWEL ELIMINATION BY ANUSHRI SRIVASTAVA.pptxBOWEL ELIMINATION BY ANUSHRI SRIVASTAVA.pptx
BOWEL ELIMINATION BY ANUSHRI SRIVASTAVA.pptx
 
Haridwar ❤CALL Girls 🔝 89011★83002 🔝 ❤ℂall Girls IN Haridwar ESCORT SERVICE❤
Haridwar ❤CALL Girls 🔝 89011★83002 🔝 ❤ℂall Girls IN Haridwar ESCORT SERVICE❤Haridwar ❤CALL Girls 🔝 89011★83002 🔝 ❤ℂall Girls IN Haridwar ESCORT SERVICE❤
Haridwar ❤CALL Girls 🔝 89011★83002 🔝 ❤ℂall Girls IN Haridwar ESCORT SERVICE❤
 

A GraphQL approach to Healthcare Information Exchange with HL7 FHIR

  • 1. A GraphQL approach to Healthcare Information Exchange with HL7 FHIR Suresh Kumar Mukhiya, Fazle Rabbi, Ka I Violet Pun, Adrian Rutle, Yngve Lamo � skmu@hvl.no November 5, 2019 (HVL) Health Information Exchange November 5, 2019 1 / 34
  • 2. Who are we? Our aim is to improve public mental health with Adaptive technologies (ICT) and psychological treatments. Team of Domain experts, Software Engineers, ML engineers, HCI engineers and Industry. (HVL) Health Information Exchange November 5, 2019 2 / 34
  • 3. Why is Health Information(HI) management so hard? Health Information Management Complex health information Life and death Confidentiality Diversity of information Free Text Medication handling Questionnaire, Checklist etc Images, Videos, Files etc Diversity among healthcare professionals Mobile population Clinical diversity Continually growing (HVL) Health Information Exchange November 5, 2019 3 / 34
  • 4. Why do we need to structure HI? Avoid repetitive data entry Retrieval and overview Reuse of record info For technical integration For information exchange Clinical decision support Quality indicators Management data (HVL) Health Information Exchange November 5, 2019 4 / 34
  • 5. How can we structure HI? By using of consistent standards defining syntactic and semantic meaning of information being exchanged. (HVL) Health Information Exchange November 5, 2019 5 / 34
  • 6. Health Information Interchange REST API REpresentational State Transfer CORBA Common Object Re- quest Broker Architecture SOAP Simple Object Access Protocol RPC Remote procedure call (HVL) Health Information Exchange November 5, 2019 6 / 34
  • 7. Issues with RESTful API Query Complexity Overfetching Under-fetching and n+1 request problem Modifiability API versioning (HVL) Health Information Exchange November 5, 2019 7 / 34
  • 8. RESTFul approach - Patients - Base URL: http://hapi.fhir.org/baseDstu3 GET /Patient All Patients POST /Patient Create Patient GET /Patient/649227 Single Patient PUT /Patient/649227 Update Patient DELETE /Patient/649227 Delete Patient https://www.hl7.org/fhir/resourcelist.html lists 143 HL7 FHIR resources. Assuming Best Case, each resources needs 5 endpoints (CRUD) resulting (143 x 5 = 715) endpoints. Worst Case: Custom endpoints based on custom requirements. Eg. all patients over 30 years, all patients only from Bergen etc. (HVL) Health Information Exchange November 5, 2019 8 / 34
  • 9. Self Assessment App 1. (name, description), 2. (name, description, title), 3. Question and options (HVL) Health Information Exchange November 5, 2019 9 / 34
  • 10. Response From REST - Overfetching Getting more information than required - overfetching. Getting less information than required - Underfetching Need for addition HTTP request to get all the required resource - n+1 request problem (HVL) Health Information Exchange November 5, 2019 10 / 34
  • 11. Response From REST - Visualization (HVL) Health Information Exchange November 5, 2019 11 / 34
  • 12. API versioning the requirements of clients are often dynamic. can modify the existing endpoints or create endpoints to only fetch required resources. BUT requirements changes quickly. modification quickly becomes inflexible as one need to think about how to support existing customers while providing new functionality. (HVL) Health Information Exchange November 5, 2019 12 / 34
  • 13. Our solution GraphQL GraphQL developed by Facebook and has been embraced users including Coursera, GitHub, Pinterest, Neo4J, PayPal and others. Prototype Web Client Authorization Server Resource Server Mobile Client (HVL) Health Information Exchange November 5, 2019 13 / 34
  • 14. Architecture Centric Development (ACD) (HVL) Health Information Exchange November 5, 2019 14 / 34
  • 15. Mapping HL7 FHIR resources to GraphQL schema Algorithm 1: Mapping HL7 FHIR resources to GraphQL schema Input: HL7 Resource Output: GraphQL Schema 1 function recursive_hl7fhir_graphql_mapper (Resource) 2 schema = {}; 3 foreach field ∈ HL7 Resource.fields do 4 switch Resource.field do 5 case field.Type is ScalarTypeDefinition do 6 if field.cardinality is 0,1 then 7 add_to_schema(field, type) 8 end if 9 if field.cardinality is 0,* then 10 add_to_schema_as_list(field, type) 11 end if 12 end case 13 case field.Type is EnumTypeDefinition do 14 if EnumTypeDefinition already exists then 15 - reference to schema 16 else 17 - define_new_type_enum(**args) 18 - reference to schema 19 end if 20 end case 21 case field.Type is Custom OR field.Type is HL7 FHIR Resource do 22 if Custom OR Resource already exists then 23 - reference to schema 24 else 25 - define new type Resource 26 - reference to schema 27 - recursive_hl7fhir_graphql_mapper(Resource) 28 end if 29 end case (HVL) Health Information Exchange November 5, 2019 15 / 34
  • 16. Mapping HL7 FHIR with GraphQL schema Constraint Model t ype Per son { name: St r i ng pi ct ur e( si ze: I nt ) : Ur l } Resource Element Definition Data Types Profile Conformance Statement ValueSet Code System Information Model Terminology Model GraphQL Schema RootOperationTypeDefinition Types ObjectTypeDefinition ScalarTypeDefinition EnumerationTypeDefinition Field NameDataTypeArguments <<mapsTo>> <<mapsTo>> <<mapsTo>> schema { quer y: MyQuer yRoot Type } t ype MyQuer yRoot Type { someFi el d: St r i ng } Cardinality ScalarType EnumType (HVL) Health Information Exchange November 5, 2019 16 / 34
  • 17. Case Study - Questionnaire Questionnaire Item AnswerOption Code Response questions answerOptions responseItems [0..*][1..*] Score [=] answer [inj] [1..*] Class DataType attribute reference hasCode hasScore Model, M1 Model, M0 Patient questionnaire [1..1] [1..1] [1..*] ResponseItem source (HVL) Health Information Exchange November 5, 2019 17 / 34
  • 18. Schema Definition type Questionnaire { resourceType: String url: String identifier: [Identifier] version: String name: String title: String status: statusEnumType experimental: Boolean publisher: String description: String item: [QuestionnaireItem] } type Identifier { system: String value: String use: indentifierEnumType } type QuestionnaireItem { linkId: String prefix: String text: String type: QuestionnaireItemTypeEnum required: Boolean answerValueSet: [ValueSet] } type ValueSet { resourceType: String url: String identifier: [Identifier] version: String name: String title: String status: statusEnumType experimental: Boolean publisher: String description: String compose: Compose } type Compose { inactive: Boolean include: [ComposeInclude] } type ComposeInclude { concept: [ ComposeIncludeConcept ] } type ComposeIncludeConcept { code: coding display: String extension: [Extension] } type Extension { uri: String valueDecimal: Float } enum statusEnumType { draft active retired unknown } enum indentifierEnum { usual official temp secondary old } enum TypeEnum { group display boolean decimal integer date dateTime + } type Query { (HVL) Health Information Exchange November 5, 2019 18 / 34
  • 19. Evaluation of Response size and Time 4.07 2.26 2.0 4.0 6.0 8.0 NumberofKilobytes 3.33 1.59 7.42 4.34 4.22 2.5 6.94 3.56 PHQ-9 GAD7 ASRSV1 M DI ASRM S 90.1 79.5 80.0 90.0 100.0 110.0 Timeinmilliseconds 88.1 80.7 109.3 91.9 106.9 85.4 94.5 85.8 PHQ-9 GAD7 ASRSV1 M DI ASRM S 94.5 Kilobytes fetched (REST) Kilobytes used (GraphQL) Time to fetch all attributes (REST) Time to fetch required attributes (GraphQL) (HVL) Health Information Exchange November 5, 2019 19 / 34
  • 20. Throughput and response time with RESTful approach (HVL) Health Information Exchange November 5, 2019 20 / 34
  • 21. Throughput and response time with GraphQL (HVL) Health Information Exchange November 5, 2019 21 / 34
  • 22. Performance Test statistics Throughput :average number of HTTP/s requests per second generated by the test Response Time: average amount of time from first bit sent to the network card to the last byte received by the client. (HVL) Health Information Exchange November 5, 2019 22 / 34
  • 23. Challenge: Circular relationship complexity type ThreadDefinition { title: String text(first: Int, after: String): [ MessageDefinition] } type MessageDefinition { text: String thread: ThreadDefinition } type Query { thread(id: ID!): ThreadDefinition } query complicatedQuery { thread(id: "ID") { text(first: 100000) { thread { text(first: 100000) { thread { # ...repeat 100000 (n) times ... } } } } } } } (HVL) Health Information Exchange November 5, 2019 23 / 34
  • 24. Challenge: Schema Duplication schema definition based on the choice of the database being used (this project uses mongoDB, so schema are based on mongoose 1); schema definition for a GraphQL endpoint. Good thing is community is already aware of both issues. And there are solutions being worked out currently. 1 https://mongoosejs.com/ (HVL) Health Information Exchange November 5, 2019 24 / 34
  • 25. Future Directions Schema Stitching or Schema federation to promote interoperability between current health systems and legacy systems. Creation of adaptive Internet-Delivered Psychological Interventions (IDPT) using GraphQL based HIE. Create a comprehensible dashboard for better visualization for therapists. Further research in both development of Adaptive system and clinical trials are required. (HVL) Health Information Exchange November 5, 2019 25 / 34
  • 26. Conclusion: ISO/IEC 25000.ISO/IEC 25000:2005 Interoperability HL7 FHIR Security SMART on FHIR Modifiability SOA-Oriented architecture, GraphQL Scalability SOA-Oriented architecture Testability TDD Approach (HVL) Health Information Exchange November 5, 2019 26 / 34
  • 27. Thank You skmu@hvl.no (HVL) Health Information Exchange November 5, 2019 27 / 34
  • 28. HL7 FHIR ER Diagram Or gani zat i on i dent i f i er par t Of Pat i ent i dent i f i er managi ngOr gani zat i on gener al Pr act i t i oner Quest i onnai r e i dent i f i er answer Val ueSet Pr act i t i oner i dent i f i er Car ePl an i dent i f i er subj ect 0. . . * 0. . . 1 1. . . 1 Val ueSet i dent i f i er 0. . . 1 Quest i onnai r eResponse basedOn par t Of quest i onnai r e Obser vat i on i dent i f i er basedOn subj ect 0. . . 1 0. . . * 0. . . * 0. . . * 0. . . 1 (HVL) Health Information Exchange November 5, 2019 28 / 34
  • 29. How does GraphQL work?FrontendClient GraphQLquery Executiontree HTTP Request Query Mutation Subscription BackendOperations Resolver Resolver Resolver Resolver Database DataStore DBModels DBConnectors (HVL) Health Information Exchange November 5, 2019 29 / 34
  • 30. Resolvers What is a resolver? A resolver is a function that resolves a value for a type or field in a schema. If an Object is returned, execution continues to the next child field. If a scalar is returned (typically at a leaf node), execution completes. If null is returned, execution halts and does not continue. Executing queries Parse: A query is parsed into an abstract syntax tree (or AST). Validate: The AST is validated against the schema. Checks for correct query syntax and if the fields exist. Execute: The runtime walks through the AST, starting from the root of the tree, invokes resolvers, collects up results, and emits JSON. (HVL) Health Information Exchange November 5, 2019 30 / 34
  • 31. References I Duane Bender and Kamran Sartipi. HL7 FHIR: An agile and RESTful approach to healthcare information exchange. In Proceedings of CBMS 2013 - 26th IEEE International Symposium on Computer-Based Medical Systems, 2013. M. Bryant. Graphql for archival metadata: An overview of the ehri graphql api. In 2017 IEEE International Conference on Big Data (Big Data), pages 2225–2230, Dec 2017. ISO/IEC 25000. ISO/IEC 25000:2005 Software Engineering - Software product Quality Requirements and Evaluation (SQuaRE) - Guide to SQuaRE, 2005. R. Srinivasan. RPC: Remote Procedure Call Protocol Specification Version 2. RFC 1831, DDN Network Information Center, 1995. Roy Fielding. Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, 2000. Hl7 FHIR SMART app launch, Retrieved December 28. Roberto Rodriguez-Echeverria, Javier Luis Cánovas Izquierdo, and Jordi Cabot. Towards a UML and IFML Mapping to GraphQL. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2018. Facebook. Graphql: A query language for apis, Retrieved April 11, 2019. (HVL) Health Information Exchange November 5, 2019 31 / 34
  • 32. References II Ka I Pun Yngve Lamo Suresh Kumar Mukhiya, Fazle Rabbi. An architectural design forself-reporting e-health systems. In ICSE 2019 Proceedings in the IEEE Digital Library, 2018. Hevner, March, Park, and Ram. Design Science in Information Systems Research. MIS Quarterly,, 2004. H. Ulrich, J. Kern, D. Tas, A. K. Kock-Schoppenhauer, F. Ückert, J. Ingenerf, and M. Lablans. QL 4 MDR: A GraphQL query language for ISO 11179-based metadata repositories. BMC Medical Informatics and Decision Making, 2019. Jun Li, Yingfei Xiong, Xuanzhe Liu, and Lu Zhang. How does web service API evolution affect clients? In Proceedings - IEEE 20th International Conference on Web Services, ICWS 2013, 2013. Khalil Khoumbati and Marinos Themistocleous. Integrating the IT Infrastructures in Healthcare Organisations : a Proposition of Influential Factors. Electronic Journal of e-Government, 2006. Yigang Xu, Dominique Sauquet, Eric Zapletal, David Lemaitre, and Patrice Degoulet. Integration of medical applications: The ’mediator service’ of the SynEx platform. International Journal of Medical Informatics, 2000. Olaf Hartig and Jorge Pérez. Semantics and Complexity of GraphQL . 2018. (HVL) Health Information Exchange November 5, 2019 32 / 34
  • 33. References III Nat Sakimura, John Bradley, Michael B. Jones, Breno Medeiros, and Chuck Mortimore. Final: OpenID Connect Core 1.0 incorporating, 2014. P. Ferguson and D. Senie. Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing. Technical report, 2000. Cross-origin Resource Sharing. Cross-Origin Resource Sharing. Options, 2011. Suresh Kumar Mukhiya and Khac Hoang Hung. An Architectural Style for Single Page Scalable Modern Web Application. 5(4):6–13, 2018. ISO/IEC 25000. ISO/IEC 25000:2005 Software Engineering - Software product Quality Requirements and Evaluation (SQuaRE) - Guide to SQuaRE, 2005. Scott Ambler. Process Patterns Building Large-Scale Systems Using Object Technology. 1998. (HVL) Health Information Exchange November 5, 2019 33 / 34
  • 34. A GraphQL approach to Healthcare Information Exchange with HL7 FHIR Suresh Kumar Mukhiya, Fazle Rabbi, Ka I Violet Pun, Adrian Rutle, Yngve Lamo � skmu@hvl.no November 5, 2019 (HVL) Health Information Exchange November 5, 2019 34 / 34