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) |
study | StudyOID | Same as ODM |
subject | above plus SubjectKey | Same as ODM |
study event | above plus StudyEventOID and StudyEventRepeatKey | Same as ODM |
Form | 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 |
item | above plus ItemOID | Same as ODM |
annotation | 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”.