Giter Club home page Giter Club logo

meet-on-fhir's Introduction

TeleHealth Integration Reference Implementation

This repository contains an early release reference implementation that may be useful to developers wishing to integrate Google Meet into EHR systems that support SMART on FHIR.

To use this reference implementation, you should fork this repository and add any required user interface or other integrations that are appropriate.

Prerequisites

This reference implementation assumes that:

  • The provider/physician has access to a GSuite account with the Calendar and Meets applications enabled.
  • If the patient is accessing the application on the desktop, they can join the meeting anonymously. If the patient accesses the application from a mobile device, they must download the Meet application and sign in.

Configuration

The application requires several things to be configured:

  • An OAuth2 Client ID and secret to access the Google Cloud Datastore
  • A SMART on FHIR Client ID registered with the EHR system
  • A secret key used to encrypt the session cookie
  • The calendar API must be enabled in the project

The OAuth2 Client ID can be created using the Cloud Console.

  • Select 'Web application' as the type.
  • The redirect URI should point to '/authenticate' on the appropriate server (e.g., localhost or your appspot.com subdomain).
  • In the "Scopes for Google APIs" section of the OAuth2 consent screen, make sure you add https://www.googleapis.com/auth/calendar.events as a scope.

To provide these settings, create a file called settings.json using the instructions in settings.json-example.

Choosing the calendar for events

The example settings file creates calendar events on the primary calendar. Instead, a custom name can be specified and the named calendar will be created (if it doesn't exist) and events will be added there.

Note that if you choose to use this feature you must invalidate all previous user sessions since the required OAuth2 scopes are broader.

SMART on FHIR configuration

The launch URL should be set to /launch.html on the appropriate server (e.g. localhost or your appspot.com subdomain).

Note that this application does not work inside a frame, so it must be configured to launch as a new window in the SMART on FHIR integration point.

Running locally

You will need a recent version of Node. Once installed, you can run npm install to install the other required dependencies.

Once everything is installed, configure Google Application Default credentials with access to a Cloud Datastore in a project you own and run npm start.

Deploying on Google Cloud

To deploy on Google Cloud, you will need a project that does not already have an Appengine application deployed.

Deploy the application using gcloud app deploy.

Testing

You can use the SMART on FHIR launcher to make sure your instance is working as expected. Open two different profiles in a web browser and configure one as a patient and one as a physician and click the launch button.

meet-on-fhir's People

Contributors

biao avatar temporafugiunt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meet-on-fhir's Issues

Deep link into Meets not working on Chrome on Android even outside of iframe

https://developer.chrome.com/multidevice/android/intents

Chrome won't redirect into another app unless it's initiated by a user gesture. After some fiddling it seems like the between the user click and the redirection request is important here. Putting a delay of 5s between the user acking the consent screen and use linking into Meets causes a failed redirect whereas a delay of 1s doesn't.

We can probably:

  1. Update our code to attempt a redirect right away if the meeting is already setup
  2. Fallback to providing a link for the user to click if the meeting isn't already setup

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.