Entries Tagged 'Vocabularies' ↓
January 27th, 2010 — Vocabularies
Connectivity of Care Document (CCD) is a collaborative standard driven by HL7 & ASTM for exchanging summary format clinical information.
For ease of understanding one can think of CCD standard comprising of several elements in an hierarchical fashion:
- HL7 V3 Data Types and Reference Information Model (RIM) : At the base of CCD standard are the HL7 Data types and Reference Information Model. HL7 V3 data types define the structural format of the data carried. The HL7 RIM expresses the information content of work done by HL7 working committee to define data types, relationships between them, and a state transition model for some entities.
- Clinical Document Architecture (CDA): The HL7 CDA defines the specific structure and semantics for any clinical document for purposes of exchange. CDA document can be encoded in XML. A CDA document if encoded in XML must comply to the schema. NIST has a good CDA validation tool.
- CCD Implementation Guide: The CCD implementation guide describes the constraints on the HL7 Clinical Document Architecture R2 specification in accordance with requirements set forward by ASTM (the governing body behind CCR).
Fig 1. Components of CCD Standard
Related articles in this series :
- Understanding Vocabularies. Wait! What did you say?
- Understanding Vocabularies #2 – HealthVault Recommendations
- Understanding SNOMED CT
- Understanding CCR
October 27th, 2009 — HealthVault, Vocabularies
Update: Fixed typos, added links to related tools and articles, updated the example.
CCR or Continuity of Care Record is a standard meant to ease the exchange of clinical information with a relatively easy to read and practical data-format and schema. There is ton of great information about CCR on its resource site. CCR document format is supported by majority of personal Health clouds, both – Microsoft HealthVault & Google Health.
The CCR specification comprises an implementation guide, XML schema definition and a guidance spreadsheet for each data element that makes up the standard. These resources can be bought from ASTM.
The document format of CCR is very straight forward, consisting of a header, body and a footer with the following top-level elements:
| Header |
Body |
Body |
Footer |
|
CCR Document ID
Language
Version
Creation Date
Patient
From
To
Purpose
|
Payers
Advance Directives
Support
Functional Status
Problems
Family History
Social History
Alerts
Medications
|
Medical Equipment
Immunizations
Vital Signs
Results
Procedures
Encounters
Plan Of Care
HealthCareProviders
|
Actors
Signatures
References
Comments
|
Google Health supports only a limited set of entities from the above, while HealthVault supports the entire standard and also allows transformation of some of these entities in to native HealthVault types. You can read more about working with CCR in HealthVault and various input mappings, output mappings, and CCR vocabularies.
Here are some illustrative CCR figures from Dr. Waldren’s presentation (see end of article).

Using the SNOMED-CT concepts one can write the Systolic Blood pressure reading in CCR as the following (UPDATE: Well-formatted the CCR to include source, object-id and actors, thanks to Matt Wagner):
<?xml version="1.0" encoding="utf-8"?>
<ContinuityOfCareRecord xmlns='urn:astm-org:CCR'>
<CCRDocumentObjectID>Doc</CCRDocumentObjectID>
<Language>
<Text>English</Text>
</Language>
<Version>V1.0</Version>
<DateTime>
<ExactDateTime>2008</ExactDateTime>
</DateTime>
<Patient>
<ActorID>Patient</ActorID>
</Patient>
<Body>
<VitalSigns>
<Result>
<CCRDataObjectID>0001</CCRDataObjectID>
<Description>
<Text>Blood Pressure</Text>
</Description>
<Source>
<Description>
<Text>Unknown</Text>
</Description>
</Source>
<Test>
<CCRDataObjectID>0002</CCRDataObjectID>
<Description>
<Text>Systolic</Text>
<Code>
<Value>163030003</Value>
<CodingSystem>SNOMEDCT</CodingSystem>
</Code>
</Description>
<Source>
<Description>
<Text>Unknown</Text>
</Description>
</Source>
<TestResult>
<Value>120</Value>
<Units>
<Unit>mmHg</Unit>
</Units>
</TestResult>
</Test>
<Test>
<CCRDataObjectID>0003</CCRDataObjectID>
<Description>
<Text>Diastolic</Text>
<Code>
<Value>163031004</Value>
<CodingSystem>SNOMEDCT</CodingSystem>
</Code>
</Description>
<Source>
<Description>
<Text>Unknown</Text>
</Description>
</Source>
<TestResult>
<Value>75</Value>
<Units>
<Unit>mmHg</Unit>
</Units>
</TestResult>
</Test>
</Result>
</VitalSigns>
</Body>
<Actors>
<Actor>
<ActorObjectID>Patient</ActorObjectID>
<Person>
<Name>
<CurrentName>
<Given>John</Given>
<Family>Doe</Family>
</CurrentName>
</Name>
</Person>
<Source>
<Description>
<Text>Unknown</Text>
</Description>
</Source>
</Actor>
</Actors>
</ContinuityOfCareRecord>
Note CodingSystem element. It allows CCR to interpret various medical vocabularies.
Relevant Tools:
(Thanks to Kathleen Connor)
- The CCR Validator, is an important resource to test/validate a CCR instance, is a now available Not only does it validate the CCR against the XSD but also the constraints of the implementation guide.
- An Open Source StyleSheet to view CCR files.
- CCR to CCD & HL7 Mappers – tools which Map CCR to CCD and HL7 V2 & V3. You can access them directly here.
- Application to embed CCR in PDF-HealthCare.
Related Article(s):
- To get familiar with CCR I would highly recommended this 13 minute video by Dr. Steve Waldren.
- Adam Bosworth posted an interesting read on standards, his take (simple, human readable, focus on known structured data, etc.) favors CCR.
In this series:
- Understanding Vocabularies. Wait! What did you say?
- Understanding Vocabularies #2 – HealthVault Recommendations
- Understanding SNOMED CT
- Understanding CCR
Special thanks to Kathy Osborne for proof reading this post.
October 9th, 2009 — HealthVault, Vocabularies
I have previously posted about Understanding Health Ontologies and Standards. In this post I’ll focus on SNOMED-CT (Systematized Nomenclature of Medicine Clinical Terms). SNOMED-CT is the most comprehensive vocabulary to express clinical terms – it spans languages, specialties and geographic borders.
SNOMED-CT includes:
- Terms or synonyms relating to a clinical concept
- Links between different concepts
To give you a taste here is an example of Blood pressure reading represented using SNOMED-CT from the linked paper (“Towards semantic interoperability in healthcare: ontology mapping from SNOMED-CT to HL7 version 3”, Amanda Ryan):

In addition to having a model to represent concepts and linkages the biggest draw of SNOMED CT is a staggering number of coded qualifiers (which belong to one concept or other). According to IHTSO there are about 311,000 actively used SNOMED CT concepts.
You can register for SNOMED CT here. Its free for companies and individuals in United States, however your registration is processed by NLM and it might take over 3 days to receive a confirmation and access.
Once you are through with registration and have an account, start by downloading the core subset of SNOMED CT concepts here, this list consists of about 5000 most frequently used terms by institutions across US. Its a good set to get familiar with, it consists of the following concept area:
- Clinical finding : 4,550 codes in total
- Procedure : 414 codes in total
- Situation with explicit context : 132 codes in total
- Event : 38 codes in total
- Body structure : 46 codes in total
- Social context : 2 codes in total

We can use BCP to copy the files from SNOMED CT Core in to our local database, and do more interesting queries & data analysis like find distribution on these terms, co-relate problems vs. findings and of course work on the larger SNOMED CT database to find synonyms etc.; but I’ll keep that for another day. Here very quickly I’ll show how one can use a web-based browser, Snowflake, http://snomed.dataline.co.uk/ (requires registration) to lookup a SNOMED code and see what else it relates to. We can see that in line 3 above SNOMED CT concept 10085004 is marked as Metatarsalgia (finding), however using the Snowflake browser we can see in that in addition to being a finding this concept is a problem as well.

This was just tip of the ice-berg, please leave comments for future posts / areas to consider in the Ontology domain.
Further reading / relevant links:
In this series:
- Understanding Vocabularies. Wait! What did you say?
- Understanding Vocabularies #2 – HealthVault Recommendations
- Understanding SNOMED CT
July 10th, 2009 — HealthVault, Vocabularies
In my last article in the vocabulary category, I described the need for semantically enabled data and how different categories of health data have different standard vocabulary / ontology associated with them. In the following table I attempt to summarize the recommended vocabularies for different HealthVault types.
Disclaimer: Please note this is not a definitive or complete list, and I will update the table as I discover inconsistencies. The definitive source are the XSDs associated with HealthVault data types.
| HealthVault Type |
Type Schema |
HV Recommended vocabulary related to this type |
Comments |
| Advance Directive |
822a5e5a-14f1-4d06-b92f-8f3f1b05218f |
None |
Examples include living wills and power of attorney for healthcare.
|
| Allergy |
52bf9104-2c5e-4f1f-a66d-552ebcc53df7 |
icd9cm, icd9cm-reactions |
Details on ICD-9 Codes |
| Basic Demographic Information |
bf516a61-5252-4c28-a979-27f45f62f78d |
ISO-3166 |
Country of residence |
| Blood Glucose Measurement |
879e7c04-4e8a-4707-9ad3-b054df467ce4
|
glucose-measurement-type |
|
| Blood Oxygen Saturation |
3a54f95f-03d8-4f62-815f-f691fc94a500
|
blood-oxygen-saturation-measurement-method |
|
| Body Composition |
18adc276-5144-4e7e-bf6c-e56d8250adf8
|
body-composition-measurement-methods |
|
| Body Dimension |
dd710b31-2b6f-45bd-9552-253562b9a7c1 |
body-dimension-measurement-names, body-dimension-measurement-names-pediatric |
|
| Calorie Guideline |
d3170d30-a41b-4bde-a116-87698c8a001a
|
calorie-guideline-names |
|
| Concern |
aea2e8f2-11dd-4a7d-ab43-1d58764ebc19 |
concern-description |
Concerns are more general than conditions |
| Condition |
7ea7a1f9-880b-4bd4-b593-f5660f20eda8 |
|
|
| Continuity of Care Document (CCD) |
9c48a2b8-952c-4f5a-935d-f3292326bf54
|
|
|
| Continuity of Care Record (CCR) |
1e1ccbfc-a55d-4d91-8940-fa2fbf73c195
|
|
http://www.ccrstandard.com/ |
| Daily Medication Usage |
a9a76456-0357-493e-b840-598bbb9483fd |
dose-purpose, usage-schedule, x12-de-1330, prescription-type, x12-d3-355, |
|
| Diabetes Insulin Injection Use |
184166be-8adb-4d9c-8162-c403040e31ad
|
insulin-types, |
|
| Discharge Summary |
02ef57a2-a620-425a-8e92-a301542cca54
|
icd9cm |
|
| HbA1C Measurement |
227f55fb-1001-4d4e-9f6a-8d893e07b451
|
HbA1C-assay-method |
|
| Health Assessment |
58fd8ac4-6c47-41a3-94b2-478401f0e26c
|
health-assessment-name, health-assessment-value-sets, health-assessment-groups, health-assessment-category |
|
| Heart Rate |
b81eb4a6-6eac-4292-ae93-3872d6870994 |
heart-rate-measurement-conditions |
|
| HL7 Clinical Document Architecture, Release 2 |
1ed1cba6-9530-44a3-b7b5-e8219690ebcf
|
|
|
| Immunization |
cd3587b5-b6e1-4565-ab3b-1c3ad45eb04f
|
vaccines-cvx, vaccine-manufacturers-mvx, medication-routes, |
|
| Insulin Injection |
3b3c053b-b1fe-4e11-9e22-d4b480de74e8
|
insulin-types |
|
| Insurance Plan |
9366440c-ec81-4b89-b231-308a4c4d70ed
|
coverage-types |
|
| Lab Test Results |
f57746af-9631-49dc-944e-2c92bee0d1e9
|
LOINC, lab-status, lab-results-flag, |
More on LOINC here. |
| Medication |
30cafccc-047d-4288-94ef-643571f7919d |
Rxnorm, NDC, medication-prescribed |
|
| Medication Fill |
167ecf6b-bb54-43f9-a473-507b334907e0
|
Rxnorm, NDC |
|
| Personal Demographic Information |
92ba621e-66b3-4a01-bd73-74844aed4f5b
|
blood-types, ethnicity, marital-status, religion, education-level, |
|
| Pregnancy |
46d485cf-2b84-429d-9159-83152ba801f4 |
delivery-complications, anesthesia-methods, delivery-methods, pregnancy-outcomes, gender-types, conception-methods, |
|
| Question Answer |
55d33791-58de-4cae-8c78-819e12ba5059 |
question-sets, answer-choice-sets |
|
| Sleep Related Activity |
031f5706-7f1a-11db-ad56-7bd355d89593
|
|
November 2005, "Your Guide to Healthy Sleep", ISBN 1-933236-05-1
|
| Sleep Session |
11c52484-7f1a-11db-aeac-87d355d89593
|
|
November 2005, "Your Guide to Healthy Sleep", ISBN 1-933236-05-1
|
| Vital Signs |
73822612-c15f-4b49-9e65-6af369e55c65
|
lab-results-units, lab-results-flag, |
|
As you can notice above we recommend ICD-9, RxNorm, LOINC, NDC. x12-de-1130, x12-de-335. We do prefer SNOMED-CT as well, however the application using it need to have license for it.
Having written the above I would like to match that with what Dr. Halamka recommends in his post. Note that I mention content column for completeness, however its not useful for comparison.
| Data |
Content |
Vocabulary |
| Demographics |
HL7 2.x for messaging, CCD for document summaries |
HITSP Harmonized code sets for gender, marital status |
| Problem List |
HL7 2.x for messaging, CCD for document summaries |
SNOMED-CT |
| Medications |
NCPDP script for messaging, CCD for document summaries |
RxNorm and Structured SIG |
| Allergies |
HL7 2.x for messaging, CCD for document summaries |
UNII for foods and substances, NDF-RT for medication class, RxNorm for Medications |
| Progress Notes and Other Narrative Documents (History and Physical, Operative Notes, Discharge Summary) |
HL7 2.x for messaging, CCD for document summaries |
CDA Templates (interesting note) |
| Departmental Reports (Pathology/Cytology, GI, Pulmonary, Cardiology etc.) |
HL7 2.x for messaging, CCD for document summaries |
SNOMED-CT |
| Laboratory Results |
HL7 2.x for messaging, CCD for document summaries |
LOINC for lab name, UCUM for units of measure, SNOMED-CT for test ordering reason |
| Microbiology |
HL7 2.x for messaging, CCD for document summaries |
LOINC for lab name/observation |
| Images |
DICOM |
|
| Administrative Transactions (Benefits/Eligibility, Referral/Authorization, Claims/Remittance) |
X12 |
X12, CAQH CORE |
Next Time: I’ll try to update the above tables with more details and try to come with recommendations of which clinical type (in the Data column above) would potentially match with which HealthVault type.
As usual leave your suggestions in the comments.
April 9th, 2009 — HealthIT, HealthVault, Ideas, Vocabularies
Any data system the semantic meaning of data is as important as the strucutre of the data. In HealthVault we expose a very structured data set in form of various data types and the semantic meaning of the content in those data sets is dictated by vocabularies.
HealthVault Vocabulary is a big area so I’m going to attempt to break this down in separate series of posts. In this post i’m primarily going to focus on vocabularies in general.
Many of you might have heard of the term – Semantic Web or Web 3.0. So whats this buzz about? Well Web 1.0 was for humans to connect, Web 2.0 was for systems to connect to humans via rich internet applications. Web 3.0 promises a web for systems – a web where programs can communicate and link to each other. So what this implies is for Semantic Web to be successful – the data being put on the semantic internet need not only be structured but also the content be in such a way that computer programs can understand the meaning of it. This is only possible if everyone has a shared Vocabulary or Ontology, or a mechanism to relate to a new Vocabulary.
To solve the ontology problem we can just sit down and invent a vocabulary which everyone will use henceforth and be done with it, right! First, we won’t agree to single vocabulary and second we can’t plan for future vocabularies. And the most important challenge is that the system which powers this vocabulary needs to agree with the architecture of the web i.e must be decentralized and open!
The semantic web community is using a very powerful way to achieve this. They are using the same mechanism which powers resource discovery (for example – URL linking) to discover and understand vocabularies. Two candidates which make this possible are RDF (resource description format) and OWL (Web Ontology Language). I won’t describe these technologies in details here but keep it for some other day. However the point of this note is to surface example ontologies or vocabularies this community has successfully used/developed so far:
So how does this fit in the HealthCare? John Hamalka outlines the elements of vocabulary whicn an EHR can use in his post – http://geekdoctor.blogspot.com/2009/04/data-elements-of-ehr.html. He mentions preferred vocabularies and transports for some of important EHR elements. In the following posts i will try to go deeper in this area.
So how does this fit with HealthVault? Well HealthVault exposes all the vocabularies it uses – http://developer.healthvault.com/types/vocabs.aspx. We let people also annotate their data with any vocabulary they like. However this leds to an interesting interoperability problem, so on the XSD schemas of our data types (http://developer.healthvault.com/types/types.aspx) we specify preferred vocabularies for some data elements. In the following posts i will provide more details with regards to this.
As you can from John’s post their is no dearth of language systems for various medical or healthcare terms. However their is a big gap on best practices on how one can denormalize various vocabularies for implementeting systems which can interoperate with other systems using different vocabularies. I tend to think that there are some lessons to be learned in this area from semantic web efforts and also a need for a more structured effort to surface best practices. May be I’ll dig deeper in this area in one of the future posts.
Next post: Recommended Vocabularies for Various Data Contexts.