Telemedicine has been an evolving technology for the last few years. The recent coronavirus outbreak has further spurred its development as it allows for no contact patient and doctor interactions. Accordingly, more and more companies are looking to increase their telehealth capabilities in the interest of reducing the risk of infection.
It is important to remember that telemedicine requires some specific features. It is much more than just a simple chat application for doctors to speak with patients. While creating an application, there are a few different telemedicine tools for developers to use. This post covers some of the most essential tools and features required to build a telemedicine app. Since video is unquestionably an essential part of any telemedicine app, and video streaming is one of the hardest aspects to solve in a telemedicine app, the tools presented here have a heavy focus on video technology.
Scalable Robust Server Infrastructure
The whole point of telemedicine is connecting people. Sometimes those patients can be in different areas so it’s important that a smooth connection is established no matter where each patient is located. Creating server clusters in different geographic areas ensures that there will always be a server close to where each of your patients are.
This includes connecting people in hard to reach places which may have poor internet connectivity. There are server-side features that can help with this such as transcoding which broadcasts different quality tiers of the same stream (into high, medium, and low for example) and ABR, which adjusts the bitrate according to the network conditions of the subscriber. This way, users with poor connectivity get a smooth streaming experience without degrading the entire video for those with better connectivity who can handle the highest level stream.
You should also be able to connect as many people as needed making scalability an important consideration as well. Leveraging cloud infrastructure, Red5 Pro’s Autoscaling Solution enables full scalability to millions of concurrent users.
Under the operating logic of a Stream Manager– a Red5 Pro Server Application that manages traffic and monitors server usage– clusters or NodeGroups– a group of one or more active server nodes– are established in the geographic regions where the streaming will be happening. Through this fully automated process, the system will scale up and scale down in real-time depending upon demand.
Rather than creating direct peer to peer connections between the broadcaster and subscribers, Red5 Pro configured their architecture so that each WebRTC connection is routed through a server instance (node). Connecting distant users to each other using a powerful cloud-based backbone rather than forcing the clients to navigate across the world through the internet makes for much better experiences. Furthermore, it is important to note that the server infrastructure must be efficient in order to support the highest number of connections possible.
Most notably, the Red5 Pro Autoscaling Solution maintains sub-500 millisecond latency while scaling to millions.
Finally as telemedicine is highly regulated it may be important that you have the option to record and securely store the videos in the sessions for later analysis. Red5 Pro supports direct integration with cloud storage such as Amazon's S3, and DigitalOcean’s spaces.
Flexible Client-Side SDKs
In order to build the specific video streaming functionality required by a telemedicine application, you need a complete software framework to build your application on top of. This developer toolbox includes methods to compile and debug code. The tools provided are things like code libraries, documentation, code samples, processes, and/or guides.
As video encoding and decoding can be very intense processes, it’s important that your client side SDKs support hardware acceleration. Some streaming SDKs only use software decoding and encoding, making for poor performing apps which adversely affect your user’s experience. Modern video streaming SDKs must leverage specific chipsets built into devices specifically for handling video to ensure batteries are not quickly drained and devices don’t overheat.
Well written Video SDKs will ensure that your application runs on all the necessary platforms such as internet browsers, and mobile devices. The Red5 Pro HTML5 SDK allows you to create a webapp to run on laptop browsers or mobile browsers. Red5 Pro also offers mobile SDKs for Android and iOS, as well as a Linux SDK. These SDKs give you everything you need to build a fully functional and highly efficient telemedicine application.
Secure Back End
Considering that telehealth involves sharing lots of personal medical data there are privacy regulations to comply with such as HIPAA in the United States and (more generally) GDPR in Europe. This makes application security and data control very important.
By hosting a solution on your own servers you don’t have to worry about your data. You own it so you can retain control over what you do with it. Furthermore, as Red5 Pro is hosting agnostic you can use a variety of hosting platforms, GCP, AWS, Azure, Digital Ocean, your own servers, or other hosting providers.
Those seeking more security in their conferencing application can build their own starting with the Red5 Pro conferencing example. You can then add extra security through the use of self-hosting, encryption, and round trip authentication. The only way to truly gain full security is to build a fully customized application where you control everything including who can access your streams and data.
Having full control over the back-end infrastructure also allows you to write your server side logic in whatever language/platform you want: Node, Go, Ruby on Rails, Java, etc. hosting your own video streaming infrastructure whether in cloud or on premises, means that you can integrate any custom server code you want without being tied to whatever API a PaaS vendor thinks you need. Flexibility and extensibility are just as important as security when it comes to writing back end code for telemedicine apps.
Powerful Load Testing Tools
As mentioned earlier, Red5 Pro uses cloud infrastructure to scale to millions of concurrent users. Of course, we don’t expect you to just take our word on it. We have developed our own load testing tools based on the Chicago Tribune’s load testing program, Bees with Machine Guns. It is available on our GitHub page. As it was originally designed for HTTP, we had to modify the source code to support RTMP, RTSP, and WebRTC.
Each Bee program runs an "attack" on a server. It does this by creating clients that subscribe to a video stream coming from that server. One Bee can have a number (N) of Bullets (or stingers, if you will) that are fired concurrently.
By creating these virtual clients, the Bees stress the targeted application server in order to get a better idea of how many concurrent connections the system architecture can support at the same time.
Thus we have covered the 4 major telemedicine tools for developers. You need a good server structure to provide efficient scalability, a full set of SDKs to support every platform your application needs to run on, the ability to create your own back-end for full security and functionality, along with the ability to test your application at scale with load testing.