locked
Source Data Import Templates RRS feed

  • Question

  • Afternoon All,
    What I'm looking at is information about the medication data that is imported or "pushed" to HealthVault from 3rd party sources such as Walgreens, CVS, etc. What I'm attempting to do is write a parser that pulls this information down and then stores the information locally for the time being. Are there any docs out there that explain the way this data is pushed or imported into HealthVault?

    My example is this:
    Does the data that is pulled from Walgreens follow the same template as what is imported from CVS or another HealthVault member?

    One field in HealthVault is the "using" label that tells us the data came from walgreens.com. 

    These easiest step would be to do a case statement on that field and then parse it accordingly. The other field we would be interested in is on the HealthVault UI, Instructions field. Now this field appears to be pretty much abbreviated beyond recognition for the most part (I.e. TK 1 TO 2 TS PO Q 4 TO 6 H PRN P)

    I'm not looking for a solution but more for locations of this type of information within or outside of HealthVault.

    Any guidance would be appreciated. If more information is needed please feel free to ask.
    Tuesday, January 26, 2010 9:37 PM

Answers

  • Thanks for your detailed explanation Drew.

    In HealthVault in order to preserve portability of data between different applications we normally try to use Codable values for properties wherever possible. If we take the case of medication type, the fields such as Name, Route, Indication etc are treated as codable values rather than regular strings. Also wherever possible we suggest a preferred vocabulary for these properties. For example the medication type has the following preferred vocabularies,

    Field                preferred-vocabulary
    substitution       medication-substitution
    name               Rxnorm, NDC
    generic-name   Rxnorm, NDC
    route               medication-routes
    prescribed        medication-prescribed

    Please find the vocabularies in this link .

    Still these are just suggestion and not restrictions. We encourage our partners to use these preferred-vocabularies to establish portability of data, but does not restrict them from using any vocabulary of their own choice. So it cannot be guaranteed that all the partner will be using the same vocabulary all the time. This makes parsing these fields more difficult.

    Also for the Frequency and other properties we do not have a preferred vocabulary. It is application's choice to use any vocabulary according to the requirements. We are very much interested in hearing suggestions from our partners on this subject.

    In this case if you are particularly interested in some applications, please let me know which applications you are interested in so that I can try to get some contact person within our team to get the details specific to their application.

    Thanks and Regards,
    Aneesh D.
    • Marked as answer by Drew G Friday, January 29, 2010 3:08 PM
    • Edited by Aneesh D Friday, January 29, 2010 7:38 PM
    Friday, January 29, 2010 3:58 AM

All replies

  • Hello Drew,

    Sorry that I am not sure whether I understood the scenario completely. Below are my comments on this.

    All the data transfer between the HealthVault and the applicaiton occur according to the XML schemas of the methods and the thing types irrespective of which application is entering the data. All the responses of item retrievals will have the same schema. GetThings and PutThings are the methods that are used for transactions.

    If you are trying to access the medication data which is existing in a HealthVault record and then want to figure out who has created it, then using .Net SDK, each and every HealthRecordItem has two HealthServiceAudit properties named LastUpdated and Created. These will directly give the application which has created or last updated the relevant item. So you can use these properties to find out the corresponding application.

    Else if you are not using the .Net SDK, please have a look into the XML response that we will get when we query a medication item.

    <response>
        <status>
            <code>0</code>
        </status>
        <wc:info xmlns:wc="urn:com.microsoft.wc.methods.response.GetThings3">
        <group>
            <thing>
                <thing-id version-stamp="1aa44cc5-9a4a-4486-aac4-ade4ed3dc1aa">f03b57d4-254a-4469-a044-866c79448030</thing-id>
                <type-id name="Medication">30cafccc-047d-4288-94ef-643571f7919d</type-id>
                <thing-state>Active</thing-state>
                <eff-date>2010-01-25T23:48:44.309</eff-date>
                <created>
                    <timestamp>2010-01-25T23:48:43.607Z</timestamp>
                    <app-id name="HelloWorld-SDK">05a059c9-c309-46af-9b86-b06d42510550</app-id>
                    <person-id name="Aneesh D">9a716a4f-612c-4fb6-92bc-035ade3a7863</person-id>
                    <access-avenue>Online</access-avenue>
                    <audit-action>Created</audit-action>
                </created>
                <updated>
                    <timestamp>2010-01-25T23:48:43.607Z</timestamp>
                    <app-id name="HelloWorld-SDK">05a059c9-c309-46af-9b86-b06d42510550</app-id>
                    <person-id name="Aneesh D">9a716a4f-612c-4fb6-92bc-035ade3a7863</person-id>
                    <access-avenue>Online</access-avenue>
                    <audit-action>Created</audit-action>
                </updated>
                <data-xml>
                    <medication>
                        <name><text>Test Med20</text></name>
                        <frequency>
                            <display>1 per day</display>
                            <structured>
                                <value>55</value>
                                <units><text>unit</text></units>
                            </structured>
                        </frequency>
                    </medication>
                    <common />
                </data-xml>
                <eff-permissions immutable="false">
                    <permission>Read</permission>
                    <permission>Update</permission>
                    <permission>Create</permission>
                    <permission>Delete</permission>
                </eff-permissions>
            </thing>
        </group>
        </wc:info>
    </response>

    Here you can see that the created and updated tags will give you the application name and application ID which has created or updated the medication item. So this tag can be used to figure out the source of the item.

    I hope this answers your query. Please let me know if you need any further clarification.

    Thanks and Regards,
    Aneesh D.
    Wednesday, January 27, 2010 2:01 AM
  • Thank you for your reply Aneesh. 

    You did answer part of my question but I will take my explanation a little further.

    I guess my question would be about HealthVault standards when it comes to recording medications and medication values.

    Scenario A:
    Person1 has already approved their HV account to exchange medication/prescription information from Walgreens and CVS ____.

    When a user manually logs into their http://account.healthvault.com account and clicks to add a medication they are given the ability to type the name of the medication, how it's taken, and the form of the medication (oral, injection, etc.) The frequency of the medication is a text field allowing a user to really enter in any value of choice.

    Is there a standards available in HV for companies like Walgreens, CVS, etc. when the data is imported into HV? 

    In my example above the only information I saw for frequency information from Walgreens was a detail field that read TK 1 TO 2 TS PO Q 4 TO 6 H PRN P.

    I guess it's hard to see what data really underlies in the HV developer/sandbox environment since the Walgreens import only exists in the "production/live" HV.

    I'm not really sure how to explain this...It really comes down to the fact that the XML structure response from HV will always be the same obviously, but are the values standardized or can it vary between sources?
    Thursday, January 28, 2010 5:45 PM
  • To add...

    The reason I am wondering about the standardized values is due to the fact that we have an existing db schema for medication management and we'll be looking to use HV to sync the values between multiple systems. We want to know if we'll need to spend time creating tables to map sources of HV records and their values (frequency, values, units) to our existing db values.



    Thursday, January 28, 2010 6:10 PM
  • Thanks for your detailed explanation Drew.

    In HealthVault in order to preserve portability of data between different applications we normally try to use Codable values for properties wherever possible. If we take the case of medication type, the fields such as Name, Route, Indication etc are treated as codable values rather than regular strings. Also wherever possible we suggest a preferred vocabulary for these properties. For example the medication type has the following preferred vocabularies,

    Field                preferred-vocabulary
    substitution       medication-substitution
    name               Rxnorm, NDC
    generic-name   Rxnorm, NDC
    route               medication-routes
    prescribed        medication-prescribed

    Please find the vocabularies in this link .

    Still these are just suggestion and not restrictions. We encourage our partners to use these preferred-vocabularies to establish portability of data, but does not restrict them from using any vocabulary of their own choice. So it cannot be guaranteed that all the partner will be using the same vocabulary all the time. This makes parsing these fields more difficult.

    Also for the Frequency and other properties we do not have a preferred vocabulary. It is application's choice to use any vocabulary according to the requirements. We are very much interested in hearing suggestions from our partners on this subject.

    In this case if you are particularly interested in some applications, please let me know which applications you are interested in so that I can try to get some contact person within our team to get the details specific to their application.

    Thanks and Regards,
    Aneesh D.
    • Marked as answer by Drew G Friday, January 29, 2010 3:08 PM
    • Edited by Aneesh D Friday, January 29, 2010 7:38 PM
    Friday, January 29, 2010 3:58 AM
  • Perfect Answer Aneesh - Thank You very much!

    I think a majority of our work will be to try and figure out the order in which these vocabulary abbreviations are used when importing the data from Walgreens, CVS, and other institutes currently linked with HealthVault in recording Medication History.

    Thanks again,
    -drew
    Friday, January 29, 2010 3:08 PM
  • Hi Aneesh,

    Did you have a recommendation or source of all the "source" types (I.e. Walgreens, etc. and their current schema) or do we need to work on getting in contact with these companies?

    -drew
    Monday, February 1, 2010 8:33 PM
  • Hello Drew,

    Sorry to say that we don't have a complete list of all the applications that are live now. Also more and more applications are getting live frequently. However a good place to look at is our Application Directory , where most of the applications that goes live will be listed. Still the listing doesn't specify the types that are being used by the application. To know this we will have to try out the application and see the types in the authorization page.

    Also for most of the partners we keep a customer support contact information. If you are specifically interested in some of the partners please let me know the same so that I can try to get their contact information.

    Thanks and Regards,
    Aneesh D.
    Tuesday, February 2, 2010 2:19 AM