In our upcoming 0906 release, we are making changes to the supported list of content
encoding for blobs. If you are utilizing the HealthRecordItemSections.OtherData section in the .Net SDK or the data-other section of the thing instance using the XML API, read on because the change could impact your application. As usual, express your concerns in the comments, if any.
I'm affected, can you describe in detail?Today applications can specify any content encoding for the blob part of items in Healthvault. Using the .Net SDK, OtherItemData.ContentEncoding property supports any encoding and does not enforce any validation on the encoding specified. With Platform 0906 release (expected to release to web by end of June), we are planning on supporting only combination of base64, gzip and deflate encodings for blob data. This change could impacts applications that create health record item instances that utilizes HealthRecordItemSections.OtherData section in the .Net SDK or the data-other section of the thing instance using the XML API. The allowed subset of content encoding for the OtherItemData.ContentEncoding property (or the content-encoding attribute in the thing xml) will be: empty string, null, “base64”, “base-64”, “gzip”, “deflate” OR a comma delimited list of valid encodings, like “gzip,base64”. With multiple encodings, order in the comma delimited list signifies the order in which the encodings are applied to the content.
If an unsupported content encoding combination is specified, Healthvault API returns the following error and will fail the operation.Error #91 - The content encoding specified for the blob is not supported.
To get around the error, application have to use one of the supported content encodings listed above.
So, why are we making the change?Allowing a random set of content encodings for blobs put challenging requirements on Healthvault and Healthvault applications ability to easily exchange data. The new encoding enforcement improves predictability on content encoding when working with blob part of Healthvault data.
In future, as we make further enhancements to handling blob data, we are likely to revisit this area and continue to tighten enforcement in the APIs for HealthVault and in our SDKs. We will make sure to give developer community timely warnings on the changes to allow correction of applications.