![]() HL7 V3 ITS HDATA RF, R1 HL7 Version 3 Specification: hData Record Format, Release 1 Last Ballot: DSTU Ballot 1 - September 2011 |
| Responsible Group | Service Oriented Architecture Work Group Health Level Seven International |
| Primary Contributor and Editor | Gerald Beuchelt beuchelt@mitre.org The MITRE Corporation |
| Contributor | Robert Dingwell bobd@mitre.org The MITRE Corporation |
| Contributor | Andrew Gregorowicz andrewg@mitre.org The MITRE Corporation |
| Contributor | Harry Sleeper sleeper@mitre.org The MITRE Corporation |
| Contributor | Nicholas Dikan nick.dikan@cerner.com Cerner Corporation |
| SOA co-chair | Don Jorgenson djorgenson@inpriva.com Inpriva, Inc. |
| Contributor | John Koisch jkoisch@guidewirearchitecture.com Guidewire Architecture |
| Contributor | Mark Kramer mkramer@mitre.org The MITRE Corporation |
| Contributor and ITS co-chair | Paul Knapp pknapp@continovation.com Continovation |
| Contributor and ITS co-chair | Dale Nelson dale.nelson@squaretrends.com Square Trends |
| Contributor | Samuel Sayer ssayer@mitre.org The MITRE Corporation |
| Contributor and ITS co-chair | Andy Stechishin andy.stechishin@gmail.com Gordon Point informatics |
| Contributor and SOA co-chair | Galen Mulrooney galen.mulrooney@va.gov U.S. Veterans Administration |
| Contributor and SOA co-chair | Ken Rubin ken.rubin@hp.com Hewlett-Packard |
| Contributor and SOA co-chair | Ann Wrightson ann.wrightson@wales.nhs.uk NHS Wales |
HTML Generated: 2012-04-01T15:51:52
Content Last Edited: 2010-11-29T23:00:00
HL7® Version 3 Standard, © 2011 Health Level Seven® International All Rights Reserved.
HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. Pat & TM Off.
Use of these materials is governed by HL7 International's IP Compliance Policy.
HL7 is working to improve the quality of health care by assuring the interoperability of health information. Standard representations of patient status, such as the CDA, and standard message formats, including HL7 Version 2.x and Version 3 Messages, are important aspects of realizing that vision. However, the goal of easily accessing and integrating information from multiple, independent health care providers has not yet been realized. For example, creating a patient-centric virtual lifetime health record by dynamically federating multiple data sources requires new information architectures that are highly scalable and capable of operating in loosely coupled environments.
hData seeks to simplify the exchange of information found in Electronic Health Records (EHR) systems by leveraging common web technologies such as RESTful architectures and the Atom syndication protocol, resulting in rapid development and lightweight web-enabled applications. Using mainstream technologies brings a host of advantages, including proven scalability, a rich tool ecosystem, rapid innovation, and a large community of web developers. The medical information community also needs to move in this direction to exploit mobile platforms, which unquestionably will be primary endpoints for clinicians and patients alike.
hData is a set of related standards, as shown in Figure 1. The components are:

Figure 1. The hData Family of Standards
Having explained what hData is, it is also important to state what hData is not:
The relationship of the hData to existing HL7 concepts is illustrated in Fig. 2. This diagram (which is not UML) shows that the current specification provides a framework for the data exchanged through the REST realization of the HL7 RLUS service functional model, while the OMG’s hData REST Binding for RLUS provides the HTTP semantics for the network exchange.
The hData Content Profiles are Implementation Guides created by the HL7 domain working group, formatted as HCP documentation packages (see Section 3.2). These packages define in detail the type of content that gets exchanged with hData, and the underlying semantics (both from a static and behavioral perspective). While it is expected that various CDA and other XML documents, images, and text documents will be exchanged with hData, there are practically no limits on the content types that can be exchanged.
The information identified by the domain analysts must be rendered into “exchangeable goods”, i.e. serialized instances of the information that can be exchanged through over a network or by other means. This process governed by the Implementable Technology Specification (ITS) working group in HL7. It is fairly straightforward when using the standard XML ITS, but future developments within the ITS WG may also allow simplified XML structures or JSON encoded content for wire-level exchanges.

Figure 2. hData in the context of HL7 concepts
This document uses the following namespaces. This specification uses a number of namespace prefixes throughout; they are listed in Table 1. Note that the choice of any namespace prefix is arbitrary and not semantically significant. Note that namespace identifiers are not necessarily resolvable links.
|
Namespace Prefix |
Namespace URI |
Description |
|
hrf |
http://www.hl7.org/schemas/hdata/2009/06/core |
Namespace for elements in this document |
|
hcp |
http://www.hl7.org/schemas/hdata/2010/04/hcp |
Namespace for hData Content Profile Description language |
|
hrf-md |
http://www.hl7.org/schemas/hdata/2009/11/metadata |
Namespace for metadata |
|
xs |
http://www.w3.org/2001/XMLSchema |
XML Schema namespace |
|
ds |
http://www.w3.org/2000/09/xmldsig# |
Namespace for XML Digital Signature |
|
atom |
http://www.w3.org/2005/Atom |
Namespace for the Atom syndication format |
|
rddl |
http://www.rddl.org/ |
Namespace for RDDL |
Table 1. Namespaces referenced in the hData Specification
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [5].
When describing concrete XML schemas, this specification uses the following notation: each member of an element's [children] or [attributes] property is described using an XPath notation (e.g., /x:MyHeader/x:SomeProperty/@value1). If present, the pair in parenthesis after the element name definition contains the data type and the multiplicity (such as 0..1, 1, 1..*, etc.).
Note also that only the W3C XML schemas linked in Section 3 at the end of this document are normative – any schema fragment or other schema description within the main body of this document are informational only.
The basic approach of the hData Record Format is to represent medical data through linked documents, which are organized through an abstract hierarchy (Figure 3). The hData RESTful API specification maps this abstract hierarchy to a concrete implementation, such as a web resource hierarchy. In order to be able to accommodate more complex situations, HRF was designed with a number of extension points that allow the definition and insertion of new components.

Figure 3. Abstract information hierarchy defined by hData
The overall structure of an hData Record is a hierarchy, similar to the folder-file paradigm of many computer file systems. The root of the hierarchy can correspond to an individual patient, and thus all documents in the hierarchy of such a record are typically associated with that patient. As mentioned earlier, the hierarchy is typically not an actual data repository, but rather an abstract arrangement of information from the repository, whose form we do not specify. Note that there is no need to have an hData record instance to correspond to a single patient: hData MAY be used for other use cases (such as e.g. a hospital ward management system or a lab order system), as well.
To draw a distinction from an actual file system, we use the word “section” instead “folder” and “section document” or “document” instead of “file”. At the top of the hierarchy is a special document which is called the “root document”, which describes many of the properties of the hierarchy (see 2.2). Sections themselves can be specified as optional or required in the root document. Implementers can either extend existing sections or define new sections. Such newly created sections MUST be registered in the root document to be accessible, and included in the corresponding Atom feed (see 2.3.2).
Each section contains a set of subsections and/or documents. Typically, all documents are grouped into sections by purpose, and thus share the same format, which is declared in the root document. For example, a section may contain laboratory result documents. Sections can also contain other Sections, for example, a section for radiology under laboratory results. The semantics and rationale for the grouping is to be documented within the hData Content Profile (HCP) description package (see section 3.2). Since hData can accommodate multiple HCPs concurrently, multiple groupings MAY be established in parallel, and the same document can exist in more than one place in the hierarchy.
The root document (root.xml) is located at the root of the hierarchy. It contains the following elements (REQUIRED if not marked otherwise):
The root document schema MAY be extended to support additional features such as a mechanism to record versions of the data contained in the document.
Extensions define the default type of section documents that appear in a section. Extensions MUST be identified by a globally unique identifier. It is RECOMMENDED that this unique identifier be a URL pointing to a RDDL document. Section documents MAY override the default type in their metadata, but only with Extensions that are registered in the root document.
The RDDL document will assist in the creation, consumption or validation of section documents. It is RECOMMENDED that Extensions using XML-based section documents include a <rddl:resource> element with the xlink:role attribute set to “http://www.w3.org/2001/XMLSchema”. For Extensions using other content types, it is RECOMMENDED that the RDDL document includes a description of the acceptable content in section documents.
From an HL7 RLUS Service Functional Model perspective, each Extension is a semantic signifier, and the root.xml document defines a default semantic signifier for each section.
Sections within an hData record form an abstract hierarchy, similar to the file folder structure commonly used in hierarchical file systems. Sections can contain either documents or other sections. Sections are identified by their path. The path to a section is constructed by starting with a forward slash (“/”) and appending all section path names from the root of the HDR to the section. Section documents contained in sections comply with the contentType of an Extension registered in the root document. An Extension MUST be listed in /hrf:extensions for it to be used by a section. Sections MAY use the same semantics for confidentiality, access control, and consent as described in the metadata for section documents in 2.5.1. Sections MAY be empty.
At each section (other than the top level), a collection of documents can be obtained. Within each section, the documents MUST conform to the type defined by the Extension unless declared otherwise by the section document’s metadata. Section documents can be of any media type, including binary media types. Examples include XML documents (such as CDA documents, H7v3 messages, or simplified XML wire formats, etc.), MS Word documents, DICOM files, RDF graphs, etc. A non-normative example is provided in Section 5 of this specification.
The top level section (located at the base URL) cannot contain section documents. The top-level section contains only the top-level Atom feed, the root document, and other sections.
Each section (including the top level), contains an Atom feed [6], which can be loosely seen as a “table of contents” for the section, containing metadata pertaining to each section document and child subsection. The Atom feed is located at the URL of the section. For the top level, it is located at the base URL. Each section document and child section MUST have a corresponding </atom:feed/atom:entry> element. If the section document type is different from the type defined in the section’s Extension, it MUST indicate its type in the /atom:feed/atom:entry/atom:link/@type attribute. Each </atom:feed/atom:entry> MAY contain an <atom:link> element where the href attribute refers to the section document. Additional metadata is contained in the <hrf-md:DocumentMetaData> element of the <atom:entry>, which is an Atom extension. The security requirements for the metadata are described in section 2.4.
The following Atom feed-level elements are RECOMMENDED:
For each child of a section (either section document or section) the Atom feed of the parent section provides one <atom:entry> node. The following list of child nodes defines how they MUST be populated:
The <hrf-md:DocumentMetaData> tag (REQUIRED) contains additional metadata on the section document, as follows:
There are two more types that are being used in <hrf-md:DocumentMetaData>: <hrf-md:PedigreeInfo> and <hrf-md:LinkInfo>. This is the schema for <hrf-md:PedigreeInfo>
This is the schema for <hrf-md:LinkInfo>:
The schema for the <hrf-md:ChangeInfo> is this:
The metadata for a section document is only valid for the system that currently hosts the section document. If an HDR is copied in portions or in its entirety, the system to which it is copied (referred to below as “new system”) MUST recompute the metadata according to the following rules:
If a specific hData Content Profiles requires additional or special metadata processing instructions, these processing instructions MUST be specified in the master documentation and in the behavioral model. For these situations, a mapping between the states described in the the domain model and the processing instructions of the hData Content Profile SHOULD be provided.
This specification does not specify how patient consent, privacy policy, and access controls are to be implemented. Any underlying transport mechanism MUST be able to provide a system for providing functionality to limit access to the overall record or portions thereof. Requirements for access to the overall record, as well as individual sections MUST be documented in detail in the hData Content Profile (see section 3). The underlying transport MUST guarantee to be able to provide the security requirement specified in the hData Content Profile.
This specification does not specify which sections are required for an hData Record. This is done in separate hData Content Profiles (HCP) which are specified through a HCP documentation package. An hData Content Profile prescribes the required and optional content a record must provide, and allocates the place for the section documents within the hierarchical structure. Note that a single hData record can be compliant with multiple HCPs.
Similar to RLUS [4], the definition of the payloads contained in an HDR is beyond the scope of the HL7 hData specification. The HCP definition document (see section 3.3) or the metadata for each document contains the RLUS semantic signifiers ([4], section 9.1) for the section document resource in the form of a URI. As such, any HL7 Version 3 compliant HCP will need to be accompanied by a Localized Information Model (LIM) that formally describes the semantic signifiers. As such, an HCP constitutes Semantic Profile in the sense of [5], Section 6.1.
The HCP documentation package is composed of the following documents:
The hData Content Profile Documentation Package may help to formulate a U.S. National Information Exchange (NIEM) Information Exchange Package Documentation (IEPD), if this data model management methodology is used by hData implementers.
To describe hData Content Profiles, the following schema is used for the HCP definition file:
This section contains the schema for the root document (see Section 2.2). All instances of root documents MUST validate against this schema definition.
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2009-11 The MITRE Corporation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:core="http://www.hl7.org/schemas/hdata/2009/06/core" elementFormDefault="qualified" targetNamespace="http://www.hl7.org/schemas/hdata/2009/06/core"> <xs:element name="root"> <xs:complexType> <xs:all> <xs:element ref="core:id"/> <xs:element ref="core:version"/> <xs:element ref="core:created"/> <xs:element ref="core:lastModified"/> <xs:element ref="core:extensions"/> <xs:element ref="core:sections"/> </xs:all> </xs:complexType> </xs:element> <xs:element name="id" type="xs:string"/> <xs:element name="version" type="xs:string"/> <xs:element name="created" type="xs:date"/> <xs:element name="lastModified" type="xs:date"/> <xs:element name="extensions"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="core:extension"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="extension"> <xs:complexType mixed="true"> <xs:attributeGroup ref="core:extension"/> </xs:complexType> </xs:element> <xs:element name="sections"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="core:section"/> </xs:sequence> </xs:complexType> </xs:element> <xs:attributeGroup name="extension"> <xs:attribute name="contentType" type="xs:string" use="optional"/> <xs:attribute name="extensionId" type="xs:string" use="required"/> </xs:attributeGroup> <xs:element name="section"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="core:section"/> </xs:sequence> <xs:attribute name="path" use="required"/> <xs:attribute name="name" use="optional"/> <xs:attribute name="extensionId" use="required"/> <xs:attribute name="requirement" use="required"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="mandatory"/> <xs:enumeration value="optional"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:schema>
This section contains the schema for the hData Content Profile defintion (see Section 3). All instances of HCP definition documents MUST validate against this schema definition.
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2010 The MITRE Corporation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:hcp="http://www.hl7.org/schemas/hdata/2010/04/hcp" xmlns:core="http://www.hl7.org/schemas/hdata/2009/06/core" elementFormDefault="qualified" targetNamespace="http://www.hl7.org/schemas/hdata/2010/04/hcp"> <xs:import namespace="http://www.hl7.org/schemas/hdata/2009/06/core" /> <xs:element name="hcp"> <xs:complexType> <xs:all> <xs:element ref="core:extensions"/> <xs:element ref="core:sections"/> </xs:all> <xs:attribute name="name" use="required" type="xs:string"/> <xs:attribute name="id" use="required" type="xs:anyURI"/> </xs:complexType> </xs:element> </xs:schema>
This section contains the schema for the section document metadata (see Section 2.3.2 ). All instances of metadata documents MUST validate against this schema definition.
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2009 The MITRE Corporation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:hd-md="http://www.hl7.org/schemas/hdata/2009/11/metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" targetNamespace="http://www.hl7.org/schemas/hdata/2009/11/metadata"> <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2008/REC-xmldsig-core-20080610/xmldsig-core-schema.xsd"/> <xs:element name="DocumentMetaData"> <xs:annotation> <xs:documentation> DocumentMetaData is the top-level element for the hData meta data specification. It is embedded with every Atom 1.0 Content node. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="PedigreeInfo" type="hd-md:PedigreeInfo" maxOccurs="unbounded"> <xs:annotation> <xs:documentation> This optional node holds the pedigree information for the Section Document. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="Title" type="xs:string"> <xs:annotation> <xs:documentation> This required element holds the title of the Section Document. </xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0" name="LinkedDocuments"> <xs:annotation> <xs:documentation> This optional node holds a list of URI links to documents that are related to this Section Document. Use depends on the semantics of the Section Document Type. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Link" type="hd-md:LinkInfo"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="RecordDate"> <xs:annotation> <xs:documentation> This required node holds the information about Document creation and modification. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="CreatedDateTime" type="xs:dateTime"> <xs:annotation> <xs:documentation> This required element contains the dateTime of creation of this documment. If this document is not derived (see PedigreeInfo), this is the time of the creation of the original. If this document is derived from another origin, this element contains the date of derivation. </xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0" name="Modified"> <xs:annotation> <xs:documentation> This optional node is first created when the document is changed for the first time. It contains a collection of modification dates with optional pedigree information of the modifier. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element maxOccurs="unbounded" name="ModifiedInfo" type="hd-md:ChangeInfo"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Copied"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="CopiedInfo" type="hd-md:ChangeInfo"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element minOccurs="0" name="Confidentiality" type="xs:string"> <xs:annotation> <xs:documentation> This element contains controls for confidentiality and MUST be equivalent to the ClinicalDocument.confidentialityCode in CDA R2 </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:attribute name="MediaType" type="xs:string" use="optional"> <xs:annotation> <xs:documentation> This attribute contains the media type of the document itself. If it is not present, the default media type of the content type is assumed. </xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="ContentType" type="xs:anyURI" use="optional"> <xs:annotation> <xs:documentation> This attribute contains the URI for the content type of this document. If it is not present, the content type for the Section is implied. Note that the current hData Content Profiles assume that the content type for all Section Documents within a given Section is uniform. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> <xs:complexType name="PedigreeInfo"> <xs:annotation> <xs:documentation> This node contains the pedigree information. </xs:documentation> </xs:annotation> <xs:sequence> <xs:element minOccurs="0" name="XmlSignature" maxOccurs="unbounded"> <xs:annotation> <xs:documentation> This optional node contains the signature information on the document or this meta data. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element ref="ds:Signature"> <xs:annotation> <xs:documentation> This Signature MUST contain: 1. a valid Reference to either the metadata or the Section Document 2. the ds:KeyInfo for the signer (optional with DSig - required here) </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:attribute name="documentMethod"> <xs:annotation> <xs:documentation>This optional attribute indicates what method was used to transform binary Section Document mediatypes into XML files for signature. Currently the only permitted methods are xml and base64. xml is the default XML signature over XML documents. base64 encodes a data stream into an XML document. The root node it root and contains the BASE64 encoded data. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="base64"/> <xs:enumeration value="xml"/> <xs:enumeration value="sha256"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element minOccurs="0" maxOccurs="1" name="Source"> <xs:annotation> <xs:documentation>This node indicates the source of this data. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="PedigreeInfo" type="hd-md:PedigreeInfo" minOccurs="0" maxOccurs="unbounded"/> <xs:element maxOccurs="unbounded" minOccurs="0" name="Document" type="hd-md:LinkInfo"/> </xs:sequence> <xs:attribute name="derived" type="xs:boolean"> <xs:annotation> <xs:documentation>If the data is derived (i.e. copied or compiled from other sources) this attribute MUST be set to true. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="Author"> <xs:annotation> <xs:documentation>The identifier of the creators of this document. For derived documents, this is the author. Note that this identifier can identify machines as well as humans. </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="typeCode" type="xs:string"> <xs:annotation> <xs:documentation>This OPTIONAL attribute indicates the specific role of the author. It is RECOMMENDED to use the following list of roles, which if used MUST semantically correspond to the participant roles listed in HL7 CDA R2 (section 4.2.2.) header. The CDA R2 specification is the authoritative list. o authenticator o author o custodian o dataEnterer o informant o legalAuthenticator o participant o performer o recordTarget </xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="role" type="xs:string"> <xs:annotation> <xs:documentation>This OPTIONAL attribute indicates the role of the author with respect to the patient (ie: admitting physician, nurse assistant). It is RECOMMENDED that the values used in this field correspond to HL7 ParticipationFunction.</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="id" type="xs:string"> <xs:annotation> <xs:documentation>This OPTIONAL attribute indicates the identifier of the author. </xs:documentation> </xs:annotation> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element minOccurs="0" name="Organization"> <xs:annotation> <xs:documentation>This element identifies the organization. </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:string"> <xs:annotation> <xs:documentation>This OPTIONAL attribute indicates the identifier of the organization.</xs:documentation> </xs:annotation> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="LinkInfo"> <xs:annotation> <xs:documentation>This node contains the link information</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="Target"> <xs:annotation> <xs:documentation>This required element of type anyURI contains the absolute link to the referenced Section Document.</xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:anyURI"> <xs:attribute name="targetExtension" type="xs:anyURI"> <xs:annotation> <xs:documentation>Semantic signifier for content at target </xs:documentation> </xs:annotation> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"/> </xs:sequence> </xs:complexType> <xs:complexType name="ChangeInfo"> <xs:annotation> <xs:documentation>This node contains the change time and data pedigree information. </xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="ChangeDateTime" type="xs:dateTime"> <xs:annotation> <xs:documentation> This required element record a dateTime when the document was modified. </xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0" name="PedigreeInfo" type="hd-md:PedigreeInfo"> <xs:annotation> <xs:documentation> This optional node contains the pedigree information of the modifier. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:schema>
This section outlines a simple hData Record that contains HL7 Continuity of Care Documents (CCD), simplified documents containing information about allergies, medications, and vital signs, and radiology imagery. The following figure illustrates the high-level structure of the example record.

Figure 4. Example hData Record Structure
Note that the HRF specification does not dictate how the information making up the Section documents is stored. For example, the CCD documents in this example can be populated from the same underlying data source as the simplified documents.
The following subsections describe each of the hData Record components.
The contents of the hData Record are described within the root.xml document (see Section 2.2). For the hData record outlined above, the root.xml document looks like this:
<?xml version="1.0" encoding="UTF-8"?> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://projecthdata.org/hdata/schemas/2009/06/core"> <id>125123124312</id> <version>1</version> <created>2010-02-09T15:01:35-5:00</created> <lastModified>2010-02-09T19:35:44-5:00</lastModified> <extensions> <extension extensionId="1" contentType="application/hl7-sda+xml"> http://hl7.org/v3/cda-r2/ccd </extension> <extension extensionId="2" contentType="application/xml"> http://hl7.org/hdata/2012/01/patientid </extension> <extension extensionId="3" contentType="image/png"> http://picturealliance.example.com/png/2011/05 </extension> <extension extensionId="4" contentType="application/xml" http://hl7.org/hdata/2012/01/allergies </extension> <extension extensionId="5" contentType="application/xml" http://hl7.org/hdata/2012/01/medications </extension> <extension extensionId="6" contentType="application/xml" http://hl7.org/hdata/2012/01/vitalsigns </extension> <extension extensionId="7"> urn:empty </extension> </extensions> <sections> <section path="org.hl7.ccd" extensionId="1" requirement="required" /> <section path="org.hl7.patientid" extensionId="2" requirement="required" /> <section path="com.provider.face" extensionId="3" requirement="required" /> <section path="org.hl7.simplified" extensionId="7" requirement="required"> <section path="allergies" extensionId="4" requirement="required" /> <section path="medications" extensionId="5" requirement="required" /> <section path="vital signs" extensionId="6" requirement="required" /> </section> </sections> </root>
This root document contains some basic metadata about itself: an identifier, the version of the hData Record Format that it conforms to, as well as its created and modified date.
The root document also contains a list of extensions. Extensions identify the formats of section documents. As such, they are the HL7 RLUS semantic signifiers for the Section Documents. The record format only requires that a globally unique string is used to identify an extension. It is recommended, but not necessary, that the string be a URL where information can be found about the extension. Note that the use of URLs with the domain part of the author guarantees global uniqueness. If the extension is describing XML documents, it is again recommended that the URL resolve to a RDDL document that provide a machine-resolvable link to the XML Schema for the documents that this extension is describing. For non-XML content, a description of the content type (such as e.g. PNG documentation) should be provided at the URL used for identifying the extension.
The sections identify their default content by referencing the extensionId attributes of the extension nodes. They also contain the path segment that is used to construct the full path to the section. It should be noted that sections can be nested. In this example, the results folder contains an empty folder (org.hl7.simplified) that cannot contain documents since its extension is “urn:empty”. However, it will still have an Atom feed which will provide links to the nested sections.
The metadata for section document is provided at the section level through an Atom 1.0 feed (see Section 2.6). Below is a sample feed for the /org.hl7.simplified/allergies section. Other sections will have very similar feeds, that describe contained section documents and nested sections.
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:hrf-md="http://projecthdata.org/hdata/schemas/2009/11/metadata"> <title>/org.hl7.simplified/allergies</title> <link href="http://example.org/patient1234/org.hl7.simplified/allergies/" rel="self" /> <updated>2011-12-13T18:30:02Z</updated> <entry> <id>allergy1.xml</id> <link href="http://example.org/patient1234/org.hl7.simplified/allergies/allergy1.xml" type="application/xml"/> <updated>2011-12-13T18:30:02Z</updated> <hrf-md:DocumentMetaData> <hrf-md:RecordDate> <hrf-md:CreateDateTime> 2009-10-10T09:21:55Z </hrf-md:CreatedDateTime> <hrf-md:Modified> <hrf-md:ModifiedDateTime> 2011-12-13T18:30:02Z </hrf-md:ModifiedDateTime> </hrf-md:Modified> </hrf-md:RecordDate> <hrf-md:LinkedDocuments> <hrf-md:LinkInfo> <hrf-md:Target targetExtension=" http://hl7.org/hdata/2012/01/allergies"> http://example.com/additionalPatientInfo/patient1234/allergyhistory </hrf-md:Target> </hrf-md:LinkInfo> </hrf-md:LinkedDocuments> </hrf-md:DocumentMetaData> </entry> <entry> <id>allergy2.xml</id> <link href="http://example.org/patient1234/org.hl7.simplified/allergies/allergy2.xml" type="application/xml"/> <updated>2010-02-27T12:21:11Z</updated> <hrf-md:DocumentMetaData> <hrf-md:PedigreeInfo> <hrf-md:Author typeCode="author" role="admitting physician">Dr. John Doe</hrf-md:Author> <hrf-md:Organization>Sample Provider, Inc.</hrf-md:Organization> </hrf-md:PedigreeInfo> <hrf-md:RecordDate> <hrf-md:CreatedDateTime> 2010-02-27T12:21:11Z </hrf-md:CreatedDateTime> </hrf-md:RecordDate> </hrf-md:DocumentMetaData> </entry> </feed>
The following hData Content Profile description document describes the hData Record in this example. Note that the simplified sections have been marked as optional.
<?xml version="1.0" encoding="UTF-8"?> <hcp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://projecthdata.org/hdata/schemas/2010/04/hcp" xmlns:hrf="http://projecthdata.org/hdata/schemas/2009/06/core" id="http://example.com/hdata/hcp/2011/05/sample" name="Example hData Content Profile" > <hrf:extensions> <hrf:extension extensionId="1" contentType="application/hl7-sda+xml"> http://hl7.org/v3/cda-r2/ccd </hrf:extension> <extension extensionId="2" contentType="application/xml"> http://hl7.org/hdata/2012/01/patientid </extension> <hrf:extension extensionId="3" contentType="image/png"> http://picturealliance.example.com/png/2011/05 </hrf:extension> <hrf:extension extensionId="4" contentType="application/xml" http://hl7.org/hdata/2012/01/allergies </hrf:extension> <hrf:extension extensionId="5" contentType="application/xml" http://hl7.org/hdata/2012/01/medications </hrf:extension> <hrf:extension extensionId="6" contentType="application/xml" http://hl7.org/hdata/2012/01/vitalsigns </hrf:extension> <hrf:extension extensionId="7"> urn:empty </hrf:extension> </hrf:extensions> <hrf:sections> <hrf:section path="org.hl7.ccd" extensionId="1" requirement="required" /> <hrf:section path="org.hl7.patientid" extensionId="2" requirement="required" /> <hrf:section path="com.provider.face" extensionId="3" requirement="required" /> <hrf:section path="org.hl7.simplified" extensionId="7" requirement="optional"> <hrf:section path="allergies" extensionId="4" requirement="optional" /> <hrf:section path="medications" extensionId="5" requirement="optional" /> <hrf:section path="vital signs" extensionId="6" requirement="optional" /> </hrf:section> </hrf:sections> </hcp>
HL7 hData Record Format (HRF) - This specification specifies an abstract hierarchical organization, packaging, and metadata for individual documents that represent the information in the sections or components of an EHR.
hData Record (HDR) - A single instance of the HRF.
hData REST Binding for RLUS – (see [1]) A OMG specification defining how the abstract hierarchical organization defined within the HRF specification is access and modified through a RESTful approach, using HTTP as the access protocol. It creates a unique mapping to an URL structure, and defines how HTTP verbs such as GET, PUT, DELETE, etc. affect the underlying information.
hData Content Profile (HCP) - A formal description of the content of an HDR. The HRF specification contains the definition of the HCP format.
[1] G. Beuchelt, et al., "hData REST Binding for RLUS", online at http://doc.omg.org/health/11-09-04, Object Management Group, 2011.
[2] D. Eastlake, et al., "W3C XML Signature Syntax and Processing (Second Edition)", online at http://www.w3.org/TR/xmldsig-core/, The Internet Society/W3C, 2008
[3] (informative) J. Bordon, et al., "Resource Directory Description Language (RDDL)", online at http://www.rddl.org/, 2002 – note that RDDL is an open specification that has not undergone formal standardization.
[4] J. Koisch et al. , "HL7 Resource Location and Updating Service (RLUS), DSTU Release 1", Health Level Seven, Inc., December 2006
[5] S. Bradner, “Key Words for use in RFCs to Indicate Requirement Levels”, online at http://www.ietf.org/rfc/rfc2119.txt, IETF Network Working Group, 1997
[6] J. Gregorio et al., “The Atom Publishing Protocol”, online at http://www.ietf.org/rfc/rfc5023.txt, IETF Network Working Group, 2007
| View Revision MarksHide Revision Marks | Return to top of page |