Get hashcode of a CCD Document / file at HealthVault server to match with local copy for integrity purpose RRS feed

  • Question

  • This is a requirement of one of the Health standards . The requirement is simple, to ensure the CCD / file sent from your application is received with complete integrity at the receiving end (HealthVault in my case).

    We can get the Hash code of the file / xml document located at our system, but for matching pair, we need to generate the hashcode at HealthVault servers. Downloading the document / initializing the type and calculating hashcode wont do the job since both hashcodes are generated at client.

    Is there a way to generate Hashcode of a type / file at HealthVault server and retrive that code to the client for integrity checking purpose ?

    maqk loves to code

    Wednesday, February 22, 2012 2:47 PM

All replies

  • HealthVault doesn't have a way to generate a hashcode for an item on the HealthVault servers. However, we do support data integrity checking through digital signatures. You can find a presentation on digitally signing HealthVault items at http://download.microsoft.com/download/0/4/9/0498cecf-d0b1-4a72-b9b7-17eb7d7ada98/DigitalSignatures.pdf. You can also find more information on the HealthVault team blog at http://blogs.msdn.com/b/healthvault/archive/2008/04/14/new-pb3-feature-digital-signatures.aspx and in the MSDN documentation.

    Jeff Jones Technical Lead HealthVault Development Team

    Wednesday, February 22, 2012 8:34 PM
  • Thanks Jeffrey for the reply. Now I want to know what kind of a certificate is required to sign a HealthVault item ? Can we have our own custom certificate or some trusted CA like VeriSign ? Will one certificate enough to sign all kind of HealthVault items for life long ?

    Also when fetching data back from HealthVault servers, i do a foreach to get all CCDs for example. How would I know which is the CCD i uploaded for patient so and so for MRN ------- is their any matching criteria ?  Woudl the xml signing help their to identify each CCD distinctly ?

    Waiting for your reply

    maqk loves to code

    Friday, February 24, 2012 10:09 AM
  • HealthVault currently supports digital certificates whose chain of trust links back to a root certificate from the following certificate authorities:

    • Comodo
    • Entrust
    • Geotrust
    • Verisign

    HealthVault will verify the certificate used to sign the CCD at the time the document is sent to HealthVault. The same certificate can be used to sign all items from your application until it expires.

    If you are signing data, the easiest way to verify that the data got to HealthVault correctly would be to check that the signature is valid using the IsSignatureValid() method of the HealthRecordItem, the validate the certificate using ValidateCertificate(), then look at the signatures to be sure your signature is there using the HealthRecordItemSignatures collection. You can find some more information on how to do that at http://msdn.microsoft.com/en-gb/healthvault/cc514198.

    Jeff Jones Technical Lead HealthVault Development Team

    Friday, February 24, 2012 5:01 PM