Roshan recently finished a telemedicine application ‘HealthCloud’ he built for his Master’s project. To do this, he used the BetterDoctor API to pull up doctor profiles. We invited him to talk about his development journey.
BetterDoctor (BD): Roshan, tell us about yourself and your idea about HealthCloud.
Roshan: I have just graduated in Computer Science from California State University, Fullerton. For my final Master’s project I had to build an app and I wanted to focus on healthcare, as I believe technology will solve many problems in that field. Everyone has experienced long waiting times at a doctor’s visit. I even found out in a survey that the average appointment wait time to see a family physician can range up to 66 days! I wanted to fix this by building HealthCloud, a web app that enables patients to stay connected to medical professionals through features like video call and chat.
BD: How would you describe the developing process?
R: Like any software project, Google became my best friend. I searched for best practices and tools to build a provider directory that enables scheduling appointments and making real-time video calls. I think the whole process took about 480 hours, out of which the video call feature took maybe 190 hours. For the provider directory, I used medical professional data from BetterDoctor as my base data. It was relatively easy to implement thanks to the live documentation and the code samples, which helped to figure out the proper request. I also liked their clear and well thought JSON set up.
Heroku - Project Deployment
MLab - Database as a Service
Amazon Web Services - S3 - File Storage
AuthO - Authentication as a Service
BD: You said that building the video call feature was the hardest part. Tell us how you did it.
R: For the video call I used WebRTC that leverages RTCPeerConnection to send stream data between browser also known as peers.
I used socket.io to be able to send control messages in rooms. This signaling process exchanges session control messages, network configuration and media capabilities. It has to be successful before RTCPeerConnection establishes.
First, patient and doctor share network information, such as network interfaces and ports using Interactive Connectivity Establishment (ICE) framework. Next, local and remote media configurations are exchanged by an offer and an answer using Session Description Protocol (SDP).
You can see the architecture diagram for the video call feature below.
BD: Now that the first version is out, how are you going to take the app further? Any new features coming up?
R: Sure! In the next versions I hope to include an AI bot that can recommend solutions to the patient and send reminders about the appointments. I’m planning to improve security for Electronic Health Records by implementing Multi Factor Authentication (MFA). It would also be great to add real-time health data from the patient’s tracking devices, such as Apple watch or Fitbit.
BD: You have recently graduated - congratulations! What are your plans next and with regards to HealthCloud?
R: Thank you. At first, I’d like to work as a software developer and gain as much knowledge as possible. I would love to expand HealthCloud and make it available to public sometime in the future.
WebRTC - Video Call
- Node.js & Socket.io Chat - https://youtu.be/pNKNYLv2BpQ
- Socket.io Chat App Using Websockets - https://youtu.be/tHbCkikFfDE