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.
- 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.
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.
-
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.
-
- 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
- To create a user smartedge-open execute the command:
- 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>
- Move the downloaded zip package to /home/smartedge-open folder:
mv <path-of-downloaded-directory>/telehealth_remote_monitoring.zip /home/smartedge-open/
- Go to /home/smartedge-open directory using the following command and unzip the RI:
cd /home/smartedge-open unzip telehealth_remote_monitoring.zip
- Go to telehealth_remote_monitoring directory:
cd telehealth_remote_monitoring
- Change permission of the executable edgesoftware file:
chmod 755 edgesoftware
- Run the command below to install the Reference Implementation:
./edgesoftware install
-
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.
- When the installation is complete, you see the message Installation of package complete and the installation status for each module.
NOTE: Installation logs will be available at the path: /var/log/esb-cli/Telehealth_Remote_Monitoring_3.0.0/telehealth_remote_monitoring/install.log.
- 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
- 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
-
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
-
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
- 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 >
-
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
- To visualize the results, launch an Internet browser and navigate to: https://<smartedge-open-node-ip-address>:30443.
- Click on the Advanced option and you will be redirected to the page to proceed with unsafe mode.
- 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.
- 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/
- 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.
- You will see similar types of options such as video conferences, chats, audio, and screen sharing on webRTC web UI.
- You will see results like the image below when you join the web conference. (In the image below, two participants have joined.)
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:
- Video analytics pipeline based on Intel® Distribution of OpenVINO™ toolkit Open Model Zoo
- Support the multi-clusters deployment
Learn More
To continue learning, see the following guides and software resources:
- Intel® Smart Edge Open Architecture
- Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC)
- Intel® CS for WebRTC OWT-server
- Intel® CS for open WebRTC Toolkit JavaScript SDK
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
- 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
- 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.
- Right-click on the Chrome icon.
- Select Properties and go to Shortcut.
- 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
- Click OK.
- 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.