SlideShare a Scribd company logo
1 of 34
Download to read offline
Using Microservices to Design Patient-facing Research
Software
IEEE 18th International Conference on e-Science
Martin Chapman
Kingā€™s College London
Traditional research software
Software that facilitates research is usually designed to be used by researchers themselves.
Figure 1: An agent-based model (ABM) of crowds around the London Eye.
1
Modern research software
Increasingly, research software is also designed for other users, where the focus of the research
is the outcome of interactions with this software. In the health informatics research domain,
these users are often patients.
Figure 2: The ā€˜ZOEā€™ COVID symptom tracking application.
2
Researchers vs. patients i
Developing software that can both facilitate research and effective patient interactions
presents a number of challenges:
ā€¢ Software development. The research to be conducted may necessitate the use of
certain languages (e.g. a certain package that is only available in Python), which might
not match the languages that are best for developing software for potentially large
groups of patients (e.g. V8-compiled Javascript).
3
Researchers vs. patients i
Developing software that can both facilitate research and effective patient interactions
presents a number of challenges:
ā€¢ Software development. The research to be conducted may necessitate the use of
certain languages (e.g. a certain package that is only available in Python), which might
not match the languages that are best for developing software for potentially large
groups of patients (e.g. V8-compiled Javascript).
ā€¢ Modularity. Researchers naturally want to change parts of a system (e.g. a
recommendation engine) in order to facilitate different experiments. These experiments,
which might affect stability, are typically avoided in live, patient-facing systems.
3
Researchers vs. patients i
Developing software that can both facilitate research and effective patient interactions
presents a number of challenges:
ā€¢ Software development. The research to be conducted may necessitate the use of
certain languages (e.g. a certain package that is only available in Python), which might
not match the languages that are best for developing software for potentially large
groups of patients (e.g. V8-compiled Javascript).
ā€¢ Modularity. Researchers naturally want to change parts of a system (e.g. a
recommendation engine) in order to facilitate different experiments. These experiments,
which might affect stability, are typically avoided in live, patient-facing systems.
ā€¢ Processing time. Similarly, the components experimented with might have longer
execution times. Long execution times should be minimised in medical systems where
expedient responses are often essential.
3
Researchers vs. patients ii
Developing software that can facilitate both research and effective patient interactions presents
a number of challenges:
ā€¢ Reproducibility: Researchers want their methodology to be reproducible, and a
component of this is the availability of the software used to produce results. For
patient-facing systems, especially those that deal with health data, it may not be
possible/preferable to share part of a system (e.g. a proprietary health data schema).
4
Researchers vs. patients ii
Developing software that can facilitate both research and effective patient interactions presents
a number of challenges:
ā€¢ Reproducibility: Researchers want their methodology to be reproducible, and a
component of this is the availability of the software used to produce results. For
patient-facing systems, especially those that deal with health data, it may not be
possible/preferable to share part of a system (e.g. a proprietary health data schema).
ā€¢ Data quality: Researchers are likely to want to experiment with complex data sources
(high-volume, heterogeneous, etc.), and use them as input to their software. In health
systems, data sources need to be as accurate and stable as possible to ensure correct
interventions.
4
Microservices
To try and address some of these issues we can consider how to structure our software.
Figure 3: Example customer information microservice. Newman, 2019
A microservice design approach suggests that a system should be separated into individual
communicating services (often via HTTP), each of which provides a single piece of overall
system functionality.
5
Microservices in industry
The use of microservices in industrial settings (and in the wider software development
community) is commonplace.
However (at least in our experience) patient-facing research software does not adopt industry
paradigms like this.
Wider goal: encourage the use of established software engineering techniques when developing
(patient-facing) research software.
6
Impact of microservices
1. Software development. Each service can be built using a different language, allowing
languages to be combined. Technological heterogeneity
2. Modularity. Service logic can be replaced with minimal impact to the rest of the
system (and services can be used in other systems). Replaceability and Composability
3. Processing time. Functionality with long execution times can be isolated, ensuring the
remainder of the system is not affected. Resilience
4. Reproducibility. A system can be deployed even in the absence of certain components.
Ease of deployment
5. Data quality. The components of a system can be replicated in order to ensure
sufficient data capture. Scalability
7
CONSULT i
We can demonstrate each of these benefits in the context of CONSULT, a decision-support
system for stroke patients that was developed under the microservice paradigm.
Figure 4: CONSULTā€™s dashboard interface Figure 5: CONSULTā€™s chatbot interface
8
CONSULT ii
Blood pressure
(Withings API)
Pulse and Activity
(Garmin API)
Heart Rate / ECG
(Medibiosense API)
EHR
(EMIS)
Device
Integration
(Withings)
Device
Integration
(Garmin)
Device
Integration
(Vitalpatch)
Sensor-FHIR
converter
EHR Integration
(EMIS)
EHR-FHIR
converter
FHIR Health
Data Server
Message
Passer
Dialogue
Manager
Authentication
Server
Provenance
Server
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
Substitution
Credentials
Processed
patient data
Processed patient data,
goal
Results
Dialogue responses
Data summaries, tips
Figure 6: CONSULTā€™s microservice architecture
9
CONSULT iii
CONSULTā€™s full architecture is shown on the previous slide, with each line representing the
transfer of data between two services.
Here, we will consider three (simplified) example flows:
user dialogue manager argumentation engine
A user interacting with the chatbot.
user dashboard health data store
A user viewing (a summary of) their health data.
wearable device sensor integration health data store
Sensor data being passed to the system.
10
1. Software development
The CONSULT team consistent predominantly of researchers familiar with Python and with R.
11
1. Software development
The CONSULT team consistent predominantly of researchers familiar with Python and with R.
The use of microservices allowed us to combine these technologies with languages traditionally
better suited for scalable application development (e.g. Javascript):
user dialogue manager argumentation engine
11
1. Software development
The CONSULT team consistent predominantly of researchers familiar with Python and with R.
The use of microservices allowed us to combine these technologies with languages traditionally
better suited for scalable application development (e.g. Javascript):
user dialogue manager argumentation engine
Caveat: Not all languages are optimised to work as service-based entities (e.g. R).
11
2. Modularity
The CONSULT team wanted to be able to switch out the existing argumentation-based
reasoner for other reasoners in the future.
12
2. Modularity
The CONSULT team wanted to be able to switch out the existing argumentation-based
reasoner for other reasoners in the future.
The use of microservices ensured a separation between interface and logic, making it possible
for this to take place:
user dialogue manager API Logic
Argumentation
Engine
12
2. Modularity
The CONSULT team wanted to be able to switch out the existing argumentation-based
reasoner for other reasoners in the future.
The use of microservices ensured a separation between interface and logic, making it possible
for this to take place:
user dialogue manager API Logic
Argumentation
Engine
Caveat: Owing to the variety of reasoners that might be used, we did not deem it possible
to achieve complete API and logic separation (i.e. modifications to the interface were
inevitable). We developed a dialogue syntax, with modifiable endpoint references, as a
potential way to offset this.
12
REFLECT
The presence of encapsulated logic also allowed CONSULTā€™s services to be used elsewhere:
Blood pressure
(Withings API)
Pulse and Activity
(Garmin API)
Heart Rate / ECG
(Medibiosense API)
Device
Integration
(Withings)
Device
Integration
(Garmin)
Device
Integration
(Vitalpatch)
Sensor-FHIR
converter
FHIR server
Metadviceā€™s
cardiometabolic
DSS services
Sensor data
Sensor
data
Sensor data
FHIR resources
FHIR resources
Figure 7: The REFLECT architecture
13
3. Processing time i
The argumentation-based reasoner was associated with longer execution times.
user dialogue manager argumentation engine
This risked affecting the response time of other parts of the system:
user dashboard health data store
14
3. Processing time ii
The use of microservices ensures that interactions with the argumentation engine are a distinct
flow, and other flows are unaffected:
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
Time
0
5
10
15
20
Response
time
(secs)
argumentation
dashboard
Figure 8: Independence of argumentation engine and dashboard services
15
3. Processing time iii
Caveat: Flows containing the dialogue manager still have to wait. However, other services in
the flow (e.g. the dialogue manager) remain responsive to report on longer execution times.
user dialogue manager argumentation engine
16
4. Ease of deployment
We wanted the observations made based on the use of CONSULT to potentially be
reproduced, but were not comfortable releasing (the schema of) our health data server as a
part of the architecture.
user dashboard health data store
wearable device sensor integration health data store
17
4. Ease of deployment
We wanted the observations made based on the use of CONSULT to potentially be
reproduced, but were not comfortable releasing (the schema of) our health data server as a
part of the architecture.
user dashboard health data store
wearable device sensor integration health data store
Microservices ensure deployment is still possible in the absence of certain services. New users
are able to plug new services into the architecture (e.g. a replacement health data store).
17
4. Ease of deployment
We wanted the observations made based on the use of CONSULT to potentially be
reproduced, but were not comfortable releasing (the schema of) our health data server as a
part of the architecture.
user dashboard health data store
wearable device sensor integration health data store
Microservices ensure deployment is still possible in the absence of certain services. New users
are able to plug new services into the architecture (e.g. a replacement health data store).
Caveat: The use of services might actually hinder deployment, if too many are used and
the architecture becomes overly complex. A balance needs to be found between having
services with a limited remit and having an appropriate number of services so as to ensure
intelligibility.
17
5. Scalability
We wanted to be able to have complex data sources as input to the system (e.g. wearable
device data) without losing any data.
18
5. Scalability
We wanted to be able to have complex data sources as input to the system (e.g. wearable
device data) without losing any data.
Service replication ensures high volumes of data can be collected; the use of a queue ensures
data is not lost if a service enters an error state:
wearable device sensor integration
sensor integration
sensor integration
health data store
queue
queue
queue
18
5. Scalability i
We can, again, see this
in practice:
monolithic CONSULT
0
20000
40000
60000
80000
100000
120000
140000
Average
responses
Ok
Timeout
Figure 9: How CONSULT responds to high load vs. an emulated monolithic
architecture
19
5. Scalability ii
Caveat: Replicating services has a limited impact in some areas of the system; it does not,
for example, extend to distributed processing in the case of the argumentation engine.
user dialogue manager argumentation engine
20
Limitations and considerations
ā€¢ Monolithic architectures are not always a bad way to structure software. If well
resourced, they too can solve many of the problems we have identified. However, we
believe that a microservice approach achieves the benefits we have seen by design.
ā€¢ The use of a microservice architecture, while solving many problems, has no impact on
user interface design, a key component of patient-friendly software.
ā€¢ Microservices may introduce new issues (e.g. questions of governance).
21
Summary and Future Work
ā€¢ It can be difficult to develop a piece of software that facilitates research and is suitable
for use by patients.
ā€¢ We believe developing software for these purposes under the microservice architecture
paradigm can address this issue.
ā€¢ Despite its impact, we have identified limitations with the application of the paradigm. In
some cases, we have tried to offset these limitations with additional contributions (e.g.
a dialogue templating syntax), but some issues remain and should be considered when
using a microservice approach.
ā€¢ Overall, we want to encourage the use of established software engineering techniques
when software is developed for research with patients.
Future work will, among other things, explore the impact of the paradigm on other users, such
as general practitioners (GPs).
22
Thank you!
22

More Related Content

Similar to Using Microservices to Design Patient-facing Research Software

A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...iosrjce
Ā 
Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirementcricket2ime
Ā 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
Ā 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for RoboticsLorran Pegoretti
Ā 
Software Evaluation
Software EvaluationSoftware Evaluation
Software EvaluationLori Gilbert
Ā 
End User Computing
End User ComputingEnd User Computing
End User ComputingRam Dutt Shukla
Ā 
Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Editor IJCATR
Ā 
Improved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentImproved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentEditor IJCATR
Ā 
A Voice Based Assistant Using Google Dialogflow And Machine Learning
A Voice Based Assistant Using Google Dialogflow And Machine LearningA Voice Based Assistant Using Google Dialogflow And Machine Learning
A Voice Based Assistant Using Google Dialogflow And Machine LearningEmily Smith
Ā 
Development Tools - Abhijeet
Development Tools - AbhijeetDevelopment Tools - Abhijeet
Development Tools - AbhijeetAbhijeet Kalsi
Ā 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Ra'Fat Al-Msie'deen
Ā 
Report hospital
Report hospitalReport hospital
Report hospitalRachit Gaur
Ā 
chapter 7.docx
chapter 7.docxchapter 7.docx
chapter 7.docxSami Siddiqui
Ā 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayDivya Watson
Ā 

Similar to Using Microservices to Design Patient-facing Research Software (20)

A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
A Generic Open Source Framework for Auto Generation of Data Manipulation Comm...
Ā 
Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirement
Ā 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
Ā 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for Robotics
Ā 
Software Evaluation
Software EvaluationSoftware Evaluation
Software Evaluation
Ā 
End User Computing
End User ComputingEnd User Computing
End User Computing
Ā 
81-T48
81-T4881-T48
81-T48
Ā 
Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...
Ā 
Improved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentImproved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application Development
Ā 
Cruise
CruiseCruise
Cruise
Ā 
Public voice
Public voicePublic voice
Public voice
Ā 
A Voice Based Assistant Using Google Dialogflow And Machine Learning
A Voice Based Assistant Using Google Dialogflow And Machine LearningA Voice Based Assistant Using Google Dialogflow And Machine Learning
A Voice Based Assistant Using Google Dialogflow And Machine Learning
Ā 
H1803044651
H1803044651H1803044651
H1803044651
Ā 
Development Tools - Abhijeet
Development Tools - AbhijeetDevelopment Tools - Abhijeet
Development Tools - Abhijeet
Ā 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
Ā 
Report hospital
Report hospitalReport hospital
Report hospital
Ā 
chapter 7.docx
chapter 7.docxchapter 7.docx
chapter 7.docx
Ā 
chapter 7.pdf
chapter 7.pdfchapter 7.pdf
chapter 7.pdf
Ā 
Service Ecosystem
Service EcosystemService Ecosystem
Service Ecosystem
Ā 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
Ā 

More from Martin Chapman

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 learningMartin Chapman
Ā 
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 systemsMartin Chapman
Ā 
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...Martin Chapman
Ā 
Technical Validation through Automated Testing
Technical Validation through Automated TestingTechnical Validation through Automated Testing
Technical Validation through Automated TestingMartin 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
Ā 
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 patientsMartin 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
Ā 
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 softwareMartin Chapman
Ā 
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 softwareMartin Chapman
Ā 
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 healthMartin Chapman
Ā 
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 healthcareMartin Chapman
Ā 
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 systemsMartin Chapman
Ā 
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 knowledgeMartin Chapman
Ā 
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...Martin Chapman
Ā 
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...Martin Chapman
Ā 
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 systemsMartin 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
Ā 
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 phenotypingMartin Chapman
Ā 
Phenoflow: An Architecture for Computable Phenotypes
Phenoflow: An Architecture for Computable PhenotypesPhenoflow: An Architecture for Computable Phenotypes
Phenoflow: An Architecture for Computable PhenotypesMartin 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
Ā 
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
Ā 
Phenoflow 2021
Phenoflow 2021Phenoflow 2021
Phenoflow 2021
Ā 

Recently uploaded

How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
Ā 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
Ā 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
Ā 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)Dr. Mazin Mohamed alkathiri
Ā 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
Ā 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxUnboundStockton
Ā 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
Ā 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
Ā 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
Ā 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
Ā 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
Ā 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
Ā 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
Ā 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
Ā 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
Ā 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
Ā 

Recently uploaded (20)

TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
Ā 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
Ā 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Ā 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
Ā 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)
Ā 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
Ā 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docx
Ā 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
Ā 
Model Call Girl in Tilak Nagar Delhi reach out to us at šŸ”9953056974šŸ”
Model Call Girl in Tilak Nagar Delhi reach out to us at šŸ”9953056974šŸ”Model Call Girl in Tilak Nagar Delhi reach out to us at šŸ”9953056974šŸ”
Model Call Girl in Tilak Nagar Delhi reach out to us at šŸ”9953056974šŸ”
Ā 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
Ā 
Model Call Girl in Bikash Puri Delhi reach out to us at šŸ”9953056974šŸ”
Model Call Girl in Bikash Puri  Delhi reach out to us at šŸ”9953056974šŸ”Model Call Girl in Bikash Puri  Delhi reach out to us at šŸ”9953056974šŸ”
Model Call Girl in Bikash Puri Delhi reach out to us at šŸ”9953056974šŸ”
Ā 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
Ā 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
Ā 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
Ā 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
Ā 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
Ā 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
Ā 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
Ā 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
Ā 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
Ā 

Using Microservices to Design Patient-facing Research Software

  • 1. Using Microservices to Design Patient-facing Research Software IEEE 18th International Conference on e-Science Martin Chapman Kingā€™s College London
  • 2. Traditional research software Software that facilitates research is usually designed to be used by researchers themselves. Figure 1: An agent-based model (ABM) of crowds around the London Eye. 1
  • 3. Modern research software Increasingly, research software is also designed for other users, where the focus of the research is the outcome of interactions with this software. In the health informatics research domain, these users are often patients. Figure 2: The ā€˜ZOEā€™ COVID symptom tracking application. 2
  • 4. Researchers vs. patients i Developing software that can both facilitate research and effective patient interactions presents a number of challenges: ā€¢ Software development. The research to be conducted may necessitate the use of certain languages (e.g. a certain package that is only available in Python), which might not match the languages that are best for developing software for potentially large groups of patients (e.g. V8-compiled Javascript). 3
  • 5. Researchers vs. patients i Developing software that can both facilitate research and effective patient interactions presents a number of challenges: ā€¢ Software development. The research to be conducted may necessitate the use of certain languages (e.g. a certain package that is only available in Python), which might not match the languages that are best for developing software for potentially large groups of patients (e.g. V8-compiled Javascript). ā€¢ Modularity. Researchers naturally want to change parts of a system (e.g. a recommendation engine) in order to facilitate different experiments. These experiments, which might affect stability, are typically avoided in live, patient-facing systems. 3
  • 6. Researchers vs. patients i Developing software that can both facilitate research and effective patient interactions presents a number of challenges: ā€¢ Software development. The research to be conducted may necessitate the use of certain languages (e.g. a certain package that is only available in Python), which might not match the languages that are best for developing software for potentially large groups of patients (e.g. V8-compiled Javascript). ā€¢ Modularity. Researchers naturally want to change parts of a system (e.g. a recommendation engine) in order to facilitate different experiments. These experiments, which might affect stability, are typically avoided in live, patient-facing systems. ā€¢ Processing time. Similarly, the components experimented with might have longer execution times. Long execution times should be minimised in medical systems where expedient responses are often essential. 3
  • 7. Researchers vs. patients ii Developing software that can facilitate both research and effective patient interactions presents a number of challenges: ā€¢ Reproducibility: Researchers want their methodology to be reproducible, and a component of this is the availability of the software used to produce results. For patient-facing systems, especially those that deal with health data, it may not be possible/preferable to share part of a system (e.g. a proprietary health data schema). 4
  • 8. Researchers vs. patients ii Developing software that can facilitate both research and effective patient interactions presents a number of challenges: ā€¢ Reproducibility: Researchers want their methodology to be reproducible, and a component of this is the availability of the software used to produce results. For patient-facing systems, especially those that deal with health data, it may not be possible/preferable to share part of a system (e.g. a proprietary health data schema). ā€¢ Data quality: Researchers are likely to want to experiment with complex data sources (high-volume, heterogeneous, etc.), and use them as input to their software. In health systems, data sources need to be as accurate and stable as possible to ensure correct interventions. 4
  • 9. Microservices To try and address some of these issues we can consider how to structure our software. Figure 3: Example customer information microservice. Newman, 2019 A microservice design approach suggests that a system should be separated into individual communicating services (often via HTTP), each of which provides a single piece of overall system functionality. 5
  • 10. Microservices in industry The use of microservices in industrial settings (and in the wider software development community) is commonplace. However (at least in our experience) patient-facing research software does not adopt industry paradigms like this. Wider goal: encourage the use of established software engineering techniques when developing (patient-facing) research software. 6
  • 11. Impact of microservices 1. Software development. Each service can be built using a different language, allowing languages to be combined. Technological heterogeneity 2. Modularity. Service logic can be replaced with minimal impact to the rest of the system (and services can be used in other systems). Replaceability and Composability 3. Processing time. Functionality with long execution times can be isolated, ensuring the remainder of the system is not affected. Resilience 4. Reproducibility. A system can be deployed even in the absence of certain components. Ease of deployment 5. Data quality. The components of a system can be replicated in order to ensure sufficient data capture. Scalability 7
  • 12. CONSULT i We can demonstrate each of these benefits in the context of CONSULT, a decision-support system for stroke patients that was developed under the microservice paradigm. Figure 4: CONSULTā€™s dashboard interface Figure 5: CONSULTā€™s chatbot interface 8
  • 13. CONSULT ii Blood pressure (Withings API) Pulse and Activity (Garmin API) Heart Rate / ECG (Medibiosense API) EHR (EMIS) Device Integration (Withings) Device Integration (Garmin) Device Integration (Vitalpatch) Sensor-FHIR converter EHR Integration (EMIS) EHR-FHIR converter FHIR Health Data Server Message Passer Dialogue Manager Authentication Server Provenance Server 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 Substitution Credentials Processed patient data Processed patient data, goal Results Dialogue responses Data summaries, tips Figure 6: CONSULTā€™s microservice architecture 9
  • 14. CONSULT iii CONSULTā€™s full architecture is shown on the previous slide, with each line representing the transfer of data between two services. Here, we will consider three (simplified) example flows: user dialogue manager argumentation engine A user interacting with the chatbot. user dashboard health data store A user viewing (a summary of) their health data. wearable device sensor integration health data store Sensor data being passed to the system. 10
  • 15. 1. Software development The CONSULT team consistent predominantly of researchers familiar with Python and with R. 11
  • 16. 1. Software development The CONSULT team consistent predominantly of researchers familiar with Python and with R. The use of microservices allowed us to combine these technologies with languages traditionally better suited for scalable application development (e.g. Javascript): user dialogue manager argumentation engine 11
  • 17. 1. Software development The CONSULT team consistent predominantly of researchers familiar with Python and with R. The use of microservices allowed us to combine these technologies with languages traditionally better suited for scalable application development (e.g. Javascript): user dialogue manager argumentation engine Caveat: Not all languages are optimised to work as service-based entities (e.g. R). 11
  • 18. 2. Modularity The CONSULT team wanted to be able to switch out the existing argumentation-based reasoner for other reasoners in the future. 12
  • 19. 2. Modularity The CONSULT team wanted to be able to switch out the existing argumentation-based reasoner for other reasoners in the future. The use of microservices ensured a separation between interface and logic, making it possible for this to take place: user dialogue manager API Logic Argumentation Engine 12
  • 20. 2. Modularity The CONSULT team wanted to be able to switch out the existing argumentation-based reasoner for other reasoners in the future. The use of microservices ensured a separation between interface and logic, making it possible for this to take place: user dialogue manager API Logic Argumentation Engine Caveat: Owing to the variety of reasoners that might be used, we did not deem it possible to achieve complete API and logic separation (i.e. modifications to the interface were inevitable). We developed a dialogue syntax, with modifiable endpoint references, as a potential way to offset this. 12
  • 21. REFLECT The presence of encapsulated logic also allowed CONSULTā€™s services to be used elsewhere: Blood pressure (Withings API) Pulse and Activity (Garmin API) Heart Rate / ECG (Medibiosense API) Device Integration (Withings) Device Integration (Garmin) Device Integration (Vitalpatch) Sensor-FHIR converter FHIR server Metadviceā€™s cardiometabolic DSS services Sensor data Sensor data Sensor data FHIR resources FHIR resources Figure 7: The REFLECT architecture 13
  • 22. 3. Processing time i The argumentation-based reasoner was associated with longer execution times. user dialogue manager argumentation engine This risked affecting the response time of other parts of the system: user dashboard health data store 14
  • 23. 3. Processing time ii The use of microservices ensures that interactions with the argumentation engine are a distinct flow, and other flows are unaffected: t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 Time 0 5 10 15 20 Response time (secs) argumentation dashboard Figure 8: Independence of argumentation engine and dashboard services 15
  • 24. 3. Processing time iii Caveat: Flows containing the dialogue manager still have to wait. However, other services in the flow (e.g. the dialogue manager) remain responsive to report on longer execution times. user dialogue manager argumentation engine 16
  • 25. 4. Ease of deployment We wanted the observations made based on the use of CONSULT to potentially be reproduced, but were not comfortable releasing (the schema of) our health data server as a part of the architecture. user dashboard health data store wearable device sensor integration health data store 17
  • 26. 4. Ease of deployment We wanted the observations made based on the use of CONSULT to potentially be reproduced, but were not comfortable releasing (the schema of) our health data server as a part of the architecture. user dashboard health data store wearable device sensor integration health data store Microservices ensure deployment is still possible in the absence of certain services. New users are able to plug new services into the architecture (e.g. a replacement health data store). 17
  • 27. 4. Ease of deployment We wanted the observations made based on the use of CONSULT to potentially be reproduced, but were not comfortable releasing (the schema of) our health data server as a part of the architecture. user dashboard health data store wearable device sensor integration health data store Microservices ensure deployment is still possible in the absence of certain services. New users are able to plug new services into the architecture (e.g. a replacement health data store). Caveat: The use of services might actually hinder deployment, if too many are used and the architecture becomes overly complex. A balance needs to be found between having services with a limited remit and having an appropriate number of services so as to ensure intelligibility. 17
  • 28. 5. Scalability We wanted to be able to have complex data sources as input to the system (e.g. wearable device data) without losing any data. 18
  • 29. 5. Scalability We wanted to be able to have complex data sources as input to the system (e.g. wearable device data) without losing any data. Service replication ensures high volumes of data can be collected; the use of a queue ensures data is not lost if a service enters an error state: wearable device sensor integration sensor integration sensor integration health data store queue queue queue 18
  • 30. 5. Scalability i We can, again, see this in practice: monolithic CONSULT 0 20000 40000 60000 80000 100000 120000 140000 Average responses Ok Timeout Figure 9: How CONSULT responds to high load vs. an emulated monolithic architecture 19
  • 31. 5. Scalability ii Caveat: Replicating services has a limited impact in some areas of the system; it does not, for example, extend to distributed processing in the case of the argumentation engine. user dialogue manager argumentation engine 20
  • 32. Limitations and considerations ā€¢ Monolithic architectures are not always a bad way to structure software. If well resourced, they too can solve many of the problems we have identified. However, we believe that a microservice approach achieves the benefits we have seen by design. ā€¢ The use of a microservice architecture, while solving many problems, has no impact on user interface design, a key component of patient-friendly software. ā€¢ Microservices may introduce new issues (e.g. questions of governance). 21
  • 33. Summary and Future Work ā€¢ It can be difficult to develop a piece of software that facilitates research and is suitable for use by patients. ā€¢ We believe developing software for these purposes under the microservice architecture paradigm can address this issue. ā€¢ Despite its impact, we have identified limitations with the application of the paradigm. In some cases, we have tried to offset these limitations with additional contributions (e.g. a dialogue templating syntax), but some issues remain and should be considered when using a microservice approach. ā€¢ Overall, we want to encourage the use of established software engineering techniques when software is developed for research with patients. Future work will, among other things, explore the impact of the paradigm on other users, such as general practitioners (GPs). 22