PatientCare is essentially a system to improve patients care during their treatment by providing well-being monitoring using a bunch of sensors, either for immediate care or long-term care improvement via data analytic.
IDC Health Insights believes that improving patient experience will soon become a pivotal factor for reducing redundancies in health delivery, improving on patient engagement, and in advancing care compliance
- IDC Report – April 2016 – Perspective: The Future of Patient Experience in Asia/Pacific (Excluding Japan): An Overview of Key Opportunity Areas
This prototype implements enterprise-grade, real-world scenario, by - among others - the usage of LoRa-based communication between wearables (nodes) and gateway to remove the dependency of WiFi, and able to cover wide area inside care facility that will increase the feasibility of implementation and reduce cost.
System ArchitectureThis prototype includes:
1. Wearables
A device wore by patients that constantly monitor their well-being and transmit the data to gateway via LoRa. The prototype uses ESP8266-based microcontroller for the sake of its capability (processing power, RAM, etc) with the built-in WiFi functionality not used. HopeRF RFM95/98 (depends on desired frequency) is used for LoRa functionality.
Currently monitored parameters are:
- Heart rate
- Falling detection. Using IMU sensors, the device is able to detect urgent condition when patient is falling and instantly notify nurse/care officer.
- Temperature
2. Gateway
Raspberry Pi 3-based microcomputer with LoRa hat is used as gateway in order to "relay" the data from the nodes to Azure IoT Hub.
3. Cloud
This is where a lot of brains reside which consists of Azure services that essentially functions as data ingestion, analytics, and visualization.
DeploymentAll source code necessary for the system to works are in Github and the links are on the attachment.
1. Wearables
Source code is developed using Arduino framework for ESP8266 with the help of Platformio build system. So, make sure you already install Platformio. The rest is trivial by following common practice of building and uploading firmware with Platformio.
2. Gateway
There are two parts of software for gateway:
- LoRa receiver: C++ based software that receives packet from LoRa sender (node) and spit out any received payload to
stdout
- LoRa processing: Process payload from
stdout
and upload the processed payload to Azure IoT Hub. It's developed with Node.js
Those software are prepared by Raspbian OS for Raspberry Pi 2/3.
3. Azure IoT Hub
Essentially you can follow along any instruction related to deploying Azure IoT Hub. Then you need to add a device (either using Device Explorer application or iothub-explorer) and get the connection string. Put the connection string to config.js in gateway's Node.js app.
For example: if you are using a Node.js-based iothub-explorer
1. Creating device with name "beastmaster-01":
iothub-explorer create 'beastmaster-01'
2, Get connection string:
iothub-explorer get 'beastmaster-01' --connection-string
Then put the connection string to config.js:
config.iothub = {
connectionString: '[connection string]'
};
That's it for now. I will keep improving the project, though. So make sure to keep checking it out. Enjoy!
Comments