Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CCD ClinicalDocument.id: What is the value of root supposed to be?

Tags:

hl7

ccd

c-cda

In the CDA R2 CCD implementation guide, a ClinicalDocument element (the root element of the document) is supposed to have an id element.

This id element is of the "II" datatype: http://wiki.hl7.no/index.php/R1:II This states that the root attribute is to have an OID value, to identify the type of identification used in the extension attribute.

Now, when looking at the sample CCD document that HL7 provides we see:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="CDASchemas\cda\Schemas\CCD.xsl"?>
<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:voc="urn:hl7-org:v3/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd" >
...
   <id root="db734647-fc99-424c-a864-7e3cda82e703"/>
...
</ClinicalDocument>

The root value db734647-fc99-424c-a864-7e3cda82e703 is not an OID. I'm not sure what it is, but it looks like a UUID perhaps? Anyway, is this a static value for all CCD documents, or will it differ from document to another? Why is the extension attribute not used, isn't that what identifies the document?

Note that throughout that same sample document I also see things like

<id root="2.16.840.1.113883.19.5" />

which seem to be OIDs (in the root attribute).

EDIT: The sample document I reference is from the HL7 CCD implementation guide, i.e it is from the official source, it is unlikely that they would have a glaring error in their sample file that nobody has noticed before.

like image 345
user453441 Avatar asked May 11 '11 21:05

user453441


3 Answers

Old question, I know, but I'm just learning about this stuff and I think I finally have my head wrapped around it.

The roots are basically like namespaces or domains in which the id will be valid and guaranteed to be unique. For example if your authority/organization is generating CDAs it will most likely have applied for a unique OID (the value you see in the root is an OID 2.16.840.1.113883.19.4).

So, for the example above,

    <id root="2.16.840.1.113883.19.4" extension="abc266"/>

I'm going to guess that 2.16.840.1.113883.19 is the base OID for the authority sending out the CDA and the .4 is most likely the OID to indicate that this

<id>

is in fact the document's identifier (the authority defines these OID extensions under the base OID)

"extension" is the Unique Identifier value for this particular document.

In regards to your comment about the implementation guide not having glaring errors, I've found quite the opposite in trying to figure this stuff out...there are errors abound. I do believe the root is always to be an OID, the extensions are usually UUIDs or some other unique ID.

like image 87
Bensonius Avatar answered Oct 05 '22 06:10

Bensonius


According to these two links:

http://tl7.intelliware.ca/public/messages/dataTypes/ii.faces and http://cdatools.com/infocenter/index.jsp?topic=/org.openhealthtools.mdht.uml.cda.consol.doc/classes/GeneralHeaderConstraints.html

the "II" datatype accepts both OID and UUID in its root element.

Can someone direct me to the official documentation explaining this?

Sidenote: The lack of proper documentation and knowledge available online regarding HL7 is quite disappointing, given the fact that it is widely used.

like image 33
user453441 Avatar answered Oct 05 '22 06:10

user453441


You can download the CDA Release 2 documentation here: http://www.hl7.org/implement/standards/product_brief.cfm?product_id=7

Note: you will have to create an account, but not a paid account. Also, when I forgot my password, they emailed it in plain text to me. Don't use your secure password here.

In datatypes-base.xsd, you can see an explanation of II type. Root is a UID, and there are 2 types of UID. An OID and a UUID.

UUIDs are GUIDs (your example). OIDs are HL7 designated IDs. You can file for an organizational OID, and you have control over any leaf OIDs from that point. Following pattern "[0-2](\.(0|[1-9][0-9]*))*"

Between the root and extension (string), the II should be universally unique. An OID can be unique by itself. A couple examples.

OID "2.16.840.1.113883" is Hl7 (https://www.hl7.org/oid/index.cfm). Leaf ".10.20.22" is HL7 Health Story Templates. Leaf ".1.2" is a Continuity Of Care Document.

<id root="2.16.840.1.113883.10.20.22.1.2" /> is globally unique for a CCD template, extension unneeded

OID "2.16.840.1.113883.5" is HL7 V3 Code Systems. ".1" is Administrative Gender

<id root="2.16.840.1.113883.5.1" extension="M" /> is globally unique for Male

That gives you two options for generating an II for your clinical document. You can generate your own GUID. Or you can use any local identifier, if you have a meaningful ID within an OID/leaf that your organization controls. Pulling the top OID from the hl7 registry ("2.16.840.1.113883.5.3" is external users; ".1" is ProVation) as an example:

They could define leafs as needed; and each time they send a document, it would reference the same unique document. Theoretically: 100=documents; 100.2=clinical documents; extension=databaseIdentityColumn.

<id root="2.16.840.1.113883.5.3.1.100.2" extension="1" /> = first document they created
<id root="2.16.840.1.113883.5.3.1.100.2" extension="15" /> = 15th document they created

It's also perfectly valid to use OID only format, as long as it's globally unique.

<id root="2.16.840.1.113883.5.3.1.100.2.15" /> = 15th document they created

Similar to a globally unique SSN

<id root="2.16.840.1.113883.4.1" extension="111-11-1111" />

Then locally defined patient identifier could be .12=patient chart

<id root="2.16.840.1.113883.5.3.1.12" extension="ZZ1234-111111" />
like image 42
Peter Avatar answered Oct 05 '22 04:10

Peter