• Stars
    star
    1,672
  • Rank 27,946 (Top 0.6 %)
  • Language
    Shell
  • Created over 11 years ago
  • Updated almost 3 years ago

Reviews

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

Repository Details

Cookbook for Node on FHIR and the clinical Meteor.js build pipeline. Create FDA, HIPPA, and HL7 compliant Javascript/Node applications!

Node on FHIR Cookbook

Author's Note: I'm attempting yet another reorg/rewrite of the Cookbook. I'm mostly almost finished with the refactor from meteor-on-fhir to node-on-fhir, and finally have a reference target that I can document to. And since the cookbook seemed to resonate with folks the most the first time around, I'm going back to its original moniker.

Welcome to the Node on FHIR Cookbook. This repository contains cookbook recipes for writing Node/Javascript software that's intended to be used in clinical, laboratory, and healthcare settings. If you're using Node.js (and the Meteor build pipeline) and need to implement a HIPAA audit log, or do a schema migration on a document oriented database, or parse a pharmacogenomics pipeline... we probably have some recipes for helping that happen.

Over the years, we've tried to extract some best practices from the problems we encounter again and again. These best-practices have been codified in our companion software at Node on FHIR


Getting Started

The above walkthrough should get you started with a development environment, a scalable document-oriented database, compiling your first app, running QA scripts, and connecting to a healthcare server.


Architecture Overview

Node on FHIR takes the assumption that it will be working with Fast Healthcare Interoperability Resources (FHIR) as the primary data standard throughout the entire software stack, from database to mobile application. In implementing this vision, it uses a microservice architecture around an HTTP endpoint. On the backend, it uses a document-oriented NoSQL JSON data storage for it's data warehouse, layers a FHIR server on top of that, and serves JSON formatted data to FHIR enabled mobile apps that are compiled from the same Javascript software that is running on the server. Read the following for an overview of our full-stack javascript platform and the distributed data architecture.

Meteor Microservice Architecture


Design Principles

Our design principles for this software were initially inspired by the Meteor.js Principles, but with a focus on healthcare. We eventually landed at the following design principles which we value in the development of this software stack:

  1. One Language: Javascript
  2. Fast Healthcare Interoperability Resources
  3. Embrace the Ecosystem
  4. Web Standards
  5. Database Everywhere
  6. Continuous Integration
  7. HIPAA Security
  8. Day Made of Glass

Example Apps

In developing this software, we built 100+ prototypes, forked a web application framework, and published a separate release track (Clinical Meteor) which acts as a baseline and standard by which to calibrate the rest of the quality-control and continuous-improvement processes that are necessary for regulatory review. These prototypes and reference implementations use the packages from the clinical release track, and are baselined and referenced with various quality control measures. i.e. We try to run the app through Touchstone or Crucible or Inferno test suites; make sure that the accounts package QA scripts are still passing; the package integration tests work, etc. You may find the list of examples to be of general interest.


Local Development

For those who want to clone or fork the project and do local development, it's recommended to use the --recursive flag, which will recursively download the examples and packages. Be warned! We're trying to keep things compressed and optimized, but the project still weighs in at over 330MB at this point! When decompressed and project databases rehydrated, the project can swell to over a gigabyte in size.

git clone --recursive http://github.com/clinical-meteor/clinical-meteor 

# you can also update to the latest versions of the submodules 
cd clinical-meteor
git submodule update --recursive --remote --merge

# if you're submitting patchs and pull-requests 
git add . && git commit -m 'Update submodules to latest revisions message'

History

This repostiory was originally entitled the 'Meteor Cookbook', and was focused on recipes for making Meteor.js apps HIPAA compliant, FDA precertification ready, and interoperable via HL7 interfaces. Add HL7 data schemas became a much larger project than anticipated, which lead to the creation of a fork/release track (clinical-meteor) and this project was renamed as a Software Development Kit. We are finishing up a major refactor, which has renamed the base boilerplate form 'meteor-on-fhir' to 'node-on-fhir', and migrating to a more NPM centric package management system. We're taking this moment to move back to the original naming convention of 'cookbook', with a focus on Node.js as the tech stack; and Meteor.js as our build pipeline.


Contributing

Pull requests with typo corrections and copyediting are nearly always accepted. Feature requests for individual packages should be logged in their respective repositories. Discussion regarding the larger overall project should be logged here. Please see the Governance documentation for more details on project governance.

More Repositories

1

node-on-fhir

Tech stack for building MACRA and 21st Century Cures compliant webapps.
JavaScript
82
star
2

meteor-on-fhir

Meteor using Fast Healthcare Interoperability Resources (FHIR)
Objective-C
56
star
3

clinical-trials

Data collection application intended for pharmaceuticals clinical trials. Contains integrated forms builder, hipaa audit log, validation testing, and mobile computing components.
JavaScript
40
star
4

fhir-schemas

FHIR Resources implemented with json-schema and node-simple-schema
JavaScript
26
star
5

fhir-starter

React Components that implement FHIR resources with Google's Material Design.
JavaScript
20
star
6

checklist-manifesto

The classic Todos example with offline database support and end-to-end test coverage.
JavaScript
17
star
7

hl7-argonaut-fhir

HL7 Argonaut FHIR project for Clinical Meteor
JavaScript
16
star
8

hipaa-policies

HIPAA Policies and Procedures for Clinical Meteor Apps.
HTML
12
star
9

csv

Utilities for importing and exporting comma separated value (CSV) files.
JavaScript
11
star
10

accounts-famous-dead-people

Meteorite package to populate your Meteor.users() collection with famous dead people.
JavaScript
9
star
11

hipaa-logger

Write HIPAA events to a logging collection. No UI provided.
JavaScript
7
star
12

questionnaire-builder

Questionnaire Builder App - Uses HL7 FHIR Questionnaire and QuestionnaireResponse resources.
JavaScript
6
star
13

personal-health-record

Personal Health Record based on Clinical Meteor that can import a Facebook profile.
JavaScript
6
star
14

material-fhir-demo

Demo for using material-fhir-ui
JavaScript
4
star
15

audio-click

Meteorite package that provides an audible click when a user taps, clicks, or mousedowns on your app.
JavaScript
4
star
16

realtime-analytics-pipeline

Real-time analytics pipeline, including statistics writer, pub/sub, and D3 multibar visualization of daily stats.
HTML
3
star
17

entry-blaze

SignIn, SignUp, and ForgotPassword pages for Clinical Framework.
JavaScript
2
star
18

static-pages

Add glossary, about, eula, and privacy pages to your ClinicalFramework app.
HTML
2
star
19

hl7-fhir-datatypes

HL7 FHIR DataTypes - Building blocks for FHIR Resources.
JavaScript
2
star
20

hl7-fhir-data-infrastructure

HL7 FHIR Data Infrastructure (SimpleSchemas, Cursors, Hooks)
JavaScript
2
star
21

winston-browser-logging

Winston library to provide isomorphic client-side logging.
JavaScript
2
star
22

hipaa-utility

HIPAA Utility for inspecting and generating audits from HIPAA compliant applications.
JavaScript
2
star
23

accounts-housemd

Meteorite package to populate your Meteor.users() collection with clinicians from House MD television show.
JavaScript
2
star
24

hl7-resource-message-header

HL7 FHIR Resource - Message Header
JavaScript
1
star
25

national-directory

FAST National Directory
JavaScript
1
star
26

hl7-resource-list

HL7 FHIR Resource - List
JavaScript
1
star
27

app-support-forum

Clinical support forum built on Meteor.
CSS
1
star
28

active-users

ActiveUsers CRUD pattern with user lists, thumbnail pages, basic profiles, etc.
JavaScript
1
star
29

form-builder

Form builder that creates storable dehyrated schemas that can be rehydrated and used with Autoforms.
JavaScript
1
star
30

hl7-resource-appointment

HL7 FHIR Resource - Appointment
JavaScript
1
star
31

example-plugin

Example plugin for Node on FHIR
JavaScript
1
star
32

rules-engine

Rules engines for clinical workflows.
JavaScript
1
star
33

hl7-resource-person

HL7 FHIR Resource - Person
JavaScript
1
star
34

active-layout

Layout templates with keybindings and animations.
JavaScript
1
star
35

hl7-resource-audit-event

HL7 FHIR Resource - AuditEvent
JavaScript
1
star
36

schema-hydrator

Hydrates/dehydrates a SimpleSchema into something that can be stored in Mongo.
JavaScript
1
star
37

conversational-ui

Conversational UI - questionnaires, decision trees, voice recognition, etc.
JavaScript
1
star
38

meteor-phantomjs-tests

meteor-phantomjs-tests
JavaScript
1
star
39

hl7-resource-risk-assessment

HL7 FHIR Resource - Risk Assessment
JavaScript
1
star
40

clinical-framework

Homepage of the ClinicalFramework WrapBootstrap Reference
1
star
41

nvd3-statistics-meteor-blaze

D3 statistics demo using Meteor Classic.
JavaScript
1
star
42

ihealth-cloud-api

iHealth Cloud API
JavaScript
1
star
43

open-clinical-net

Rules engine for OpenClinical.net
JavaScript
1
star
44

fonts

Fonts for healthcare applications - 3 of 9 barcode, fontawesome icons, and opensans (a helvetica substitute).
JavaScript
1
star
45

hl7-resource-explanation-of-benefit

HL7 FHIR Resource - ExplanationOfBenefit
JavaScript
1
star