Objective
The objective of FHIR Implementation track is to provide a starting point for participants to put their FHIR knowledge into practice.
The track covers the basics of Facade & Repository FHIR Server implementation.
Outcome
After participating in this track, participants would be able to
- Implement a basic
- HAPI FHIR Facade Server
- HAPI FHIR JPA Server
- Be aware of Extraction -> Ingestion -> Retrieval steps within an application workflow.
- Become familiar with:
- FHIR Resource Extensions
- Custom types in FHIR resources
- FHIR interface Interceptors
- Security configurations of HAPI FHIR server
Upon completion of this track, participants would be able to work on real-life use cases such as Ayushman Bharath Digital Health Mission https://ndhm.gov.in/.
Intended Audience
- Solution Architect
- Product Owner
- Developers
- Participants of FHIR Starter Tracks from previous Connectathon
- Students (Health Informatics)
Prerequisites
Participants are required to have
- Basic knowledge of “Java Spring Boot” for creating new project\executing application.
- Basic knowledge of Spring Data JPA.
- Basic knowledge of MAVEN for adding different dependencies in pom file
- SQL Knowledge for writing basic queries to perform CRUD Operations
If you are not functionally familiar with FHIR, please view the following two links and video
Knowledge to read resource specification. At least get familiar with Patient resource structure
Software requirements for the Track
Participants of this track should have installed
- API Client (Choose One)
- Postman https://www.postman.com/downloads/
- Insomnia: https://insomnia.rest/download
- Java editor (Choose One)
- JDK version 11.0: https://www.oracle.com/in/java/technologies/javase/jdk11-archive-downloads.html
- Maven: https://maven.apache.org/install.html
- Git Client: https://git-scm.com/downloads
- MySQL Database Client (Choose One)
- DBeaver (https://dbeaver.io/)
- MySQL Workbench (https://dev.mysql.com/downloads/workbench/)
- Docker:
- Windows: https://hub.docker.com/editions/community/docker-ce-desktop-windows
- Mac (using HomeBrew): https://www.cprime.com/resources/blog/docker-on-mac-with-homebrew-a-step-by-step-tutorial/
- Linux (ubuntu): Use this Docker Script
Track Orientation
Following topics are covered in "Orientation Sessions" conducted as part of Pre-Connectathon. It is highly recommended that participants to engage early with track to get the best benefits.
Date | Time | Topic | Meeting Details |
---|---|---|---|
14 November 2021 | 05:00 PM | Track Orientation | |
20 November | 05:00 PM | Introduction to HAPI - Part 1 * | |
27 November | 05:00 PM | Introduction to HAPI - Part 2 | Click here to view |
28 November* | 05:00 PM | Facade Server basic code and dependencies * | Click here to view |
04 December | 05:00 PM | FHIR Architecture Framework Overview | Click here to view |
05 December * | 05:00 PM | Installing and Operating OpenEMR * | Click here to view |
06 December | 08:30 PM | Using Kongo to secure HAPI FHIR Server | Click here to view |
* Important & Mandatory
Infrastructure Provided
Provided by | Infrastructure Resource | Usage Notes |
---|---|---|
HL7 India | Github Repository | To store artefacts such as Design Diagrams, Code Snippets, Sample Data Web Application Code & readme files. |
Track Leads | Repository Server | Participants will be given restricted access to this server to perform CRUD operations. |
Bring Your Own | Server | An OpenEMR Docker Image would be shared. Participants are expected to install this image locally/ on cloud. |
Use cases
Facade/Plain Server Approach:
The HAPI FHIR Plain Server often referred to as a Facade, is an implementation of a FHIR server against an arbitrary backend. During Connectathon, we shall use the database of OpenEMR. This use case will cover:
- Search, Create, Read operations for Patient Resource
- Search, Create, Read operations for Observation Resource using simple Laboratory Results.
Repository Server Approach:
The HAPI FHIR JPA Server is a complete implementation of a FHIR server against a relational database. Unlike the Plain Server, the JPA server provides its own database schema and handles all storage and retrieval logic without any coding being required. The JPA server has been successfully used in many use cases. This use case will be cover:
- Input EMR data (Patients & Observation) in V2 HL7 messages from text file
- Design and Mapping of Patient and Observation FHIR resource
- Load data into FHIR server using FHIR server provided APIs
- Read the EMR data using APIs provided by FHIR server
Session Agenda
Time | Time | Agenda |
December 10, 2021 Friday | 03:00 pm to 04:30 pm | Event kickoff
|
04:30 pm to 05:00 pm | Break | |
05:00 pm - 07:00 pm | Use Case 1: Facade Server Approach
| |
07:00 pm to 07:30 pm | "Mantras of secure FHIR development" by John Moerhke | |
December 11, 2021 | 09.00 am to 10.00 am | Expert session by Llyod & Grahame |
10:00 am to 10:20 am | Break | |
10.20 am - 01.00 pm | Use Case 1: Facade Server Approach (contd…)
| |
01.00 pm - 2.00 pm | Lunch Break | |
2:00 pm - 3:00 pm | Use Case 1: Facade Server Approach (contd…)
| |
3: 00 pm - 5:00 pm | Use Case 2: Repository Server Approach
| |
5:00 pm - 5.20 pm | Tea Break | |
5.20 pm - 7.00 pm | Use Case 2: Repository Server Approach (contd...)
| |
December 12, 2021 | 9.00 am to 10.30 am | Use Case 2: Repository Server Approach (contd...)
|
10:30 am to 10:45 am | Tea Break | |
10:45 am to 12:30 pm | Common Event
|
Track Volunteers
Lead
- Arun Kumar. P , HL7 India Technical Committee
Co-Leads
- Gitanjali Thete
- Akshata Kulkarni
- Harpreet Singh
Assistance
- Sadanand Walte
- Gayathri Rajan
Zulip stream
Registered Participants are requested to join the below mentioned Zulip Channel. In case you need assistance, please reach out to me on Zuilip @Arun Kumar .