These comments are based on the example profile at:
Medical device workflow are rich and complex. This design attempts to factor the domain into a minimal set of components that can be combined to produce useful systems. It's self-consciously naïve, but it should serve as a seed for discussion.
-
Any device can be online all the time, and can act as a FHIR server -- possible all on its own, or possibly with the help of a proxy/manager/facade component that "fronts for" the device. (Communication between the device and its manager occurs using any mechanism necessary; but the components below be useful for such internal communication, too.)
-
A device generates snapshot (i.e. point-in-time) reports -- which can consist of observations or alerts.
import sqlite3 | |
import json | |
import sys | |
# e.g. python export_history.py /home/jmandel/.Skype/jcmandel/main.db > export.json | |
c = sqlite3.connect(sys.argv[1]) | |
c.row_factory = sqlite3.Row | |
cur = c.cursor() |
FHIR offers a REST API that lets clients search for resources on demand. Separately, there is a Messaging API that allows notifications to be "pushed" from one place to another. But neither API provides a clean solution to a common set of real-world "triggering" or notification-type requirements.
For example, let's say Mt. Auburn Hospital's Mother and Infant Unit wants to
This is a getting-started guide for SMART on FHIR server developers who want to support the SMART Growth Charts app. For background, SMART on FHRI is a plug-in app platform for health apps based on open standards.
To run SMART's open-source Growth Charts app against your own SMART on FHIR server, you'll need to:
- Expose clinical data using FHIR
Patient
andObservation
resources - Protect your clinical data via the SMART on FHIR Authorization protocols(based on OAuth2).
To get up and running as easily as possible, this Quick-start guide helps you through two scenarios: first, to run the app in debugging mode against an unprotected server, and second, to get the app running against an OAuth2-protected server.
{ | |
"id": "6ecaefca-6a4c-995c-3d7f-7b5a2b0607d4", | |
"name": "BB REST API", | |
"timestamp": 1383525089539, | |
"requests": [ | |
{ | |
"collectionId": "6ecaefca-6a4c-995c-3d7f-7b5a2b0607d4", | |
"id": "40947022-e6c1-d87d-38e1-b3b54bafe10a", | |
"name": "0. Register", | |
"description": "", |
#!/bin/bash | |
EMAILS="addresses@go.here, separated@by.commas" | |
DATE=$(date +"%Y-%m-%d") | |
NAME="Nightly Build $DATE" | |
prepareToBuild (){ | |
git reset --hard git-svn | |
rm fhir-error-dump.txt | |
rm -rf temp/* | |
} |
<?xml version="1.0" encoding="UTF-8"?> | |
<feed xmlns="http://www.w3.org/2005/Atom"> | |
<title>SMART patient bundle for transactional posting</title> | |
<id>urn:uuid:3380</id> | |
<updated>2013-09-21T07:41:22.653989</updated> | |
<entry xmlns="http://www.w3.org/2005/Atom"> | |
<title>SMART Patient-level resource</title> | |
<id>cid:patient-1032702</id> | |
<updated>2013-09-21T07:41:22.653989</updated> |
$ sh three-requests.sh | |
Response 2: 500 | |
Response 1: 200 | |
Response 3: 200 |