• Stars
    star
    104
  • Rank 330,604 (Top 7 %)
  • Language
    Groovy
  • License
    Other
  • Created about 11 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Open-source FHIR Server to support patient- and clinician-facing apps

This project is no longer maintained, but there is a list of other open source FHIR servers here.


SMART on FHIR

Open-source FHIR Server to support patient- and clinician-facing apps.

Still highly experimental, but has limited support for:

  • GET, POST, and PUT resources
  • transaction (POST a bundle of resources)
  • Search resources based on FHIR's defined search params

Live demo: API | Apps

Installing

Prerequisites

  • Install Postgres 9.1+ (locally or use a remote service)
  • Oracle Java 7 JDK (not JRE -- and not Java 8)

Get it

$ git clone https://github.com/smart-on-fhir/api-server
$ cd api-server

Initialize the DB (see config below as needed)

Ensure that /etc/postgresql/9.1/main/pg_hba.conf contains a line like:

local   all         all                               md5

(If you have local all all peer, for example, peer with md5.)

$ sudo -u postgres -i
postgres@$ createuser -R  -P -S  -D fhir
           [at password prompt: fhir]
postgres@$ createdb -O fhir fhir
postgres@$ logout

Run it

$ ./grailsw run-app

Configuring

Key settings files are:

grails-app/conf/Config.groovy

  • Turn authentication on or off with fhir.oauth.enabled: true | false
  • Configure authentication with fhir.oauth

grails-app/conf/DataSource.groovy

  • Configure your Postgres dataSource

Using

Add new data to the server via HTTP PUT or POST. For example, with default authentication settings and a server running at http://localhost:8080, you can add a new Diagnostic Order via:

curl 'http://localhost:8080/DiagnosticOrder/example' \
     -X PUT \
     -H 'Authorization: Basic Y2xpZW50OnNlY3JldA=='\
     -H 'Content-Type: text/xml' \
     --data @grails-app/conf/examples/diagnosticorder.xml

And then you can retrieve a feed of diagnostic orders via:

curl 'http://localhost:8080/DiagnosticOrder' \
     -H 'Authorization: Basic Y2xpZW50OnNlY3JldA=='

or fetch a single resource as JSON via:

curl 'http://localhost:8080/DiagnosticOrder/example' \
     -H 'Authorization: Basic Y2xpZW50OnNlY3JldA==' \
     -H 'Accept: application/json'

Getting more sample data

You can load sample data from SMART's Sample Patients:

$ git clone --recursive https://github.com/smart-on-fhir/sample-patients
$ cd sample-patients/bin
$ pip install -r requirements.txt
$ python generate.py --write-fhir ../generated-data
$ ls ../generated-data # a bunch of XML files

Loading these files into your system

cd ../generated-data
for i in *.xml; do 
   curl 'http://localhost:8080/?' \
        -H 'Content-Type: text/xml' \
        --data-binary @$i; 
done

More Repositories

1

client-py

Python SMART on FHIR client
Python
588
star
2

health-cards

Health Cards Framework: implementation guide and supporting material
TypeScript
259
star
3

Swift-FHIR

These are Swift classes for data models of FHIR elements and resources
Swift
159
star
4

fhir-parser

A Python FHIR specification parser and class generator
Python
149
star
5

Swift-SMART

Swift SMART on FHIR framework for iOS and OS X
Swift
125
star
6

smart-dev-sandbox

Docker based sandbox for smart apps
Smarty
116
star
7

patient-browser

JavaScript
83
star
8

smart-on-fhir.github.io

SMART on FHIR Docs
Jupyter Notebook
77
star
9

fhir-bulk-data-docs

Documentation and issue tracking for the emerging FHIR bulk data implementation guide
Jupyter Notebook
74
star
10

health-cards-dev-tools

Developer tools for validating SMART Health Cards
TypeScript
71
star
11

growth-chart-app

JavaScript
66
star
12

sample-apps-stu3

Collection of simple sample apps
JavaScript
46
star
13

fred

FRED - FHIR Resource Editor
JavaScript
44
star
14

health-cards-tests

Demo for health wallet with Verifiable Credentials and Decentralized Identifiers
TypeScript
43
star
15

bulk-data-server

JavaScript
42
star
16

fhir-server-dashboard

Presents a human-readable representation of the data in a FHIR server.
JavaScript
41
star
17

fhir-viewer

In-browser viewer for FHIR resources
JavaScript
39
star
18

installer

Shell
39
star
19

hapi

HAPI FHIR Server With Sample Patients
Dockerfile
37
star
20

SoF-Demo

Simple SMART on FHIR / Argonaut iOS sample app that fetches a couple of resources
Swift
36
star
21

smart-launcher

Launcher for SMART apps
JavaScript
33
star
22

smart-scheduling-links

Clinical Appointment Slot Discovery
TypeScript
28
star
23

sample-apps

HTML
25
star
24

cardiac-risk-app

JavaScript
25
star
25

generated-sample-data

Contains all the bundles that are loaded into the FHIR server
24
star
26

bulk-data-tools

HTML
23
star
27

smart-examples

Collection of public apps
JavaScript
14
star
28

client-node

SMART client for NodeJS
HTML
13
star
29

bulk-import

12
star
30

bulk-data-implementations

listing of bulk FHIR client implementations
12
star
31

bulk-data-client

JavaScript
11
star
32

tag-uploader

Adds tags to FHIR bundles and resources and uploads them to specified servers
JavaScript
9
star
33

sample-patients-stu3

Python
9
star
34

client-ts

FHIR Client Library
HTML
9
star
35

bp-centiles-app

JavaScript
8
star
36

cumulus-etl

Extract FHIR data, Transform with NLP and DEID tools, and then Load FHIR data into a SQL Database for analysis
Python
8
star
37

diabetes-monograph-app

JavaScript
7
star
38

fhir-starter

HTML
7
star
39

smart-launcher-v2

SMART Launcher
TypeScript
6
star
40

smart-local-sandbox

Docker based sandbox for smart apps
JavaScript
6
star
41

health-cards-designs

5
star
42

smart-hapi-stack

Experimental HAPI stack to support SMART on FHIR
Java
5
star
43

sample-bulk-fhir-datasets

Sample bulk export results of various sizes, for testing tools and workflows
Shell
5
star
44

bdt

Bulk Data Test Suite and Test Runner
TypeScript
5
star
45

sample-patients-prom

Provisional Quarterly Patient Reported Outcome Measures (PROMs) in England - April 2015 to March 2016, November 2016 release
JavaScript
5
star
46

smart-stub

Node / Express server to stub SMART Auth
JavaScript
4
star
47

mpr-monitor-app

JavaScript
4
star
48

dstu2-examples

Copy of official FHIR examples with an index page
HTML
4
star
49

synthea

Static build of Synthea with http interface
JavaScript
4
star
50

hca-fhir-importer

Import synthetic breast cancer sample data, courtesy of HCA/Bill Gregg
Python
4
star
51

fhir-demo-app

ApacheConf
3
star
52

smart-health-card-decoder

Sample code for a SMART Health Card validator
JavaScript
3
star
53

smart-health-links

Static documentation site for SMART Health Links
JavaScript
3
star
54

ehi-app

EHI Export API Client Reference Implementation
TypeScript
3
star
55

ehi-server

An EHI export server reference implementation of Argonaut's EHI Export API IG
TypeScript
3
star
56

bulk-import-client

CLI Client app for Bulk Data Import
JavaScript
2
star
57

confidential-client-example

JavaScript
2
star
58

fiery-sublime

Sublime Text 3 Plugin for FHIR data models
Python
2
star
59

disease-monograph-app

JavaScript
2
star
60

fhir-crawler

Utility to download resources from a FHIR server
TypeScript
1
star
61

fhir-server-tasks

Maintenance web-hooks for FHIR servers
JavaScript
1
star
62

timeshift

Shift dates in FHIR datasets
JavaScript
1
star
63

client-js-examples

Contains examples of how to use the client-js library
HTML
1
star
64

registry

Registry of FHIR Profiles for SMART Platforms
HTML
1
star
65

bulk-import-consumer

Bulk Data Import Server (Data Consumer)
JavaScript
1
star
66

reachnet

JavaScript
1
star
67

cumulus-library-hypertension

Hypertension case definition to support CDC chronic disease management and CMS measures
Python
1
star