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

Detailed Project Report

Weekly Reports

Final Presentation

  • Talk Post - Link

  • Presentation Video - Link

  • Demo SMART APP Video - Link

Resources