HealthVault Data Types

Type Preview: Medication (update)

We’ve gotten some good feedback on our proposed data type design, and we have a new one to run by you. If at all possible, we’d like to centralize feedback around these blog posts so that we only have to go to one place and so that everybody can read all the feedback (yes, that’s a hint for those who sent us feedback by email).

The first bit of feedback was “do you really need both Medication and Medication Prescription?” After a bit of discussion, we’ve decided that we’re going to remove the Medication Prescription type and instead put the prescription-specific information into an optional prescription element on the Medication type.

We also had some feedback about being able to support more complex dosage schemes than what can be expressed using dose/strength/frequency/route. We considered doing this during the design, but after a bit of discussion came to the conclusion that doing so would add a significant amount of complexity to the type without a significant benefit in our highest-priority scenarios. We therefore decided not to add that support to the coded part of the type, though it can be specified in the prescription instructions element.

Here is our revised design for Medication. Medication Fill is also listed but is unchanged from our previous proposal. Required elements are in bold.

Medication

 

Some of the existing fields are moved to the Medication Fill type, and fields such as dose & dose unit are replaced with a field named "dose", which is of the "general measurement" type (see below for more information on general measurement).

Element Type Description
Name string Patient-understandable name for the medication
Code Codable value Code/codes for the medication. Vocabs include RxNorm, NDC
Dose General measurement Patient-understandable dose plus structured value and unit.
Examples: 1 tablet, 50ml
Strength General measurement Patient-understandable strength plus structured value and units.
Examples: 25mg, 15mg/ml
Frequency General measurement Patient-understandable frequency plus structured value and units
Example: Once a day
Route Codable value The route of the medication. Vocab=medication-routes.
Indication String Why the patient is taking medication
Date-started Approx-date Date the patient started taking the medication
Date-discontinued Approx-date Date the patient stopped taking the medication
Prescribed Codable value Whether the medication is prescribed, self-prescribed, etc.
Prescription Prescription Details of a prescribed medication.

Prescription

This is a sub-type that contains information that is specific to the prescription

Element Type Description
PrescribedBy Person The physician who prescribed this medication
Date-prescribed Approx-date Date the medication was prescribed
Amount-prescribed General measurement The amount prescribed
Substitution Codable value Whether the medication should be dispensed as written or whether substitution is allowed.
Refills Non-negative integer Original number of refills
Days-Supply Non-negative integer Number of days supply
Prescription expiration date The date when the prescription expires
Instructions String Instructions that go along with the prescription
Prescription Number String Prescription Number

Mediation Fill

Records the act of filling or refilling a prescription.

Element Type Description
Name string Patient-understandable name for the medication
Date-filled Approx-date Date of this fill
Refills-left Non-negative integer The number of future refills that are allowed.
Days-Supply Non-negative integer Number of days supply
Pharmacy Organization The pharmacy that filled the prescription
Prescription Number String Prescription Number

General Measurement

The general measurement type is somewhat analagous to the codable value type. It contains a "display" field, which contains a user-readable value, and also one or more value & unit pairs, where the value is a double and the unit is expressed as a codable value.

A dose of 200 mg would be stored as follows:

display: "200 mg"
value: 200
units: mg, coded from the measurement-units vocabulary

Published Thursday, June 26, 2008 2:54 PM by ericgu
Filed under:

Comments

 

mgordon said:

In Medication, is there a reason why Prescribed is a codable-value instead of an isPrescribed boolean? Are there possible values other than true or false?

In Prescription, is there a reason why Substitution is a codable-value instead of an isSubstitutable boolean? Are there possible values other than true and false?

Maybe there are ... none come to mind, but then I'm not a doctor.

June 30, 2008 6:42 PM
 

ericgu said:

We are generally avoiding booleans because they aren't extensible, nor are they particularly useful from the UI perspective (ie all you can show is "true" or "false" in a checkbox instead of something more useful.

To take as an example, it might make sense for presecribed to have a set that includes "prescribed", "prescribed OTC", "OTC" as a list.

Or, to put it another way, we're trying to allow extension in lots of places without having to version a type.

June 30, 2008 7:32 PM
New Comments to this post are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker