Changes

Jump to: navigation, search

Phonegap Healthcare Adapter Design

4,206 bytes added, 20:37, 26 January 2014
no edit summary
{{Admon/obsolete}}
 
[[Category: NexJ_Express]]
[[category: NexJ Express PhoneGap]]
'''''NexJ Medical Peripheral Mobile Adapter''''' Will be designed to enable NexJ's Mobile Healthcare solutions to interact with Bluetooth peripherals.
: ''{{Main|Mobile Medical Device Integration}}'': ''{{See Also|Phonegap Healthcare AdapterBluetooth Implementation|Phonegap Healthcare Adapter Bluetooth Spec}}''
== Class Diagram ==
=== Flaws ===
* Should we be concerned about managing the instances of ''medicalDevice'' or will the rest of the solution
** ''Rest of the application'': It becomes more of a Medical device factory
** ''This Project'': Another layer should be added to represent a device manager
* bloodPressureBluetoothAdapter should know about specific device communication without relying on any specific communication protocol, otherwise it will need be reimplemented per communication adapter(eg. BluetoothAdapter, WifiAdapter)
== Mobile Device Libraries ==
=== iOS ===
==== Wifi ====
* Unknown at this time
==== Bluetooth ====
* [http://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBCentralManager_Class/translated_content/CBCentralManager.html#//apple_ref/doc/uid/TP40011284 CBCentralManager] entry point to Bluetooth communication
** Allows querying of devices
** Can list connected devices
** Can connect to devices, creating [http://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBPeripheral_Class/translated_content/CBPeripheral.html#//apple_ref/doc/c_ref/CBPeripheral CBPreripheral] Objects
* [http://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBPeripheral_Class/translated_content/CBPeripheral.html#//apple_ref/doc/c_ref/CBPeripheral CBPeripheral]'s allows reading and writing of [http://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBCharacteristic_Class/translated_content/CBCharacteristic.html#//apple_ref/doc/c_ref/CBCharacteristic CBCharacteristic] Objects
** Can listen for changes to characteristics
** Writing and reading is event driven programing via callback parameters
* [http://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBCharacteristic_Class/translated_content/CBCharacteristic.html#//apple_ref/doc/c_ref/CBCharacteristic CBCharacteristic]'s represent a piece of data from a device along with semantic data
 
=== Android ===
==== [http://developer.android.com/reference/android/net/wifi/p2p/package-summary.html Wifi] ====
* [http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html WifiP2pManager] is the starting point for all peer to peer communication
** Upon initialization devices connections can be established
** Peers can be queried
==== [http://developer.android.com/reference/android/bluetooth/package-summary.html Bluetooth] ====
* Supports many 'paired' devices
* [http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html BluetoothAdapter] is the starting point for all Bluetooth communication
** Discover devices
** Query addresses
** Get remote [http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html BluetoothDevice] objects
** Control [http://developer.android.com/reference/android/bluetooth/BluetoothProfile.html BluetoothProfile]'s
** Create listening sockets to addresses
* Classes Implementing [http://developer.android.com/reference/android/bluetooth/BluetoothProfile.html BluetoothProfile] can be queried for [http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html BluetoothDevice] Objects, implementing classes:
** [http://developer.android.com/reference/android/bluetooth/BluetoothA2dp.html BluetoothA2dp]
** [http://developer.android.com/reference/android/bluetooth/BluetoothHeadset.html BluetoothHeadset]
** [http://developer.android.com/reference/android/bluetooth/BluetoothHealth.html BluetoothHealth]
* [http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html BluetoothDevice] objects allow the creation secure and insecure [http://developer.android.com/reference/android/bluetooth/BluetoothSocket.html Bluetooth socket]'s
** These all data transfer between physical devices
** Bluetooth protocols are transparent
 
=== Comparison ===
==== Requirements ====
* Querying of devices
** Supported by both platforms on both communication mediums
* The ability to fetch data from devices
** Supported by both platforms on both communication mediums
** Assuming connections have been created with medical devices, this requires a known address to be cross referenced with current devices from the ''query'' functionality above
* ''Optional'' The ability to push data to devices
** See above
==== Assumptions ====
* NexJ's spec dictates that devices can be assumed paired
* Any semantic information required will be provided upon initialization

Navigation menu