Difference between revisions of "Mobile Medical Device Integration"

From CDOT Wiki
Jump to: navigation, search
(Project Status)
m (Reverted edits by Chris Tyler (talk) to last revision by Zmhassan)
 
(52 intermediate revisions by 7 users not shown)
Line 1: Line 1:
[[Category: NexJ_Express]]
+
''''' NexJ/MyOSCAR Medical Peripheral Mobile Adapter '''''
[[category: NexJ Current Projects]]
+
Will be designed to enable NexJ's Mobile Healthcare solutions to interact with Bluetooth/WiFi peripherals.
[[category: NexJ Express PhoneGap]]
+
 
 +
[https://cs.senecac.on.ca/~jordan.anastasiade/ECL/tmp/VideoBP-March30-h200.mp4 <u>'''First Application: Blood Pressure/Weight Scale to Android using Bluetooth protocol'''</u>]
 +
 
 +
{{TOC limit}}
  
 +
== Project Status ==
  
 +
'''Goal for March 2014:'''
  
March 2013 - Android to Blood Pressure/Weight Scale connectivity
+
[[File:nexj-deliverables.png|thumb|center|600px]]
  
''''' NexJ Medical Peripheral Mobile Adapter '''''
+
'''Not yet completed tasks:'''
will be designed to enable NexJ's Mobile Healthcare solutions to interact with Bluetooth/WiFi peripherals.
+
*  MyOscar: Push data to myoscar and pull updates at the end of the day
 +
* Dylan: Write guide for downloading, building and using the app
 +
* Dylan: Make sure projects are easily buildable
 +
* Dylan: evaluate Nexj Connected Wellness API
 +
* Using  [https://github.com/commonsguy/cwac-wakeful CWAC-Wakeful Service] Schedule a batch process for uploading
 +
workout data to MyOscar.
 +
*  Design a robust syncronized integration with MyOscar to update every 24 hours.
 +
*  Design a db table for storing metadata of success or failure of syncing.
 +
*  After successful syncing to MyOscar you should remove metadata from the phone to save space.
  
[https://cs.senecac.on.ca/~jordan.anastasiade/ECL/tmp/VideoBP-March30-h200.mp4 F<u>'''irst Application: Blood Pressure/Weight Scale to Android using Bluetooth protocol'''</u>]
+
'''Wishlist:'''
 +
*  Withings scale support in HealthFirst
 +
<s>*  Fitbit support in HealthFirst</s>
 +
* make graph code loose coupled major problem in graph by setting a limit to the graphviewdata. Use linkedlist.
 +
*  Created Notification for Errors when synchronizing with MyOscar.
 +
* Dylan: Retrieve blood pressure, pulse and glucose measurements from a Fitbit account.
  
: ''{{See Also|Phonegap Healthcare Adapter Questions|Phonegap Healthcare Adapter Backlog}}''
+
'''Completed tasks:'''
: ''{{Category See Also|NexJ Express Research}}''
+
* Wei: Merge Phonega and Native versions of our library
 +
* Wei: Phonegap implementation of library to retreive data from bluetooth A&D weight scale.
 +
* Wei: Phonegap implementation of library to retreive data from bluetooth A&D blood pressure monitor.
 +
* Wei: Phonegap implementation of library to retreive data from OneTouch glucometer via BluGlu bluetooth dongle.
 +
* Wei: Phonegap implementation of library to retreive data from OneTouch glucometer via Polytel bluetooth dongle.
 +
* Dylan: POC native Android code to connect to FitBit servers and retrieve data uploaded by a FitBit device using their API.
 +
* Dylan: POC native Android code to connect to Withings servers and retrieve data uploaded by a Withings weight scale.
 +
* Dylan: POC native Android code to connect to MyOSCAR and retrieve/upload data.
 +
* Dylan: Port Phonegap library implementation to retrieve data from bluetooth A&D devices to native Android.
 +
* Dylan: Retrieve weight and blood pressure measurements from a Withings account.
 +
* Dylan: Retrieve weight measurements from a Fitbit account.
 +
* Dylan: Retrieve Polytel bluetooth glucometer readings in native Android code.
 +
* Dylan: Package the native library as a .jar file.
 +
* Dylan: Create a common interface between Withings and Fitbit.
 +
* Dylan: Write up explanation for using Withings
 +
* Dylan: Write up explanation and UI for Fitbit
 +
* Dylan: Complete demo app functionality for A&D weight scale
 +
* Dylan: Complete demo app functionality for A&D blood pressure monitor
 +
* Dylan: Complete demo app functionality for polytel dongle
 +
* Dylan: Add MyOscar section
 +
* Dylan: Double-check there aren't any credentials hardcoded in distributable code
 +
* Alek: human-usable version of Phonegap application to work with A&D weight scale, blood pressure monitor, and BluGlu.
 +
* Alek: Rewrite the first screen of the Demo MMDI app in Java (UI and retrieval of paired devices complete). Assumes Bluetooth is already enabled.
 +
* Alek: Make a new list of bluetooth-capable medical devices
 +
* Zak: Proof of concept of integrating heart beat monitor with Android.
 +
* Zak: Design of initial user interface
 +
* Zak: Developing persistence implementation with SQLite
 +
* Zak: Start workout button to connect to device to make sure it recieves data
 +
* Zak: Make sure data is pulled per second to get up to date readings
 +
* Zak: Plot data on graph (5 min range)
 +
* Zak: Put the workout app into mercurial.
 +
* Zak: End workout will do the clean up stuff.
 +
* Zak: Designed java class for aggregating medical reading information into one JSON string to be stored in sqlite and generate object to work with.
 +
* Zak: Display of graph data of a work out that was saved.
 +
* Zak: Listing of workouts saved on phone.
 +
* Zak: Notification code is working on the phone. When error message is clicked it goes to an error page.
 +
* Zak: Designed LinkedList data structure to generate JSON data in SQLite. Using the same principles of [http://martinfowler.com/nosql.html NoSQL]. For every reading we will store the following JSON
 +
{ 'Reading' : '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]' ,
 +
'theshold' : '[{'reading' : '0', 'over' : '20.0' },{'reading' : '1', 'over' : '20.0' },{'reading' : '2', 'over' : '20.0' },{'reading' : '3', 'over' : '20.0' },{'reading' : '4', 'over' : '20.0' },{'reading' : '5', 'over' : '20.0' },{'reading' : '6', 'over' : '20.0' },{'reading' : '7', 'over' : '20.0' },{'reading' : '8', 'over' : '20.0' },{'reading' : '9', 'over' : '20.0' }]' }
  
{{TOC limit}}
+
== Current Contributors ==
  
== Contributors ==
+
* [[User:Wei.song|Wei Song]]
 +
* [[User:zmhassan|Zakeria Hassan]]
 +
* [[Dylan Segna]]
 +
* [[Alek Minassian]]
  
 +
== Past Contributors ==
 
* [[User:Cwdesautels|Carl Desautels]]
 
* [[User:Cwdesautels|Carl Desautels]]
* [[User:Wei.song|Wei Song]]
+
* [[Edward Hanna]]
  
=== Blogs ===
+
=== Blog ===
* [http://caitpotter.blogspot.ca/ Cait Potter]
+
* [http://senecahealth.wordpress.com/ Seneca Health Research Projects]
* [https://epsilon812.wordpress.com/ Rick Eyre]
 
* [http://wsong18.blogspot.ca/ Wei Song]
 
* [https://lynart.wordpress.com/ Vincent Lee]
 
* [http://cwdesautels.blogspot.ca/ Carlin Desautels]
 
  
 
== Problem ==
 
== Problem ==
Line 38: Line 94:
  
 
The unified JavaScript API will be developed to utilize PhoneGap's JavaScript API to make native code calls. These native calls will focus on a medical Bluetooth device adapter which also must be implemented. This Bluetooth adapter will be extended for each supported measuring device and implemented on each supported mobile operating system.
 
The unified JavaScript API will be developed to utilize PhoneGap's JavaScript API to make native code calls. These native calls will focus on a medical Bluetooth device adapter which also must be implemented. This Bluetooth adapter will be extended for each supported measuring device and implemented on each supported mobile operating system.
 
== Project Scope ==
 
 
* Not responsible for communication with the server.
 
* Responsible for communication with Bluetooth peripherals.
 
 
== Supported Versions ==
 
 
* [http://phonegap.com/download PhoneGap] 2.0.0, released July 20, 2012
 
 
=== [http://docs.phonegap.com/en/2.0.0/guide_getting-started_ios_index.md.html#Getting%20Started%20with%20iOS OSX] ===
 
 
* Xcode 4.3 +
 
* OSX 10.7 +
 
* iOS 4.3 +
 
* Bluetooth SPP capable
 
 
=== [http://docs.phonegap.com/en/2.0.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android Android] ===
 
 
* Eclipse 3.6.2 +
 
* ADT Latest
 
* Java 1.6 +
 
* Minimum OS: 2.2
 
* Recommended OS: latest
 
* Bluetooth SPP capable
 
 
== [[Phonegap_Healthcare_Adapter_Backlog|Project Status]] ==
 
 
* '''Completed work''' : [[Phonegap_Healthcare_Adapter_Backlog#Investigation|Investigation]]
 
 
* '''Test Plan''' : [[MMDI Integration Test|Test Records]]
 
 
* '''Current Tasks''' :
 
 
** [[Integration of bluglu device|Integration of bluglu device]]
 
 
== [[:Category:NexJ_Express_Research|Research]] ==
 
 
* Bluetooth communication outline: [[Phonegap_Healthcare_Adapter_Bluetooth_Spec|Spec]]
 
* Bluetooth native implementation: [[Phonegap_Healthcare_Adapter_Bluetooth_Implementation|Details]]
 
* Project Design: [[Phonegap_Healthcare_Adapter_Design|Design Page]]
 
* Phonegap cross platform plugin solution: [[Phonegap_Healthcare_Adapter_Plugin_Implementation|Tutorial]]
 
* Documentation: [https://bitbucket.org/nexj/mobile-bluetooth-adapters/wiki/Home Docs]
 
  
 
== Project Repository ==
 
== Project Repository ==
  
 +
* https://cdot.senecacollege.ca/hg
 
* https://bitbucket.org/nexj/mobile-bluetooth-adapters
 
* https://bitbucket.org/nexj/mobile-bluetooth-adapters
  
Line 90: Line 104:
 
* [https://developer.mozilla.org/en-US/docs/Mercurial Mozilla Mercurial Docs]
 
* [https://developer.mozilla.org/en-US/docs/Mercurial Mozilla Mercurial Docs]
  
=== Branching Rules ===
+
==Introduction==
  
* Nobody commits to ''default''.
+
Most of us probably have some relative that may be in and out of hospital or some may have a critically ill relative. Wouldn't it be nice to have some way of monitoring how they are doing? Wouldn't it be great to see all this information on your smart phone? Wouldn't it be great to have not only the information freely available to patients but also that the software is free and open source?  I will explain the cutting edge technology/research we are conducting.
** ''default'' is the master branch we will use to generate submissions back to NexJ
 
* Nobody commits to ''dev''.
 
** ''dev'' is the branch were the latest completed features and bug fixes come together for testing
 
* Keep branches relevant.
 
** If the ''focus'' of what your coding changes, make a new branch
 
* Best practice is to branch off of ''dev''.
 
** Exceptional scenarios call for branching off of default or other branches, you will not encounter them
 
* Branch names in lowercase.
 
* Hyphenate branch names if required.
 
** ''bluetooth-plugin''
 
* Branch names must either be:
 
** A bitbucket issue, example: ''issue-14 OR bug-14''
 
** A feature name, example: ''cryptography-bug''
 
  
== Resources ==
+
==What is MyOscar?==
* Research
 
** [[:Category:NexJ_Express_Research|Notes]]
 
* Dowloads:
 
** [http://docs.phonegap.com/en/2.0.0/guide_getting-started_ios_index.md.html#Getting%20Started%20with%20iOS PhoneGap: Getting Started with iOs]
 
** [http://docs.phonegap.com/en/2.0.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android PhoneGap: Getting Started with Android]
 
* Documentation:
 
** Bluetooth Developer Portal:
 
*** [http://developer.bluetooth.org/KnowledgeCenter/Pages/White-Papers.aspx Bluetooth White papers]
 
*** [http://developer.bluetooth.org/DevelopmentResources/Pages/Introduction-to-Bluetooth-Application-Development.aspx Development Resources]
 
** iOS Developer Resource
 
*** [http://developer.apple.com/library/ios/#technotes/tn2295/_index.html Bluetooth on Simulators]
 
*** [http://hiediutley.com/2011/03/30/phonegap-tutorial-series-4-using-a-third-party-plugin/ PhoneGap Tutorial]
 
*** [https://developer.apple.com/library/mac/documentation/cocoa/conceptual/objectivec/objc.pdf Objective C language Documentation]
 
*** [http://proquest.safaribooksonline.com/book/programming/iphone/9781430236054 iOS 5 Development: Exploring the SDK]
 
** Android Developer Resource:
 
*** [http://wsong18.blogspot.ca/2012/07/setting-up-phonegap-development_27.html Setting up PhoneGap Development Environment for Android Platform]
 
  
 +
MyOscar is a personal health record system which was created to give patients the freedom to see their medical records. Not only are patients able to see this information but also share this information with family and loved ones. The software is open source.  To read more about it visit:
  
 +
http://myoscar.org/myoscar/about-myoscar
  
 +
==Should Patients Have Access To Their Personal Medical Data And Why?==
  
 +
You may have an elderly parent or grandparent that you may want to monitor if their condition becomes critical while at work or traveling. Or you may have a critically ill loved one that you may be taking care of. We think by having this technology, it would make it possible to help improve peoples lives and relieve worries.
  
 +
==Critical Care Patient Monitoring And Can Technology Help?==
  
Emails:
+
We believe that yes, it could be possible to help a patients for example a critical care patient which would need around the clock monitoring. Perhaps with technology like this patients could leave the hospital and allow their caregivers to monitor them through an application (smart phone).
  
 +
==Our Efforts At Seneca Center of Development Of Open Source Technology==
  
Dylan Ford Potter dfpotter@myseneca.ca
+
We are researchers, students and professors that believe that it may be possible to improve the healthcare industry through cutting edge technology. We believe that this technology we create should be open source. We have created mobile applications that read wireless via Bluetooth to retrieve accurate medical data. Currently we are working on syncing this data with MyOscar EMR to further improve accessibility of patient data.
  
Wei Song  wei.song@senecacollege.ca
+
[[Category: NexJ_Express]]
 
+
[[category: NexJ Current Projects]]
Richard Eyrerick.eyre@hotmail.com
+
[[category: NexJ Express PhoneGap]]
 
 
Edward Charles Elio Hanna echanna@myseneca.ca
 
 
 
Carlin Desautels Carlin.Desautels@senecacollege.ca
 
 
 
Vincent Lee vlee34@myseneca.ca
 
 
 
Kirill Sochnev ksochnev@myseneca.ca
 
 
 
 
 
 
 
 
Peter Liu Peter.Liu@senecacollege.ca
 
 
 
Jordan Anastasiade jordan.anastasiade@senecacollege.ca
 

Latest revision as of 20:31, 23 April 2018

NexJ/MyOSCAR Medical Peripheral Mobile Adapter Will be designed to enable NexJ's Mobile Healthcare solutions to interact with Bluetooth/WiFi peripherals.

First Application: Blood Pressure/Weight Scale to Android using Bluetooth protocol

Project Status

Goal for March 2014:

Nexj-deliverables.png

Not yet completed tasks:

  • MyOscar: Push data to myoscar and pull updates at the end of the day
  • Dylan: Write guide for downloading, building and using the app
  • Dylan: Make sure projects are easily buildable
  • Dylan: evaluate Nexj Connected Wellness API
  • Using CWAC-Wakeful Service Schedule a batch process for uploading

workout data to MyOscar.

  • Design a robust syncronized integration with MyOscar to update every 24 hours.
  • Design a db table for storing metadata of success or failure of syncing.
  • After successful syncing to MyOscar you should remove metadata from the phone to save space.

Wishlist:

  • Withings scale support in HealthFirst

* Fitbit support in HealthFirst

  • make graph code loose coupled major problem in graph by setting a limit to the graphviewdata. Use linkedlist.
  • Created Notification for Errors when synchronizing with MyOscar.
  • Dylan: Retrieve blood pressure, pulse and glucose measurements from a Fitbit account.

Completed tasks:

  • Wei: Merge Phonega and Native versions of our library
  • Wei: Phonegap implementation of library to retreive data from bluetooth A&D weight scale.
  • Wei: Phonegap implementation of library to retreive data from bluetooth A&D blood pressure monitor.
  • Wei: Phonegap implementation of library to retreive data from OneTouch glucometer via BluGlu bluetooth dongle.
  • Wei: Phonegap implementation of library to retreive data from OneTouch glucometer via Polytel bluetooth dongle.
  • Dylan: POC native Android code to connect to FitBit servers and retrieve data uploaded by a FitBit device using their API.
  • Dylan: POC native Android code to connect to Withings servers and retrieve data uploaded by a Withings weight scale.
  • Dylan: POC native Android code to connect to MyOSCAR and retrieve/upload data.
  • Dylan: Port Phonegap library implementation to retrieve data from bluetooth A&D devices to native Android.
  • Dylan: Retrieve weight and blood pressure measurements from a Withings account.
  • Dylan: Retrieve weight measurements from a Fitbit account.
  • Dylan: Retrieve Polytel bluetooth glucometer readings in native Android code.
  • Dylan: Package the native library as a .jar file.
  • Dylan: Create a common interface between Withings and Fitbit.
  • Dylan: Write up explanation for using Withings
  • Dylan: Write up explanation and UI for Fitbit
  • Dylan: Complete demo app functionality for A&D weight scale
  • Dylan: Complete demo app functionality for A&D blood pressure monitor
  • Dylan: Complete demo app functionality for polytel dongle
  • Dylan: Add MyOscar section
  • Dylan: Double-check there aren't any credentials hardcoded in distributable code
  • Alek: human-usable version of Phonegap application to work with A&D weight scale, blood pressure monitor, and BluGlu.
  • Alek: Rewrite the first screen of the Demo MMDI app in Java (UI and retrieval of paired devices complete). Assumes Bluetooth is already enabled.
  • Alek: Make a new list of bluetooth-capable medical devices
  • Zak: Proof of concept of integrating heart beat monitor with Android.
  • Zak: Design of initial user interface
  • Zak: Developing persistence implementation with SQLite
  • Zak: Start workout button to connect to device to make sure it recieves data
  • Zak: Make sure data is pulled per second to get up to date readings
  • Zak: Plot data on graph (5 min range)
  • Zak: Put the workout app into mercurial.
  • Zak: End workout will do the clean up stuff.
  • Zak: Designed java class for aggregating medical reading information into one JSON string to be stored in sqlite and generate object to work with.
  • Zak: Display of graph data of a work out that was saved.
  • Zak: Listing of workouts saved on phone.
  • Zak: Notification code is working on the phone. When error message is clicked it goes to an error page.
  • Zak: Designed LinkedList data structure to generate JSON data in SQLite. Using the same principles of NoSQL. For every reading we will store the following JSON
{ 'Reading' : '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]' ,
'theshold' : '[{'reading' : '0', 'over' : '20.0' },{'reading' : '1', 'over' : '20.0' },{'reading' : '2', 'over' : '20.0' },{'reading' : '3', 'over' : '20.0' },{'reading' : '4', 'over' : '20.0' },{'reading' : '5', 'over' : '20.0' },{'reading' : '6', 'over' : '20.0' },{'reading' : '7', 'over' : '20.0' },{'reading' : '8', 'over' : '20.0' },{'reading' : '9', 'over' : '20.0' }]' }

Current Contributors

Past Contributors

Blog

Problem

NexjMobile.png

NexJ's mobile health solution requires its smartphone health coach application to have the ability to read medical measurement data from Bluetooth-capable devices, The devices included in the initial project proposal are as follows: blood pressure device, glucose level measuring device and a weight measuring device.

The health coach application will be designed to use PhoneGap, a rising technology that blurs the line between mobile operating systems. Implementing native Bluetooth adapters becomes only part of the solution. The health coach application will interact with a unified API in JavaScript to retrieve data from Bluetooth-capable medical peripherals.

The unified JavaScript API will be developed to utilize PhoneGap's JavaScript API to make native code calls. These native calls will focus on a medical Bluetooth device adapter which also must be implemented. This Bluetooth adapter will be extended for each supported measuring device and implemented on each supported mobile operating system.

Project Repository

Mercurical HowTo

Introduction

Most of us probably have some relative that may be in and out of hospital or some may have a critically ill relative. Wouldn't it be nice to have some way of monitoring how they are doing? Wouldn't it be great to see all this information on your smart phone? Wouldn't it be great to have not only the information freely available to patients but also that the software is free and open source? I will explain the cutting edge technology/research we are conducting.

What is MyOscar?

MyOscar is a personal health record system which was created to give patients the freedom to see their medical records. Not only are patients able to see this information but also share this information with family and loved ones. The software is open source. To read more about it visit:

http://myoscar.org/myoscar/about-myoscar

Should Patients Have Access To Their Personal Medical Data And Why?

You may have an elderly parent or grandparent that you may want to monitor if their condition becomes critical while at work or traveling. Or you may have a critically ill loved one that you may be taking care of. We think by having this technology, it would make it possible to help improve peoples lives and relieve worries.

Critical Care Patient Monitoring And Can Technology Help?

We believe that yes, it could be possible to help a patients for example a critical care patient which would need around the clock monitoring. Perhaps with technology like this patients could leave the hospital and allow their caregivers to monitor them through an application (smart phone).

Our Efforts At Seneca Center of Development Of Open Source Technology

We are researchers, students and professors that believe that it may be possible to improve the healthcare industry through cutting edge technology. We believe that this technology we create should be open source. We have created mobile applications that read wireless via Bluetooth to retrieve accurate medical data. Currently we are working on syncing this data with MyOscar EMR to further improve accessibility of patient data.