Clinical Research Data Capture

From IHE Wiki

Jump to: navigation, search

Introduction

This is a draft of the Clinical Research Data Capture Profile (CRD) from the QRPH Domain.

Contents


Profile Abstract

Clinical Research Data Capture Profile (CRD)

CRD describes the content and format to be used within the Prepopulation Data transaction described within the RFD Integration Profile. The purpose of this profile is to support a standard set of data in CCD format which the Form Filler provides for use in Clinical Research. In addition this profile will reference the ability to convert this output into a standard case report form (Standard CRF) consisting of ODM and CDASH.

Glossary

CCD
ASTM/HL7 Continuity of Care Document (CCD)
CDASH
Clinical Data Acquisition Standards Harmonization (CDASH)
Clinical Research CCD
Refers to the CCD constrained within the Clinical Research Data Capture (CRD) profile.
Form Manager
The Form Manager actor provides the store of forms ready for use by a Form Filler.
Form Filler
The Form Filler actor retrieves forms from a Form Manager as and when required. When requesting a form, the Form Filler actor can optionally provide context information by providing pre-population xml data in the request for use by the Form Manager. The Form Filler may also specify a Form Archiver actor. The Form Archiver actor specified by the Form Filler is in addition to any Form Archiver actors specified by the Form Manager.
Form Receiver
The Form Receiver actor receives and processes completed or partially completed forms instance data from a Form Filler. Form Receiver processing is out of the scope of the profile.
Form Archiver
The Form Archiver actor receives completed or partially completed forms instance data and stores these for archival purposes.
ODM
Operational Data Model (ODM)
Retrieve Form
The Retrieve Form transaction carries the form identifier from a Form Filler to a Form Manager. The transaction also allows a Form Filler to optionally specify a Form Archiver actor as well as optionally containing context information in the form of xml data to be used in the selection and

pre-population of the requested form prior to the form being returned to the Form Filler.

RFD
Retrieve Form for Data Capture Profile (RFD)
Standard CRF
Refers to a Standard Case Report Form in a ODM format which is mapped to CDASH

Also refer to Glossary of CDISC Terms at http://www.cdisc.org/glossary/index.html

Volume I

Clinical Research Data Capture (CRD)

Dependencies

Content Profile Dependency Dependency Type Purpose
Clinical Research Data Capture RFD Integration Profile This is a content profile that will be used in the context of the RFD Integration profile.

Profile Name

The Clinical Research Data Capture Profile (CRD)

CRD describes the content and format to be used within the Prepopulation Data transaction described within the RFD Integration Profile. The purpose of this profile is to support a standard set of data in CCD format which the Form Filler provides for use in Clinical Research. In addition this profile will reference the ability to convert this output into a standard case report form (Standard CRF) consisting of ODM and CDASH.


Use Case

The setting for the clinical research use case is a physicians’ practice where patient care is delivered side-by-side with clinical research activities. The site, Holbin Medical Group, is a multi-site physician practice, employing over 100 physicians in a variety of specialties. Holbin’s CEO encourages the physicians to participate as site investigators for pharmaceutical-sponsored clinical trials; Holbin provides support for clinical research activities in the form of a Research Department of twelve dedicated study coordinators, mostly RNs, along with clerical and data-entry support personnel. Holbin Medical Group uses an Electronic Health Record (EHR) and a number of sponsor-provided Electronic Data Capture (EDC) systems for documenting clinical trial activities. EDC is a system for documenting clinical trial activities. EDC is a remote data entry system, provided by the research sponsor, which uses either a laptop (thick or thin client) or a web site. For our purposes, an EHR is any application which is the primary site for documenting patient care, and retrieving patient care information. Thus we include in our span of interest many systems installed today that are not quite EHRs in the strictest sense, but which would still benefit from this approach.

Holbin’s involvement in a clinical study begins when the Research Department receives a request for proposal (RFP) or a request for a feasibility assessment (EU) from a study Sponsor. The Investigator or the Study Coordinator, Patricia Zone, RN, evaluates the RFP to assess if their facility has the required patient population (clinical condition and required numbers required by the study protocol) as specified in the clinical study protocol, as well as the business viability. A major issue that must be addressed is the time needed to perform the clinical study and whether or not the site has the time to perform the study appropriately. Once these concerns are addressed satisfactorily and the site is selected for the trial, the financial aspects are addressed and the site then sends the required regulatory documentation to the Sponsor. The Sponsor then provides Protocol-specific training to the Physician Investigator and other study personnel.

During the trial set-up period, Patricia, together with the Investigator ensures that the appropriate system security is in place for this protocol, recruits patients to participate as subjects according to inclusion and exclusion criteria described in the study protocol schedules patient visits, manages data capture and data entry, ensures that IRB approval has been obtained, maintains required regulatory documents and performs all the attendant financial tasks.

Patricia, under the supervision of the Investigator contacts Corey Jones, a patient at Holbin, about participating in the trial, and Corey agrees to participate as a subject. Patricia registers Corey in the EHR as a subject in trial #1234, using the EHR’s patient index. She schedules Corey’s study visits using the EHR scheduling module, and flags the visits as pertaining to the trial #1234. After the set-up stage, the site initiates clinical trial care and trial-specific documentation.

The use case continues with current state and desired state scenarios, which describe data capture utilizing EDC technology during a patient clinical trial visit before and after the RFD implementation.

Further information on topic may be found at custom essay writing service page

Current State

Corey Jones arrives at the clinic for a scheduled trial visit and meets with Patricia Zone for a face-to-face interview. Patricia logs into the EHR and documents the visit with a terse entry: ‘Mrs. Jones comes in for a clinical halloween contacts trial visit associated with study #1234.’ Patricia interviews Mrs. Jones, makes some observations, and records her observation on a source paper document. She looks up recent lab results in the EHR and records them in the Case Report Form (CRF). The EHR provides only a portion of the data required to complete the form, the rest comes from the interview and observations. (Estimates on the percentage of data required for a clinical trial that would be available in an EHR vary from 5% to 40%. Even in the best case, the EHR typically captures only a subset of the data required by a study protocol.)

The completed source document is forwarded to Bob, the data entry person. Bob identifies the CRF as belonging to trial #1234, and selects the trial #1234 EDC system, which may be housed on a dedicated laptop provided by the sponsor or may be accessible via a browser session connected to the Sponsor’s EDC system via the Internet. He takes a three ring binder off the shelf and refers to his ‘crib sheet’ to get the instructions for how to use this particular system. He logs into the EDC application, using a user name and password unique to this system, and enters the data into the correct electronic case report form (eCRF) for that trial visit. Once the source document has been processed, Bob files it in a ‘banker’s box’ as part of the permanent source record of the trial (in order to meet the requirements of the Federal Code of Regulations 21CFR 312:62).

In addition to trial #1234, Bob performs data entry on eight additional EDC systems, five on dedicated laptops and three that are web-based. The web-based EDC systems save on table space, but still require entries in the three ring binders where Bob puts his ‘crib sheets’. It is a chore to make sure that data from a particular trial gets entered into the corresponding laptop with its unique login ritual and data capture form, so Bob experiences much frustration in dealing with this unwieldy set of systems. Bob is a conscientious employee, and stays current in his work. But in many other sites the data entry person holds the CRF for a period of time before entering the data, perhaps entering data twice a month, or entering the data the week before the monitor visit occurs.

Desired State

Mrs. Jones arrives for a visit and Patricia logs into the EHR, pulls up Mrs. Jones’s record, and identifies the scheduled clinical trial visit. Because of the patient identification and scheduling steps that took place in the set-up stage, the EHR recognizes Mrs. Jones as a subject in Trial 1234, and requests an electronic case report form from trial #1234’s, using RFD. If the trial is sufficiently complex, the retrieved form may contain a list of relevant forms from the RFD Forms Manager system from which Patricia may choose. Patricia selects the appropriate form, the EHR checks Patricia’s credentials, confirms that she is empowered to view the form, and displays the form. (The data capture form is essentially the same form that an EDC system would offer for this visit, and its presentation may take on some of the look and feel of the EHR’s user interface.)

Nurse Patricia interviews Mrs. Jones and enters data into the clinical trial form as presented in the EHR. The clinical site personnel will be well acquainted with the basic data collection variables* that appear on the clinical trial form as they are consistently collected in all types/phases of clinical trials. Applicable data from the EHR database are now used to pre-populate some of the clinical trial data fields. Additional data may need to be captured interactively via the forms (which may have built-in edit checks). Upon completing the form, Patricia hits the submit button, and the EHR returns the complete form to the EDC system, using RFD. A copy of the document is archived in the site clinical trial document vault as part of the permanent source record of the trial.

*These clinical trial forms or domain modules are comprised of data collection variables identified by the Clinical Data Acquisition Standards Harmonizaation (CDASH) Initiative. The CDASH initiative identifies data collection fields that are applicable to all clinical trials regardless of therapeutic area or phase of trial. Addition data collection fields will have been added to the CDASH collection variables to capture the required therapeutic area or required fields by the study Sponsor.

Actors/Transaction

This content profile addresses the Retrieve Form [IT I-34] transaction with the Pre-population argument between the two actors, Form Filler and Form Manager. The Form Filler can request that the Form Filler context information be used by the Form Manager in the selection and/or creation of the returned form. The sharing of content from one actor to the other is addressed by the appropriate use of IHE profiles described below, and is out of scope of this profile. The Retrieve Form for Data Capture embodies the Form Filler Actor and Form Manager Actor. The sharing of content or updates from one actor to the other is addressed by the use of appropriate IHE profiles described by the 2007-2008 Trial Implementation Supplements to ITI-TF v. 4.0 specifically the Retrieve Form for Data Capture (RFD) suplement.


Clinical Research Data Capture Actor Diagram
Clinical Research Data Capture Actor Diagram

Grouping

Content Bindings with RFD

The Retrieve Form for Data Capture Profile (RFD) provides a method for gathering data within a user’s current application to meet the requirements of an external system. RFD supports the retrieval of forms by a Form Filler from a Form Manager optionally using prepopulation data sent from the Form Filler and then further describes display and completion of a form, and return of instance data from the Form Filler to the Form Reciever as well as optionally to a Form Archiver. This content profile will be bound to the prepopulation data transaction described in RFD.

For more details on these profiles, see the IHE IT Infrastructure Technical Framework.

Content profiles may impose additional requirements on the transactions used when grouped with actors from other IHE Profiles.

Options

Actor Option (1)
Clinical Research Data Capture Options
Form Filler CCD Option
ODM/CDASH Option
Form Manager CCD Option
ODM/CDASH Option

Note 1: Each Actor shall support at least one of these options.

Form Filler Options

CCD Option

This option defines that the Form Filler can produce a valid CCD as content for the prepopulation data transaction as defined in RFD. This valid CCD will be further constrained in volume 2 of this profile.

ODM/CDASH Option

This option defines that the Form Filler can produce a valid CDASH encoded ODM as content for the prepopulation data transaction as defined in RFD.

Form Manager Options

CCD Option

This option defines that the Form Manager can recieve a valid CCD as content for the prepopulation data transaction as defined in RFD. This valid CCD will be further constrained in volume 2 of this profile. Note the reference implementation that then supports conversion of this CCD into ODM/CDASH.

ODM/CDASH Option

This option defines that the Form Manager can recieve a valid CDASH encoded ODM as content for the prepopulation data transaction as defined in RFD. Note the reference implementation will not apply to this option as no transform is needed.

Process Flow

Clinical Research Data Capture Process Flow for CCD Option
Clinical Research Data Capture Process Flow for CCD Option

In this Process Flow, the Form Filler knows which form it wants to retrieve from the Form Manager. In addition the Form Filler wants to send the prepopulation data for this form.

CCD Option: The CRD Profile in addition to the CCD option requires that this prepopulation data conform to the Clinical Research CCD. This CCD option requires the Form Manager to accept the Clinical Research CCD format. Inside the Form Manager there is a reference implementation (see section below) that then describes how the Form Manager could transform this Clinical Research CCD into Standard CRF.

ODM/CDASH Option: The CRD Profile in addition to the ODM/CDASH option requires that this prepopulation data conform to the Clinical Research ODM/CDASH. This ODM/CDASH option requires the Form Manager to accept the Clinical Research ODM/CDASH format.

The final step in this flow requires that the data that was sent to the Form Manager is then bound to the form and returned to the Form Filler.

Actor Definitions

Form Manager
The Form Manager actor provides the store of forms ready for use by a Form Filler.
Form Filler
The Form Filler actor retrieves forms from a Form Manager as and when required. When requesting a form, the Form Filler actor can optionally provide context information by providing pre-population xml data in the request for use by the Form Manager. The Form Filler may also specify a Form Archiver actor. The Form Archiver actor specified by the Form Filler is in addition to any Form Archiver actors specified by the Form Manager.

Transaction Definitions

Retrieve Form
The Retrieve Form transaction carries the form identifier from a Form Filler to a Form Manager. The transaction also allows a Form Filler to optionally specify a Form Archiver actor as well as optionally containing context information in the form of xml data to be used in the selection and pre-population of the requested form prior to the form being returned to the Form Filler.

Volume II

Clinical Research Data Capture Content

Standards

CDAR2 
Clinical Document Architecture, Release 2, 2005 HL7
CRS 
Implementation Guide for CDA Release 2 – Level 1 and 2 – Care Record Summary (US realm), 2006, HL7.
CCD 
ASTM/HL7 Continuity of Care Document (Draft)
ODM 
Operational Data Model Final Version 1.3
CDASH 
Clinical Data Acquisition Standards Harmonization (Draft)

Data Element Index

CDASH has defined domains and elements within these domains. The Clinical Research CCD described below overlays these domains. This Data Element Index is an attempt to describe which sections are intended to cover which domains.

CDASH Domains CCD Reference
Clinical Research Data Capture Data Elements
Demography CCD Header Information
Medical History Active Problems, Past Medical History, and Procedures and Interventions
Concommitant Medication Current Medications
Substance Use Social History
Vital Signs Vital Signs
Physical Exam Physical Exam
Adverse Events Allergies
Lab Test Results Coded Results
ECG Test Results Coded Results


Document Specification (CCD Option)

Use this specification if the CCD Option has been choosen.
Form Manager Actors can refer to the Reference Implementation below that outlines conversion of this CCD option into a standard case report form (Standard CRF) consisting of ODM and CDASH.

Data Element Optionality Template ID
Clinical Research Data Capture Constraints (CCD Option)
Date of Birth R patientRole/patient/birthTime
Gender R patientRole/patient/administrativeGenderCode
Ethnicity O patientRole/patient/ethnicGroupCode
Race R2 patientRole/patient/raceCode
Active Problems R 1.3.6.1.4.1.19376.1.5.3.1.3.6
Past Medical History R2 1.3.6.1.4.1.19376.1.5.3.1.3.8
Procedures and Interventions R2 1.3.6.1.4.1.19376.1.5.3.1.1.13.2.11
Social History R2 1.3.6.1.4.1.19376.1.5.3.1.3.16
Current Medications R 1.3.6.1.4.1.19376.1.5.3.1.3.19
Vital Signs R2 1.3.6.1.4.1.19376.1.5.3.1.1.5.3.2
Physical Exam R2 1.3.6.1.4.1.19376.1.5.3.1.1.9.15
Allergies and Other Adverse Reactions R 1.3.6.1.4.1.19376.1.5.3.1.3.13
Coded Results R2 1.3.6.1.4.1.19376.1.5.3.1.3.28


Optionality Key
R Required Section
R2 Required Section if data present
O Optional section
Header Sample

In order to ensure sufficient coverage to the Demography Domain within CDASH there are some constraints that have been applied to the Clinical Research CCD header. Specifically the Birthdate, Sex, Ethnicity, and Race are specified.

  <recordTarget>
    <patientRole classCode="PAT">
      <id root="27143B24-E580-4F47-9405-3D0DC2BF1223" extension="1022"/>
      <addr>
        <streetAddressLine/>
        <city/>
        <state>FM</state>
        <postalCode/>
        <country>Canada</country>
      </addr>
      <telecom nullFlavor="UNK" use="HP"/>
      <patient classCode="PSN" determinerCode="INSTANCE">
        <name>
          <prefix/>
          <given>Christine</given>
          <family>Smith</family>
          <suffix/>
        </name>
        <ethnicGroupCode code="364699009" displayName="ethnic group" 
          codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT"/>
        <administrativeGenderCode code="F" codeSystem="2.16.840.1.113883.5.1"/>
        <birthTime value="20040725"/>
        <raceCode code=”2106-3” codeSystem=”2.16.840.1.113883.5.104”/>
      </patient>
      <providerOrganization classCode="ORG" determinerCode="INSTANCE">
        <id root="2.16.840.1.113883.19.5"/>
      </providerOrganization>
    </patientRole>
  </recordTarget>
Active Problems Sample (1.3.6.1.4.1.19376.1.5.3.1.3.6)
<component>
  <section>    
    <templateId root='2.16.840.1.113883.10.20.1.11'/>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.6'/>
    <id root=' ' extension=' '/>
    <code code='11450-4' displayName='PROBLEM LIST'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>   
    <entry>
         :
      <!-- Required Problem Concern Entry element -->
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.4.5.2'/>
         :
    </entry>
       
  </section>
</component>
Past Medical History Sample (1.3.6.1.4.1.19376.1.5.3.1.3.8)
<component>
  <section>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.8'/>
    <id root=' ' extension=' '/>
    <code code='11348-0' displayName='HISTORY OF PAST ILLNESS'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>   
    <entry>
         :
      <!-- Required Problem Concern Entry element -->
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.4.5.2'/>
         :
    </entry>
       
  </section>
</component>
Procedures and Interventions Sample (1.3.6.1.4.1.19376.1.5.3.1.1.13.2.11)
<component>
  <section>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.13.2.11'/>
    <id root=' ' extension=' '/>
    <code code='X-PROC' displayName='PROCEDURES PERFORMED'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>      
    <entry>
      Required and optional entries as described above
    </entry>
       
  </section>
</component>
Social History Sample (1.3.6.1.4.1.19376.1.5.3.1.3.16)
<component>
  <section>    
    <templateId root='2.16.840.1.113883.10.20.1.15'/>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.16'/>
    <id root=' ' extension=' '/>
    <code code='29762-2' displayName='SOCIAL HISTORY'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>  
       
  </section>
</component>
Current Medications Sample (1.3.6.1.4.1.19376.1.5.3.1.3.19)
<component>
  <section>    <templateId root='2.16.840.1.113883.10.20.1.8'/>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.19'/>
    <id root=' ' extension=' '/>
    <code code='10160-0' displayName='HISTORY OF MEDICATION USE'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>   
    <entry>
         :
      <!-- Required Medications element -->
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.4.7'/>
         :
    </entry>
       
  </section>
</component>
Vital Signs Sample (1.3.6.1.4.1.19376.1.5.3.1.1.5.3.2)
<component>
  <section>    
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.25'/>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.5.3.2'/>
    <id root=' ' extension=' '/>
    <code code='8716-3' displayName='VITAL SIGNS'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>   
    <entry>
         :
      <!-- Required Vital Signs Organizer element -->
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.4.13.1'/>
         :
    </entry>
       
  </section>
</component>
Physical Exam Sample (1.3.6.1.4.1.19376.1.5.3.1.1.9.15)
<component>
  <section>    
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.24'/>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.15'/>
    <id root=' ' extension=' '/>
    <code code='29545-1' displayName='PHYSICAL EXAMINATION'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>  
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.25'/>
        <!-- Optional Vital Signs Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.16'/>
        <!-- Optional General Appearance Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.48'/>
        <!-- Optional Visible Implanted Medical Devices Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.17'/>
        <!-- Optional Integumentary System Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.18'/>
        <!-- Optional Head Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.19'/>
        <!-- Optional Eyes Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.20'/>
        <!-- Optional Ears, Nose, Mouth and Throat Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.21'/>
        <!-- Optional Ears Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.22'/>
        <!-- Optional Nose Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.23'/>
        <!-- Optional Mouth, Throat, and Teeth Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.24'/>
        <!-- Optional Neck Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.25'/>
        <!-- Optional Endocrine System Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.26'/>
        <!-- Optional Thorax and Lungs Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.27'/>
        <!-- Optional Chest Wall Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.28'/>
        <!-- Optional Breasts Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.29'/>
        <!-- Optional Heart Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.30'/>
        <!-- Optional Respiratory System Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.31'/>
        <!-- Optional Abdomen Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.32'/>
        <!-- Optional Lymphatic System Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.34'/>
        <!-- Optional Musculoskeletal System Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.35'/>
        <!-- Optional Neurologic System Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.36'/>
        <!-- Optional Genitalia Section content -->
      </section>
    </component>
    <component>
      <section>
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.1.9.37'/>
        <!-- Optional Rectum Section content -->
      </section>
    </component>
       
  </section>
</component>
Allergies and Other Adverse Reactions Sample (1.3.6.1.4.1.19376.1.5.3.1.3.13)
<component>
  <section>    
    <templateId root='2.16.840.1.113883.10.20.1.2'/>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.13'/>
    <id root=' ' extension=' '/>
    <code code='48765-2' displayName='Allergies, adverse reactions, alerts'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>   
    <entry>
         :
      <!-- Required Allergies and Intolerances Concern element -->
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.4.5.3'/>
         :
    </entry>
       
  </section>
</component>
Coded Results Sample (1.3.6.1.4.1.19376.1.5.3.1.3.28)
<component>
  <section>
    <templateId root='1.3.6.1.4.1.19376.1.5.3.1.3.28'/>
    <id root=' ' extension=' '/>
    <code code='30954-2' displayName='STUDIES SUMMARY'
      codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
    <text>
      Text as described above
    </text>   
    <entry>
         :
      <!-- Required Procedure Entry element -->
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.4.16'/>
         :
    </entry> 
    <entry>
         :
      <!-- Required if known References Entry element -->
        <templateId root='1.3.6.1.4.1.19376.1.5.3.1.4.4'/>
         :
    </entry>
       
  </section>
</component>

Document Specification (ODM/CDASH Option)

Use this specification if the ODM/CDASH Option has been choosen.

CDASH Domain Clinical Database Variable Name Optionality Definition
Clinical Research Data Capture Constraints (CDASH Option)
Common IdentifiersSTUDYIDR2Unique Identifier for a study within a submission.
SITEIDR2Unique identifier for the site.
SUBJIDR2Subject identifier.
INVIDOInvestigator identifier.
VISITOVisit Name.
DemographyBRTHYRRYear of subject’s birth.
BRTHMORMonth of subject’s birth.
BRTHDYR2Day of subject’s birth.
BRTHTMOTime of subject’s birth,
SEXRThe assemblage of physical properties or qualities by which male is distinguished from female; the physical difference between male and female; the distinguishing peculiarity of male or female. (NCI – CDISC Definition).
AGEONumeric Age of Subject.
AGEUOAge units.
DMDTCR2Date of collection.
DMTM (Note: If collected, will be derived into DMDTC.)OTime of collection.
ETHNICOA social group characterized by a distinctive social and cultural tradition maintained from generation to generation, a common history and origin and a sense of identification with the group; members of the group have distinctive features in their way of life, shared experiences and often a common genetic heritage; these features may be reflected in their experience of health and disease.
RACER2An arbitrary classification based on physical characteristics; a group of persons related by common descent or heredity.
Subject CharacteristicsSCDTCR2Date of collection.
SCTM (Note: If collected, will be derived into SCDTC.)OTime of collection.
OThe age (in weeks) of the newborn infant, counted from the first day of the woman’s last menstrual period (LMP) or health status indicators / Clinical Estimate (CE).
SCTESTCD ONatural eye color
SCTESTCD OSubject’s childbearing potential
SCTESTCD OEducation level achieved at start of study (Reference date)
SCTESTCD OSub-study participation information.
Medical HistoryMHTERMRVerbatim or preprinted CRF term for the medical condition or event.
MHONGRIdentifies the end of the event as being ONGOING or RESOLVED.
MHYNOLead prompt for the Medical History

(e.g., “Has the subject experienced any past and / or concomitant diseases or past surgeries?”).

MHSPIDOO sponsor-defined reference number (e.g., Preprinted line number).
MHCATOUsed to define a category of related records (e.g., CARDIAC or GENERAL).
MHSCATOA categorization of the condition or event pre-printed on the CRF or instructions.
MHOCCUROA pre-printed prompt used to indicate whether or not a medical condition has occurred.
MHSTDTCOStart Date of Medical History Event.
MHENDTCOEnd Date/Time of Medical History Event.
Concommitant MedicationCMYNOGeneral prompt question to aid in monitoring and data cleaning.
CMSPIDOA sponsor-defined reference number.
CMTRTRVerbatim drug name that is either pre-printed or collected on a CRF.
CMINGRDOMedication Ingredients.
CMINDCR2The reason for administration of a concomitant (non-study) medication. (e.g., Nausea, Hypertension) This is not the pharmacological/ therapeutic classification of an agent (e.g., antibiotic, analgesic, etc.), but the reason for its administration to the subject.
AESPIDOIdentifier for the adverse event that is the indication for this medication.
CMDOSTOTR2Total daily dose taken.
CMDOSFRMOName of the pharmaceutical dosage form (e.g., tablets, capsules, syrup) of delivery for the drug.
CMDOSFRQOHow often the medication was taken (e.g., BID, every other week, PRN).
CMDSTXT (Note: If collected, will be derived into CMDOSTXT or CMDOSE.)OThe dose of medication taken per administration.
CMDOSUOWithin structured dosage information, the unit associated with the dose (e.g., "mg" in "2mg three times per day).
CMDOSRGMOWithin structured dosage information, the number of units for the interval (e.g., in oncology where drug is given 1 week on, and 3 weeks off).
CMROUTER2Identifies the route of administration of the drug.
CMSTDTCRDate when the medication was first taken.
CMSTRFORelative time frame that the medication was first taken with respect to the sponsor-defined reference period.
CMSTTM (Note: If collected, will be derived into CMSTDTC.)R2Time the medication was started.
CMENDTCR2Date that the subject stopped taking the medication.
CMENRF CMONGO (Note: If collected, will be derived into CMENRF.)OIndicates medication is ongoing when no End/Stop Date is provided.
CMENTM (Note: If collected, will be derived into CMENDTC.)R2Time when the subject stopped taking the medication.
Substance UseSUTRT RThe type of substance (e.g., TOBACCO, ALCOHOL, CAFFEINE, etc. Or CIGARETTES, CIGARS, COFFEE, etc.).
SUNCFR2Substance Use Occurrence.
SUCAT OUsed to define a category of related records (e.g., TOBACCO, ALCOHOL, CAFFEINE, etc.).
SUDOSTXTOSubstance use consumption amounts or a range of consumption information collected in text form [e.g., 1-2 (packs), 8 (ounces), etc.].
SUDOSUOUnits for SUDOSTXT (e.g., PACKS, OUNCES, etc.).
SUDOSFRQOUsually expressed as the number of uses consumed per a specific interval (e.g., PER DAY, PER WEEK, OCCASIONAL).
SUSTDTCODate substance use started.
SUSTTM (Note: If collected, will be derived into SUSTDTC.)OTime substance use started.
SUENDTCODate substance use ended.
SUENTM (Note: If collected, will be derived into SUENDTC.)OTime substance use ended.
SUDUROThe duration of the substance use.
Vital SignsVSDTCR2Date of measurements
VSSPIDOSponsor defined reference number
VISITDYOStudy day of measurements, measured as integer days
VSTPTOText description of time when measurement should be taken
VSTM (Note: If collected, will be derived into VSDTC.)OTime of measurements.
VSTESTR2Verbatim name of the test or examination used to obtain the measurement or finding.
VSSTATR2Used to indicate that a vital signs measurement was not done.
VSORRESRResult of the vital signs measurement as originally received or collected.
VSORRESUROriginal units in which the data were collected.
VSLOCR2Location on body where measurement was performed.
VSPOSR2Position of the subject during a measurement or examination.
Physical Exam - Best Practice ApproachPESTATOUsed to indicate if exam was not done as scheduled.
PEDTCODate of examination.
PETM (Note: If collected, will be derived into PEDTC.)OTime of examination.
Physical Exam - Traditional ApproachPEDONEOUsed to indicate if exam was not done as scheduled.
PEDTCR2Date of examination.
PETM (Note: If collected, will be derived into PEDTC.)OTime of examination.
PESPIDOSponsor defined reference number.
Adverse EventsAEYNOGeneral prompt question to aid in monitoring and data cleaning.
AESPIDOA sponsor-defined reference number.
AETERMR2Verbatim (i.e., investigator reported term) description of the adverse event.
AESERR2Indicates whether or not the adverse event is determined to be “serious” according to the protocol.
AESERTP Or AESCAN AESCONG AESDISAB AESDTH AESHOSP AESLIFE AESOD AESMIE (see below)OCaptures the criteria required by protocol for determining why an event is “Serious”.
AESCANOCaptures the criteria required by protocol for determining why an event is “Serious”.
AESCONGOCaptures the criteria required by protocol for determining why an event is “Serious”.
AESDISABOCaptures the criteria required by protocol for determining why an event is “Serious”.
AESDTHOCaptures the criteria required by protocol for determining why an event is “Serious”.
AESHOSPOCaptures the criteria required by protocol for determining why an event is “Serious”.
AESLIFEOCaptures the criteria required by protocol for determining why an event is “Serious”.
AESODOCaptures the criteria required by protocol for determining why an event is “Serious”.
AESMIEOCaptures the criteria required by protocol for determining why an event is “Serious”.
AESTDTCR2Date when the adverse event started.
AESTTM (Note: If collected, will be derived into AESTDTC.)R2Time when the adverse event started.
AEENDTCR2Date when the adverse event resolved.
AEENRF AEONGOOIndicates AE is ongoing when no End/Stop date is provided.
AEENTM (Note: If collected, will be derived into AEENDTC.)R2Time when the adverse event resolved.
AESEV And/or AETOXGRR2Description of the severity of the adverse event.
AERELR2Indication of whether the investigational product had a causal effect on the adverse event, as reported by the clinician/investigator.
AERELTPR2Captures a category for an investigational product to which an adverse event is related.
AEACNR2Action(s) taken with the investigational product in response to the adverse event.
AEACNOTHODescribes Other Action(s) taken in response to the adverse event. (Does not include investigational products)
AEOUTR2Description of the subject’s status associated with an event.
Lab Test Results - Scenario 1: Central processingLBDTCR Date of sample collection.
LBTM (Note: If collected, will be derived into LBDTC.)R2Time of collection.
LBSTATR2 Status of whether or not lab was done.
LBCAT LBSCATR2Type of draw / category / panel name. Used to define a category of related records.
LBTPTR2Relative time for use when multiple sequential assessments are done.
LBFAST (for example)R2Conditions for sampling defined in the protocol.
LBREFIDR2Internal or external specimen identifier.
Lab Test Results - Scenario 2: Local processingLBDTCR Date of sample collection.
LBTM (Note: If collected, will be derived into LBDTC.)R2Time of collection.
LBSTATR2 Status of whether or not lab was done.
LBCAT LBSCATR2Type of draw / category / panel name. Used to define a category of related records.
LBTPTR2Relative time for use when multiple sequential assessments are done.
LBFAST (for example)R2Conditions for sampling defined in the protocol.
LBSPCCNDR2Free or standardized text describing the condition of the specimen.
LBTESTCD And/or LBTESTR2Verbatim name of the test or examination used to obtain the measurement or finding. Note any test normally performed by a clinical laboratory is considered a lab test.
LBORRESRResult of the measurement or finding as originally received or collected.
LBORRESUROriginal units in which the data were collected.
LBORNRLO LBORNRHI LBSTNRCR2Normal range for continuous measurements in original units.

Normal values for non-continuous measurements in original units.

LBNRINDR2Reference Range Indicator Indicates where value falls with respect to reference range defined by high and low ranges.
LBCLSG (Note: If collected will be mapped to SUPPQUAL domain.)R2Whether lab test results were clinically significant.
LBNAMR2Name of lab analyzing sample.
LBREFIDR2Internal or external specimen identifier.
Lab Test Results - Scenario 3: Central processing but CRF includes site assessment…LBDTCR Date of sample collection.
LBTM (Note: If collected, will be derived into LBDTC.)R2Time of collection.
LBSTATR2Status of whether or not lab was done.
LBCAT LBSCATR2Type of draw / category / panel name. Used to define a category of related records.
LBTPTR2Relative time for use when multiple sequential assessments are done,
LBFAST (for example)R2Conditions for sampling defined in the protocol.
LBTESTR Verbatim name of the test or examination used to obtain the measurement or finding. Note: any test normally performed by a clinical laboratory is considered a lab test.
LBORRESR2Result of the measurement or finding as originally received or collected.
LBCLSG (Note: If collected will be mapped to SUPPQUAL domain.)R2Whether lab test results were clinically significant.
LBNAMR2Name of lab analyzing sample.
LBREFIDR2Internal or external specimen identifier.
ECG Test Results - Scenario 1: Central reading…LBDTCRDate of sample collection.
LBTM (Note: If collected, will be derived into LBDTC.)OTime of collection.
SBSTATR2Status of whether or not lab was done.
LBCAT LBSCATR2Type of draw / category / panel name. Used to define a category of related records.
LBTPTR2Relative time for use when multiple sequential assessments are done.
LBFAST (for example)OConditions for sampling defined in the protocol.
LBREFIDO Internal or external specimen identifier.
ECG Test Results - Scenario 2: Local reading: ECGs…EGSTATR2Status of whether or not ECG was done.
EGREASNDO Describes why the ECG was not done (e.g., BROKEN EQUIPMENT, SUBJECT REFUSED).
EGDTCR2Date of ECG.
EGTM (Note: If collected, will be derived into EGDTC.)R2Time of ECG.
EGTPTR2Text description of planned time point when measurements should be taken for use when multiple sequential assessments are done
EGTESTCD And/or EGTESTRVerbatim name of the test or examination used to obtain the measurement or finding.
EGORRESRResult of the measurement or finding as originally received or collected.
EGORRESUR2Original units in which the data were collected.
EGCLSG (Note: If collected will be mapped to SUPPQUAL domain.)OWhether ECG results were clinically significant.
EGPOS, EGMETHOD (for example)O Condition for testing defined in the protocol.
EGEVALORole of the person who provided the evaluation. This should only be used for results that are subjective (e.g., assigned by a person or a group) and do not apply to quantitative results (i.e. ADJUDICATION COMMITTEE, INVESTIGATOR).
EGREFIDO Internal or external identifier.
ECG Test Results - Scenario 3: Central reading (as in Scenario 1): But…EGSTATR2Status of whether or not ECG was done.
EGREASNDO Describes why the ECG was not done (e.g., BROKEN EQUIPMENT, SUBJECT REFUSED).
EGDTCR2Date of ECG.
EGTM (Note: If collected, will be derived into EGDTC.)R2Time of ECG.
EGTPTR2Text description of planned time point when measurements should be taken for use when multiple sequential assessments are done.
EGTESTRVerbatim name of the test or examination used to obtain the measurement or finding.
EGORRESUR2Original units in which the data were collected.
EGCLSG (Note: If collected, will be mapped to SUPPQUAL domain.)R2Whether ECG results were clinically significant.
EGORRESR2Result of the measurement or finding as originally received or collected.
EGORRESUR2Original units in which the data were collected.
EGNAMR2Name of vendor providing ECG data.
EGPOS, EGMETHOD (for example)OConditions for testing defined in the protocol.
EGREFIDO Internal or external ECG identifier.


Optionality Key
R Required Section
R2 Required Section if data present
O Optional section
ODM Version 1.1 Sample http://cdisc.org/models/odm/v1.1/odm1-1-0-example.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE ODM SYSTEM "odm1-1-0.dtd" >
<!--
	This XML Example is intended to provide a very small, valid example of 
	a CDISC study using CDISC ODM V1.1
-->
<!--
	In this small example study, a pharmaceutical company is conducting a 
	Phase II initial efficacy study.  This pharmaceutical company 
	("The Pharm") has hired a contract research organization (CRO) to
 	collect, clean and complete data for this study.  The Pharm and the CRO 
	use completely different clinical data management systems, so the 2 
	companies have agreed to use CDISC'S ODM V1.1 for their data exchange.

	The data are coming in slowly and only the CRF pages from the first two
	visits for two patients have been returned from the investigational site
	to the CRO so far.  During the first visit, both demographic and vital 
	statistics data are collected. During the second visit, only vital 
	statistics are collected.  The data from the first patient's first visit
	included an incorrect systolic blood pressure. The incorrect value was 
	changed to the correct value in a separate data entry session, and this 
	change was captured in the audit trail of the clinical data management 
	system. 
-->
<ODM FileType="Transactional" FileOID="987-654-321" CreationDateTime="2001-11-15T16:37:21-05:00" AsOfDateTime="2001-11-15T16:37:21-05:00" Description="Two visits for patients P001 and P027, plus updates of data for P001" Granularity="All">
  <Study OID="123-456-789">
    <GlobalVariables>
      <StudyName>HarrisonA</StudyName>
      <StudyDescription>Phase II initial efficacy</StudyDescription>
      <ProtocolName>B00-2136</ProtocolName>
    </GlobalVariables>
    <BasicDefinitions/>
    <!-- Beginning of metadata definitions . . .    -->
    <MetaDataVersion OID="MetaDataVersion.001" Name="Release 1">
      <Protocol>
        <!--There are 2 study events defined, corresponding to Visit 1 and Visit 2.  On "Demog and Vitials:, signing unit is used, while on Visit 2, the "Vitals Only" is used
 -->
        <StudyEventRef StudyEventOID="VISIT_1" Mandatory="Yes"/>
        <StudyEventRef StudyEventOID="VISIT_2" Mandatory="Yes"/>
      </Protocol>
      <StudyEventDef OID="VISIT_1" Name="Visit1" Repeating="No" Type="Scheduled">
        <FormRef FormOID="PAGE_1" Mandatory="No"/>
      </StudyEventDef>
      <StudyEventDef OID="VISIT_2" Name="Visit2" Repeating="No" Type="Scheduled">
        <FormRef FormOID="PAGE_2" Mandatory="No"/>
      </StudyEventDef>
      <!--There are 2 signing units defined: one to collect demographics AND vitals and one to collect just vitals.
-->
      <FormDef OID="PAGE_1" Name="Demog and Vitals" Repeating="No">
        <ItemGroupRef ItemGroupOID="DEMOG" Mandatory="No"/>
        <ItemGroupRef ItemGroupOID="VITALS" Mandatory="No"/>
      </FormDef>
      <FormDef OID="PAGE_2" Name="Vitals Only" Repeating="No">
        <ItemGroupRef ItemGroupOID="VITALS" Mandatory="No"/>
      </FormDef>
      <!--There are 2 item groups (ItemGroups): Demographics and Vitals
-->
      <!--The demographics item group contains 7 item references (ItemRef) corresponding to Patient ID, Patient Initials, Sex, Date of Birth, Sponsor Patient ID, Weight (lb) and Weight (kg)-->
      <ItemGroupDef OID="DEMOG" Name="Demographics" Repeating="Yes" IsReferenceData="No" SASDatasetName="DEMOG">
        <ItemRef ItemOID="PT" Mandatory="No"/>
        <ItemRef ItemOID="INITIALS" Mandatory="No"/>
        <ItemRef ItemOID="SEX" Mandatory="No"/>
        <ItemRef ItemOID="DOB" Mandatory="No"/>
        <ItemRef ItemOID="SPONSOR_PTID" Mandatory="No"/>
        <ItemRef ItemOID="WEIGHT_LB" Mandatory="No"/>
        <ItemRef ItemOID="WEIGHT_KG" Mandatory="No"/>
      </ItemGroupDef>
      <!--The Vitals item group contains 6 item references (ItemRef) corresponding to the Patient ID, Visit Name, Systolic Blood Pressure, Diastolic Blood Pressure, Sponsor Patient ID, and Occurrence Number (of repeat measurement).-->
      <ItemGroupDef OID="VITALS" Name="Vital Signs" Repeating="Yes" IsReferenceData="No" SASDatasetName="VITALS">
        <ItemRef ItemOID="PT" Mandatory="No"/>
        <ItemRef ItemOID="VISITNAME" Mandatory="No"/>
        <ItemRef ItemOID="SBP" Mandatory="No"/>
        <ItemRef ItemOID="DBP" Mandatory="No"/>
        <ItemRef ItemOID="SPONSOR_PTID" Mandatory="No"/>
        <ItemRef ItemOID="OCCUR_NUM" Mandatory="No"/>
      </ItemGroupDef>
      <!--There are 12 items defined: Patient ID, Initials, Date of Birth, Sex, Systolic Blood Pressure, Diastolic Blood Pressure, Visit Name, Sponsor Patient ID, Visit Number (not currently used), Occurrence NUmber, Weight (lb) and Weight (kg).-->
      <ItemDef OID="PT" Name="PT" DataType="text" Length="4" SASFieldName="PT"/>
      <ItemDef OID="INITIALS" Name="Initials" DataType="text" Length="5" SASFieldName="INITIALS"/>
      <ItemDef OID="DOB" Name="Date of Birth" DataType="date" SASFieldName="DOB"/>
      <ItemDef OID="SEX" Name="Sex" DataType="text" Length="1" SASFieldName="SEX">
        <CodeListRef CodeListOID="CodeList.001"/>
      </ItemDef>
      <ItemDef OID="SBP" Name="Systolic Blood Pressure" DataType="integer" SASFieldName="SBP" Length="3"/>
      <ItemDef OID="DBP" Name="Diastolic Blood Pressure" DataType="integer" SASFieldName="DBP" Length="3"/>
      <ItemDef OID="VISITNAME" Name="Visit" DataType="text" Length="20" SASFieldName="VISNAME"/>
      <ItemDef OID="SPONSOR_PTID" Name="Sponsor Patient ID" DataType="text" Length="12" SASFieldName="SPONPTID"/>
      <ItemDef OID="VISITNUM" Name="Numeric Version of Visit" DataType="integer" SASFieldName="VISITNUM" Length="2"/>
      <ItemDef OID="OCCUR_NUM" Name="Occurence Number" DataType="integer" SASFieldName="OCCURNUM" Length="2"/>
      <ItemDef OID="WEIGHT_LB" Name="Weight in pounds" DataType="float" SASFieldName="WEIGHTLB" Length="4" SignificantDigits="1"/>
      <ItemDef OID="WEIGHT_KG" Name="Weight in kilograms " DataType="float" SASFieldName="WEIGHTKG" Length="4" SignificantDigits="1"/>
      <!--There is a single codelist for Sex with entries for "m" and "f".-->
      <CodeList OID="CodeList.001" Name="Sex" DataType="text" SASFormatName="CLSEX">
        <CodeListItem CodedValue="m">
          <Decode>
            <TranslatedText xml:lang="en">Male</TranslatedText>
          </Decode>
        </CodeListItem>
        <CodeListItem CodedValue="f">
          <Decode>
            <TranslatedText xml:lang="en">Female</TranslatedText>
          </Decode>
        </CodeListItem>
      </CodeList>
      <!--Since structure and content of Presentation have not yet been defined, we have inserted an empty Presentation element.-->
      <Presentation OID=""/>
    </MetaDataVersion>
  </Study>
  <!--Beginning of Administrative Data-->
  <AdminData>
    <!--There are 2 users: John Doe (the investigator) and Mary Brown (the data entry person)-->
    <User OID="User.001">
      <FirstName>John</FirstName>
      <LastName>Doe</LastName>
    </User>
    <User OID="User.002">
      <FirstName>Mary</FirstName>
      <LastName>Brown</LastName>
    </User>
    <!--There is 1 location: General Hospital (a site).-->
    <Location OID="Location.001" Name="General Hospital" LocationType="Site">
      <MetaDataVersionRef StudyOID="123-456-789" MetaDataVersionOID="MetaDataVersion.001" EffectiveDate="2001-10-19T10:45:57-05:00"/>
    </Location>
    <!--There is one signature definition (electronic signature for data entry)
-->
    <SignatureDef OID="SignatureDef.001" Methodology="Electronic">
      <Meaning>Entry</Meaning>
      <LegalReason>Signer accepts responsibility for initial data entry</LegalReason>
    </SignatureDef>
  </AdminData>
  <!--Beginning of Clinical Data-->
  <ClinicalData StudyOID="123-456-789" MetaDataVersionOID="MetaDataVersion.001">
    <!-- SubjectData element for the first of 2 patients in this example  -->
    <SubjectData SubjectKey="P001" TransactionType="Insert">
      <!--  EventData element for Visit 1 for this patient  -->
      <StudyEventData StudyEventOID="VISIT_1">
        <!-- FormData element for the DEMOG and Vitals form collected on Visit 1 (Original)  -->
        <FormData FormOID="PAGE_1">
          <AuditRecord>
            <UserRef UserOID="User.002"/>
            <LocationRef LocationOID="Location.001"/>
            <DateTimeStamp>2001-05-31-T10:08:40-05:00</DateTimeStamp>
          </AuditRecord>
          <!--  Electronic signature for this form   -->
          <Signature>
            <UserRef UserOID="User.001"/>
            <LocationRef LocationOID="Location.001"/>
            <SignatureRef SignatureOID="SignatureDef.001"/>
            <DateTimeStamp>2001-05-30T10:06:32-05:00</DateTimeStamp>
          </Signature>
          <!--  ItemGroupData element for the Demographics part of the form   -->
          <ItemGroupData ItemGroupOID="DEMOG" ItemGroupRepeatKey="1">
            <ItemData ItemOID="PT" Value="P001"/>
            <ItemData ItemOID="INITIALS" Value="AMH"/>
            <ItemData ItemOID="SEX" Value="f"/>
            <ItemData ItemOID="DOB" Value="1947-07-16"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-001"/>
            <ItemData ItemOID="WEIGHT_LB" Value="150"/>
            <ItemData ItemOID="WEIGHT_KG" Value="68.18"/>
            <!--  ItemGroupData element for the Vitals part of the form     -->
          </ItemGroupData>
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="">
            <ItemData ItemOID="PT" Value="P001"/>
            <ItemData ItemOID="VISITNAME" Value="Visit1"/>
            <ItemData ItemOID="SBP" Value="120"/>
            <ItemData ItemOID="DBP" Value="80"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-001"/>
            <ItemData ItemOID="OCCUR_NUM" Value="1"/>
          </ItemGroupData>
        </FormData>
        <!--  FormData element for the Vitals form collected on Visit 1 (Modified)    -->
      </StudyEventData>
      <!-- StudyEventData element for Visit 2 for the patient  -->
      <StudyEventData StudyEventOID="VISIT_2">
        <!--  FormData element for the Vitals only form collected on Visit 2  -->
        <FormData FormOID="PAGE_2">
          <AuditRecord>
            <UserRef UserOID="User.002"/>
            <LocationRef LocationOID="Location.001"/>
            <DateTimeStamp>2001-05-31T9:06:45-05:00</DateTimeStamp>
          </AuditRecord>
          <!-- Electronic signature for this form -->
          <Signature>
            <UserRef UserOID="User.001"/>
            <LocationRef LocationOID="Location.001"/>
            <SignatureRef SignatureOID="SignatureDef.001"/>
            <DateTimeStamp>2001-05-30T10:06:32-05:00</DateTimeStamp>
          </Signature>
          <!--  Data for 3 repeats of Vitals item group on this form -->
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="1">
            <ItemData ItemOID="PT" Value="P001"/>
            <ItemData ItemOID="VISITNAME" Value="Visit2"/>
            <ItemData ItemOID="SBP" Value="130"/>
            <ItemData ItemOID="DBP" Value="90"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-001"/>
            <ItemData ItemOID="OCCUR_NUM" Value="1"/>
          </ItemGroupData>
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="2">
            <ItemData ItemOID="PT" Value="P001"/>
            <ItemData ItemOID="VISITNAME" Value="Visit2"/>
            <ItemData ItemOID="SBP" Value="125"/>
            <ItemData ItemOID="DBP" Value="86"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-001"/>
            <ItemData ItemOID="OCCUR_NUM" Value="2"/>
          </ItemGroupData>
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="3">
            <ItemData ItemOID="PT" Value="P001"/>
            <ItemData ItemOID="VISITNAME" Value="Visit2"/>
            <ItemData ItemOID="SBP" Value="122"/>
            <ItemData ItemOID="DBP" Value="84"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-001"/>
            <ItemData ItemOID="OCCUR_NUM" Value="3"/>
          </ItemGroupData>
        </FormData>
      </StudyEventData>
    </SubjectData>
    <SubjectData SubjectKey="P001" TransactionType="Update">
      <StudyEventData StudyEventOID="VISIT_1">
        <FormData FormOID="Page 1">
          <AuditRecord>
            <UserRef UserOID="User.002"/>
            <LocationRef LocationOID="Location.001"/>
            <DateTimeStamp>2001-05-31T08:47:07-05:00</DateTimeStamp>
            <ReasonForChange>Error in initial data entry</ReasonForChange>
          </AuditRecord>
          <Signature>
            <UserRef UserOID="User.001"/>
            <LocationRef LocationOID="Location.001"/>
            <SignatureRef SignatureOID="SignatureDef.001"/>
            <DateTimeStamp>2001-05-30T10:06:32-05:00</DateTimeStamp>
          </Signature>
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="1">
            <ItemData ItemOID="SBP" Value="130"/>
          </ItemGroupData>
        </FormData>
      </StudyEventData>
    </SubjectData>
    <SubjectData SubjectKey="P027" TransactionType="Insert">
      <!--  EventData element for Visit 1 for this patient  -->
      <StudyEventData StudyEventOID="VISIT_1">
        <!-- FormData element for the DEMOG and Vitals form collected on Visit 1 (Original)  -->
        <FormData FormOID="PAGE_1">
          <AuditRecord>
            <UserRef UserOID="User.002"/>
            <LocationRef LocationOID="Location.001"/>
            <DateTimeStamp>2001-05-31-T10:08:40-05:00</DateTimeStamp>
          </AuditRecord>
          <!--  Electronic signature for this form   -->
          <Signature>
            <UserRef UserOID="User.001"/>
            <LocationRef LocationOID="Location.001"/>
            <SignatureRef SignatureOID="SignatureDef.001"/>
            <DateTimeStamp>2001-05-30T10:06:32-05:00</DateTimeStamp>
          </Signature>
          <!--  ItemGroupData element for the Demographics part of the form   -->
          <ItemGroupData ItemGroupOID="DEMOG" ItemGroupRepeatKey="1">
            <ItemData ItemOID="PT" Value="P027"/>
            <ItemData ItemOID="INITIALS" Value="VLP"/>
            <ItemData ItemOID="SEX" Value="f"/>
            <ItemData ItemOID="DOB" Value="1944-12-20"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-027"/>
            <ItemData ItemOID="WEIGHT_LB" Value="139"/>
            <ItemData ItemOID="WEIGHT_KG" Value="63.04"/>
            <!--  ItemGroupData element for the Vitals part of the form     -->
          </ItemGroupData>
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="">
            <ItemData ItemOID="PT" Value="P027"/>
            <ItemData ItemOID="VISITNAME" Value="Visit1"/>
            <ItemData ItemOID="SBP" Value="115"/>
            <ItemData ItemOID="DBP" Value="75"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-027"/>
            <ItemData ItemOID="OCCUR_NUM" Value="1"/>
          </ItemGroupData>
        </FormData>
        <!--  FormData element for the Vitals form collected on Visit 1 (Modified)    -->
      </StudyEventData>
      <!-- StudyEventData element for Visit 2 for the patient  -->
      <StudyEventData StudyEventOID="VISIT_2">
        <!--  FormData element for the Vitals only form collected on Visit 2  -->
        <FormData FormOID="PAGE_2">
          <AuditRecord>
            <UserRef UserOID="User.002"/>
            <LocationRef LocationOID="Location.001"/>
            <DateTimeStamp>2001-05-31T9:06:45-05:00</DateTimeStamp>
          </AuditRecord>
          <!-- Electronic signature for this form -->
          <Signature>
            <UserRef UserOID="User.001"/>
            <LocationRef LocationOID="Location.001"/>
            <SignatureRef SignatureOID="SignatureDef.001"/>
            <DateTimeStamp>2001-05-30T10:06:32-05:00</DateTimeStamp>
          </Signature>
          <!--  Data for 3 repeats of Vitals item group on this form -->
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="1">
            <ItemData ItemOID="PT" Value="P027"/>
            <ItemData ItemOID="VISITNAME" Value="Visit2"/>
            <ItemData ItemOID="SBP" Value="120"/>
            <ItemData ItemOID="DBP" Value="90"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-027"/>
            <ItemData ItemOID="OCCUR_NUM" Value="1"/>
          </ItemGroupData>
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="2">
            <ItemData ItemOID="PT" Value="P027"/>
            <ItemData ItemOID="VISITNAME" Value="Visit2"/>
            <ItemData ItemOID="SBP" Value="120"/>
            <ItemData ItemOID="DBP" Value="80"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-027"/>
            <ItemData ItemOID="OCCUR_NUM" Value="2"/>
          </ItemGroupData>
          <ItemGroupData ItemGroupOID="VITALS" ItemGroupRepeatKey="3">
            <ItemData ItemOID="PT" Value="P027"/>
            <ItemData ItemOID="VISITNAME" Value="Visit2"/>
            <ItemData ItemOID="SBP" Value="125"/>
            <ItemData ItemOID="DBP" Value="80"/>
            <ItemData ItemOID="SPONSOR_PTID" Value="B00-2136-027"/>
            <ItemData ItemOID="OCCUR_NUM" Value="3"/>
          </ItemGroupData>
        </FormData>
      </StudyEventData>
    </SubjectData>
  </ClinicalData>
</ODM>

Reference Implementation

Clinical Research CCD to Standard CRF (ODM/CDASH) Crosswalk

This section is intended to be a guide as to how a Form Manager would crosswalk a Clinical Research CCD structure into a CDASH compliant ODM structure (Standard CRF). The adopted format for this transformation from one structure to the other is an XSLT. The intent is to have this XSLT not be presented here within the CRD profile and remain static, but to further develop and refine this XSLT as supplemental material. The goal is to allow additional Use Cases to drive different flavors of transformations all of which might be available to be referenced. IHE is developing processes which aren't ready at time of this publication to help maintain source control and facilitate sharing and updating of this as well as other reference transformations. When the IHE process and procedures are determined this section will refer to those documents.

XSLT Sample

<?xml version="1.0" encoding="UTF-8"?>
<!-- mapping CCD to ODM/CDASH elements -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 	xmlns:cda="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="cda">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="no"/>
	
<xsl:template match="cda:ClinicalDocument">	
	<ODM xmlns:cd="http://www.cdisc.org/ns/odm/v1.3" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ODMVersion="1.3" FileOID="CLL.003" 
		PriorFileOID="CRF_CLL_v1.6" FileType="SnapShot" Description="IHE CDASH from CCD">
		<ClinicalData>
			<SubjectData>
				<SiteRef>
					<StudyEventData>
						<!--	ODM/CDASH.CommonIdentifiers	-->
						<xsl:call-template name="demography"/>
						<!--	ODM/CDASH.SubjectCharacteristics	-->
						<xsl:call-template name="medicalHistory"/>
						<xsl:call-template name="conMeds"/>
						<xsl:call-template name="substanceAbuse"/>
						<xsl:call-template name="vitalSigns"/>
						<!-- 	ODM/CDASH.Physical Exam 	-->
						<xsl:call-template name="adverseEvents"/>
						<xsl:call-template name="labResults"/>
						<!-- 	ODM/CDASH.ECG results 	-->
					</StudyEventData>
				</SiteRef>
			</SubjectData>
		</ClinicalData>	
	</ODM>
</xsl:template>


<!--	Demography	-->
<xsl:template name="demography">
	<xsl:variable name="patientNode" select="cda:recordTarget/cda:patientRole/cda:patient"/>
	<FormData>
		<xsl:attribute name="FormOID">DemographicsForm</xsl:attribute>
		<ItemGroupData ItemGroupOID='DM'>
			<ItemData ItemOID='SEX'>
				<xsl:attribute name="value">
					<xsl:value-of select="$patientNode/cda:administrativeGenderCode/@code"/>
				</xsl:attribute>
			</ItemData>
			<ItemData ItemOID='BRTHDTC'>
				<xsl:choose>
					<xsl:when test="$patientNode/cda:birthTime/@value">
						<xsl:attribute name="value">
							<xsl:value-of select="$patientNode/cda:birthTime/@value"/>
						</xsl:attribute>
					</xsl:when>
					<xsl:otherwise>
						<xsl:attribute name="nullFlavor">UNK</xsl:attribute>
					</xsl:otherwise>
				</xsl:choose>
			</ItemData>
			<ItemData ItemOID='ETHNIC'>
				<xsl:attribute name="value">
					<xsl:value-of select="$patientNode/cda:ethnicityCode/@displayName"/>
				</xsl:attribute>
			</ItemData>
			<ItemData ItemOID='RACE'>
				<xsl:attribute name="value">
					<xsl:value-of select="$patientNode/cda:raceCode/@displayName"/>
				</xsl:attribute>
			</ItemData>
		</ItemGroupData>
	</FormData>
</xsl:template>
	

<!-- 	Medical History - looking for entries in any of the following CDA sections:  Conditions, Past Medical History, Procedures	-->
<xsl:template name="medicalHistory">
	<xsl:variable name="ccdConditions" select="cda:component/cda:structuredBody/cda:component/cda:section[cda:code/@code='11450-4']"/>
	<xsl:variable name="ccdPMH" select="cda:component/cda:structuredBody/cda:component/cda:section[cda:code/@code='11348-0']"/>
	<xsl:variable name="ccdProcedures" select="cda:component/cda:structuredBody/cda:component/cda:section[cda:code/@code='47519-4']"/>
	<xsl:variable name="conditionsCount" select="count($ccdConditions/cda:entry)"/>
	<xsl:variable name="pmhCount" select="count($ccdPMH/cda:entry)"/>
	<xsl:variable name="proceduresCount" select="count($ccdProcedures/cda:entry)"/>
	
	<xsl:if test="($conditionsCount+$pmhCount+$proceduresCount)>0">
		<FormData FormOID='MedicalHistory'>
			<xsl:for-each select="$ccdConditions/cda:entry">
				<ItemGroupData ItemGroupOID='CONDITION'>
					<xsl:call-template name="problemItemData">
						<xsl:with-param name="theNode" select="."/>
					</xsl:call-template>
				</ItemGroupData>
			</xsl:for-each>
			<xsl:for-each select="$ccdPMH/cda:entry">
				<ItemGroupData ItemGroupOID='PASTCONDITION'>
					<xsl:call-template name="problemItemData">
						<xsl:with-param name="theNode" select="."/>
					</xsl:call-template>
				</ItemGroupData>
			</xsl:for-each>
			<xsl:for-each select="$ccdProcedures/cda:entry">
				<ItemGroupData ItemGroupOID='PROCEDURE'>
					<xsl:call-template name="procedureItemData">
						<xsl:with-param name="theNode" select="."/>
					</xsl:call-template>
				</ItemGroupData>
			</xsl:for-each>		
		</FormData>
	</xsl:if>
</xsl:template>


<!-- 	CON MEDS 	-->
<xsl:template name="conMeds">
	<xsl:variable name="ccdMedication" select="cda:component/cda:structuredBody/cda:component/cda:section[cda:code/@code='10160-0']"/>
	<xsl:variable name="conMedCount" select="count($ccdMedication/cda:entry)"/>
	<xsl:if test="$conMedCount>0">
		<FormData FormDataOID='ConMedForm'>
		<xsl:for-each select="$ccdMedication/cda:entry">
			<xsl:variable name="originalTextRef" select="cda:substanceAdministration/cda:consumable/cda:manufacturedProduct/cda:manufacturedMaterial/cda:code/cda:originalText/cda:reference/@value"/>
			<xsl:variable name="originalText" select="cda:substanceAdministration/cda:consumable/cda:manufacturedProduct/cda:manufacturedMaterial/cda:code/cda:originalText"/>
			<ItemGroupData ItemGroupOID='CM'>
				<ItemData ItemDataOID='CMTRT'>
					<xsl:attribute name="value">
						<xsl:choose>
							<xsl:when test="$originalTextRef"><xsl:value-of select="//*[@ID=substring-after($originalTextRef,'#')]"/></xsl:when>
							<xsl:otherwise><xsl:value-of select="$originalText"/></xsl:otherwise>
						</xsl:choose>					
					</xsl:attribute>
				</ItemData>
				<!--	Need table to translate HL7 frequency, e.g., 6h to BID	-->
				<xsl:variable name="routeCode" select="cda:substanceAdministration/cda:routeCode/@displayName"/>
				<xsl:if test="$routeCode">
					<ItemData ItemDataOID='CMROUTE'>
						<xsl:attribute name="value"><xsl:value-of select="$routeCode"/></xsl:attribute>
					</ItemData>
				</xsl:if>
				<xsl:variable name="medStartDate" select="cda:substanceAdministration/cda:effectiveTime[@xsi:type='IVL_TS']/cda:low/@value"/>
				<xsl:if test="$medStartDate">
					<ItemData ItemDataOID='CMSTDTC'>
						<xsl:attribute name="value"><xsl:value-of select="$medStartDate"/></xsl:attribute>
					</ItemData>
				</xsl:if>
				<xsl:variable name="medEndDate" select="cda:substanceAdministration/cda:effectiveTime[@xsi:type='IVL_TS']/cda:high/@value"/>
				<xsl:if test="$medEndDate">
					<ItemData ItemDataOID='CMENDDTC'>
						<xsl:attribute name="value"><xsl:value-of select="$medEndDate"/></xsl:attribute>
					</ItemData>
				</xsl:if>		
				<xsl:variable name="medIndicationValueNode" select="cda:substanceAdministration/cda:precondition/cda:criterion/cda:value"/>
				<xsl:if test="$medIndicationValueNode/@displayName">
					<ItemData ItemDataOID='CMINDC'>
						<xsl:attribute name="value">
							<xsl:value-of select="$medIndicationValueNode/@displayName"/>
						</xsl:attribute>
						<xsl:attribute name="xsi:type">
							<xsl:value-of select="$medIndicationValueNode/@xsi:type"/>
						</xsl:attribute>
						<xsl:attribute name="code">
							<xsl:value-of select="$medIndicationValueNode/@code"/>
						</xsl:attribute>
						<xsl:attribute name="codeSystem">
							<xsl:value-of select="$medIndicationValueNode/@codeSystem"/>
						</xsl:attribute>
					</ItemData>
				</xsl:if>
				<xsl:variable name="medDoseQuantity" select="cda:substanceAdministration/cda:doseQuantity/@value"/>
				<xsl:if test="$medDoseQuantity">
					<ItemData ItemDataOID='CMDSTXT'>
						<xsl:attribute name="value">
							<xsl:value-of select="$medDoseQuantity"/>
						</xsl:attribute>
					</ItemData>
				</xsl:if>
				</ItemGroupData>
		</xsl:for-each>
		</FormData>
	</xsl:if>
</xsl:template>


<!-- 	SUBSTANCE ABUSE 	-->
<xsl:template name="substanceAbuse">
	<!-- we could look into the social history for any of a specific list of substance abuse entries...if any are present then we emit the section -->
	<!-- however, there are probably too many codes to consider....just quickly looking we see several SNOMED codes for smoking, cigarette smoking, .... -->
</xsl:template>


<!-- Vital Signs -->
<xsl:template name="vitalSigns">
	<xsl:variable name="vitalsSection" select="cda:component/cda:structuredBody/cda:component/cda:section[cda:code/@code='8716-3']"/>
	<xsl:if test="$vitalsSection/cda:entry/cda:organizer">
		<FormData FormDataOID='VSForm'>
			<xsl:for-each select="$vitalsSection/cda:entry/cda:organizer/cda:component">
				<xsl:variable name="vitalsDateTime" select="cda:observation/cda:effectiveTime/@value"/>
				<ItemGroupData ItemGroupDataOID='VS'>
					<ItemData ItemDataOID='VSDTC'>
						<xsl:attribute name="value">
							<xsl:value-of select="$vitalsDateTime"/>
						</xsl:attribute>
					</ItemData>
					<xsl:variable name="vitalsResultNode" select="cda:observation/cda:value"/>
					<ItemData ItemDataOID='VSTEST'>
						<xsl:attribute name="value">
							<xsl:value-of select="cda:observation/cda:code/@displayName"/>
						</xsl:attribute>
					</ItemData>											
					<xsl:choose>
						<xsl:when test="$vitalsResultNode/@xsi:type='PQ'">
							<ItemData ItemDataOID='VSORRES'>
								<xsl:attribute name="value"><xsl:value-of select="$vitalsResultNode/@value"/></xsl:attribute>
							</ItemData>
							<ItemData ItemDataOID='VSORRESU'>
								<xsl:attribute name="value"><xsl:value-of select="$vitalsResultNode/@unit"/></xsl:attribute>
							</ItemData>
						</xsl:when>
						<xsl:otherwise>
							<ItemData ItemDataOID='VSORRES'><xsl:attribute name="value"><xsl:value-of select="$vitalsResultNode"/></xsl:attribute></ItemData>				
						</xsl:otherwise>
					</xsl:choose>
				</ItemGroupData>
			</xsl:for-each>
		</FormData>
	</xsl:if>
</xsl:template>


<!-- 	LB 	-->
<xsl:template name="labResults">
	<xsl:variable name="LRSection" select="cda:component/cda:structuredBody/cda:component/cda:section[cda:code/@code='30954-2']"/>
	<xsl:if test="$LRSection/cda:entry/cda:organizer">
		<FormData FormDataOID='LBForm'>
			<xsl:for-each select="$LRSection/cda:entry/cda:organizer/cda:component/cda:observation">
				<ItemGroupData ItemGroupDataOID='LB'>
					<ItemData ItemDataOID='LBDTC'>
						<xsl:attribute name="value">
							<xsl:value-of select="cda:effectiveTime/@value"/>
						</xsl:attribute>
					</ItemData>
					<ItemData ItemDataOID='LBSTAT'>
						<xsl:attribute name="value">
							<xsl:value-of select="cda:statusCode/@code"/>
						</xsl:attribute>
					</ItemData>
					<ItemData ItemDataOID='LBREFID'>
						<xsl:attribute name="value">
							<xsl:value-of select="cda:id/@root"/>
						</xsl:attribute>
						<xsl:attribute name="code">
							<xsl:value-of select="cda:code/@code"/>
						</xsl:attribute>
						<xsl:attribute name="codeSystem">
							<xsl:value-of select="cda:code/@codeSystem"/>
						</xsl:attribute>
					</ItemData>
					<ItemData ItemDataOID='LBTEST'>
						<xsl:attribute name="value">
							<xsl:value-of select="cda:code/@displayName"/>
						</xsl:attribute>
					</ItemData>
					<ItemData ItemDataOID='LBORRES'>
						<xsl:attribute name="value">
							<xsl:value-of select="cda:value/@value"/>
						</xsl:attribute>
						<xsl:attribute name="xsi:type">
							<xsl:value-of select="cda:value/@xsi:type"/>
						</xsl:attribute>
					</ItemData>					
					<ItemData ItemDataOID='LBORRESU'>
						<xsl:attribute name="value">
							<xsl:value-of select="cda:value/@unit"/>
						</xsl:attribute>
					</ItemData>
					<xsl:choose>
						<xsl:when test="cda:referenceRange/cda:observationRange/cda:value/cda:low/@value">
							<ItemData ItemDataOID='LBORNRLO'>
								<xsl:attribute name="value">
										<xsl:value-of select="cda:referenceRange/cda:observationRange/cda:value/cda:low/@value"/>
								</xsl:attribute>
							</ItemData>
						</xsl:when>
						<!--<xsl:otherwise>
							<ItemData ItemDataOID='LBORNRLO'>
								<xsl:attribute name="text">
									<xsl:value-of select="cda:referenceRange/cda:observationRange/cda:text"/>
								</xsl:attribute>
							</ItemData>
						</xsl:otherwise>-->
					</xsl:choose>
					<xsl:choose>
						<xsl:when test="cda:referenceRange/cda:observationRange/cda:value/cda:high/@value">
							<ItemData ItemDataOID='LBORNRHI'>
								<xsl:attribute name="value">
										<xsl:value-of select="cda:referenceRange/cda:observationRange/cda:value/cda:high/@value"/>
								</xsl:attribute>
							</ItemData>
						</xsl:when>
						<!--<xsl:otherwise>
							<ItemData ItemDataOID='LBORNRHI'>
								<xsl:attribute name="text">
									<xsl:value-of select="cda:referenceRange/cda:observationRange/cda:text"/>
								</xsl:attribute>
							</ItemData>
						</xsl:otherwise>-->
					</xsl:choose>
					<ItemData ItemDataOID='LBNRIND'>
						<xsl:attribute name="value">
							<xsl:value-of select="cda:interpretationCode/@code"/>
						</xsl:attribute>
						<xsl:attribute name="codeSystem">
							<xsl:value-of select="cda:interpretationCode/@codeSystem"/>
						</xsl:attribute>
					</ItemData>
				</ItemGroupData>
			</xsl:for-each>
		</FormData>
	</xsl:if>
</xsl:template>


<!-- 	AE 	-->
<xsl:template name="adverseEvents">
	<xsl:variable name="aeSection" select="cda:component/cda:structuredBody/cda:component/cda:section[cda:code/@code='48765-2']"/>
	<xsl:if test="$aeSection/cda:entry/cda:act">
		<FormData FormDataOID='AEForm'>
			<xsl:for-each select="$aeSection/cda:entry">
				<ItemDataGroup ItemDataGroupOID='AE'>
				<xsl:variable name="originalTextRef" select="cda:act/cda:entryRelationship/cda:observation/cda:participant/cda:participantRole/cda:playingEntity/cda:code/cda:originalText/cda:reference/@value"/>
				<xsl:variable name="codedDisplayName" select="cda:act/cda:entryRelationship/cda:observation/cda:participant/cda:participantRole/cda:playingEntity/cda:code/@displayName"/>
				<ItemData ItemDataOID='AETERM'>
					<xsl:attribute name="value">
						<xsl:choose>
							<xsl:when test="$originalTextRef"><xsl:value-of select="//*[@ID=substring-after($originalTextRef,'#')]"/></xsl:when>
							<xsl:otherwise><xsl:value-of select="$codedDisplayName"/></xsl:otherwise>
						</xsl:choose>
					</xsl:attribute>
				</ItemData>
				<xsl:variable name="aeStartDateTime" select="cda:act/cda:entryRelationship/cda:observation/cda:effectiveTime/@value"/>
				<xsl:if test="$aeStartDateTime">
					<ItemData ItemDataOID='AESTDTC'>
						<xsl:attribute name="value">
							<xsl:value-of select="$aeStartDateTime"/>
						</xsl:attribute>
					</ItemData>
				</xsl:if>
			</ItemDataGroup>
			</xsl:for-each>
		</FormData>
	</xsl:if>
</xsl:template>


<!-- helper templates -->
<!-- CDASH a med history item -->
<xsl:template name="problemItemData">
<xsl:param name="theNode"/>
	<!-- we may be pointed to the text of the condition, or we may just have a coded value display name -->
	<xsl:variable name="originalTextRef" select="$theNode/cda:act/cda:entryRelationship/cda:observation/cda:text/cda:reference/@value"/>
	<xsl:variable name="codedValue" select="$theNode/cda:act/cda:entryRelationship/cda:observation/cda:value/@displayName"/>
	<xsl:variable name="valueNode" select="$theNode/cda:act/cda:entryRelationship/cda:observation/cda:value"/>
	<!-- problem status translates into the CDASH MHONG -->
	<xsl:variable name="problemStatusNode" select="$theNode/cda:act/cda:entryRelationship/cda:observation/cda:entryRelationship/cda:observation[cda:code/@code='33999-4']"/>
	<!-- can have status coded or by reference -->
	<xsl:variable name="problemStatusRef" select="$problemStatusNode/cda:text/cda:reference/@value"/>
	<!-- onset and end dates for problems -->
	<xsl:variable name="problemOnset" select="$theNode/cda:act/cda:entryRelationship/cda:observation/cda:effectiveTime/cda:low/@value"/>
	<xsl:variable name="problemResolved" select="$theNode/cda:act/cda:entryRelationship/cda:observation/cda:effectiveTime/cda:high/@value"/>
	<ItemData ItemOID='MHTERM'>
		<xsl:choose>
			<xsl:when test="string-length($codedValue)>0">
				<xsl:attribute name="value">
					<xsl:value-of select="$codedValue"/>
				</xsl:attribute>
				<xsl:attribute name="xsi:type">
					<xsl:value-of select="$valueNode/@xsi:type"/>
				</xsl:attribute>
				<xsl:attribute name="code">
					<xsl:value-of select="$valueNode/@code"/>
				</xsl:attribute>
				<xsl:attribute name="codeSystem">
					<xsl:value-of select="$valueNode/@codeSystem"/>
				</xsl:attribute>
			</xsl:when>
			<xsl:when test="string-length($originalTextRef)>0">
				<xsl:attribute name="value">
					<xsl:value-of select="//*[@ID=substring-after($originalTextRef,'#')]"/>
				</xsl:attribute>
			</xsl:when>
			<xsl:otherwise>
				<xsl:attribute name="value">
					???
				</xsl:attribute>
			</xsl:otherwise>
		</xsl:choose>
	</ItemData>
	<ItemData ItemOID='MHONG'>
		<xsl:attribute name="value">
			<xsl:choose>
				<xsl:when test="$problemStatusNode/cda:value/@displayName='Active'">ONGOING</xsl:when>
				<xsl:when test="//*[@ID=substring-after($problemStatusRef,'#')]='Active'">ONGOING</xsl:when>
				<xsl:otherwise>RESOLVED</xsl:otherwise>
			</xsl:choose>
		</xsl:attribute>
	</ItemData>
	<!--<xsl:comment>research adding type and category (MHCAT, MHSCAT)</xsl:comment>-->
	<!-- NOTE:  might need a more generic template to handle the multiple ways that time can be reported in ccd -->
	<xsl:if test="$problemOnset">
		<ItemData ItemDataOID='MHSTDTC'>
			<xsl:attribute name="value">
				<xsl:value-of select="$problemOnset"/>
			</xsl:attribute>
		</ItemData>
	</xsl:if>
	<xsl:if test="$problemResolved">
		<ItemData ItemDataOID='MHENDDTC'>
			<xsl:attribute name="value">
				<xsl:value-of select="$problemResolved"/>
			</xsl:attribute>
		</ItemData>
	</xsl:if>
</xsl:template>


<xsl:template name="procedureItemData">
<xsl:param name="theNode"/>
	<xsl:variable name="originalTextRef" select="$theNode/cda:procedure/cda:code/cda:originalText/cda:reference/@value"/>
	<xsl:variable name="codedValue" select="$theNode/cda:procedure/cda:code/@displayName"/>
	<ItemData ItemOID='MHTERM'>
		<xsl:attribute name="value">
			<xsl:choose>
				<xsl:when test="string-length($originalTextRef)>0"><xsl:value-of select="//*[@ID=substring-after($originalTextRef,'#')]"/></xsl:when>
				<xsl:when test="string-length($codedValue)>0"><xsl:value-of select="$codedValue"/></xsl:when>
				<xsl:otherwise>???</xsl:otherwise>
			</xsl:choose>
	</xsl:attribute>
	</ItemData>
	<!-- NOTE: is this true = procedures are RESOLVED -->
	<ItemData ItemDataOID='MHONG' value='RESOLVED'/>
	<!--<xsl:comment>??? what to do about an effectiveTime of center ???</xsl:comment>-->
</xsl:template>
</xsl:stylesheet>

Sample Standard CRF output from the Sample XSLT

<?xml version="1.0"?>
<ODM ODMVersion="1.3" FileOID="CLL.003" PriorFileOID="CRF_CLL_v1.6" FileType="SnapShot" Description="IHE CDASH from CCD" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cd="http://www.cdisc.org/ns/odm/v1.3" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	<ClinicalData>
		<SubjectData>
			<SiteRef>
				<StudyEventData>
					<FormData FormOID="DemographicsForm">
						<ItemGroupData ItemGroupOID="DM">
							<ItemData ItemOID="SEX" value="M"/>
							<ItemData ItemOID="BRTHDTC" value="19320924"/>
							<ItemData ItemOID="ETHNIC" value=""/>
							<ItemData ItemOID="RACE" value=""/>
						</ItemGroupData>
					</FormData>
					<FormData FormOID="MedicalHistory">
						<ItemGroupData ItemGroupOID="CONDITION">
							<ItemData ItemOID="MHTERM" value="Asthma" xsi:type="CD" code="195967001" codeSystem="2.16.840.1.113883.6.96"/>
							<ItemData ItemOID="MHONG" value="ONGOING"/>
							<ItemData ItemDataOID="MHSTDTC" value="1950"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupOID="CONDITION">
							<ItemData ItemOID="MHTERM" value="Pneumonia" xsi:type="CD" code="233604007" codeSystem="2.16.840.1.113883.6.96"/>
							<ItemData ItemOID="MHONG" value="RESOLVED"/>
							<ItemData ItemDataOID="MHSTDTC" value="199701"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupOID="CONDITION">
							<ItemData ItemOID="MHTERM" value="Pneumonia" xsi:type="CD" code="233604007" codeSystem="2.16.840.1.113883.6.96"/>
							<ItemData ItemOID="MHONG" value="RESOLVED"/>
							<ItemData ItemDataOID="MHSTDTC" value="199903"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupOID="CONDITION">
							<ItemData ItemOID="MHTERM" value="Myocardial infarction" xsi:type="CD" code="22298006" codeSystem="2.16.840.1.113883.6.96"/>
							<ItemData ItemOID="MHONG" value="RESOLVED"/>
							<ItemData ItemDataOID="MHSTDTC" value="199701"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupOID="PROCEDURE">
							<ItemData ItemOID="MHTERM" value="Total hip replacement, left"/>
							<ItemData ItemDataOID="MHONG" value="RESOLVED"/>
						</ItemGroupData>
					</FormData>
					<FormData FormDataOID="ConMedForm">
						<ItemGroupData ItemGroupOID="CM">
							<ItemData ItemDataOID="CMTRT" value="Albuterol inhalant"/>
							<ItemData ItemDataOID="CMROUTE" value="Inhalation, oral"/>
							<ItemData ItemDataOID="CMINDC" value="Wheezing" xsi:type="CE" code="56018004" codeSystem="2.16.840.1.113883.6.96"/>
							<ItemData ItemDataOID="CMDSTXT" value="2"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupOID="CM">
							<ItemData ItemDataOID="CMTRT" value="Clopidogrel"/>
							<ItemData ItemDataOID="CMDSTXT" value="1"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupOID="CM">
							<ItemData ItemDataOID="CMTRT" value="Metoprolol"/>
							<ItemData ItemDataOID="CMDSTXT" value="1"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupOID="CM">
							<ItemData ItemDataOID="CMTRT" value="Prednisone"/>
							<ItemData ItemDataOID="CMSTDTC" value="20000328"/>
							<ItemData ItemDataOID="CMDSTXT" value="1"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupOID="CM">
							<ItemData ItemDataOID="CMTRT" value="Cephalexin"/>
							<ItemData ItemDataOID="CMSTDTC" value="20000328"/>
							<ItemData ItemDataOID="CMENDDTC" value="20000404"/>
							<ItemData ItemDataOID="CMDSTXT" value="1"/>
						</ItemGroupData>
					</FormData>
					<FormData FormDataOID="VSForm">
						<ItemGroupData ItemGroupDataOID="VS">
							<ItemData ItemDataOID="VSDTC" value="19991114"/>
							<ItemData ItemDataOID="VSTEST" value="Body height"/>
							<ItemData ItemDataOID="VSORRES" value="177"/>
							<ItemData ItemDataOID="VSORRESU" value="cm"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="VS">
							<ItemData ItemDataOID="VSDTC" value="19991114"/>
							<ItemData ItemDataOID="VSTEST" value="Body weight"/>
							<ItemData ItemDataOID="VSORRES" value="86"/>
							<ItemData ItemDataOID="VSORRESU" value="kg"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="VS">
							<ItemData ItemDataOID="VSDTC" value="19991114"/>
							<ItemData ItemDataOID="VSTEST" value="Systolic BP"/>
							<ItemData ItemDataOID="VSORRES" value="132"/>
							<ItemData ItemDataOID="VSORRESU" value="mm[Hg]"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="VS">
							<ItemData ItemDataOID="VSDTC" value="19991114"/>
							<ItemData ItemDataOID="VSTEST" value="Diastolic BP"/>
							<ItemData ItemDataOID="VSORRES" value="86"/>
							<ItemData ItemDataOID="VSORRESU" value="mm[Hg]"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="VS">
							<ItemData ItemDataOID="VSDTC" value="20000407"/>
							<ItemData ItemDataOID="VSTEST" value="Body height"/>
							<ItemData ItemDataOID="VSORRES" value="177"/>
							<ItemData ItemDataOID="VSORRESU" value="cm"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="VS">
							<ItemData ItemDataOID="VSDTC" value="20000407"/>
							<ItemData ItemDataOID="VSTEST" value="Body weight"/>
							<ItemData ItemDataOID="VSORRES" value="88"/>
							<ItemData ItemDataOID="VSORRESU" value="kg"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="VS">
							<ItemData ItemDataOID="VSDTC" value="20000407"/>
							<ItemData ItemDataOID="VSTEST" value="Systolic BP"/>
							<ItemData ItemDataOID="VSORRES" value="145"/>
							<ItemData ItemDataOID="VSORRESU" value="mm[Hg]"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="VS">
							<ItemData ItemDataOID="VSDTC" value="20000407"/>
							<ItemData ItemDataOID="VSTEST" value="Diastolic BP"/>
							<ItemData ItemDataOID="VSORRES" value="88"/>
							<ItemData ItemDataOID="VSORRESU" value="mm[Hg]"/>
						</ItemGroupData>
					</FormData>
					<FormData FormDataOID="AEForm">
						<ItemDataGroup ItemDataGroupOID="AE">
							<ItemData ItemDataOID="AETERM" value="Penicillin"/>
						</ItemDataGroup>
						<ItemDataGroup ItemDataGroupOID="AE">
							<ItemData ItemDataOID="AETERM" value="Aspirin"/>
						</ItemDataGroup>
						<ItemDataGroup ItemDataGroupOID="AE">
							<ItemData ItemDataOID="AETERM" value="Codeine"/>
						</ItemDataGroup>
					</FormData>
					<FormData FormDataOID="LBForm">
						<ItemGroupData ItemGroupDataOID="LB">
							<ItemData ItemDataOID="LBDTC" value="200003231430"/>
							<ItemData ItemDataOID="LBSTAT" value="completed"/>
							<ItemData ItemDataOID="LBREFID" value="107c2dc0-67a5-11db-bd13-0800200c9a66" code="30313-1" codeSystem="2.16.840.1.113883.6.1"/>
							<ItemData ItemDataOID="LBTEST" value="HGB"/>
							<ItemData ItemDataOID="LBORRES" value="13.2" xsi:type="PQ"/>
							<ItemData ItemDataOID="LBORRESU" value="g/dl"/>
							<ItemData ItemDataOID="LBNRIND" value="N" codeSystem="2.16.840.1.113883.5.83"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="LB">
							<ItemData ItemDataOID="LBDTC" value="200003231430"/>
							<ItemData ItemDataOID="LBSTAT" value="completed"/>
							<ItemData ItemDataOID="LBREFID" value="8b3fa370-67a5-11db-bd13-0800200c9a66" code="33765-9" codeSystem="2.16.840.1.113883.6.1"/>
							<ItemData ItemDataOID="LBTEST" value="WBC"/>
							<ItemData ItemDataOID="LBORRES" value="6.7" xsi:type="PQ"/>
							<ItemData ItemDataOID="LBORRESU" value="10+3/ul"/>
							<ItemData ItemDataOID="LBORNRLO" value="4.3"/>
							<ItemData ItemDataOID="LBORNRHI" value="10.8"/>
							<ItemData ItemDataOID="LBNRIND" value="N" codeSystem="2.16.840.1.113883.5.83"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="LB">
							<ItemData ItemDataOID="LBDTC" value="200003231430"/>
							<ItemData ItemDataOID="LBSTAT" value="completed"/>
							<ItemData ItemDataOID="LBREFID" value="80a6c740-67a5-11db-bd13-0800200c9a66" code="26515-7" codeSystem="2.16.840.1.113883.6.1"/>
							<ItemData ItemDataOID="LBTEST" value="PLT"/>
							<ItemData ItemDataOID="LBORRES" value="123" xsi:type="PQ"/>
							<ItemData ItemDataOID="LBORRESU" value="10+3/ul"/>
							<ItemData ItemDataOID="LBORNRLO" value="150"/>
							<ItemData ItemDataOID="LBORNRHI" value="350"/>
							<ItemData ItemDataOID="LBNRIND" value="L" codeSystem="2.16.840.1.113883.5.83"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="LB">
							<ItemData ItemDataOID="LBDTC" value="200004061300"/>
							<ItemData ItemDataOID="LBSTAT" value="completed"/>
							<ItemData ItemDataOID="LBREFID" value="a40027e1-67a5-11db-bd13-0800200c9a66" code="2951-2" codeSystem="2.16.840.1.113883.6.1"/>
							<ItemData ItemDataOID="LBTEST" value="NA"/>
							<ItemData ItemDataOID="LBORRES" value="140" xsi:type="PQ"/>
							<ItemData ItemDataOID="LBORRESU" value="meq/l"/>
							<ItemData ItemDataOID="LBORNRLO" value="135"/>
							<ItemData ItemDataOID="LBORNRHI" value="145"/>
							<ItemData ItemDataOID="LBNRIND" value="N" codeSystem="2.16.840.1.113883.5.83"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="LB">
							<ItemData ItemDataOID="LBDTC" value="200004061300"/>
							<ItemData ItemDataOID="LBSTAT" value="completed"/>
							<ItemData ItemDataOID="LBREFID" value="a40027e2-67a5-11db-bd13-0800200c9a66" code="2823-3" codeSystem="2.16.840.1.113883.6.1"/>
							<ItemData ItemDataOID="LBTEST" value="K"/>
							<ItemData ItemDataOID="LBORRES" value="4.0" xsi:type="PQ"/>
							<ItemData ItemDataOID="LBORRESU" value="meq/l"/>
							<ItemData ItemDataOID="LBORNRLO" value="3.5"/>
							<ItemData ItemDataOID="LBORNRHI" value="5.0"/>
							<ItemData ItemDataOID="LBNRIND" value="N" codeSystem="2.16.840.1.113883.5.83"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="LB">
							<ItemData ItemDataOID="LBDTC" value="200004061300"/>
							<ItemData ItemDataOID="LBSTAT" value="completed"/>
							<ItemData ItemDataOID="LBREFID" value="a40027e3-67a5-11db-bd13-0800200c9a66" code="2075-0" codeSystem="2.16.840.1.113883.6.1"/>
							<ItemData ItemDataOID="LBTEST" value="CL"/>
							<ItemData ItemDataOID="LBORRES" value="102" xsi:type="PQ"/>
							<ItemData ItemDataOID="LBORRESU" value="meq/l"/>
							<ItemData ItemDataOID="LBORNRLO" value="98"/>
							<ItemData ItemDataOID="LBORNRHI" value="106"/>
							<ItemData ItemDataOID="LBNRIND" value="N" codeSystem="2.16.840.1.113883.5.83"/>
						</ItemGroupData>
						<ItemGroupData ItemGroupDataOID="LB">
							<ItemData ItemDataOID="LBDTC" value="200004061300"/>
							<ItemData ItemDataOID="LBSTAT" value="completed"/>
							<ItemData ItemDataOID="LBREFID" value="a40027e4-67a5-11db-bd13-0800200c9a66" code="1963-8" codeSystem="2.16.840.1.113883.6.1"/>
							<ItemData ItemDataOID="LBTEST" value="HCO3"/>
							<ItemData ItemDataOID="LBORRES" value="35" xsi:type="PQ"/>
							<ItemData ItemDataOID="LBORRESU" value="meq/l"/>
							<ItemData ItemDataOID="LBORNRLO" value="18"/>
							<ItemData ItemDataOID="LBORNRHI" value="23"/>
							<ItemData ItemDataOID="LBNRIND" value="H" codeSystem="2.16.840.1.113883.5.83"/>
						</ItemGroupData>
					</FormData>
				</StudyEventData>
			</SiteRef>
		</SubjectData>
	</ClinicalData>
</ODM>
Personal tools