Coder Social home page Coder Social logo
Clinical Node / Javascript photo

clinical-meteor Goto Github PK

repos: 174.0 gists: 0.0

Name: Clinical Node / Javascript

Type: Organization

Bio: Adding HIPAA security, FDA precertification, and EHR interoperability to Node/Javascript software.

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


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.


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

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.

Clinical Node / Javascript's Projects

accounts icon accounts

Fullstack authentication and accounts-management for Javascript.

accounts-housemd icon accounts-housemd

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

accounts-oauth icon accounts-oauth

Common code for OAuth-based login services in clinical environments.

active-record icon active-record

ActiveRecord component for the ClinicalFramework; provides CRUD pattern using Autoform.

active-users icon active-users

ActiveUsers CRUD pattern with user lists, thumbnail pages, basic profiles, etc.

alert icon alert

A client side, multi-style alerts system for Meteor.

apollo-client icon apollo-client

:rocket: A fully-featured, production ready caching GraphQL client for every server or UI framework

apollo-server icon apollo-server

:earth_africa: GraphQL server for Express, Connect, Hapi and Koa

audio-click icon audio-click

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

autoform icon autoform

AutoForm is a Meteor package that adds UI components and helpers to easily create basic forms with automatic insert and update events, and automatic reactive validation.

autopublish icon autopublish

Autopublish FHIR resources to logged in users (i.e. clinicians)

ccda-samples icon ccda-samples

C-CDA 2.1 Samples from ONC Certification of Health Information Technologies

checklist-manifesto icon checklist-manifesto

The classic Todos example with offline database support and end-to-end test coverage.

ckcc icon ckcc

California Kids Cancer Comparison - Demo

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.