简体   繁体   中英

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

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, ie 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.

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" />

I am working on the same thing myself. An example I received from our EHR certifying authority had the id's root looking like an OID. It was "2.16.840.1.113883.3.72".

Here is a link that may help somewhat: http://www.ihe.net/Technical_Framework/upload/ihe_lab_TF_rel2-3.pdf

I copied the relevant text below.

This element SHALL be present. It represents the unique instance identifier of the clinical document. The combination of the root and extension attributes SHALL provide a globally unique identifier. Example:

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

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.

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.

I know this is an old post, but like user453441 said, HL7 info is hard to come by.

Regarding the <id> element, here is what I believe is going on:

According to some learning materials I have been given to read at work, the element is a "Document Identifier". It is a

"unique identifier for (the) document instance. The (id) is normally generated by the document creator."

My interpretation is that this element is to be used for security and verification purposes. I believe that the element that is a child of the main <Clinical Document> element is used to show the CDA recipient that this document did indeed originate from the expected origin. You, as a CDA sender, would have a unique ID of some sort (there doesn't seem to be a standard, but getting an OID for your organization would be helpful).

The root attribute of the <id> element is the unique identifier for the whole document, the unique ID for your organization. There is also an extension attribute that can be used to uniquely identify individual sections of the CDA. You mentioned there is more than one attribute in the CDA, this is why. The extension attribute could be used to identify, for example, the <assignedAuthor> . It appears that all children of any Participation element uses this <id> element.

Hope this helps.

Edit: After reading further, I have a couple more details. The root attribute of the <id> element

"...represents the unique instance identifier (UID)."

I am getting these quotes from learning materials from the "Asociacion HL7 Argentina -HL7". Their example of this uses a case number and a version sequencer for the extension attribute. That way, two different organizations could use the same extension, but since they have different UIDs in the root attribute, they are still different.

When you are looking in the CDA specifications, what has already been mentioned, you see that the datatype of the ClinicalDocument.id element is II (Instance Identifier).

If you are looking into the datatype definition (can be found in the datatypes-base.xsd file), you will find the following:

<xs:complexType name="II">
  <xs:annotation>
     <xs:documentation>
        An identifier that uniquely identifies a thing or object.
        Examples are object identifier for HL7 RIM objects,
        medical record number, order id, service catalog item id,
        Vehicle Identification Number (VIN), etc. Instance
        identifiers are defined based on ISO object identifiers.
     </xs:documentation>
     <xs:appinfo>
        <sch:pattern name="validate II">
           <sch:rule abstract="true" id="rule-II">
              <sch:report test="(@root or @nullFlavor) and not(@root and @nullFlavor)">
                 A root component is required or else the II value is NULL.
              </sch:report>
           </sch:rule>
        </sch:pattern>
     </xs:appinfo>
  </xs:annotation>
  <xs:complexContent>
     <xs:extension base="ANY">
        <xs:attribute name="root" type="uid" use="optional">
           <xs:annotation>
              <xs:documentation>
                 A unique identifier that guarantees the global uniqueness
                 of the instance identifier. The root alone may be the
                 entire instance identifier.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="extension" type="st" use="optional">
           <xs:annotation>
              <xs:documentation>
                 A character string as a unique identifier within the
                 scope of the identifier root.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="assigningAuthorityName" type="st" use="optional">
           <xs:annotation>
              <xs:documentation>
                 A human readable name or mnemonic for the assigning
                 authority. This name may be provided solely for the
                 convenience of unaided humans interpreting an II value
                 and can have no computational meaning. Note: no
                 automated processing must depend on the assigning
                 authority name to be present in any form.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="displayable" type="bl" use="optional">
           <xs:annotation>
              <xs:documentation>
                 Specifies if the identifier is intended for human
                 display and data entry (displayable = true) as
                 opposed to pure machine interoperation (displayable
                 = false).
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
     </xs:extension>
  </xs:complexContent>

Here you can see that the root attribute has to be a uid with the following documentation:

A unique identifier that guarantees the global uniqueness of the instance identifier. The root alone may be the entire instance identifier.

The 'id' attribute in the the ClinicalDocument class of a CDA document should hold a unique id for the document.

For an II datatype then the "root" should always be an OID, the extension can be any unique string. I would suggest that there is an error in your example XML ( where was this sourced from ).

It goes without saying that within the CDA document there will be many different OIDs used depending on the object they are used to Id.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM