CCR Output Mappings

The transforms that convert HealthVault types into CCR data are not simple mappings of one data value onto another. The mappings are context sensitive and depend on both the presence and value of individual properties of the HealthVault type.

The logic behind each transform is described below. In order to improve the readability of those descriptions, observe the following conventions:

  1. Value mappings. Each "Map values" statement is followed by one or more table rows, each of which describes a direct mapping of a specific element in a HealthVault type onto an element in a CCR. Mappings described in adjacent rows should be applied together, and in the sequence indicated.
    Each row contains the following elements:
    1. HealthVault. The element in the HealthVault type whose value is used to populate the CCR, or a function (see below) whose return value will be used. Note that the GetConcept functions use the values defined in the "Export Text" column HealthVault CCR Vocabularies to assign an element name to a concept.
    2. CCR. The CCR element whose value will be set.
    3. Conversion (optional.) This may specify a simple type conversion (such as Boolean), an externally defined conversion (such as the ISO-8601 date standard), or a named conversion defined elsewhere in this document.
  2. Scope. Each line that is not a table row is indented to indicate the scope of loops and conditional elements within the transform logic.
  3. Procedures. Some sections of the transform logic are described as procedure or function calls. Each call referenced in the following mappings is described as pseudocode in HealthVault CCR Output Functions.
  4. Required elements. Some transforms require that specific elements in the input data be present and not empty. Those elements are indicated with bold italic text in the corresponding cells in the mapping tables. If any required values cannot be processed for any reason, the transform will not create the output type.

Date Types

date : ExactDateTime

 
HealthVault CCR Conversion
date ExactDateTime  
Map values:
 
y . ConvertTo_ISO8601
m . ConvertTo_ISO8601
d . ConvertTo_ISO8601

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

time : ExactDateTime

 
HealthVault CCR Conversion
time ExactDateTime  
Map values:
 
h . ConvertTo_ISO8601
m . ConvertTo_ISO8601
s . ConvertTo_ISO8601

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

approx-date : ExactDateTime

 
HealthVault CCR Conversion
approx-date ExactDateTime  
Map values:
 
y . ConvertTo_ISO8601
m . ConvertTo_ISO8601
d . ConvertTo_ISO8601

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

date-time : ExactDateTime

 
HealthVault CCR Conversion
date-time ExactDateTime  
Map values:
 
./date . date => ExactDateTime
./time . time => ExactDateTime
./tz . ConvertTo_ISO8601

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

StructuredApproxDate : ExactDateTime

 
HealthVault CCR Conversion
StructuredApproxDate ExactDateTime  
Map values:
 
./date . approx-date => ExactDateTime
./time . time => ExactDateTime
./tz . ConvertTo_ISO8601

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

approx-date-time : ExactDateTime

 
HealthVault CCR Conversion
approx-date-time ExactDateTime  
If Exists(./structured)
Map values:
 
./structured ./ExactDateTime StructuredApproxDate => ExactDateTime

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

approx-date-time : DateTimeType

 
HealthVault CCR Conversion
approx-date-time DateTimeType  
If Exists(./structured)
Map values:
 
./structured ./ExactDateTime StructuredApproxDate => ExactDateTime
Else If Exists(./descriptive)
Map values:
 
./descriptive ./ApproximateDateTime/Text  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

date : DateTimeType

 
HealthVault CCR Conversion
date DateTimeType  
Map values:
 
. ./ExactDateTime date => ExactDateTime

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

date-time : DateTimeType

 
HealthVault CCR Conversion
date-time DateTimeType  
Map values:
 
. ./ExactDateTime date-time => ExactDateTime

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

Coded Values

coded-value : CodeType

 
HealthVault CCR Conversion
coded-value CodeType  
Map values:
 
./value ./Value  
./type ./CodingSystem  
./version ./Version  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

codable-value : CodedDescriptionType

 
HealthVault CCR Conversion
codable-value CodedDescriptionType  
Map values:
 
./text ./Text  
ForEach(./code)
Map values:
 
. ./Code  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

codable-value : MeasureType

 
HealthVault CCR Conversion
codable-value MeasureType  
Map values:
 
./text ./Units/Unit  
ForEach(./units/code)
Map values:
 
. ./Units/Code coded-value => CodeType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

Measurements

structured-measurement : MeasureType or MeasureGroup

 
HealthVault CCR Conversion
structured-measurement MeasureType or MeasureGroup  
Map values:
 
./value ./Value  
./units/text ./Units/Unit  
ForEach(./units/code)
Map values:
 
. ./Units/Code  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

general-measurement : MeasureType or MeasureGroup

 
HealthVault CCR Conversion
general-measurement MeasureType or MeasureGroup  
If Exists(./structured)
Map values:
 
./structured . structured-measurement => MeasureType
Else
Map values:
 
./display ./Value  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

display-value : MeasureType or MeasureGroup

 
HealthVault CCR Conversion
display-value MeasureType or MeasureGroup  
Map values:
 
. ./Value  
./@units ./Units/Unit  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

Persons

name : PersonNameType

 
HealthVault CCR Conversion
name PersonNameType  
Map values:
 
./first ./Given  
./middle ./Middle  
./last ./Family  
./suffix/text ./Suffix  
./title/text ./Title  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

email : CommunicationType

 
HealthVault CCR Conversion
email CommunicationType  
Map values:
 
./address ./Value  
./description ./Type/Text  
If(./is-primary)
Map values:
 
GetConcept("priority-primary") ./Priority  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

phone : CommunicationType

 
HealthVault CCR Conversion
phone CommunicationType  
Map values:
 
./number ./Value  
./description ./Type/Text  
If(./is-primary)
Map values:
 
GetConcept("priority-primary") ./Priority  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

address : Actor/Address

 
HealthVault CCR Conversion
address Actor/Address  
Map values:
 
./description ./Type/Text  
If(./is-primary)
Map values:
 
GetConcept("priority-primary") ./Priority  
Map values:
 
./street[1] ./Line1  
./street[2] ./Line2  
./city ./City  
./state ./State  
./country ./Country  
./postcode ./PostalCode  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

contact : Actor

 
HealthVault CCR Conversion
contact Actor  
ForEach(./address)
Map values:
 
. ./Address address => Actor/Address
ForEach(./phone)
Map values:
 
. ./Telephone phone => CommunicationType
ForEach(./email)
Map values:
 
. ./Email email => CommunicationType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

person : Actor

 
HealthVault CCR Conversion
person Actor  
Map values:
 
./name ./Person/Name/CurrentName name => PersonNameType
./name/full ./Person/Name/DisplayName  
./type ./Relation[1] codable-value => CodedDescriptionType
./professional-training ./Specialty[1]/Text  
./contact . contact => Actor

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

personal : Actor

 
HealthVault CCR Conversion
personal Actor  
Map values:
 
./name ./Person/Name/CurrentName name => PersonNameType
./name/full ./Person/Name/DisplayName  
./birthdate ./Person/DateOfBirth date-time => DateTimeType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

Organization : Actor

 
HealthVault CCR Conversion
Organization Actor  
Map values:
 
./name ./Organization/Name  
./type ./Specialty[1] codable-value => CodedDescriptionType
./contact . contact => Actor
./website ./URL[1]/Value  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

FamilyHistoryRelative : Actor

 
HealthVault CCR Conversion
FamilyHistoryRelative Actor  
Map values:
 
./relative-name . person => Actor
./relationship ./Relation codable-value => CodedDescriptionType
./date-of-birth ./Person/DateOfBirth approx-date => DateTimeType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

Common

thing : Source

 
HealthVault CCR Conversion
thing Source  
If Exists(../common/source) and If(../common/source != "Unknown")
Map values:
 
CreateCommentFromString(../common/source) ./CommentID  
Else
Map values:
 
"Unknown" ./Description/Text  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

HealthVault Record : ContinuityOfCareRecord

HealthVault Record : ContinuityOfCareRecord

 
HealthVault CCR Conversion
HealthVault Record ContinuityOfCareRecord  
Map values:
 
CreateUniqueID() ./CCRDocumentObjectID  
"English" ./Language/Text  
"V1.0" ./Version  
now() ./DateTime  
CreateHealthVaultActor(.) ./From/ActorLink/ActorID  
GetConcept("healthcare-system") ./From/ActorRole  
$Personal = /thing[type-id = "92ba621e-66b3-4a01-bd73-74844aed4f5b"][1]/data-xml/personal
Map values:
 
CreatePatientActor($Personal) ./Patient  
$Payers = /thing[type-id = "9366440c-ec81-4b89-b231-308a4c4d70ed"]/data-xml/payer
ForEach ($Payers)
Map values:
 
. ./Body/Payers/Payer payer => Payer
$Directives = /thing[type-id = "822a5e5a-14f1-4d06-b92f-8f3f1b05218f"]/data-xml/directive
ForEach ($Directives)
Map values:
 
. ./Body/AdvanceDirectives/AdvanceDirective directive => AdvanceDirective
$Conditions = /thing[type-id = "7ea7a1f9-880b-4bd4-b593-f5660f20eda8"]/data-xml/condition
ForEach ($Conditions)
Map values:
 
. ./Body/Problems/Problem condition => Problem
$FamilyHistories = /thing[type-id = "22826e13-41e1-4ba3-8447-37dadd208fd8"]/data-xml/family-history
ForEach ($FamilyHistories)
Map values:
 
. ./Body/FamilyHistory/FamilyProblemHistory family-history => FamilyProblemHistory (v2)
$FamilyHistories = /thing[type-id = "4a04fcc8-19c1-4d59-a8c7-2031a03f21de"]/data-xml/family-history
ForEach ($FamilyHistories)
Map values:
 
. ./Body/FamilyHistory/FamilyProblemHistory family-history => FamilyProblemHistory (v3)
$Allergies = /thing[type-id = "52bf9104-2c5e-4f1f-a66d-552ebcc53df7"]/data-xml/allergy
ForEach ($Allergies)
Map values:
 
. ./Body/Alerts/Alert allergy => Alert
$Medications = /thing[type-id = "30cafccc-047d-4288-94ef-643571f7919d"]/data-xml/medication
ForEach ($Medications)
Map values:
 
. ./Body/Medications/Medication medication => Medication
$Immunizations = /thing[type-id = "cd3587b5-b6e1-4565-ab3b-1c3ad45eb04f"]/data-xml/immunization
ForEach($Immunzations)
Map values:
 
. ./Body/Immunizations/Immunization immunization => Immunization
$Heights = /thing[type-id = "40750a6a-89b2-455c-bd8d-b420a4cb500b"]/data-xml/height
ForEach ($Heights)
Map values:
 
. ./Body/VitalSigns/Result height => Result
$Weights = /thing[type-id = "3d34d87e-7fc1-4153-800f-f56592cb0d17"]/data-xml/weight
ForEach ($Weights)
Map values:
 
. ./Body/VitalSigns/Result weight => Result
$BP = /thing[type-id = "ca3c57f4-f4c1-4e15-be67-0a3caf5414ed"]/data-xml/blood-pressure
ForEach ($BP)
Map values:
 
. ./Body/VitalSigns/Result blood-pressure => Result
$Glucose = /thing[type-id = "879e7c04-4e8a-4707-9ad3-b054df467ce4"]/data-xml/blood-glucose
ForEach ($Glucose)
Map values:
 
. ./Body/VitalSigns/Result blood-glucose => Result
$Cholesterol = /thing[type-id = "796c186f-b874-471c-8468-3eeff73bf66e"]/data-xml/cholesterol-profile
ForEach ($Cholesterol)
Map values:
 
. ./Body/VitalSigns/Result cholesterol => Result
$BloodOx = /thing[type-id = "3a54f95f-03d8-4f62-815f-f691fc94a500"]/data-xml/blood-oxygen-saturation
ForEach ($BloodOx)
Map values:
 
. ./Body/VitalSigns/Result blood-oxygen-saturation => Result
$Exercise = /thing[type-id = "85a21ddb-db20-4c65-8d30-33c899ccf612"]/data-xml/exercise
ForEach ($Exercise)
Map values:
 
. ./Body/VitalSigns/Result exercise => Result
$PeakFlow = /thing[type-id = "5d8419af-90f0-4875-a370-0f881c18f6b3"]/data-xml/peak-flow
ForEach ($PeakFlow)
Map values:
 
. ./Body/VitalSigns/Result peak-flow => Result
$Vitals = /thing[type-id = "73822612-c15f-4b49-9e65-6af369e55c65"]/data-xml/vital-signs
ForEach ($Vitals)
Map values:
 
. ./Body/VitalSigns/Result vital-signs => Result
$Results = /thing[type-id = "e4911bd3-61bf-4e10-ae78-9c574b888b8f"]/data-xml/radiology-lab-results
ForEach ($Results)
Map values:
 
. ./Body/Results/Result radiology-lab-results => Result
$Results = /thing[type-id = "5800eab5-a8c2-482a-a4d6-f1db25ae08c3"]/data-xml/lab-test-results
ForEach($Results/lab-group)
Map values:
 
. ./Body/Results/Result lab-test-results-group-type => Result
$Results = /thing[type-id = "02ef57a2-a620-425a-8e92-a301542cca54"]/data-xml/discharge-summary
ForEach($Results)
Map values:
 
. ./Body/Results/Result discharge-summary => Result
$Procedures = /thing[type-id = "df4db479-a1ba-42a2-8714-2b083b88150f"]/data-xml/procedure
ForEach ($Procedures)
Map values:
 
. ./Body/Procedures/Procedure procedure => Procedure
$Encounters = /thing[type-id = "464083cc-13de-4f3e-a189-da8e47d5651b"]/data-xml/encounter
ForEach ($Encounters)
Map values:
 
. ./Body/Encounters/Encounter encounter => Encounter
$Appointments = /thing[type-id = "4b18aeb6-5f01-444c-8c70-dbf13a2f510b"]/data-xml/appointment
ForEach ($Appointments)
Map values:
 
. ./Body/Encounters/Encounter appointment => Encounter

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

thing/data-xml : ContinuityOfCareRecord/Body

payer : Payer

 
HealthVault CCR Conversion
payer Payer  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./expiration-date ./DateTime date-time => DateTimeType
GetConcept("payer-benefit-stop-date") ./DateTime/Type/Text  
./plan-code ./IDs[1]/ID  
GetConcept("payer-plan-code") ./IDs[1]/Type/Text  
./group-num ./IDs[2]/ID  
GetConcept("payer-group-number") ./IDs[2]/Type/Text  
./subscriber-id ./IDs[3]/ID  
GetConcept("payer-subscriber-id") ./IDs[3]/Type/Text  
./carrier-id ./IDs[4]/ID  
GetConcept("payer-carrier-id") ./IDs[4]/Type/Text  
./coverage-type ./Type codable-value => CodedDescriptionType
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
$Actor = CreateActor(./planName)
Map values:
 
$Actor/ActorObjectID ./Payment-Provider/ActorID  
./contact $Actor contact => Actor

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

directive : AdvanceDirective

 
HealthVault CCR Conversion
directive AdvanceDirective  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./start-date ./DateTime[1] approx-date-time => ExactDateTime
GetConcept("directive-start-date") ./DateTime[1]/Type/Text  
./stop-date ./DateTime[2] approx-date-time => ExactDateTime
GetConcept("directive-stop-date") ./DateTime[2]/Type/Text  
./attending-physician-endorsement ./DateTime[3] approx-date-time => ExactDateTime
GetConcept("directive-verified-treating-physician") ./DateTime[1]/Type/Text  
"Other" ./Type  
./description ./Description/Text  
CreateActorFromPerson(./attending-physician) ./Source/Actor/ActorID  
GetConcept("directive-treatment-physician") ./Source/Actor/ActorRole  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID[1]  
CreateCommentFromString(./additional-instructions) ./CommentID[2]  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

condition : Problem

 
HealthVault CCR Conversion
condition Problem  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./onset-date ./DateTime[1] date-time => DateTimeType
GetConcept("problem-onset-date") ./DateTime[1]/Type/Text  
./stop-date ./DateTime[2] date-time => DateTimeType
GetConcept("problem-end-date") ./DateTime[2]/Type/Text  
"Condition" ./Type/Text  
./name ./Description codable-value => CodedDescriptionType
./status ./Status codable-value => CodedDescriptionType
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID[1]  
CreateCommentFromString(./stop-reason) ./CommentID[2]  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

family-history (v2)

 
HealthVault CCR Conversion
family-history (v2) FamilyProblemHistory  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./condition/onset-date ./DateTime approx-date => DateTimeType
GetConcept("problem-onset-date") ./DateTime/Type/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateActorFromFamilyHistoryRelative(./relative) ./FamilyMember/ActorID  
./relative/relationship ./FamilyMember/ActorRole codable-value => CodedDescriptionType
b ./FamilyMember/Source thing => Source
./condition/name ./Problem/Description codable-value => CodedDescriptionType
. ./Problem/Source thing => Source

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

family-history (v3)

 
HealthVault CCR Conversion
family-history (v3) FamilyProblemHistory  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateActorFromFamilyHistoryRelative(./relative) ./FamilyMember/ActorID  
./relative/relationship ./FamilyMember/ActorRole codable-value => CodedDescriptionType
. ./FamilyMember/Source thing => Source
ForEach(./Condition)
Map values:
 
./name ./Problem/Description codable-value => CodedDescriptionType
./onset-date ./Problem/Episodes/Episode[1]/DateTime approx-date => DateTimeType
GetConceptType("problem-onset-date") ./Problem/Episodes/Episode[1]/DateTime/Type  
CreateUniqueID() ./Problem/Episodes/Episode[1]/CCRDataObjectID  
.. ./Problem/Episodes/Episode[1]/Source thing => Source
./occurrence/text ./Problem/Episodes/Frequency/Value  
./occurrence/code[1] ./Problem/Episodes/Frequency/Code coded-value => CodeType
.. ./Problem/Episodes/Source thing => Source
.. ./Problem/Source thing => Source

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

allergy : Alerts

 
HealthVault CCR Conversion
allergy Alerts  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./first-observed ./DateTime approx-date-time => DateTimeType
GetConcept("allergy-start-date") ./DateTime/Type/Text  
GetConcept("allergy") ./Type  
./name ./Description codable-value => CodedDescriptionType
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
./reaction ./Reaction/Description codable-value => CodedDescriptionType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

medication : Medication

 
HealthVault CCR Conversion
medication Medication  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./date-started ./DateTime[1] approx-date-time => DateTimeType
GetConcept("medication-start-date") ./DateTime[1]/Type/Text  
./date-discontinued ./DateTime[2] approx-date-time => DateTimeType
GetConcept("medication-stop-date") ./DateTime[2]/Type/Text  
./prescription/date-prescribed ./DateTime[3] approx-date-time => DateTimeType
GetConcept("medication-prescription-date") ./DateTime[3]/Type/Text  
. ./Source[1] thing => Source
CreateActorFromPerson(./prescribed-by) ./Source[2]/ActorID  
GetConcept("medication-prescribing-provider") ./Source[2]/ActorRole  
CreateCommentFromString(../common/note) ./CommentID  
If Exists(./generic-name)
Map values:
 
./generic-name ./Product/ProductName codable-value => CodedDescriptionType
./name ./Product/BrandName codable-value => CodedDescriptionType
Else
Map values:
 
./name ./Product/ProductName codable-value => CodedDescriptionType
Map values:
 
./strength ./Product/Strength general-measurement => MeasureType
./prescription/amount-prescribed ./Quantity general-measurement => MeasureType
./dose ./Directions/Direction/Dose general-measurement => MeasureType
./route ./Directions/Direction/Route codable-value => CodedDescriptionType
./frequency ./Directions/Direction/Frequency general-measurement => MeasureType
./indication ./Directions/Direction/Indication/Description codable-value => CodedDescriptionType
"Unknown" ./Directions/Direction/Indication/Source/Description/Text  
./prescription/instructions ./PatientInstructions/Instruction codable-value => CodedDescriptionType
./prescription/refills ./Refills/Refill/Number integer

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

immunization : Immunization

 
HealthVault CCR Conversion
immunization Immunization  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./administration-date ./DateTime approx-date-time => DateTimeType
GetConcept("immunization-date") ./DateTime/Type/Text  
If Exists(./lot)
Map values:
 
./lot ./IDs[1]/ID  
GetConcept("immunization-lot-number") ./IDs[1]/Type/Text  
"Unknown" ./IDs[1]/Source/Description/Text  
Map values:
 
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
./name ./Product/ProductName codable-value => CodedDescriptionType
CreateOrganizationActorFromString(./manufacturer/text) ./Product/Manufacturer/ActorID  
./route ./Directions/Direction/Route codable-value => CodedDescriptionType
./anatomic-surface ./Directions/Direction/Site codable-value => CodedDescriptionType
./sequence ./SeriesNumber  
./adverse-event ./Reaction/Description/Text  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

height : Result

 
HealthVault CCR Conversion
height Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime date-time => DateTimeType
GetConcept("result-collection-date") ./DateTime/Type/Text  
"Vital Signs" ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateTestHeader("Observation", GetConcept("height")) ./Test  
If Exists(./value/display)
Map values:
 
./value/display ./Test/TestResult display-value => MeasureGroup
Else
Map values:
 
ConvertToInches(./value/m) ./Test/TestResult/Value  
GetConcept("inches") ./Test/TestResult/Units/Unit  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

weight : Result

 
HealthVault CCR Conversion
weight Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime date-time => DateTimeType
GetConcept("result-collection-date") ./DateTime/Type/Text  
"Vital Signs" ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateTestHeader("Observation", GetConcept("weight")) ./Test  
If Exists (./value/display)
Map values:
 
./value/display ./Test/TestResult display-value => MeasureGroup
Else
Map values:
 
ConvertToPounds(./value/kg) ./Test/TestResult/Value  
GetConcept("pounds") ./Test/TestResult/Units/Unit  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

blood-glucose : Result

 
HealthVault CCR Conversion
blood-glucose Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime date-time => DateTimeType
GetConcept("result-collection-date") ./DateTime/Type/Text  
"Vital Signs" ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
If Exists(./glucose-measurement-type)
$Description = ./glucose-measurement-type
Else
$Description = GetConcept("blood-glucose")
Map values:
 
CreateTestHeader("Observation", $Description) ./Test  
If Exists(./value/display)
Map values:
 
./value/display ./Test/TestResult display-value => MeasureGroup
Else
Map values:
 
ConvertToMgPerDl(./value/mmolPerL) ./Test/TestResult/Value  
GetConcept("concentration") ./Test/TestResult/Units/Unit  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

blood-oxygen-saturation : Result

 
HealthVault CCR Conversion
blood-oxygen-saturation Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime date-time => DateTimeType
GetConceptType("result-collection-date") ./DateTime/Type  
"Vital Signs" ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateTestHeader("Observation", GetConcept("blood-oxygen-saturation")) ./Test  
./value ./Test/TestResult/Value  
./measurement-method ./Test/Method codable-value => CodedDescriptionType
./measurement-flags ./Test/Flag[1] codable-value => CodedDescriptionType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

radiology-lab-results : Result

 
HealthVault CCR Conversion
radiology-lab-results Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime date-time => DateTimeType
GetConceptType("result-collection-date") ./DateTime/Type  
GetConceptType("radiology-lab-results") ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateCommentFromString(./anatomic-site, "Anatomic site") ./CommentID  
CreateTestHeader("Result", ./title) ./Test  
If Exists(./result-text)
Map values:
 
./result-text ./Test/TestResult/Description/Text  
Else
Map values:
 
"Unknown" ./Test/TestResult/Description/Text  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

blood-pressure : Result

 
HealthVault CCR Conversion
blood-pressure Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime  
GetConcept("result-collection-date") ./DateTime/Type/Text  
"Vital Signs" ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateTestHeader("Observation", GetConcept("blood-pressure-systolic")) ./Test[1]  
./systolic ./Test[1]/TestResult/Value  
CreateTestHeader("Observation", GetConcept("blood-pressure-diastolic")) ./Test[2]  
./diastolic ./Test[2]/TestResult/Value  
CreateTestHeader("Observation", GetConcept("blood-pressure-pulse")) ./Test[3]  
./pulse ./Test[3]/TestResult/Value  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

cholesterol-profile : Result

 
HealthVault CCR Conversion
cholesterol-profile Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime  
GetConcept("result-collection-date") ./DateTime/Type/Text  
"Vital Signs" ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateTestHeader("Observation", GetConcept("cholesterol-ldl")) ./Test[1]  
./ldl ./Test[1]/TestResult/Value  
CreateTestHeader("Observation", GetConcept("cholesterol-hdl")) ./Test[2]  
./hdl ./Test[2]/TestResult/Value  
CreateTestHeader("Observation", GetConcept("cholesterol-total")) ./Test[3]  
./total-cholesterol ./Test[3]/TestResult/Value  
CreateTestHeader("Observation", GetConcept("cholesterol-triglycerides")) ./Test[4]  
./triglyceride ./Test[4]/TestResult/Value  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

peak-flow : Result

 
HealthVault CCR Conversion
peak-flow Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime date-time => DateTimeType
GetConceptType("result-collection-date") ./DateTime/Type  
"Vital Signs" ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateTestHeader("Observation", GetConcept("pef")) ./Test[1]  
If Exists(./pef/display)
Map values:
 
./pef/display ./Test[1]/TestResult display-value => MeasureGroup
Else
Map values:
 
./pef/liters-per-second ./Test[1]/TestResult/Value  
GetConceptType("liters-per-second") ./Test[1]/TestResult/Units/Unit  
Map values:
 
CreateTestHeader("Observation", GetConcept("fev1")) ./Test[2]  
If Exists(./fev1/display)
Map values:
 
./fev1/display ./Test[2]/TestResult display-value => MeasureGroup
Else
Map values:
 
./fev1/liters ./Test[2]/TestResult/Value  
GetConceptType("liters") ./Test[2]/TestResult/Units/Unit  
Map values:
 
CreateTestHeader("Observation", GetConcept("fev6")) ./Test[3]  
If Exists (./fev6/display)
Map values:
 
./fev6/display ./Test[3]/TestResult display-value => MeasureGroup
Else
Map values:
 
./fev6/liters ./Test[3]/TestResult/Value  
GetConceptType("liters") ./Test[3]/TestResult/Units/Unit  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

exercise : Result

 
HealthVault CCR Conversion
exercise Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime date-time => DateTimeType
GetConceptType("result-collection-date") ./DateTime/Type/Text  
./activity ./Description codable-value => CodedDescriptionType
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateCommentFromString(./title) ./CommentID  
CreateTestHeader("Observation",GetConceptType("exercise-distance")) ./Test[1]  
If Exists(./distance/display)
Map values:
 
./distance/display ./Test[1]/TestResult display-value => MeasureGroup
Else
Map values:
 
./distance/m ./Test[1]/TestResult/Value  
GetConceptType("meters") ./Test[1]/TestResult/Units/Unit  
Map values:
 
CreateTestHeader("Observation",GetConceptType("exercise-duration")) ./Test[2]  
Map values:
 
./duration ./Test[2]/TestResult/Value  
GetConceptType("minutes") ./Test[2]/TestResult/Units/Unit  
ForEach(./detail)
Map values:
 
CreateTestHeader("Observation",GetConceptType("exercise-details")) ./Test[*]  
./name ./Test[*]/Description/Code coded-value => CodeType
./value ./Test[*]/TestResult structured-measurement => MeasureGroup

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

discharge-summary : Result

 
HealthVault CCR Conversion
discharge-summary Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime[1] date-time => DateTimeType
GetConceptType("discharge-summary-create-date") ./DateTime[1]/Type/Text  
./primary-provider-endorsement ./DateTime[2] date-time => DateTimeType
GetConceptType("discharge-summary-primary-endorsement") ./DateTime[2]/Type/Text  
./secondary-provider-endorsement ./DateTime[3] date-time => DateTimeType
GetConceptType("discharge-summary-secondary-endorsement") ./DateTime[3]/Type/Text  
./discharge-date-time ./DateTime[4] approx-date-time => DateTimeType
GetConceptType("discharge-summary-discharge-date") ./DateTime[4]/Type/Text  
"02ef57a2-a620-425a-8e92-a301542cca54" ./IDs[1]/ID  
"hv-type-id" ./IDs[1]/Type/Text  
CreateHealthVaultActor(.) ./IDs[1]/Source/Actor/ActorID  
If Exists(./type)
Map values:
 
./type ./Description/Text codable-value => CodedDescriptionType
Else
Map values:
 
GetConceptType("result-discharge-summary") ./Description/Text  
Map values:
 
. ./Source[1] thing => Source
CreateActorFromPerson(./primary-provider) ./Source[2]/ActorID  
GetConceptType("discharge-summary-primary-provider") ./Source[2]/ActorRole  
CreateActorFromPerson(./secondary-provider) ./Source[3]/ActorID  
GetConceptType("discharge-summary-secondary-provider") ./Source[3]/ActorRole  
CreateActorFromPerson(./principal-procedure-physician) ./Source[4]/ActorID  
GetConceptType("discharge-summary-principal-procedure-physician") ./Source[4]/ActorRole  
CreateCommentFromString(./text,./when,"discharge-summary-comment") ./CommentID[1]  
CreateCommentFromString(../common/note) ./CommentID[2]  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

vital-signs : VitalSigns

 
HealthVault CCR Conversion
vital-signs VitalSigns  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime date-time => DateTimeType
GetConcept("result-collection-date") ./DateTime/Type/Text  
"Vital Signs" ./Description/Text  
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
ForEach(./vital-signs-results) ./Test  
Map values:
 
CreateTestHeader("Observation", ./title) ./Test  
./text-value ./Test/TestResult/Description/Text  
./value ./Test/TestResult/Value  
./unit ./Test/TestResult/Units codable-value => CodedDescriptionType
./flag ./Test/Flag[1] codable-value => CodedDescriptionType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

lab-test-results-group-type : Result

 
HealthVault CCR Conversion
lab-test-results-group-type Result  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
../when ./DateTime approx-date-time => DateTimeType
GetConcept("result-collection-date") ./DateTime/Type/Text  
./group-name ./Description codable-value => CodedDescriptionType
./status ./Status codable-value => CodedDescriptionType
IfExists(./ordered-by)
Map values:
 
CreateActorFromOrganization(./ordered-by) ./Source[1]/Actor/ActorID  
GetConcept("result-ordering-provider") ./Source[1]/Actor/ActorRole/Text  
Map values:
 
. ./Source[2] thing => Source
CreateCommentFromString(.../common/note) ./CommentID  
./results/[1]/substance ./Substance codable-value => CodedDescriptionType
ForEach(./results)
Map values:
 
. ./Test lab-test-result-type => Test
ForEach(./sub-groups)
Map values:
 
. .. lab-test-results-group-type => Result

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

lab-test-result-type : TestType

 
HealthVault CCR Conversion
lab-test-result-type TestType  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime approx-date-time => DateTimeType
"Result" ./Type/Text  
If Exists(./clincal-code)
Map values:
 
./clinical-code ./Description codable-value => CodedDescriptionType
Else
Map values:
 
./name ./Description/Text  
Map values:
 
./status ./Status codable-value => CodedDescriptionType
"Unknown" ./Source/Description/Text  
./collection-method ./Method codable-value => CodedDescriptionType
./value . lab-test-result-value-type => TestType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

lab-test-result-value-type : TestType

 
HealthVault CCR Conversion
lab-test-result-value-type TestType  
Map values:
 
./measurement ./TestResult general-measurement => MeasureType
ForEach(./flag)
Map values:
 
. ./Flag codable-value => CodedDescriptionType
ForEach(./ranges)
Map values:
 
./text ./NormalResult/Normal/Value  
./type ./NormalResult/Normal/Units/Unit codable-value => MeasureType
"Unknown" ./NormalResult/Normal/Source  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

procedure : Procedure

 
HealthVault CCR Conversion
procedure Procedure  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime approx-date-time => CodedDescriptionType
GetConcept("procedure-date") ./DateTime/Type/Text  
./name ./Description codable-value => CodedDescriptionType
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
CreateActorFromPerson(./primary-provider) ./Practitioners/Practitioner[1]/ActorID  
GetConcept("procedure-primary-provider") ./Practitioners/Practitioner[1]/ActorRole  
CreateActorFromPerson(./secondary-provider) ./Practitioners/Practitioner[2]/ActorID  
GetConcept("procedure-secondary-provider") ./Practitioners/Practitioner[2]/ActorRole  
./anatomic-location ./Site codable-value => CodedDescriptionType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

encounter : Encounter

 
HealthVault CCR Conversion
encounter Encounter  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime approx-date-time => DateTimeType
GetConcept("encounter-date") ./DateTime/Type/Text  
./type ./Type codable-value => CodedDescriptionType
If Exists(./reason)
Map values:
 
./reason ./Description/Text  
Else
Map values:
 
"Unknown" ./Description/Text  
Map values:
 
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
./duration/start-date ./Duration/DateTime/DateTimeRange/BeginRange approx-date-time => DateTimeType
./duration/end-date ./Duration/DateTime/DateTimeRange/EndRange approx-date-time => DateTimeType
CreateActorFromOrganization(./facility) ./Locations/Location/Actor/ActorID  

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.

appointment : Encounter

 
HealthVault CCR Conversion
appointment Encounter  
Map values:
 
CreateUniqueID() ./CCRDataObjectID  
./when ./DateTime  
GetConcept("appointment-date") ./DateTime/Type/Text  
./care-class ./Type codable-value => CodedDescriptionType
If Exists(./service)
Map values:
 
./service ./Description codable-value => CodedDescriptionType
Else
Map values:
 
"Unknown" ./Description/Text  
Map values:
 
./status ./Status codable-value => CodedDescriptionType
. ./Source thing => Source
CreateCommentFromString(../common/note) ./CommentID  
If Exists(./clinic/organization)
Map values:
 
CreateOrganizationActorFromString(./clinic/organization) ./Locations/Location/Actor/ActorID  
Map values:
 
CreateActorFromPerson(./clinic) ./Practitioners/Practitioner/ActorID  
./duration/start-date ./Duration[1]/DateTime[1]/DateTimeRange/BeginRange approx-date-time => DateTimeType
./duration/end-date ./Duration[1]/DateTime[1]/DateTimeRange/EndRange approx-date-time => DateTimeType

Note: Elements listed in bold italic text are required by the HealthVault mapping transform. If any required values cannot be processed, the transform will not create the type.