Skip to content

Latest commit

 

History

History
163 lines (105 loc) · 7.62 KB

README.md

File metadata and controls

163 lines (105 loc) · 7.62 KB

Ottehr Logo.

The production-ready, open-source EHR

Ottehr.com

Last Commit Code Size Contributors GitHub Issues GitHub Stars GitHub Pull Requests GitHub Pull Requests Closed

Ottehr

Ottehr is a modern, modular EHR that began as a reference implementation for Oystehr. It quickly outgrew "sample EHR" status and became the foundation for large-scale production EHR installations. Ottehr uses Oystehr for back-end service endpoints, and requires a free Oystehr account to run as-is, but you are welcome to modify and use a third-party service vendor or build your own service architecture. Ottehr is designed for developers, hopefully making it easy to fork, white-label, and build entire new classes of EHRs and health-tech products with a fraction of the effort of starting from scratch.

Ottehr consists of two apps,

  • Ottehr Intake — A patient-facing registration website for creating appointments, initiating telemedicine calls, with features including rescheduling, checking in, completing intake paperwork, text messages and emails, and listing appointments for an account.
  • Ottehr EHR — A staff-facing EHR for managing appointments created, with features including checking appointments, managing patient queues, texting patients, updating a location's slots, setting a location's schedule, joining telemedicine calls, HPI and medical history, exam charting, eRx and Assessment, patient plan, coming soon: RCM and claims submission.

Run Ottehr Locally

Prerequisites

To run Ottehr, you'll need a free Oystehr account, and Node.js.

Get Your Oystehr Account

  1. Visit oystehr.com.
  2. Click on Free Access to initiate your early access request.

Once your request is received, the Oystehr team will promptly create your account and reach out to you via email.

Check out the Oystehr Technical Documentation to learn more about the Oystehr platform.

Install Node.js

If you do not already have it, install Node.js v18.x.

Fork & Clone

Fork — Go to https://github.com/masslight/ottehr/fork and click 'Create fork' to fork the repository.

Clone — Copy and run the clone script for your fork.

git clone git@github.com:{your_profile}/ottehr.git

Run the Setup Script

sh scripts/ottehr-setup.sh

The script will prompt you for the following information:

  • Your access token — Log in to your Oystehr project on the Oystehr Console, and copy the access token from the dashboard.
  • Your project ID — Listed on the Oystehr Console next to the access token
  • An email address for your first Provider User of the EHR — Put your email here.

When the setup script finishes, the intake and EHR websites will open automatically.

You only need to run the setup script once. To start the apps going forward, use npm run apps:start.

Log in and explore the Patient app

The Patient app starts up at http://localhost:3002

By default, the Patient app uses passwordless SMS for authentication. On the login screen, enter your mobile phone number followed by the one-time passcode which is sent to your device.

Log in and explore the EHR

The EHR app starts up at http://localhost:4002

To log into the EHR, enter the email you input during the setup program on the login screen. Click Forgot password?, follow the password reset workflow, then enter your password to complete login.

End to End Test Setup Procedure

Ottehr includes a suite of end to end tests that can be used to maintain quality as you customize it for your use case.

Ottehr uses the ClickSend api to send an sms with a confirmation code that is used to login before running the e2e tests. As such, you will need to create a ClickSend account in order to setup e2e testing.

After you have created your ClickSend account, invite a test user to your EHR application by navigating to https://console.oystehr.com/app/users/new. Select your EHR application, input the user's email for both "User name" and "Email", set the in-line access policy to

{
  "rule": []
}

and choose "Administrator" as the role. Then, click "Invite". To set the password, launch the ehr app by running npm run ehr:start from the root directory, enter the email you invited, click Forgot password? and set a password.

To set the environment files required to run e2e tests, run the following command in the root directory:

sh scripts/e2e-test-setup.sh

The script will prompt you for the following information:

  • The username for the test user of the EHR
  • The password for a test user of the EHR
  • The phone number for a test user of the EHR
  • Your ClickSend user's username
  • Your ClickSend user's password

Once the program finishes running, the environment files for your e2e tests will be set.

From the root directory, running the following commands will run the e2e tests for the backend and UI for the intake and ehr apps:

npm run intake:e2e:local
npm run intake:e2e:local:ui
npm run ehr:e2e:local
npm run ehr:e2e:local:ui

Setting up Terminology Search

Ottehr uses UMLS Terminology Services for searching for ICD-10 and CPT codes.

To set up the terminology search service, please follow these instructions in the Oystehr docs, and then save the API key as NLM_API_KEY in the Zambdas secrets.

Repository Structure

This repository uses a monorepo structure.

  • apps — Frontend web apps
    • intake — The patient's side
    • ehr — The provider's side
  • packages/{ehr|intake}/zambdas — The application's backend endpoints, deployed on Oystehr Zambda.
  • packages/{other folders} — Other modules that are imported by apps like utils, ui-components

Apps

EHR App

Intake App