Git Product home page Git Product logo

fhir-server's Introduction

[July 2017 Update] - This project is nolonger maintained and please use the one of the open FHIR server implementaions such as HAPI. MyHealth is now implemented at https://1upHealth.care

FHIR-Server

============= FHIR server with Blue Button capabilities that is fine tuned for enterprise scalability. This technology stack is developed using industry standards enterprise technology including JavaEE with SpringMVC frameworks, RDBMS on top of HAPI server.

Documentation is still in progress and it's in DRAFT format.

WHY

Healthcare Interoperability using HL7's open FHIR standards over HTTPS transport (RESTful API).

WHAT

HAPI based FHIR server with Blue Button capabilities. Able to download the files in FHIR JSON or FHIR XML for untethered PHR (Business 2 Consumer) or provider to provider health inetroperability (Business 2 Business). Imagine this Blue Button functionality is implemented in every patient portal to free the data to their patients to engage and empower to improve health outcomes and lower the healthcare cost.

Blue Button capabilities including patients able to download everything as a bundle

Download the healthcare data as FHIR JSON or FHIR XML format.

alt tag

Blue Button capabilities

Untethered PHR, patient can download/access/share the data with providers & researchers.

alt tag

Use case around Patient centered Personal Healh Record (PHR) and care coordination that can enagage and empower patient to improve health outcome and reduce healthcare cost.

  • Patient Generated Heatlh Data (PGHD): Apple Health, FitBit or any health wearables
  • Repository of EHR, Genomics, PGHD or mHealth data.
  • Patient controlled API for inbound and outbound transactions.
  • Donate the data for research & science including Precision Medicine Initiates, ResearchKit, GitHub and other platforms.

End point app is in early stages of developments and it maily focused around patient mediated, engagement & empowerment for better heatlh outcomes.

Login using OpenID Connect & OAuth 2.0 and Single Sign On (SSO) alt tag

Personal Health Record / Care Coordination to engage and empower patient health and improve health outcomes. Dashboard shows PGHD, Genomics, EHR and other mHealth data. Widgets/apps can be customized alt tag

myHealth Exchange - Patient incoming & outgoing data as API alt tag

myHealth Store & Share Collect clinical, PGHD, Genomics and other environmental data and share or donate alt tag

alt tag

myHealth Wearables - Connect to health wearables devices alt tag

DIRECTORY STRUCTURE

  hapi-fhir-base/                              Base code
  hapi-fhir-jpaserver-uhnfhirtest/             client application
  hapi-fhir-structures-dstu*/                  HL7's FHIR specs in Draft Standard Trial Use (DSTU)
  hapi-tinder-plugin/                          HL7's FHIR specs raw schema

REQUIREMENTS

  • Java 1.7.x
  • SpringMVC Framework 4.1.x
  • JBoss EAP 6.3.x
  • Any RDBMS (MySQL, Oracle, PostgreSQL etc...)

CONFIGURATION

Check it out from GitHub and compile using Maven package dependency manager.

Modify the Maven POM file to include RDBMS connector library

Include the MySQL (or any RDBMS)

  hapi-fhir-jpaserver-uhnfhirtest->pom.xml

alt tag

Database Configuration

DB Connection configuration with DB credentials and create a database name "fhir".

  hapi-fhir-jpaserver-uhnfhirtest -> src -> main -> webapp -> WEB-INF -> hapi-fhir-tester-config.xml

alt tag

Configuration XML

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:security="http://www.springframework.org/schema/security"
	   xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
	   xsi:schemaLocation="http://www.springframework.org/schema/security/oauth2 http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">

	<!--JDBC Datasource from a RDBMS systems-->
	<bean id="myPersistenceDataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://localhost:3306/fhir"/>
		<property name="username" value="root"/>
		<property name="password" value="root"/>
		<property name="validationQuery" value="SELECT 1"/>
	</bean>

	<!--<bean depends-on="dbServer" id="myEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">-->
	<bean id="myEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="myPersistenceDataSource" />
		<property name="persistenceXmlLocation" value="classpath:META-INF/fhirtest_persistence.xml" />
		<property name="persistenceUnitName" value="FHIR_UT" />
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
				<property name="showSql" value="false" />
				<property name="generateDdl" value="true" />
				<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" />
			</bean>
		</property>
	</bean>

</beans>

Modify SpringMVC persistence configuration

To choose the database type and version dialect.

  hapi-fhir-jpaserver-uhnfhirtest -> src -> main -> resources -> META-INF -> fhirtest-persistence.xml

alt tag

Configuration XML

<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />

Add JBoss application server system properties for the local server base URL

Important if you want to connect the FHIR server to its local DB

  JBoss EAP -> standalone -> configuration -> standalone.xml

alt tag

Configuration XML

<system-properties> 
        <!-- Local FHIR Server Base URL -->
        <property name="fhir.baseurl.dstu1" value="http://localhost:8080/baseDstu1"/>
        <property name="fhir.baseurl.dstu2" value="http://localhost:8080/baseDstu2"/>
        <property name="fhir.baseurl" value="http://localhost:8080"/>
    </system-properties>

Build & Deploy

Build the application using the following order of packages and then deploy the war. Always use clean and install Maven lifecycle.

  1. HAPI-FHIR (root)
  2. HAPI FHIR TestPage Overlay
  3. FHIR Server - BlueButton 2.0 - Gaj

alt tag

http://localhost:8080/fhir/

Thanks

Thanks to HAPI Team and UHN folks especially James Agnew

Contact

Gajen Sunthara => [email protected]

fhir-server's People

Contributors

gajen0981 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.