The ODM standard uses the concept of Internal Clinical Data Keys to uniquely address clinical data entities within the model. The following table details the key, or combination of entity identifiers, that you would need to uniquely and specifically address a clinical data entity.

Kind of Entity

Identifying Keys (ODM)

Identifying Keys (OpenClinica ODM)



Same as ODM


above plus SubjectKey

Same as ODM

study event

above plus StudyEventOID and StudyEventRepeatKey

Same as ODM


above plus FormOID and FormRepeatKey

Same as ODM, however repeating forms are not supported so no FormRepeatKey is necessary

Item group

above plus ItemGroupOID and ItemGroupRepeatKey

Same as ODM


above plus ItemOID

Same as ODM


keys for the annotated entity plus SeqNum

Not used in OpenClinica


For example, an XPath query to retrieve a specific item data value in an OpenClinica ODM Extract would be of the form:


/odm:ODM/odm:ClinicalData[@StudyOID=’S_P12345_2818′]/odm:SubjectData[@SubjectKey=’SS_101′]/odm:StudyEventData[@StudyEventOID=’SE_INITIALT’ and  @StudyEventRepeatKey=’1′]/odm:FormData[@FormOID=’F_AGEN_V10′]/odm:ItemGroupData[@ItemGroupOID=’IG_AGEN_DOSETABLE-F_AGEN_V10′ and @ItemGroupRepeatKey=’1′]/odm:ItemData[@ItemOID=’I_AGEN_AGENT_NAME’]/@Value


In the image below you can see that the latter half of the XML file (the part  contained in the <ClinicalData> tags) links to specific tables in the OpenClinica database. We then link back to the Study metadata through those OIDs. Internally we dont use OIDs in those tables, but instead the conventional methods of primary keys and foreign keys in the database is good enough. For more on how ODM, OIDs, and Clinical Data Keys are implemented in OpenClinica see the blog post, “Thoughts on Code: OpenClinica and Open Standards with CDISC”.

CDISC ODM OpenClinica Clinical Data mapping