Skip to main content

HealthVault 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

 
HealthVaultCCRConversion
dateExactDateTime 
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

 
HealthVaultCCRConversion
timeExactDateTime 
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

 
HealthVaultCCRConversion
approx-dateExactDateTime 
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

 
HealthVaultCCRConversion
date-timeExactDateTime 
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

 
HealthVaultCCRConversion
StructuredApproxDateExactDateTime 
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

 
HealthVaultCCRConversion
approx-date-timeExactDateTime 
If Exists(./structured)
Map values:
 
./structured./ExactDateTimeStructuredApproxDate => 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

 
HealthVaultCCRConversion
approx-date-timeDateTimeType 
If Exists(./structured)
Map values:
 
./structured./ExactDateTimeStructuredApproxDate => 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

 
HealthVaultCCRConversion
dateDateTimeType 
Map values:
 
../ExactDateTimedate => 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

 
HealthVaultCCRConversion
date-timeDateTimeType 
Map values:
 
../ExactDateTimedate-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

 
HealthVaultCCRConversion
coded-valueCodeType 
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

 
HealthVaultCCRConversion
codable-valueCodedDescriptionType 
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

 
HealthVaultCCRConversion
codable-valueMeasureType 
Map values:
 
./text./Units/Unit 
ForEach(./units/code)
Map values:
 
../Units/Codecoded-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

 
HealthVaultCCRConversion
structured-measurementMeasureType 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

 
HealthVaultCCRConversion
general-measurementMeasureType 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

 
HealthVaultCCRConversion
display-valueMeasureType 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

 
HealthVaultCCRConversion
namePersonNameType 
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

 
HealthVaultCCRConversion
emailCommunicationType 
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

 
HealthVaultCCRConversion
phoneCommunicationType 
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

 
HealthVaultCCRConversion
addressActor/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

 
HealthVaultCCRConversion
contactActor 
ForEach(./address)
Map values:
 
../Addressaddress => Actor/Address
ForEach(./phone)
Map values:
 
../Telephonephone => CommunicationType
ForEach(./email)
Map values:
 
../Emailemail => 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

 
HealthVaultCCRConversion
personActor 
Map values:
 
./name./Person/Name/CurrentNamename => 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

 
HealthVaultCCRConversion
personalActor 
Map values:
 
./name./Person/Name/CurrentNamename => PersonNameType
./name/full./Person/Name/DisplayName 
./birthdate./Person/DateOfBirthdate-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

 
HealthVaultCCRConversion
OrganizationActor 
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

 
HealthVaultCCRConversion
FamilyHistoryRelativeActor 
Map values:
 
./relative-name.person => Actor
./relationship./Relationcodable-value => CodedDescriptionType
./date-of-birth./Person/DateOfBirthapprox-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

 
HealthVaultCCRConversion
thingSource 
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

 
HealthVaultCCRConversion
HealthVault RecordContinuityOfCareRecord 
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/Payerpayer => Payer
$Directives = /thing[type-id = "822a5e5a-14f1-4d06-b92f-8f3f1b05218f"]/data-xml/directive
ForEach ($Directives)
Map values:
 
../Body/AdvanceDirectives/AdvanceDirectivedirective => AdvanceDirective
$Conditions = /thing[type-id = "7ea7a1f9-880b-4bd4-b593-f5660f20eda8"]/data-xml/condition
ForEach ($Conditions)
Map values:
 
../Body/Problems/Problemcondition => Problem
$FamilyHistories = /thing[type-id = "22826e13-41e1-4ba3-8447-37dadd208fd8"]/data-xml/family-history
ForEach ($FamilyHistories)
Map values:
 
../Body/FamilyHistory/FamilyProblemHistoryfamily-history => FamilyProblemHistory (v2)
$FamilyHistories = /thing[type-id = "4a04fcc8-19c1-4d59-a8c7-2031a03f21de"]/data-xml/family-history
ForEach ($FamilyHistories)
Map values:
 
../Body/FamilyHistory/FamilyProblemHistoryfamily-history => FamilyProblemHistory (v3)
$Allergies = /thing[type-id = "52bf9104-2c5e-4f1f-a66d-552ebcc53df7"]/data-xml/allergy
ForEach ($Allergies)
Map values:
 
../Body/Alerts/Alertallergy => Alert
$Medications = /thing[type-id = "30cafccc-047d-4288-94ef-643571f7919d"]/data-xml/medication
ForEach ($Medications)
Map values:
 
../Body/Medications/Medicationmedication => Medication
$Immunizations = /thing[type-id = "cd3587b5-b6e1-4565-ab3b-1c3ad45eb04f"]/data-xml/immunization
ForEach($Immunzations)
Map values:
 
../Body/Immunizations/Immunizationimmunization => Immunization
$Heights = /thing[type-id = "40750a6a-89b2-455c-bd8d-b420a4cb500b"]/data-xml/height
ForEach ($Heights)
Map values:
 
../Body/VitalSigns/Resultheight => Result
$Weights = /thing[type-id = "3d34d87e-7fc1-4153-800f-f56592cb0d17"]/data-xml/weight
ForEach ($Weights)
Map values:
 
../Body/VitalSigns/Resultweight => Result
$BP = /thing[type-id = "ca3c57f4-f4c1-4e15-be67-0a3caf5414ed"]/data-xml/blood-pressure
ForEach ($BP)
Map values:
 
../Body/VitalSigns/Resultblood-pressure => Result
$Glucose = /thing[type-id = "879e7c04-4e8a-4707-9ad3-b054df467ce4"]/data-xml/blood-glucose
ForEach ($Glucose)
Map values:
 
../Body/VitalSigns/Resultblood-glucose => Result
$Cholesterol = /thing[type-id = "796c186f-b874-471c-8468-3eeff73bf66e"]/data-xml/cholesterol-profile
ForEach ($Cholesterol)
Map values:
 
../Body/VitalSigns/Resultcholesterol => Result
$BloodOx = /thing[type-id = "3a54f95f-03d8-4f62-815f-f691fc94a500"]/data-xml/blood-oxygen-saturation
ForEach ($BloodOx)
Map values:
 
../Body/VitalSigns/Resultblood-oxygen-saturation => Result
$Exercise = /thing[type-id = "85a21ddb-db20-4c65-8d30-33c899ccf612"]/data-xml/exercise
ForEach ($Exercise)
Map values:
 
../Body/VitalSigns/Resultexercise => Result
$PeakFlow = /thing[type-id = "5d8419af-90f0-4875-a370-0f881c18f6b3"]/data-xml/peak-flow
ForEach ($PeakFlow)
Map values:
 
../Body/VitalSigns/Resultpeak-flow => Result
$Vitals = /thing[type-id = "73822612-c15f-4b49-9e65-6af369e55c65"]/data-xml/vital-signs
ForEach ($Vitals)
Map values:
 
../Body/VitalSigns/Resultvital-signs => Result
$Results = /thing[type-id = "e4911bd3-61bf-4e10-ae78-9c574b888b8f"]/data-xml/radiology-lab-results
ForEach ($Results)
Map values:
 
../Body/Results/Resultradiology-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/Resultlab-test-results-group-type => Result
$Results = /thing[type-id = "02ef57a2-a620-425a-8e92-a301542cca54"]/data-xml/discharge-summary
ForEach($Results)
Map values:
 
../Body/Results/Resultdischarge-summary => Result
$Procedures = /thing[type-id = "df4db479-a1ba-42a2-8714-2b083b88150f"]/data-xml/procedure
ForEach ($Procedures)
Map values:
 
../Body/Procedures/Procedureprocedure => Procedure
$Encounters = /thing[type-id = "464083cc-13de-4f3e-a189-da8e47d5651b"]/data-xml/encounter
ForEach ($Encounters)
Map values:
 
../Body/Encounters/Encounterencounter => Encounter
$Appointments = /thing[type-id = "4b18aeb6-5f01-444c-8c70-dbf13a2f510b"]/data-xml/appointment
ForEach ($Appointments)
Map values:
 
../Body/Encounters/Encounterappointment => 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

 
HealthVaultCCRConversion
payerPayer 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./expiration-date./DateTimedate-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./Typecodable-value => CodedDescriptionType
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
$Actor = CreateActor(./planName)
Map values:
 
$Actor/ActorObjectID./Payment-Provider/ActorID 
./contact$Actorcontact => 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

 
HealthVaultCCRConversion
directiveAdvanceDirective 
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 
../Sourcething => 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

 
HealthVaultCCRConversion
conditionProblem 
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./Descriptioncodable-value => CodedDescriptionType
./status./Statuscodable-value => CodedDescriptionType
../Sourcething => 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)

 
HealthVaultCCRConversion
family-history (v2)FamilyProblemHistory 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./condition/onset-date./DateTimeapprox-date => DateTimeType
GetConcept("problem-onset-date")./DateTime/Type/Text 
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
CreateActorFromFamilyHistoryRelative(./relative)./FamilyMember/ActorID 
./relative/relationship./FamilyMember/ActorRolecodable-value => CodedDescriptionType
b./FamilyMember/Sourcething => Source
./condition/name./Problem/Descriptioncodable-value => CodedDescriptionType
../Problem/Sourcething => 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)

 
HealthVaultCCRConversion
family-history (v3)FamilyProblemHistory 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
CreateActorFromFamilyHistoryRelative(./relative)./FamilyMember/ActorID 
./relative/relationship./FamilyMember/ActorRolecodable-value => CodedDescriptionType
../FamilyMember/Sourcething => Source
ForEach(./Condition)
Map values:
 
./name./Problem/Descriptioncodable-value => CodedDescriptionType
./onset-date./Problem/Episodes/Episode[1]/DateTimeapprox-date => DateTimeType
GetConceptType("problem-onset-date")./Problem/Episodes/Episode[1]/DateTime/Type 
CreateUniqueID()./Problem/Episodes/Episode[1]/CCRDataObjectID 
.../Problem/Episodes/Episode[1]/Sourcething => Source
./occurrence/text./Problem/Episodes/Frequency/Value 
./occurrence/code[1]./Problem/Episodes/Frequency/Codecoded-value => CodeType
.../Problem/Episodes/Sourcething => Source
.../Problem/Sourcething => 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

 
HealthVaultCCRConversion
allergyAlerts 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./first-observed./DateTimeapprox-date-time => DateTimeType
GetConcept("allergy-start-date")./DateTime/Type/Text 
GetConcept("allergy")./Type 
./name./Descriptioncodable-value => CodedDescriptionType
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
./reaction./Reaction/Descriptioncodable-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

 
HealthVaultCCRConversion
medicationMedication 
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/ProductNamecodable-value => CodedDescriptionType
./name./Product/BrandNamecodable-value => CodedDescriptionType
Else
Map values:
 
./name./Product/ProductNamecodable-value => CodedDescriptionType
Map values:
 
./strength./Product/Strengthgeneral-measurement => MeasureType
./prescription/amount-prescribed./Quantitygeneral-measurement => MeasureType
./dose./Directions/Direction/Dosegeneral-measurement => MeasureType
./route./Directions/Direction/Routecodable-value => CodedDescriptionType
./frequency./Directions/Direction/Frequencygeneral-measurement => MeasureType
./indication./Directions/Direction/Indication/Descriptioncodable-value => CodedDescriptionType
"Unknown"./Directions/Direction/Indication/Source/Description/Text 
./prescription/instructions./PatientInstructions/Instructioncodable-value => CodedDescriptionType
./prescription/refills./Refills/Refill/Numberinteger

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

 
HealthVaultCCRConversion
immunizationImmunization 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./administration-date./DateTimeapprox-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:
 
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
./name./Product/ProductNamecodable-value => CodedDescriptionType
CreateOrganizationActorFromString(./manufacturer/text)./Product/Manufacturer/ActorID 
./route./Directions/Direction/Routecodable-value => CodedDescriptionType
./anatomic-surface./Directions/Direction/Sitecodable-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

 
HealthVaultCCRConversion
heightResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimedate-time => DateTimeType
GetConcept("result-collection-date")./DateTime/Type/Text 
"Vital Signs"./Description/Text 
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
CreateTestHeader("Observation", GetConcept("height"))./Test 
If Exists(./value/display)
Map values:
 
./value/display./Test/TestResultdisplay-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

 
HealthVaultCCRConversion
weightResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimedate-time => DateTimeType
GetConcept("result-collection-date")./DateTime/Type/Text 
"Vital Signs"./Description/Text 
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
CreateTestHeader("Observation", GetConcept("weight"))./Test 
If Exists (./value/display)
Map values:
 
./value/display./Test/TestResultdisplay-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

 
HealthVaultCCRConversion
blood-glucoseResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimedate-time => DateTimeType
GetConcept("result-collection-date")./DateTime/Type/Text 
"Vital Signs"./Description/Text 
../Sourcething => 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/TestResultdisplay-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

 
HealthVaultCCRConversion
blood-oxygen-saturationResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimedate-time => DateTimeType
GetConceptType("result-collection-date")./DateTime/Type 
"Vital Signs"./Description/Text 
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
CreateTestHeader("Observation", GetConcept("blood-oxygen-saturation"))./Test 
./value./Test/TestResult/Value 
./measurement-method./Test/Methodcodable-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

 
HealthVaultCCRConversion
radiology-lab-resultsResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimedate-time => DateTimeType
GetConceptType("result-collection-date")./DateTime/Type 
GetConceptType("radiology-lab-results")./Description/Text 
../Sourcething => 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

 
HealthVaultCCRConversion
blood-pressureResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTime 
GetConcept("result-collection-date")./DateTime/Type/Text 
"Vital Signs"./Description/Text 
../Sourcething => 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

 
HealthVaultCCRConversion
cholesterol-profileResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTime 
GetConcept("result-collection-date")./DateTime/Type/Text 
"Vital Signs"./Description/Text 
../Sourcething => 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

 
HealthVaultCCRConversion
peak-flowResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimedate-time => DateTimeType
GetConceptType("result-collection-date")./DateTime/Type 
"Vital Signs"./Description/Text 
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
CreateTestHeader("Observation", GetConcept("pef"))./Test[1] 
If Exists(./pef/display)
Map values:
 
./pef/display./Test[1]/TestResultdisplay-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]/TestResultdisplay-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]/TestResultdisplay-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

 
HealthVaultCCRConversion
exerciseResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimedate-time => DateTimeType
GetConceptType("result-collection-date")./DateTime/Type/Text 
./activity./Descriptioncodable-value => CodedDescriptionType
../Sourcething => 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]/TestResultdisplay-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/Codecoded-value => CodeType
./value./Test[*]/TestResultstructured-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

 
HealthVaultCCRConversion
discharge-summaryResult 
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/Textcodable-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

 
HealthVaultCCRConversion
vital-signsVitalSigns 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimedate-time => DateTimeType
GetConcept("result-collection-date")./DateTime/Type/Text 
"Vital Signs"./Description/Text 
../Sourcething => 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/Unitscodable-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

 
HealthVaultCCRConversion
lab-test-results-group-typeResult 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
../when./DateTimeapprox-date-time => DateTimeType
GetConcept("result-collection-date")./DateTime/Type/Text 
./group-name./Descriptioncodable-value => CodedDescriptionType
./status./Statuscodable-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./Substancecodable-value => CodedDescriptionType
ForEach(./results)
Map values:
 
../Testlab-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

 
HealthVaultCCRConversion
lab-test-result-typeTestType 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimeapprox-date-time => DateTimeType
"Result"./Type/Text 
If Exists(./clincal-code)
Map values:
 
./clinical-code./Descriptioncodable-value => CodedDescriptionType
Else
Map values:
 
./name./Description/Text 
Map values:
 
./status./Statuscodable-value => CodedDescriptionType
"Unknown"./Source/Description/Text 
./collection-method./Methodcodable-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

 
HealthVaultCCRConversion
lab-test-result-value-typeTestType 
Map values:
 
./measurement./TestResultgeneral-measurement => MeasureType
ForEach(./flag)
Map values:
 
../Flagcodable-value => CodedDescriptionType
ForEach(./ranges)
Map values:
 
./text./NormalResult/Normal/Value 
./type./NormalResult/Normal/Units/Unitcodable-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

 
HealthVaultCCRConversion
procedureProcedure 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimeapprox-date-time => CodedDescriptionType
GetConcept("procedure-date")./DateTime/Type/Text 
./name./Descriptioncodable-value => CodedDescriptionType
../Sourcething => 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./Sitecodable-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

 
HealthVaultCCRConversion
encounterEncounter 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTimeapprox-date-time => DateTimeType
GetConcept("encounter-date")./DateTime/Type/Text 
./type./Typecodable-value => CodedDescriptionType
If Exists(./reason)
Map values:
 
./reason./Description/Text 
Else
Map values:
 
"Unknown"./Description/Text 
Map values:
 
../Sourcething => Source
CreateCommentFromString(../common/note)./CommentID 
./duration/start-date./Duration/DateTime/DateTimeRange/BeginRangeapprox-date-time => DateTimeType
./duration/end-date./Duration/DateTime/DateTimeRange/EndRangeapprox-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

 
HealthVaultCCRConversion
appointmentEncounter 
Map values:
 
CreateUniqueID()./CCRDataObjectID 
./when./DateTime 
GetConcept("appointment-date")./DateTime/Type/Text 
./care-class./Typecodable-value => CodedDescriptionType
If Exists(./service)
Map values:
 
./service./Descriptioncodable-value => CodedDescriptionType
Else
Map values:
 
"Unknown"./Description/Text 
Map values:
 
./status./Statuscodable-value => CodedDescriptionType
../Sourcething => 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/BeginRangeapprox-date-time => DateTimeType
./duration/end-date./Duration[1]/DateTime[1]/DateTimeRange/EndRangeapprox-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.