Internet connectivity and remote access

Description

Many destinations have, at least, low bandwidth internet connections in the evening. Let fEMR detect that internet has become available and allow a remote connection to the system. Use cases for this:

Use Cases

  1. Be able to perform software updates so that

  • Systems can ship out early

  • Systems can become more permanent in clinics without becoming outdated

  1. Be able to perform database backups and merges so that

  • Data can be safely backed up before travelling home

  • Systems can sync to a unified global database

  1. Be able to access logs so that

  • Issues can be resolved quickly during a deployment

Solution Components

  1. Internet Connectivity: Play Framework Tasks allow fEMR to schedule checks for internet connectivity

  2. Remote Access: Jsch creates a reverse SSH tunnel to a central fEMR server for us to hook into

  3. Orchestration: Central fEMR app for orchestration of online notifications and system identification

  4. fEMR Notifications: Alert for an administrator to show that an update to fEMR is available

Component Configuration

  1. Internet Connectivity: On/Off switch, timeout window, internet check window, central server endpoint, awake signal window

Commits

  1. Internet connectivity check: https://github.com/FEMR/femr/commit/dddc749359d94786b923a08e46861500c46459cf

  2. Remote SSH access: https://github.com/FEMR/femr/commit/10ea6fe02942d0fff75edfbea2648d840d2d7381

  3. Remote SSH access connectivity fix:
    https://github.com/FEMR/femr/commit/3aa66dc58c2a55dbf5b29e2871d285c32d8452c4

  4. Fix for mass process spawning on AWS server:
    https://github.com/FEMR/femr/commit/a9f92e0a8419927ab8f165ffe8cec0e1459725bc

  5. Turn off SSH attempts if no internet is found:
    https://github.com/FEMR/femr/commit/89d34df45f0ef0ff0baf086fb6c9096713fa2ddb

  6. Change default configuration to off and move config into application.example.conf
    https://github.com/FEMR/femr/commit/5a99f47e9d795ed108c7e7bbc0b07b715fc02e0d

Status

Assignee

Alex Nakhleh

Reporter

Kevin Zurek

Additional Assignee

None

Priority

High
Configure