SlideShare a Scribd company logo
1 of 24
Download to read offline
MICRE: Microservices In MediCal Research Environments
Martin Chapman
October 5th
KDL, King’s College London
Overview
How we can integrate the microservice design pattern into the software development
practices of medical researchers, in order to improve software quality.
1
Microservices for medical research: the benefits
• Resilience and scaling.
• Health is a domain in which research is increasingly involving end-users (e.g., ’artificial
intelligence’ logic, and its ability to support the autonomous diagnosis of patients).
• Software supports this research (e.g. a decision-support system realises this AI logic).
• This software must therefore adequately support interactions with these end-users, by being
scalable and resilient.
2
Microservices for medical research: the benefits
• Resilience and scaling.
• Health is a domain in which research is increasingly involving end-users (e.g., ’artificial
intelligence’ logic, and its ability to support the autonomous diagnosis of patients).
• Software supports this research (e.g. a decision-support system realises this AI logic).
• This software must therefore adequately support interactions with these end-users, by being
scalable and resilient.
• Technology heterogeneity and Composability
• Important in research, particularly health research which is often cross-discipline, where
researchers have different ways of developing software and different traditions.
• Important for reusing existing (research software).
2
Microservices for medical research: the benefits
• Ease of deployment
• Important in helping to determine scientific reproducibility, e.g. easily spinning up an
experiment architecture produced by another researcher, to ascertain if the same results are
obtained.
• Important for software sustainability, e.g. easily migrating the same system as the
underlying hardware changes.
2
Microservices for medical research: the benefits
• Ease of deployment
• Important in helping to determine scientific reproducibility, e.g. easily spinning up an
experiment architecture produced by another researcher, to ascertain if the same results are
obtained.
• Important for software sustainability, e.g. easily migrating the same system as the
underlying hardware changes.
• Disadvantages? Complexity and cost.
2
Microservices for medical research: what is needed?
1. A model for the development of software as microservices in health, dictating, for
example, the technologies that should be used.
2. Tooling to enable researchers to use the paradigm in the short-term, e.g. an IDE through
which researchers are able to graphically segmented their software into different services.
3. Training in the paradigm, in order to ensure its long-term visibility as an option when
developing software.
3
Microservices for medical research: what is needed?
1. A model for the development of software as microservices in health, dictating, for
example, the technologies that should be used.
2. Tooling to enable researchers to use the paradigm in the short-term, e.g. an IDE through
which researchers are able to graphically segmented their software into different services.
3. Training in the paradigm, in order to ensure its long-term visibility as an option when
developing software.
3
An initial model: development workflow
1. Develop (web) applications as a set of individual server components, written in
Javascript, that communicate via HTTP.
2. Containerise those components.
3. Separate those components across different virtual machines where necessary.
4
Workflow: 1. Programming Logic
Construct service logic (including relevant versioning and test development for CI):
1 const archiver =
require(’archiver ’);
2 const output =
fs.createWriteStream(__dirname
+ ’/example.zip’);
3 const archive = archiver(’zip’);
4 archive.pipe(output);
zip.js
5
Workflow: 2. Server encapsulation
Encapsulate logic in programmatic server:
1 router.get("/generate /:zipId/",
async function(req , res ,
next) {
2 const archiver =
require(’archiver ’);
3 const output =
fs.createWriteStream(__dirname
+ ’/example.zip’);
4 const archive = archiver(’zip’);
5 archive.pipe(output);
6 });
routes/zip.js 6
Workflow: 3. Container encapsulation
Encapsulate programmatic server in image, and reference associated ’out-of-the-box’ services:
1 FROM node :14
2 ...
3 RUN npm install --only=production
4 ...
5 EXPOSE 3003
6 CMD ["npm", "start"]
Dockerfile
7
Workflow: 3. Container encapsulation
Encapsulate programmatic server in image, and reference associated ’out-of-the-box’ services:
1 webapp:
2 build: web
3 ports:
4 - 3003:3003
5
6 mariadb:
7 build: web/db
8
9 proxy:
10 build: web/proxy
docker-compose.yml
7
Workflow: 4. Remote server orchestration and deployment
Create remote machine, and deploy containers:
1 docker -machine create --driver
openstack
2 eval $(docker -machine env
[machine -name])
3 docker -compose build
4 docker -compose up -d
8
Architecture 1: Phenoflow i
Allowing users to author and generate software (workflows) that can be used to automatically
identify diseases in patient health records:
Web
Portal
Generator
Visualiser
Implementation
Units
Author(s)
User
customise
author,
expand
data
workflow
visualisation
workflowworkflow,
visualisation,
implementation units
9
Architecture 1: Phenoflow ii
Deployed services:
2e4557df2a35: phenoflow webapp 1
511fb466f64c: phenoflow generator 1
9ea42fbf0a2e: phenoflow mariadb 1
25a87c51195c: visualiser spring 1
fa067dd94772: visualiser mongo 1
c6bf5584a599: visualiser git-server 1 - hack to enable the visualiser to work.
5e06520d9e56: visualiser sparql 1 - Receives SPARQL queries to execute against triplestore.
• Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype
Definitions. https://doi.org/10.1101/2020.07.01.20144196
10
Architecture 2: Clinical guidelines i
Allowing users to store, and identify interactions between, clinical guidelines:
Interaction
Interaction API
(JS Server)
Reasoner
Reasoner API
(Prolog Server)
Prolog Reasoner
Store Store API API Guidelines
Apache Jena Fuseki
11
Architecture 2: Clinical guidelines ii
API developed to structure interactions between
services, and with end-users.
Microservice Endpoint Endpoint Description
Interaction
/guideline/create Create a guideline
set.
/guideline/(add|delete) Add or delete infor-
mation from a guide-
line set.
/guideline/[knowledge]/
(add|delete)
Add or delete sup-
porting guideline
knowledge.
/guideline/[data]+/get Get data from a
guideline.
/guidelines/[action] Perform a processing
action on a guideline
set.
Reasoner /guidelines/.+ All paths with the
plural word guide-
lines are handled by
the reasoner, as these
relate to the process-
ing of guidelines.
Store /guideline/.+ All paths with the
singular word guide-
line are handled by
the store, as these
relate to the storage
and retrieval of guide-
line information.
12
Architecture 2: Clinical guidelines iii
Deployed services:
fbfd91d79c34: tmrweb webapp 1
96771158cbaa: tmrweb backend 1
4139fa64f0b8: tmrweb fuseki 1
• https://github.com/kclconsult/tmrweb
13
Architecture 3: CONSULT i
A modular decision-support system (DSS) intended to help patients suffering from chronic
conditions self-manage their treatments:
Blood pressure
(Nokia)
Pulse and Activity
(Garmin)
Heart Rate / ECG
(VitalPatch)
EHR
(EMIS)
Device
Integration
(Nokia)
Device
Integration
(Garmin)
Device
Integration
(Vitalpatch)
Sensor-FHIR
converter
EHR Integration
(EMIS)
EHR-FHIR
converter
HAPI FHIR
Message
Passer
Dialogue
Manager
Authentication
Server
Provenance
Data
Miner
Argumentation
Engine
Tablet
Browser
Chat
Server
UI backend
PC
Browser
Sensor data
Sensor
data
Sensor
data
EHR
data
FHIR resources
FHIR resources
FHIR resources
Processed
patient data
Patient
data
Fragment
Credentials
Processed
patient data
Processed patient data,
goal
Results
Dialogue responses
Data summaries, tips
device-web-facing
ehr-web-facing
internal-secure
internal-comp
internal-lightweight
user-web-facing
14
Architecture 3: CONSULT ii
Example deployed services:
f10ac72af667: device-integration nokia proxy 1
99c9d9c6f528: device-integration nokia webapp 1
c3bca50f82d6: device-integration nokia mariadb 1
eaff2a38ea77: sensor-fhir-converter rabbit 1
98efbddefd66: sensor-fhir-converter webapp-queue 1
f48fc4aca88e: fhir-server proxy 1
84b3dcce41dd: fhir-server hapi 1
cfb0f4a79ab0: fhir-server mariadb 1
...
• https://kclhi.org/consult/demo/?a=UGU2YmFxRUQ6dWtlN2JQRXk=
• https://github.com/kclconsult
15
Other examples
• JupyterHub architecture tailored for COVID-19 analysis:
https://github.com/kclhi/jupyter-docker
• ’Nexus’ automated programming assessment architecture.
https://api.semanticscholar.org/CorpusID:3815787
16
Developer experiences
• The process works, and can significantly change the performance of software, its
intelligibility and ease of deployment. This was especially true of the guidelines software.
• There was a lack of familiarity with, and thus some resistance to, the use of
microservices for development.
• The notion of manually setting up a server, and manually installing things, is still very much
the norm.
• The fact that microservices allow for technological heterogeneity allowed people to still use
the technologies they were familiar with, which was a big help in the adoption of the
paradigm.
17
From workflow to model
Explore the use of:
• Container management software (Kubernetes, Swarm), capitalising on the fact that
services are currently ‘scale-ready’.
• Proprietary cloud services, like ’serverless’ AWS Lambda, rather than simply running
everything in containers.
• Different technologies, e.g. communication mechanisms such as RPC, and other
languages (such as Typescript over JS).
• Additional practices, such as CD for updating deployed containers.
18

More Related Content

What's hot

Anatomy of Standards
Anatomy of StandardsAnatomy of Standards
Anatomy of Standards
Timothy Cook
 
Paper presentations: UK e-science AHM meeting, 2005
Paper presentations: UK e-science AHM meeting, 2005Paper presentations: UK e-science AHM meeting, 2005
Paper presentations: UK e-science AHM meeting, 2005
Paolo Missier
 
Pointcut rejuvenation
Pointcut rejuvenationPointcut rejuvenation
Pointcut rejuvenation
Ravi Theja
 
View the Microsoft Word document.doc
View the Microsoft Word document.docView the Microsoft Word document.doc
View the Microsoft Word document.doc
butest
 
Novel Database-Centric Framework for Incremental Information Extraction
Novel Database-Centric Framework for Incremental Information ExtractionNovel Database-Centric Framework for Incremental Information Extraction
Novel Database-Centric Framework for Incremental Information Extraction
ijsrd.com
 
Multi label text classification
Multi label text classificationMulti label text classification
Multi label text classification
raghavr186
 
Automatically inferring structure correlated variable set for concurrent atom...
Automatically inferring structure correlated variable set for concurrent atom...Automatically inferring structure correlated variable set for concurrent atom...
Automatically inferring structure correlated variable set for concurrent atom...
ijseajournal
 
10.1.1.41.7910
10.1.1.41.791010.1.1.41.7910
10.1.1.41.7910
Chimgee_M
 

What's hot (17)

Anatomy of Standards
Anatomy of StandardsAnatomy of Standards
Anatomy of Standards
 
A Survey on Bioinformatics Tools
A Survey on Bioinformatics ToolsA Survey on Bioinformatics Tools
A Survey on Bioinformatics Tools
 
Paper presentations: UK e-science AHM meeting, 2005
Paper presentations: UK e-science AHM meeting, 2005Paper presentations: UK e-science AHM meeting, 2005
Paper presentations: UK e-science AHM meeting, 2005
 
IEEE 2014 JAVA DATA MINING PROJECTS A probabilistic approach to string transf...
IEEE 2014 JAVA DATA MINING PROJECTS A probabilistic approach to string transf...IEEE 2014 JAVA DATA MINING PROJECTS A probabilistic approach to string transf...
IEEE 2014 JAVA DATA MINING PROJECTS A probabilistic approach to string transf...
 
Pointcut rejuvenation
Pointcut rejuvenationPointcut rejuvenation
Pointcut rejuvenation
 
View the Microsoft Word document.doc
View the Microsoft Word document.docView the Microsoft Word document.doc
View the Microsoft Word document.doc
 
Novel Database-Centric Framework for Incremental Information Extraction
Novel Database-Centric Framework for Incremental Information ExtractionNovel Database-Centric Framework for Incremental Information Extraction
Novel Database-Centric Framework for Incremental Information Extraction
 
10.1.1.17.6973
10.1.1.17.697310.1.1.17.6973
10.1.1.17.6973
 
Multi label text classification
Multi label text classificationMulti label text classification
Multi label text classification
 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLSSBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
 
Deliverable_5.1.2
Deliverable_5.1.2Deliverable_5.1.2
Deliverable_5.1.2
 
Detecting the High Level Similarities in Software Implementation Process Usin...
Detecting the High Level Similarities in Software Implementation Process Usin...Detecting the High Level Similarities in Software Implementation Process Usin...
Detecting the High Level Similarities in Software Implementation Process Usin...
 
Automatically inferring structure correlated variable set for concurrent atom...
Automatically inferring structure correlated variable set for concurrent atom...Automatically inferring structure correlated variable set for concurrent atom...
Automatically inferring structure correlated variable set for concurrent atom...
 
Fuzzy Rule Base System for Software Classification
Fuzzy Rule Base System for Software ClassificationFuzzy Rule Base System for Software Classification
Fuzzy Rule Base System for Software Classification
 
10.1.1.41.7910
10.1.1.41.791010.1.1.41.7910
10.1.1.41.7910
 
Distributed and Typed Role-based Access Control Mechanisms Driven by CRUD Exp...
Distributed and Typed Role-based Access Control Mechanisms Driven by CRUD Exp...Distributed and Typed Role-based Access Control Mechanisms Driven by CRUD Exp...
Distributed and Typed Role-based Access Control Mechanisms Driven by CRUD Exp...
 
Efficient Feature Selection for Fault Diagnosis of Aerospace System Using Syn...
Efficient Feature Selection for Fault Diagnosis of Aerospace System Using Syn...Efficient Feature Selection for Fault Diagnosis of Aerospace System Using Syn...
Efficient Feature Selection for Fault Diagnosis of Aerospace System Using Syn...
 

Similar to MICRE: Microservices In MediCal Research Environments

CONSULTANT ANALYSIS FOR MEDICAL FACILITY2CONSULTANT ANALYSIS FO.docx
CONSULTANT ANALYSIS FOR MEDICAL FACILITY2CONSULTANT ANALYSIS FO.docxCONSULTANT ANALYSIS FOR MEDICAL FACILITY2CONSULTANT ANALYSIS FO.docx
CONSULTANT ANALYSIS FOR MEDICAL FACILITY2CONSULTANT ANALYSIS FO.docx
donnajames55
 
BasavarajPatil_Java_Agile_PM
BasavarajPatil_Java_Agile_PMBasavarajPatil_Java_Agile_PM
BasavarajPatil_Java_Agile_PM
Basavaraj Patil
 
Hospital Management ppt new.pptxhhgfhhggggjjjhgf
Hospital Management ppt new.pptxhhgfhhggggjjjhgfHospital Management ppt new.pptxhhgfhhggggjjjhgf
Hospital Management ppt new.pptxhhgfhhggggjjjhgf
GirishBS13
 

Similar to MICRE: Microservices In MediCal Research Environments (20)

Using Microservices to Design Patient-facing Research Software
Using Microservices to Design Patient-facing Research SoftwareUsing Microservices to Design Patient-facing Research Software
Using Microservices to Design Patient-facing Research Software
 
CONSULTANT ANALYSIS FOR MEDICAL FACILITY2CONSULTANT ANALYSIS FO.docx
CONSULTANT ANALYSIS FOR MEDICAL FACILITY2CONSULTANT ANALYSIS FO.docxCONSULTANT ANALYSIS FOR MEDICAL FACILITY2CONSULTANT ANALYSIS FO.docx
CONSULTANT ANALYSIS FOR MEDICAL FACILITY2CONSULTANT ANALYSIS FO.docx
 
217954603 srs-hos-informantion-system
217954603 srs-hos-informantion-system217954603 srs-hos-informantion-system
217954603 srs-hos-informantion-system
 
BasavarajPatil_Java_Agile_PM
BasavarajPatil_Java_Agile_PMBasavarajPatil_Java_Agile_PM
BasavarajPatil_Java_Agile_PM
 
44478167 hospital-management-system
44478167 hospital-management-system44478167 hospital-management-system
44478167 hospital-management-system
 
MedWise: Your Healthmate
MedWise: Your HealthmateMedWise: Your Healthmate
MedWise: Your Healthmate
 
Hospital Management System Project
Hospital Management System ProjectHospital Management System Project
Hospital Management System Project
 
Big Crypto for Little Things
Big Crypto for Little ThingsBig Crypto for Little Things
Big Crypto for Little Things
 
publishable paper
publishable paperpublishable paper
publishable paper
 
PHR PPT (1).pptx
PHR PPT (1).pptxPHR PPT (1).pptx
PHR PPT (1).pptx
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Research-KS-Jun2015
Research-KS-Jun2015Research-KS-Jun2015
Research-KS-Jun2015
 
online ambulance service.pptx
online ambulance service.pptxonline ambulance service.pptx
online ambulance service.pptx
 
Clone of an organization
Clone of an organizationClone of an organization
Clone of an organization
 
Hostpital management system(srs)
Hostpital management system(srs)Hostpital management system(srs)
Hostpital management system(srs)
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
Hospital management system
Hospital management systemHospital management system
Hospital management system
 
Hospital Management ppt new.pptxhhgfhhggggjjjhgf
Hospital Management ppt new.pptxhhgfhhggggjjjhgfHospital Management ppt new.pptxhhgfhhggggjjjhgf
Hospital Management ppt new.pptxhhgfhhggggjjjhgf
 
Secure and efficient transmission of medical images
Secure and efficient transmission of medical imagesSecure and efficient transmission of medical images
Secure and efficient transmission of medical images
 

More from Martin Chapman

Using AI to autonomously identify diseases within groups of patients
Using AI to autonomously identify diseases within groups of patientsUsing AI to autonomously identify diseases within groups of patients
Using AI to autonomously identify diseases within groups of patients
Martin Chapman
 
Using AI to understand how preventative interventions can improve the health ...
Using AI to understand how preventative interventions can improve the health ...Using AI to understand how preventative interventions can improve the health ...
Using AI to understand how preventative interventions can improve the health ...
Martin Chapman
 

More from Martin Chapman (20)

Principles of Health Informatics: Artificial intelligence and machine learning
Principles of Health Informatics: Artificial intelligence and machine learningPrinciples of Health Informatics: Artificial intelligence and machine learning
Principles of Health Informatics: Artificial intelligence and machine learning
 
Principles of Health Informatics: Clinical decision support systems
Principles of Health Informatics: Clinical decision support systemsPrinciples of Health Informatics: Clinical decision support systems
Principles of Health Informatics: Clinical decision support systems
 
Mechanisms for Integrating Real Data into Search Game Simulations: An Applica...
Mechanisms for Integrating Real Data into Search Game Simulations: An Applica...Mechanisms for Integrating Real Data into Search Game Simulations: An Applica...
Mechanisms for Integrating Real Data into Search Game Simulations: An Applica...
 
Technical Validation through Automated Testing
Technical Validation through Automated TestingTechnical Validation through Automated Testing
Technical Validation through Automated Testing
 
Scalable architectures for phenotype libraries
Scalable architectures for phenotype librariesScalable architectures for phenotype libraries
Scalable architectures for phenotype libraries
 
Using AI to understand how preventative interventions can improve the health ...
Using AI to understand how preventative interventions can improve the health ...Using AI to understand how preventative interventions can improve the health ...
Using AI to understand how preventative interventions can improve the health ...
 
Using AI to autonomously identify diseases within groups of patients
Using AI to autonomously identify diseases within groups of patientsUsing AI to autonomously identify diseases within groups of patients
Using AI to autonomously identify diseases within groups of patients
 
Using AI to understand how preventative interventions can improve the health ...
Using AI to understand how preventative interventions can improve the health ...Using AI to understand how preventative interventions can improve the health ...
Using AI to understand how preventative interventions can improve the health ...
 
Principles of Health Informatics: Evaluating medical software
Principles of Health Informatics: Evaluating medical softwarePrinciples of Health Informatics: Evaluating medical software
Principles of Health Informatics: Evaluating medical software
 
Principles of Health Informatics: Usability of medical software
Principles of Health Informatics: Usability of medical softwarePrinciples of Health Informatics: Usability of medical software
Principles of Health Informatics: Usability of medical software
 
Principles of Health Informatics: Social networks, telehealth, and mobile health
Principles of Health Informatics: Social networks, telehealth, and mobile healthPrinciples of Health Informatics: Social networks, telehealth, and mobile health
Principles of Health Informatics: Social networks, telehealth, and mobile health
 
Principles of Health Informatics: Communication systems in healthcare
Principles of Health Informatics: Communication systems in healthcarePrinciples of Health Informatics: Communication systems in healthcare
Principles of Health Informatics: Communication systems in healthcare
 
Principles of Health Informatics: Terminologies and classification systems
Principles of Health Informatics: Terminologies and classification systemsPrinciples of Health Informatics: Terminologies and classification systems
Principles of Health Informatics: Terminologies and classification systems
 
Principles of Health Informatics: Representing medical knowledge
Principles of Health Informatics: Representing medical knowledgePrinciples of Health Informatics: Representing medical knowledge
Principles of Health Informatics: Representing medical knowledge
 
Principles of Health Informatics: Informatics skills - searching and making d...
Principles of Health Informatics: Informatics skills - searching and making d...Principles of Health Informatics: Informatics skills - searching and making d...
Principles of Health Informatics: Informatics skills - searching and making d...
 
Principles of Health Informatics: Informatics skills - communicating, structu...
Principles of Health Informatics: Informatics skills - communicating, structu...Principles of Health Informatics: Informatics skills - communicating, structu...
Principles of Health Informatics: Informatics skills - communicating, structu...
 
Principles of Health Informatics: Models, information, and information systems
Principles of Health Informatics: Models, information, and information systemsPrinciples of Health Informatics: Models, information, and information systems
Principles of Health Informatics: Models, information, and information systems
 
Using AI to understand how preventative interventions can improve the health ...
Using AI to understand how preventative interventions can improve the health ...Using AI to understand how preventative interventions can improve the health ...
Using AI to understand how preventative interventions can improve the health ...
 
Using CWL to support EHR-based phenotyping
Using CWL to support EHR-based phenotypingUsing CWL to support EHR-based phenotyping
Using CWL to support EHR-based phenotyping
 
Phenoflow: An Architecture for Computable Phenotypes
Phenoflow: An Architecture for Computable PhenotypesPhenoflow: An Architecture for Computable Phenotypes
Phenoflow: An Architecture for Computable Phenotypes
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

MICRE: Microservices In MediCal Research Environments

  • 1. MICRE: Microservices In MediCal Research Environments Martin Chapman October 5th KDL, King’s College London
  • 2. Overview How we can integrate the microservice design pattern into the software development practices of medical researchers, in order to improve software quality. 1
  • 3. Microservices for medical research: the benefits • Resilience and scaling. • Health is a domain in which research is increasingly involving end-users (e.g., ’artificial intelligence’ logic, and its ability to support the autonomous diagnosis of patients). • Software supports this research (e.g. a decision-support system realises this AI logic). • This software must therefore adequately support interactions with these end-users, by being scalable and resilient. 2
  • 4. Microservices for medical research: the benefits • Resilience and scaling. • Health is a domain in which research is increasingly involving end-users (e.g., ’artificial intelligence’ logic, and its ability to support the autonomous diagnosis of patients). • Software supports this research (e.g. a decision-support system realises this AI logic). • This software must therefore adequately support interactions with these end-users, by being scalable and resilient. • Technology heterogeneity and Composability • Important in research, particularly health research which is often cross-discipline, where researchers have different ways of developing software and different traditions. • Important for reusing existing (research software). 2
  • 5. Microservices for medical research: the benefits • Ease of deployment • Important in helping to determine scientific reproducibility, e.g. easily spinning up an experiment architecture produced by another researcher, to ascertain if the same results are obtained. • Important for software sustainability, e.g. easily migrating the same system as the underlying hardware changes. 2
  • 6. Microservices for medical research: the benefits • Ease of deployment • Important in helping to determine scientific reproducibility, e.g. easily spinning up an experiment architecture produced by another researcher, to ascertain if the same results are obtained. • Important for software sustainability, e.g. easily migrating the same system as the underlying hardware changes. • Disadvantages? Complexity and cost. 2
  • 7. Microservices for medical research: what is needed? 1. A model for the development of software as microservices in health, dictating, for example, the technologies that should be used. 2. Tooling to enable researchers to use the paradigm in the short-term, e.g. an IDE through which researchers are able to graphically segmented their software into different services. 3. Training in the paradigm, in order to ensure its long-term visibility as an option when developing software. 3
  • 8. Microservices for medical research: what is needed? 1. A model for the development of software as microservices in health, dictating, for example, the technologies that should be used. 2. Tooling to enable researchers to use the paradigm in the short-term, e.g. an IDE through which researchers are able to graphically segmented their software into different services. 3. Training in the paradigm, in order to ensure its long-term visibility as an option when developing software. 3
  • 9. An initial model: development workflow 1. Develop (web) applications as a set of individual server components, written in Javascript, that communicate via HTTP. 2. Containerise those components. 3. Separate those components across different virtual machines where necessary. 4
  • 10. Workflow: 1. Programming Logic Construct service logic (including relevant versioning and test development for CI): 1 const archiver = require(’archiver ’); 2 const output = fs.createWriteStream(__dirname + ’/example.zip’); 3 const archive = archiver(’zip’); 4 archive.pipe(output); zip.js 5
  • 11. Workflow: 2. Server encapsulation Encapsulate logic in programmatic server: 1 router.get("/generate /:zipId/", async function(req , res , next) { 2 const archiver = require(’archiver ’); 3 const output = fs.createWriteStream(__dirname + ’/example.zip’); 4 const archive = archiver(’zip’); 5 archive.pipe(output); 6 }); routes/zip.js 6
  • 12. Workflow: 3. Container encapsulation Encapsulate programmatic server in image, and reference associated ’out-of-the-box’ services: 1 FROM node :14 2 ... 3 RUN npm install --only=production 4 ... 5 EXPOSE 3003 6 CMD ["npm", "start"] Dockerfile 7
  • 13. Workflow: 3. Container encapsulation Encapsulate programmatic server in image, and reference associated ’out-of-the-box’ services: 1 webapp: 2 build: web 3 ports: 4 - 3003:3003 5 6 mariadb: 7 build: web/db 8 9 proxy: 10 build: web/proxy docker-compose.yml 7
  • 14. Workflow: 4. Remote server orchestration and deployment Create remote machine, and deploy containers: 1 docker -machine create --driver openstack 2 eval $(docker -machine env [machine -name]) 3 docker -compose build 4 docker -compose up -d 8
  • 15. Architecture 1: Phenoflow i Allowing users to author and generate software (workflows) that can be used to automatically identify diseases in patient health records: Web Portal Generator Visualiser Implementation Units Author(s) User customise author, expand data workflow visualisation workflowworkflow, visualisation, implementation units 9
  • 16. Architecture 1: Phenoflow ii Deployed services: 2e4557df2a35: phenoflow webapp 1 511fb466f64c: phenoflow generator 1 9ea42fbf0a2e: phenoflow mariadb 1 25a87c51195c: visualiser spring 1 fa067dd94772: visualiser mongo 1 c6bf5584a599: visualiser git-server 1 - hack to enable the visualiser to work. 5e06520d9e56: visualiser sparql 1 - Receives SPARQL queries to execute against triplestore. • Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype Definitions. https://doi.org/10.1101/2020.07.01.20144196 10
  • 17. Architecture 2: Clinical guidelines i Allowing users to store, and identify interactions between, clinical guidelines: Interaction Interaction API (JS Server) Reasoner Reasoner API (Prolog Server) Prolog Reasoner Store Store API API Guidelines Apache Jena Fuseki 11
  • 18. Architecture 2: Clinical guidelines ii API developed to structure interactions between services, and with end-users. Microservice Endpoint Endpoint Description Interaction /guideline/create Create a guideline set. /guideline/(add|delete) Add or delete infor- mation from a guide- line set. /guideline/[knowledge]/ (add|delete) Add or delete sup- porting guideline knowledge. /guideline/[data]+/get Get data from a guideline. /guidelines/[action] Perform a processing action on a guideline set. Reasoner /guidelines/.+ All paths with the plural word guide- lines are handled by the reasoner, as these relate to the process- ing of guidelines. Store /guideline/.+ All paths with the singular word guide- line are handled by the store, as these relate to the storage and retrieval of guide- line information. 12
  • 19. Architecture 2: Clinical guidelines iii Deployed services: fbfd91d79c34: tmrweb webapp 1 96771158cbaa: tmrweb backend 1 4139fa64f0b8: tmrweb fuseki 1 • https://github.com/kclconsult/tmrweb 13
  • 20. Architecture 3: CONSULT i A modular decision-support system (DSS) intended to help patients suffering from chronic conditions self-manage their treatments: Blood pressure (Nokia) Pulse and Activity (Garmin) Heart Rate / ECG (VitalPatch) EHR (EMIS) Device Integration (Nokia) Device Integration (Garmin) Device Integration (Vitalpatch) Sensor-FHIR converter EHR Integration (EMIS) EHR-FHIR converter HAPI FHIR Message Passer Dialogue Manager Authentication Server Provenance Data Miner Argumentation Engine Tablet Browser Chat Server UI backend PC Browser Sensor data Sensor data Sensor data EHR data FHIR resources FHIR resources FHIR resources Processed patient data Patient data Fragment Credentials Processed patient data Processed patient data, goal Results Dialogue responses Data summaries, tips device-web-facing ehr-web-facing internal-secure internal-comp internal-lightweight user-web-facing 14
  • 21. Architecture 3: CONSULT ii Example deployed services: f10ac72af667: device-integration nokia proxy 1 99c9d9c6f528: device-integration nokia webapp 1 c3bca50f82d6: device-integration nokia mariadb 1 eaff2a38ea77: sensor-fhir-converter rabbit 1 98efbddefd66: sensor-fhir-converter webapp-queue 1 f48fc4aca88e: fhir-server proxy 1 84b3dcce41dd: fhir-server hapi 1 cfb0f4a79ab0: fhir-server mariadb 1 ... • https://kclhi.org/consult/demo/?a=UGU2YmFxRUQ6dWtlN2JQRXk= • https://github.com/kclconsult 15
  • 22. Other examples • JupyterHub architecture tailored for COVID-19 analysis: https://github.com/kclhi/jupyter-docker • ’Nexus’ automated programming assessment architecture. https://api.semanticscholar.org/CorpusID:3815787 16
  • 23. Developer experiences • The process works, and can significantly change the performance of software, its intelligibility and ease of deployment. This was especially true of the guidelines software. • There was a lack of familiarity with, and thus some resistance to, the use of microservices for development. • The notion of manually setting up a server, and manually installing things, is still very much the norm. • The fact that microservices allow for technological heterogeneity allowed people to still use the technologies they were familiar with, which was a big help in the adoption of the paradigm. 17
  • 24. From workflow to model Explore the use of: • Container management software (Kubernetes, Swarm), capitalising on the fact that services are currently ‘scale-ready’. • Proprietary cloud services, like ’serverless’ AWS Lambda, rather than simply running everything in containers. • Different technologies, e.g. communication mechanisms such as RPC, and other languages (such as Typescript over JS). • Additional practices, such as CD for updating deployed containers. 18