Telehealth Remote Monitoring Reference Implementation

Version: 3.0.0   Published: 09/01/2021  

Last Updated: 03/10/2022

Overview

Telehealth Remote Monitoring Reference Implementation (RI) showcases containerized telehealth application design providing a real-time audio-visual framework leveraging Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC). Enabled by the cloud native containerized WebRTC server sessions are hosted between users that could include clinicians, patients, and caregivers. A web application interface provides a way for users to connect, view, and communicate from a range of possible end point devices including cameras, phones, and laptops.   

AI capabilities for remote monitoring are not validated in this release. Communication is provided through video, chat, and screen sharing. 

After getting hands on with the Reference Implementation, you can directly integrate components from Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC) and Open Visual Cloud pipeline building blocks for real-time video analytics.

To run the reference implementation, you will need to first download and install the Intel® Smart Edge Open Developer Experience Kit.

Select Configure & Download to download the reference implementation and the software listed below.  

Configure & Download

Sample Application WebUI

  • Time to Complete: 15-20 minutes
  • Programming Language: Go*, C++, JavaScript*, HTML
  • Available Software: 
    • Intel® Smart Edge Open Developer Experience Kit
    • Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC)
    • Intel® Distribution of OpenVINO™ toolkit

Target System Requirements

Smart Edge Node

  • One of the following processors:
    • Intel® Xeon® Scalable processor.
    • Intel® Xeon® processor D.
  • At least 64 GB RAM.
  • At least 512 GB hard drive.
  • An Internet connection.
  • Ubuntu* 20.04.2 LTS Server.

How It Works

This reference implementation implements a web session based on Open WebRTC Toolkit (OWT) media server and Client SDK, which demonstrates OWT media processing features and provides basic real-time and interactive sessions with control in web UI. This application is delivered in a container format and installed via Helm* charts. It runs as a single pod with two containers, i.e., OWT Server and OWT meeting on smart edge node enabled by Intel® Smart Edge Open Developer Experience Kit.

Architecture Diagram
Figure 1: Edge Node Networking Diagram 

 

High Level Block Diagram
Figure 2: High Level Block Diagram 

 


Get Started

Step 1: Install the Reference Implementation

To run the reference implementation, you will need to first download and install the Intel® Smart Edge Open Developer Experience Kit.

Select Configure & Download to download the reference implementation and then follow the steps below to install it.  

Configure & Download

  1. Make sure that the Target System Requirements are met properly before continuing RI deployment process. Ensure that Smart Edge single node cluster environment is created through Edge Software Provisioner (ESP) based deployment of Intel® Smart Edge Open Developer Experience Kit to ensure smooth RI installation process. 

    • NOTE: Skip step 2 and step 3 if they were performed with ESP based Intel® Smart Edge Open Developer Experience Kit installation process.  

  2. Open a new terminal and configure a non-root user to deploy all the tasks of the RI with non-root user's permission. 
     
    • To create a user smartedge-open execute the command: 
      useradd -s /bin/bash -d /home/smartedge-open/ -m -G sudo smartedge-open
    • A password for the given user is required:
      passwd "smartedge-open"

       

    • As some tasks require root privileges, the non-root user needs to have a possibility to become a root: 

      echo "smartedge-open ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/smartedge-open

       

  1. To generate and install the public key on your host, log in as root and execute the commands below:
    ssh-keygen 
    ssh-copy-id smartedge-open@<smartedge-open-node-ip-address> 

     

  2. Move the downloaded zip package to /home/smartedge-open folder:  
    mv <path-of-downloaded-directory>/telehealth_remote_monitoring.zip /home/smartedge-open/
  3. Go to /home/smartedge-open directory using the following command and unzip the RI: 
    cd /home/smartedge-open
    unzip telehealth_remote_monitoring.zip
  4. Go to telehealth_remote_monitoring directory:  
    cd telehealth_remote_monitoring
  5. Change permission of the executable edgesoftware file: 
    chmod 755 edgesoftware 
  6. Run the command below to install the Reference Implementation: 
    ./edgesoftware install 

     

  7. During the installation, you will be prompted for the Product Key. The Product Key is contained in the email you received from Intel confirming your download.  

    Product Key screen
    Figure 3: Product Key

     

  8. When the installation is complete, you see the message Installation of package complete and the installation status for each module. 
    Install Success Screen
    Figure 4: Install Success
      

    NOTE: Installation logs will be available at the path:  /var/log/esb-cli/Telehealth_Remote_Monitoring_3.0.0/telehealth_remote_monitoring/install.log.   
     
  9. If Intel® Smart Edge Open is installed, running the following command should show all the pods either in running or completed stage: 
    kubectl get pods -A
    Pod Status Check
    Figure 5: Pods Status

     

  10. If Telehealth is installed, running the following command should show output like below. Check the running pod with the command below. 
    smartedge-open@:/$ kubectl get pods -A | grep telehealth 
    
    smartedge-apps  telehealth-94568f9bc-zcwq4  2/2     Running     0          69s 

     

  11. Run the command below to check the Docker* images and their details: 

    smartedge-open@:/$ docker images | grep owt 
    
    openvisualcloud/xeon-ubuntu1804-service-vcs-owt latest a1639d7ccb7c 6 weeks ago 214MB  
    openvisualcloud/xeon-ubuntu1804-service-owt   latest 073486dba08   5 weeks ago     1.63GB 

     

  12. Run the below command to make sure the network policy is created: 

    NOTE: In Intel® Smart Edge Open, the default network policy blocks ingress traffic to all pods, hence the telehealth pod network policy is created to allow the ingress traffic.  
     

    $ smartedge-open@:/$ kubectl get networkpolicies. -n smartedge-apps
    
    NAME                   POD-SELECTOR       AGEs
    allow-gst-analytics    app=telehealth     6m55s
    deny-from-other-namespaces   <none>       3d18h 

     

    smartedge-open@:/$ kubectl get networkpolicies.
        
    NAME                   POD-SELECTOR       AGEs
    block-all-ingress         <none>          3d18h


     

  1. During uninstall of Telehealth application, telehealth pod and network policy will be removed from the smartedge node, which are specific to Telehealth Remote Monitoring Reference Implementation. 
    ./edgesoftware uninstall < telehealth package ID >
    Uninstall Success Screen
    Figure 6: Uninstall Success

     

  2. Run the commands below to make sure the network policy is deleted after uninstalling:

    smartedge-open@:/$ kubectl get networkpolicies. 
    
    NAME                     POD-SELECTOR             AGEs 
    block-all-ingress        <none>                   3d18h
    
    
    smartedge-open@:/$ kubectl get networkpolicies. -n smartedge-apps
    
    NAME                       POD-SELECTOR         AGEs
    deny-from-other-namespaces   <none>             3d18h

     

Node Feature Discovery (NFD) Feature

Telehealth remote monitoring uses the Intel® Distribution of OpenVINO™ toolkit, which is optimized for Intel® processors that support special instructions like AVX512VNNI for optimized performance. The deployment of this application will require the node with this feature supported on the node along with Ubuntu 20.04 OS. This NFD feature ensures to deploy the application on the node supported with these features. 

NFD is installed by Intel® Smart Edge Open Developer Experience Kit and running as two pods on Intel® Smart Edge Open, as shown below.

$ kubectl get pods -A | grep node-feature-discovery

node-feature-discovery nfd-master-866c6ddff9-jsnmb    1/1     Running   1 (29d ago)   29d
node-feature-discovery nfd-worker-6hqqg               1/1     Running   1 (29d ago)   29d 

 

Telehealth remote monitoring pod scheduled and running successfully on Intel® Smart Edge Open node based on hardware capabilities of Intel® Xeon® Scalable server.

$ smartedge-open@:/$ kubectl get pods -A | grep telehealth

smartedge-apps  telehealth-94568f9bc-zcwq4  2/2  Running  0  69s

 

The following output shows a description of telehealth remote monitoring pod, which shows that it is running successfully with the NFD feature.

$ kubectl describe pods telehealth-94568f9bc-zcwq4 -n smartedge-apps

Node-Selectors: feature.node.kubernetes.io/cpu-cpuid.AVX512VNNI=true
                feature.node.kubernetes.io/system-os_release.ID=ubuntu
                feature.node.kubernetes.io/system-os_release.VERSION_ID=20.04
                feature.node.kubernetes.io/system-os_release.VERSION_ID.major=20
                feature.node.kubernetes.io/system-os_release.VERSION_ID.minor=04
Events:
  Type    Reason     Age   From         Message
  ----    ------     ----  ----         -------
  Normal  Scheduled  34s default-scheduler Successfully assigned smartedge-apps/<telehealth pod > to node
  Normal  Pulling    33s   kubelet   Pulling image "openvisualcloud/xeon-ubuntu1804-service-owt:latest"
  Normal  Pulled     29s   kubelet   Successfully pulled image "openvisualcloud/xeon-ubuntu1804-service-owt:latest" in 3.7s
  Normal  Created    29s   kubelet   Created container owt-service
  Normal  Started    29s   kubelet   Started container owt-service
  Normal  Pulling    29s   kubelet   Pulling image "openvisualcloud/xeon-ubuntu1804-service-vcs-owt:latest"
  Normal  Pulled     25s   kubelet   Successfully pulled image "openvisualcloud/xeon-ubuntu1804-service-vcs-owt:latest" in 3.946s
  Normal  Created    25s   kubelet   Created container owt-meeting
  Normal  Started    25s   kubelet   Started container owt-meeting

 

Public Helm Registry for Helm Charts

Installation of Telehealth Remote Monitoring Reference Implementation on Intel® Smart Edge Open is accomplished using Helm charts. Earlier Helm charts used to be a part of Reference Implementation installation package. Now a global Helm repo is issued, so that Reference Implementation Helm charts can be accessible from private and public network. This will speed up and ease the process of introducing updates and their integration with the Reference Implementation.
 

 


Visualize the Output

  1. To visualize the results, launch an Internet browser and navigate to: https://<smartedge-open-node-ip-address>:30443.  
    Visualize the Output
    Figure 7: Launch an Internet Browser
  2. Click on the Advanced option and you will be redirected to the page to proceed with unsafe mode.
     
    Figure 8: Launch an Internet Browser - Advanced
  3. Enter any nick name to recognize the participants after logging into the web conference. Up to three participants can join a conference using Chrome* browser using Intel® Smart Edge Open node IP and node port to perform video conference, chats, screen sharing, and audio by selecting the options in webRTC web UI.
     
    Login Screen
    Figure 9: Application Web Conference Login Page

     
  4. The security certificate of the following URL is not trusted by your computer's operating system. To continue, click the URL and proceed to the unsafe host, then come back to this page and refresh. https://<smartedge-node-ip-address>:<socker io node port>/socket.io/ 
    Security Certificate
    Figure 10: Application Web Conference Page

     
  5. In the Settings dialog, choose the Video and Audio option.
    On the login page, you can select either Forward or Mixed mode.Two modes are supported with certain features in the webRTC web UI. 
    Forward mode supports chat, screen sharing and video only (without audio). 
    Mixed mode does not support the screen sharing feature. Chat and audio with video are supported in Mixed mode.
     
    Settings Dialog
    Figure 11. Settings Dialog

    Forward Mode
    Figure 12. Forward Mode


     
    Mixed Mode
    Figure 13. Mixed Mode


     
  6. You will see similar types of options such as video conferences, chats, audio, and screen sharing on webRTC web UI.
    Sample Application WebUI
    Figure 14: Application WebUI

     
  7. You will see results like the image below when you join the web conference. (In the image below, two participants have joined.)
    Participant Screen
    Figure 15: Application Results

     

Use Cases  

Remotely Monitoring Patients Across Facilities 

Use case: An emergency department patient is transferred to a long-term acute care facility along with a companion device that enables the care team to remotely observe the patient.

Telehealth Remote Monitoring Reference Implementation: Provides a head start toward developing this use case. When the patient meets a pre-set condition, a request to join the WebRTC-powered session could be sent, a session established, and clinicians prompted to join to remotely assess the patient. A screen sharing option can enable the remote clinician to rapidly transfer and share notes, reports, and charts with staff at the remote facility. 

Remote Monitoring for Patients at Home 

Use case: A patient is transferred from the hospital to the home with orders that require monitoring periodically. The provider can establish communications with the patient and conduct these visits across device types leveraging this application. 

Telehealth Remote Monitoring Reference Implementation: Deployed on CSP instances to form the structure of a telehealth capability accessible from nearly anywhere. Patients sent home with monitoring orders could meet with clinicians virtually through the WebRTC-powered video and chat features and communicate changes in condition or the latest readings from home monitoring devices like weight scales, BP cuffs, etc. 

Virtual Rounding in Field Hospitals 

Use case: A rapidly set up field hospital requires telehealth capabilities delivered and operated on-site without depending on continuous internet connectivity.  

Telehealth Remote Monitoring Reference Implementation: Delivered already installed as a service as part of the site’s rugged edge computing equipment. With nearly any camera-equipped device, a telemetry monitoring capability can be rapidly deployed. The care team is able to remotely check in on patients located in different areas of the hospital, including some in isolation wards, which would otherwise require twenty minutes of suiting up in PPE to round on in person, 


Summary and Next Steps

Telehealth Remote Monitoring, when deployed on Intel® Smart Edge Open, creates an impactful edge computing use case that utilizes the capability of Intel® Smart Edge Open and Intel® CS for WebRTC. 

The next version of this Reference Implementation will include the following features:


Learn More

To continue learning, see the following guides and software resources:


Troubleshooting

Docker Pull Limit Issue

If a Docker pull limit error is observed, log in with your Docker premium account.​

docker login 
username - xxxxx 
password - xxxxx 

Uninstallation Failure

If uninstall command fails(./edgesoftware uninstall < module id >), manually uninstall telehealth deployment and network policy, which are specific to telehealth pod:                 

helm uninstall telehealth -n smartedge-apps 
kubectl delete networkpolicy allow-gst-analytics

Installation and Debug Log Information 

  1. Installation log info of Intel® Smart Edge Open Developer Experience Kit will be available at: 
    /var/log/esb-cli/Smart_Edge_Open_Developer_Experience_Kits_2.0.0/Smart_Edge_Open_Developer_Experience_Kits/install.log 

     

  2. Installation log info of Telehealth Remote Monitoring module will be available at: 
    /var/log/esb-cli/Telehealth_Remote_Monitoring_3.0.0/telehealth_remote_monitoring/install.log


Security Certificate Warning

The first time you login to the webRTC web UI, you may see an error or warning similar to "security certificate of the URL is not trusted". In this case, perform the steps below to remove the certificate-related warnings and errors.

  1. Right-click on the Chrome icon.
  2. Select Properties and go to Shortcut
  3. In the Target field, add the text -ignore-certificate-errors at the end like this: C:\Program Files (x86)\<path>\chrome.exe -ignore-certificate-errors
  4. Click OK.
  5. Restart your browser.

 

Missing Video or No Sound in Conference

If you are using telehealth webRTC video conferencing and having trouble seeing video or screens and not hearing any sound, make sure Audio and Video devices like Mic and Camera are not used by other applications on your system, such as Microsoft* Teams, Zoom, or Skype Audio and Video calls.

 

Support Forum 

If you're unable to resolve your issues, contact the Support Forum.  

To attach the installation logs in compressed format, refer to the steps below to create the tar.gz compressed file. 

Execute the command below to consolidate list of the log files in tar.gz format, e.g.,  telehealth_remote_monitoring.tar.gz

 tar -czvf telehealth_remote_monitoring.tar.gz /var/log/esb-cli/Telehealth_Remote_Monitoring_3.0.0/telehealth_remote_monotoring/ /var/log/esb-cli/Smart_Edge_Open_Developer_Experience_Kits_2.0.0/ Smart_Edge_Open_Developer_Experience_Kits/

 

Regulatory Disclaimer: Applications and software here are for development purposes only. These have not been vetted for any regulatory requirements such as accessibility, security, privacy, or HIPAA. Compliance to any regulatory requirements shall be the responsibility of the final application provider.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.