gt-health / GT-FHIR

Georgia Tech FHIR Server Web Page
36 stars 28 forks source link

GT-FHIR : OMOP on FHIR Project

GT-FHIR is a Fast Healthcare Interoperability Resources (FHIR) project to build a FHIR resource on Observational Medical Outcomes Partnership (OMOP) common data model (CDM). It is built on top of Hapi Fhir reference implementation. Currently the objects model is built in conformance to Fhir spec DSTU2 - some features in DSTU1 are not supported.

The data access layer has been modified to support any database schema. Then, OMOP CDM has been deployed to be used as a backend database. FHIR resource and OMOP CDM mapping is done at the gt-fhir-entities for each FHIR resource. As FHIR and OMOP CDM cannot be mapped one-to-one, some of data elements are set statically. Some mappings require multiple FHIR entity-jpa classes to support bidirectional mapping.

This project is still in progress. More mappings and features will be implemented as a need-basis. GT-FHIR consists of several sub-projects. Please see the following notes for what the base projects are.

gt-fhir-webapp

This project contains part of the business layer and the presentation layer, with the controller/servlets. It contains the providers for each resource and their DAO classes. It uses Spring framework, with CORS filter. The configuration files are found in the 'WEB-INF' folder. The providers are generated by using Tinder plugin and then modified to match the operations and search params provided by the server - which are defined in gt-fhir-entities project.

gt-fhir-entities-dstu2

This project contains the object model representing the schema for the database used by the server. The server is connected to OMOP CDM v5 for its basic tables - some extension tables are added in order to provide more information The model is built to represent the database schema. The relationship between the Entity Fields and its respective Fhir Resource Fields are expressed in the methods 'getRelatedResource' and 'constructEntityFromResource', or in the javadocs where applicable. Tables' names and columns' names are specified under javax.persistence annotations, as well any constraints. Javax Bean Validation annotations are specified as well.

gt-fhir-overlay

This overlay has a user interface - which follows the design of Hapi Fhir's Example interface, being our default client for Fhir server.