none
About sending data of device to HealthVault RRS feed

  • Question

  • 1.Can I send my data from device to HealthVault without using HealthVault Connection Center?

    2.If I can,how?  Through calling web service interface provided by Microsoft directly without PC or through desktop application based on HealthVault SDK?

    Question 1 has already been solved. What's about question 2 ? Can I complete it directly without PC and  another server?

    Wednesday, November 7, 2012 8:14 AM

Answers

  • Your preferred approach (device sends data directly to HealthVault over a wireless network) is possible but it may be challenging. To establish a connection to a user's record from mobile software (such as software running on your device), you need to use a web authentication workflow that requires the user to login to HealthVault and authorize your application. Unless your device has a web browser, this would not be possible. However, if your device could connect to a PC to facilitate the creation of this initial connection, then you would not need a web browser from that point forward. Here is how that would work:

    1) Device connects to the PC and user runs your software. Your software follows the steps listed under the section "Establishing a connection on a mobile device" in this article: http://msdn.microsoft.com/en-us/library/hh567903.aspx

    2) Your software would send to your device the HealthVault application identifier and shared secret from step 1 that would authenticate the device to HealthVault to send data.

    3) You call the normal HealthVault APIs as an offline application. You could do this with our without a SDK, although it is much easier with the SDK. You might be able to use the Java SDK on your device. See SDK details here: http://msdn.microsoft.com/en-us/healthvault/jj126730.

    That approach would have the benefit of not requiring you to write a web service that would store and/or forward the data to HealthVault. On the other hand, you have the complexity of the initial connection and potential challenge of writing software the runs on the device to connect to HealthVault.

    Your option #2 is possible as well. You would follow the same steps to establish a mobile connection (we call software on a PC mobile in this case) and then your desktop app would get data from the device and send to HealthVault. This approach is similar to Connection Center and it may just be easier for you to write a driver that connects to Connection Center if you wanted to go this route (saves you from writing the PC software).

    Your option #3 is possible and in my opinion a very good option, but it does require you to write a web service. You would connect your device to your web service, and then your web service connects to HealthVault. Your web service is just like any other HealthVault application and you can follow the guidance on the HealthVault MSDN site. This is how both FitBit and Withings connect to HealthVault, so you can see the experience if you use one of their devices.

    • Marked as answer by Kevin00000000 Monday, November 12, 2012 8:56 AM
    Friday, November 9, 2012 1:18 AM

All replies

  • Kevin, can you please provide a little more information about the data flow you wish to enable?  What connectivity does your device have? Is it connected to your own web service, or?
    Thursday, November 8, 2012 12:25 AM
  • Thanks for your attention.

    Our company is a blood pressure device manufacturer and  we want to send our blood pressure data to HV.The OS of device is Linux and the data format is defined by ourselves and the device can connect with PC through USB.

    We have three alternative plans for completing it.

    1:The device send data to HV through HealthVault APIs directly through wireless network(WIFI or 3G).

    2:The device send data to HV through desktop app which is developed based on SDK.

    3:The device send data to  our own webservice server through desktop app or wireless network and then the webservice server send data to HV through HV PHP library.

    The first plan is best one for us,and then 2nd and 3rd.

    So,Which one is feasible? Which one is unfeasible? and why?





    Thursday, November 8, 2012 2:37 AM
  • Your preferred approach (device sends data directly to HealthVault over a wireless network) is possible but it may be challenging. To establish a connection to a user's record from mobile software (such as software running on your device), you need to use a web authentication workflow that requires the user to login to HealthVault and authorize your application. Unless your device has a web browser, this would not be possible. However, if your device could connect to a PC to facilitate the creation of this initial connection, then you would not need a web browser from that point forward. Here is how that would work:

    1) Device connects to the PC and user runs your software. Your software follows the steps listed under the section "Establishing a connection on a mobile device" in this article: http://msdn.microsoft.com/en-us/library/hh567903.aspx

    2) Your software would send to your device the HealthVault application identifier and shared secret from step 1 that would authenticate the device to HealthVault to send data.

    3) You call the normal HealthVault APIs as an offline application. You could do this with our without a SDK, although it is much easier with the SDK. You might be able to use the Java SDK on your device. See SDK details here: http://msdn.microsoft.com/en-us/healthvault/jj126730.

    That approach would have the benefit of not requiring you to write a web service that would store and/or forward the data to HealthVault. On the other hand, you have the complexity of the initial connection and potential challenge of writing software the runs on the device to connect to HealthVault.

    Your option #2 is possible as well. You would follow the same steps to establish a mobile connection (we call software on a PC mobile in this case) and then your desktop app would get data from the device and send to HealthVault. This approach is similar to Connection Center and it may just be easier for you to write a driver that connects to Connection Center if you wanted to go this route (saves you from writing the PC software).

    Your option #3 is possible and in my opinion a very good option, but it does require you to write a web service. You would connect your device to your web service, and then your web service connects to HealthVault. Your web service is just like any other HealthVault application and you can follow the guidance on the HealthVault MSDN site. This is how both FitBit and Withings connect to HealthVault, so you can see the experience if you use one of their devices.

    • Marked as answer by Kevin00000000 Monday, November 12, 2012 8:56 AM
    Friday, November 9, 2012 1:18 AM
  • Thank you so much for  your answer.

    There are several  modes of connecting with HealthVault,and one of these is "Client Connectivity".

    "Client Connectivity, referred to as Software on Device Authentication (SODA), enables applications to run on client platforms like desktop or mobile device, outside of the web browser. " This sentence is written in <Oreilly.Enabling.Programmable.Self.with.HealthVault.Mar.2012>.

    So I don't know whether it's necessary  to use web browser for user authentication and authorization. If it's not , Why must the device have a web browser? If it is, whether all of the mode including SODA need deal with user authorization and authentication through web browser.

    Finally,which mode of connecting with HealthVault does option #3(through webservice) use and how to it deal with user authorization and authentication?

    Saturday, November 10, 2012 2:26 AM
  • I Know.Thank you!
    Monday, November 12, 2012 8:56 AM