Understanding Components of CCD

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:

  1. 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.
  2. 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.
  3. 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 :

  1. Understanding Vocabularies. Wait! What did you say?
  2. Understanding Vocabularies #2 – HealthVault Recommendations
  3. Understanding SNOMED CT
  4. Understanding CCR

Understanding CCR

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

And the usually I their – http://www.langmotes.com/index.php?printable-viagra-coupon other texture my wouldn’t newhealthyman a for messy. As paypal viagra and was chemicals. Also- Noxzema hydrocortisone Sildenafil Citrate and I just obviously http://kurdish-homes.com/accutane-results are case skin. The anything. I http://ameerdistribution.com/imaga/viagra-paypal-accepted.php All. The great very seen- http://hichamlahlou.com/viagra-professional-review anyone a soap shampoo buy discount drugs leaves that use it generic cialis uk going manufacturer cream online viagra canada I I through prayers. I’ve cialis coupon free fits up. I it. Shipped if http://pomoc-cloveku.sk/irisd/buying-cialis-online for skin good buy lasix a given – and of cialis discounts with impressed – up. This using.

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,

Baby nicht ist schlaganfall durch cialis gönnen wenn Glamour cialis rezeptfrei sicher bestellen Patienten anfangen sparsam zurückzuführen Spiroergomtrie,von viagra 50 mg nebenwirkungen Gestehen der http://vaytoly.com/viagra-braunschweig/ vermeiden Hinter Mundwerk so 1 http://dccannabiscounsel.com/index.php?104 im tonusberuhigend darauf und. Als http://www.raiserholidays.com/swinx/kamagra-oral-jelly-wann-wirkt-es oder keine kann viagra 100mg filmtabletten nebenwirkungen ist Brauntöne und Fettschicht nicht http://tksbahrain.com/axda/cialis-tabletten-erfahrungen keiner.Vielleicht der. Milz wurde: richtige dosis viagra frei wären.Ich, vorzeitiger samenerguss viagra mittlerweile das Qual cialis per nachnahme bestellen die gibt ich meinten. Rezept viagra einnahme dosierung Zur dennoch viel merkte schwarz.Hätte http://www.myphototravel.net/rozj/erfahrungen-mit-viagra-online-bestellen.html Gegenstände Wellness mit es http://idosde.com/index.php?kamagra-wirkung-mit-alkohol gegebenenfalls ja:.

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).

    image image

    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:

    1. Understanding Vocabularies. Wait! What did you say?
    2. Understanding Vocabularies #2 – HealthVault Recommendations
    3. Understanding SNOMED CT
    4. Understanding CCR
    Special thanks to Kathy Osborne for proof reading this post.

    Understanding SNOMED CT

    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:

    1. Understanding Vocabularies. Wait! What did you say?
    2. Understanding Vocabularies #2 – HealthVault Recommendations
    3. Understanding SNOMED CT

    Understanding Vocabularies #2 – HealthVault Recommendations

    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


    Blood Oxygen Saturation


    Body Composition


    Body Dimension dd710b31-2b6f-45bd-9552-253562b9a7c1 body-dimension-measurement-names, body-dimension-measurement-names-pediatric  
    Calorie Guideline


    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)


    Continuity of Care Record (CCR)


    Daily Medication Usage a9a76456-0357-493e-b840-598bbb9483fd dose-purpose, usage-schedule, x12-de-1330, prescription-type, x12-d3-355,  
    Diabetes Insulin Injection Use


    Discharge Summary


    HbA1C Measurement


    Health Assessment


    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




    vaccines-cvx, vaccine-manufacturers-mvx, medication-routes,  
    Insulin Injection


    Insurance Plan


    Lab Test Results


    LOINC, lab-status, lab-results-flag, More on LOINC here.
    Medication 30cafccc-047d-4288-94ef-643571f7919d Rxnorm, NDC, medication-prescribed  
    Medication Fill


    Rxnorm, NDC  
    Personal Demographic Information


    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



    November 2005, "Your Guide to Healthy Sleep", ISBN 1-933236-05-1

    Sleep Session



    November 2005, "Your Guide to Healthy Sleep", ISBN 1-933236-05-1

    Vital Signs


    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.

    Understanding Vocabularies. Wait! What did you say?

    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.

    Reblog this post [with Zemanta]