Skip to content

MarkieMark/GT-FHIR

 
 

Repository files navigation

GT-FHIR

This is the Georgia Tech FHIR Server. It is built on top of Hapi Fhir (v1.1) Fhir spec implementation. Currently the objects model is built in conformance to Fhir spec DSTU2 - some features in DSTU1 are not supported. For the Data Access Layer, this server uses a modified version of Hapi Fhir JpaServer-Base project, which is implemented to provided support for any database schema, so we can focus on the creation of Resources from the data on the databases.

Server Structure and Communication

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 a database which follows the Omop v4.0 specification 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.

Build Instructions

importing the sources as a maven project in IntelliJ seems to work well for testing

including cleaning old artifacts

$ cd gtFHIR
$ mvn clean

for a really complete clean

$ cd ..
$ rm -rf gtFHIR

It may be worthwhile rming old deployment files from [/var/lib/]tomcat/webapps too

for clean installations start here

$ git clone https://github.gatech.edu/cdchealthyweight/gtFHIR.git

startup intelliJ

import project -> import from external model -> Maven

check 'search for projects recursively", "Import Maven projects automatically", "create module groups for multi-module projects"

allow intelliJ to overwrite .idea directory during project creation

then back to the console

$ cd gtFHIR
$ git checkout -- .idea/runConfigurations/fhir_webapp_local.xml

create a mysql database called fhir_omop with user devuser@localhost, no password, listening on default port 3306

build/deploy

then from intelliJ run->run "fhir_webapp_local"

without IntelliJ, the 'manual' build/deploy is

[gtFHIR]$ mvn clean install
$ cp gt-fhir-webapp/target/gt-fhir-webapp.war [/var/lib/]tomcat/webapps/

restart tomcat

NB need to update tests; currently jpabase module is building with skipTests=true

About

Georgia Tech FHIR Server

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 64.1%
  • CSS 14.5%
  • HTML 13.3%
  • JavaScript 8.1%