GSoC 2021: SMART-on-FHIR
Primary mentor | @Ian Bacher |
Backup mentor | @Siddharth Vaish |
Assigned to | @Ankit kumar |
Abstract
FHIR is an emerging standard for healthcare interoperability. OpenMRS has been an early adopter of the FHIR standard, but there is still more we could add to the FHIR module. One of the key pieces of FHIR-based technology we want to support is the SMART on FHIR App Launch Framework. This is a standard for connecting custom applications to a FHIR server in a secure manner. Essentially, it allows non-OpenMRS applications to talk to OpenMRS in a secure manner using the OAuth2 authentication framework.
OpenMRS has had a history of trying to integrate the SMART on FHIR framework, including past GSoC projects, such as this from 2017 and this project from last year, but so far we haven't quite gotten things production-ready. The goal of this project is to build on the work done in GSoC 2020 to get things into a state where our setup is production-ready. In addition to the value of running SMART-on-FHIR applications, this work will demonstrate how to integrate OpenMRS and Keycloak to provide a (hopefully) seamless user login experience.
Project Champions
@Ian Bacher
Requirements
Good Java skills
Good understanding of REST
Some familiarity with Docker
Familiarity with J2EE web programming (e.g., JSPs)
Familiarity with OAuth2
Soft skills to interact with the HAPI and FHIR community and OpenMRS community in order to gather requirements and technical feedback
Familiarity with Javascript and HTML/CSS
A willingness to learn (honestly, there are a lot of technologies involved in this; you don't need to be an expert on all of them, just willing to learn).
Objectives
Build a sample SMART-on-FHIR application that can communicate with OpenMRS and supports both EHR Launch and Standalone Launch
For EHR launch, we should be able to launch the application from:
The Patient view in the RefApp
The Visit or Encounter view in the RefApp
For Standalone launch, we should be able to select:
The patient scope
The encounter / visit scope
Logging out of OpenMRS should end the Keycloak session
Extra Credit
Update the Keycloak login page to look more like OpenMRS
Integrate EHR launch with the Microfrontends Patient Chart project
Documentation
Using Keycloak for SMART-on-FHIR Support - Documentation created for the step-by-step tutorial to setup the SMART-on-FHIR and keycloak server.
Detailed Project Report
Weekly Reports
Week 0: GSoC 2021 at OpenMRS | Community Bonding Period | by Ankit Kumar | Medium
Week 1: GSoC’21 @OpenMRS | Coding Period | Week 1 | by Ankit Kumar | Medium
Week 2: GSoC’21 @OpenMRS | Coding Period | week 2 - Ankit Kumar - Medium
Week 3: GSoG’21@OpenMRS | Coding Period | week 3 - Ankit Kumar - Medium
Week 4: GSoC’21@OpenMRS | Coding Period | Week 4 - Ankit Kumar - Medium
Week 5: GSoC’21@OpenMRS | Coding Period | Week 5 - Ankit Kumar - Medium
Week 6: GSoC’21@OpenMRS | Coding Period | Week 6 - Ankit Kumar - Medium
Week 7: GSOC’21@OpenMRS | Coding Period | Week 7 - Ankit Kumar - Medium
Week 8: GSoC’21@OpenMRS | Coding Period | Week 8 - Ankit Kumar - Medium
Week 9: GSoC’21@OpenMRS | Coding Period | Week 9 - Ankit Kumar - Medium
Week 10: GSoC’21@OpenMRS | Coding Period | Week 10 - Ankit Kumar - Medium
Final Presentation
Resources
http://www.hl7.org/fhir/smart-app-launch/ - SMART-on-FHIR SMART launch
http://www.hl7.org/fhir/smart-app-launch/conformance/index.html#using-well-known - SMART-on-FHIR Endpoints
https://www.keycloak.org/documentation.html - keycloak Documentation
https://docs.smarthealthit.org/ - SMART APP documentation
https://talk.openmrs.org/t/gsoc-2020-smart-on-fhir-project-final-evaluation/30061 - GSoC 2020 SMART-on-FHIR Final Report
Important GitHub links: