Fundamental understanding (crawl phase)

  • What exactly is an extension? What is it used for? Why extension?  
  • Is the Trace-XML a part of Define-XML? Is it a published standard?  
  • Quick orientation of the schema files in the Define-XML v2.1 release package, e.g., what are those folders?  
  • Feature sets new in Define-XML v2.1 – helps determine to which version to align  
  • Found mdrCore in the ADaMIG v1.2 example. Does it mean Library-XML exist?  
  • Tried to import defineadamig-1-2.xml (removed those root CT codelist elements) to tool:  
    • Invalid model: undefined. Allowed models: SDTM,SEND,ADaM  
  • Subtopics…

Address gaps (walk phase)

  • Define-XML for ADaMIG v1.2? From Spec Grabber to the physical file, tools & process.
  • OID construct, context: traceability & versioning
  • SDTM v2.0
    • We need to capture qualifying variables, plus other new attributes. How do we do that in Define-XML?
    • How does ODM or Define handle SDTM’s class-level & ADaM's variable-grouping-level metadata?
  • SDTMIG v3.4
  • Required elements & attributes in Define-XML, but not covered in CDISC Library (e.g., /ODM/Study/GlobalVariables/ProtocolName)
    • Vice versa, clib specific properties, but no home in Define-XML
    • Mapping business rules?
    • What is the process for adding/modifying schemas, e.g., new elements & attributes to address gaps?
    • When an element or attribute is Required in Define-XML, can they be overridden? E.g., /ODM/Study/GlobalVariables/ProtocolName
    • How much of latitude do we have if clib just doesn't fit the prescribed use case?
  • Since the Editor "translates" Char & Num to ODM data types, can we still capture/retain Char & Num?
  • Subtopics…

Machinery (run phase)

  • What already exists
  • Create extension & schema?
    • Yes, e.g., mdrCore, role, etc.
  • Create draft Define using Wiki
  • Develop conventions for required study-specific elements, e.g., /ODM/Study/GlobalVariables
  • Subtopics…

 

  • No labels

8 Comments

  1. Overall tasks

    • Learn Define-XML v2.0
    • Create Schema
    • Create Extension
    • Create Stylesheet

    Draft Define-XML

    • Create baseline Define-XML
    • Mapping to elements & attributes


  2. Data mappings

    TabColumnMapping to DefineNotesReviewed
    Registrationslibrary-mdr:RegistrationN/AURI for RDF
    Registrationslibrary-mdr:hasRegistrationStatus
    Found attribute, but at the ItemGroup or Item level, e.g., /ODM/Study/MetadataVersion/ItemGroupDef/@mdr:Status, /ODM/Study/MetadataVersion/ItemDef/@mdr:Status
    Registrationslibrary-mdr:effectiveDate
    Found attribute, but at the ItemGroup or Item level, e.g., /ODM/Study/MetadataVersion/ItemGroupDef/@mdr:DatePublished, /ODM/Study/MetadataVersion/ItemDef/@mdr:DatePublished
    Registrationslibrary-mdr:version/ODM/Study/MetadataVersion/@def:StandardVersion

    IGlibrary-std:ImplementationGuideN/AURI for RDF
    IGlibrary-mdr:succeeds?Can we use Alias and setting Context?
    IGlibrary-std:hasProductGroup
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/products (H)
    IGlibrary-std:hasProductSubGroup
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/products (H)
    IGlibrary-std:implementsModel
    Impact if not mapped: HATEOAS links (H)
    IGlibrary-mdr:origin
    Impact if not mapped: Property missing (L)
    IGlibrary-mdr:name/ODM/Study/GlobalVariables/StudyName

    IGlibrary-mdr:label
    Impact if not mapped: Used by browser & API HATEOAS links (H)
    IGlibrary-mdr:description/ODM/Study/GlobalVariables/StudyDescription

    Regulatory Supportlibrary-std:RegulatorySupportN/AURI for RDF
    Regulatory Supportlibrary-std:supportedProduct
    Impact if not mapped: None (N/A)
    Regulatory Supportlibrary-std:supportingAgency
    Impact if not mapped: None (N/A)
    Regulatory Supportlibrary-std:supportingDivision
    Impact if not mapped: None (N/A)
    Regulatory Supportlibrary-std:supportedApplicationType
    Impact if not mapped: None (N/A)
    Regulatory Supportlibrary-std:supportedApplicationType
    Impact if not mapped: None (N/A)
    Regulatory Supportlibrary-std:supportedApplicationType
    Impact if not mapped: None (N/A)
    Regulatory Supportlibrary-std:supportStartDate
    Impact if not mapped: None (N/A)
    Regulatory Supportlibrary-std:supportEndDate
    Impact if not mapped: None (N/A)
    Regulatory Supportlibrary-std:supportReference
    Impact if not mapped: None (N/A)
    Classeslibrary-std:ClassN/AURI for RDF
    Classeslibrary-mdr:hasOwnerN/AWill be subsumed by containing ItemGroup
    Classeslibrary-mdr:succeeds
    Can we use Alias and setting Context?
    Classeslibrary-mdr:hasParentContextN/A

    Will be subsumed by containing ItemGroup

    Outstanding: How will it work for FA and SR?


    Classeslibrary-std:implementsClass

    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/classes (H)

    Outstanding:

    • ODMv2 is discussing how to have ItemGroups in an ItemGroup?

    Classeslibrary-std:hasParentClass
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/classes (H)
    Classeslibrary-mdr:ordinal
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/classes (H)
    Classeslibrary-mdr:name
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/classes (H)
    Classeslibrary-mdr:label
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/classes (H)
    Classeslibrary-mdr:description
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/classes (H)
    Datasetslibrary-std:DatasetN/AURI for RDF
    Datasetslibrary-mdr:hasOwnerN/AWill be subsumed by containing ItemGroup
    Datasetslibrary-mdr:succeeds
    Can we use Alias and setting Context?
    Datasetslibrary-mdr:hasParentContext
    Will be subsumed by containing ItemGroup
    Datasetslibrary-std:implementsDataset
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/datasets (H)
    Datasetslibrary-mdr:ordinal
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/datasets (M)
    Datasetslibrary-mdr:name
    • /ODM/Study/MetaDataVersion/ItemGroupDef/@Name
    • /ODM/Study/MetaDataVersion/ItemGroupDef/@Domain


    Datasetslibrary-mdr:label/ODM/Study/MetaDataVersion/ItemGroupDef/Description/TranslatedText

    Datasetslibrary-std:datasetVersion
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/datasets (M)
    Datasetslibrary-mdr:description
    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/datasets (M)
    Datasetslibrary-std:datasetStructure/ODM/Study/MetaDataVersion/ItemGroupDef/@def:Structure

    Root Variableslibrary-mdr:RootDataElement
    Impact if not mapped: Used by API endpoints, e.g., /mdr/root/sdtmig/datasets/{dataset}/variables/{var} (H)
    Root Variableslibrary-mdr:label
    Impact if not mapped: Used by API endpoints, e.g., /mdr/root/sdtmig/datasets/{dataset}/variables/{var} (H)
    Dataset Variableslibrary-std:DatasetVariableN/AURI for RDFY
    Dataset Variableslibrary-mdr:hasOwnerN/AWill be subsumed by containing ItemGroupY
    Dataset Variableslibrary-mdr:succeeds
    Can we use Alias and setting Context?Outstanding
    Dataset Variableslibrary-mdr:hasRootDataElement
    Impact if not mapped: Used by API endpoints, e.g., /mdr/root/sdtmig/datasets/{dataset}/variables/{var} (H)Outstanding
    Dataset Variableslibrary-std:implementsVariable

    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/datasets/{dataset}/variables/{var} (H)

    Library-XML has this example for ItemDef:

    <Alias Context="Parent" Name="--ACN ([SDTM Events] MDE 1)"/>
    Outstanding
    Dataset Variableslibrary-mdr:isPartOfN/AWill be subsumed by containing ItemGroupN/A
    Dataset Variableslibrary-mdr:ordinal/ODM/Study/MetaDataVersion/ItemGroupDef/ItemRef/@OrderNumber@OrderNumber is intended to be display orderY
    Dataset Variableslibrary-mdr:name

    /ODM/Study/MetaDataVersion/ItemDef/@Name

    /ODM/Study/MetaDataVersion/ItemDef/@SASFieldName

    Also may be mapped to @SASFieldName, where this attribute uses <xs:simpleType name="sasName">. This prevents us from having the asterisk character in the attribute.

    Outstanding:

    1. Do we still want to map to @SASFieldName?
    Y
    Dataset Variableslibrary-mdr:label/ODM/Study/MetaDataVersion/ItemDef/Description/TranslatedText
    Y
    Dataset Variableslibrary-mdr:description/ODM/Study/MetaDataVersion/ItemDef/mdr:CDISCNotes/TranslatedText
    Y
    Dataset Variableslibrary-mdr:hasValueDomain
    • /ODM/Study/MetaDataVersion/ItemDef/CodeListRef

    One of these:

    1. /ODM/Study/MetaDataVersion/CodeList/ExternalCodeList
    2. /ODM/Study/MetaDataVersion/CodeList/

      EnumeratedItem

    • ExternalCodeList: CT codelist, MedDRA, ISO 3166
    • EnumeratedItem: Value listing
    • CodeListItem: (No use case in SDTMIG standard)

    Outstanding:

    • How to support 1..n NCI codelists? ExternalCodeList has a cardinality of 1. PPSTRESU and PPORRESU have 5 CT codelists in the SDTMIG. Whereas, the DSCAT & DSDECOD use case can use the WHERE construct in Define-XML
    • How to express root CT? (See below)
    • Can EnumeratedItems be ordered? Yes, use @OrderNumber
    • How to map ISO 8601? ItemDef/@mdr:Format

    Root CT may be accomplished through CodeList/ExternalCodeList/@href:

                <CodeList DataType="text" Name="Version-agnostic anchor resource for codelist C66734" OID="mdr.root.ct.sdtmct.codelists.C66734">
                    <ExternalCodeList Dictionary="Version-agnostic anchor resource for codelist C66734" href="/mdr/root/ct/sdtmct/codelists/C66734"></ExternalCodeList>
                    <Alias Context="nci:ExtCodeID" Name="C66734"></Alias>
                </CodeList>
    Y, with outstanding questions
    Dataset Variableslibrary-std:hasSimpleDatatype/ODM/Study/MetaDataVersion/ItemDef/@mdr:SubmissionDataTypeAlso refer to 7.2 Appendix B for a lookup table to populate @DataTypeY
    Dataset Variableslibrary-std:hasRole/ODM/Study/MetaDataVersion/ItemDef/@RoleCurrently, @RoleCodeListOID may not be neededY
    Dataset Variableslibrary-std:hasCore/ODM/Study/MetaDataVersion/ItemDef/@mdr:CoreAlso refer to 7.2 Appendix B for a lookup table to populate @MandatoryY
    Dataset Variableslibrary-std:valueDomainDescription

    Impact if not mapped: Used by browser & API endpoints, e.g., /mdr/sdtmig/{version}/datasets/{dataset}/variables/{var} (H)

    Outstanding:

    • Need to discuss whether this needs to be carried forward
    Y with outstanding questions
  3. PropertyDefine-XML AttributeValue
    ODM Version/ODM/@ODMVersion1.3.2
    File Type/ODM/@FileTypeSnapshot
    Granularity/ODM/@GranularityMetadata
    File OID/ODM/@FileOID?
    File Creation Timestamp/ODM/@CreationDateTime<assign at runtime>
    Originator/ODM/@OriginatorCDISC
    Source System/ODM/@SourceSystemCDISC Library

    Source System Version

    /ODM/@SourceSystemVersion?
    Base URL/ODM/@mdr:BaseURIhttps://library.cdisc.org/api/mdr
  4. PropertyDefine-XML AttributeValue
    Metadata Version OID/ODM/Study/MetadataVersion/@OID?
    Name/ODM/Study/MetadataVersion/@Name?
    Description/ODM/Study/MetadataVersion/@Description?
  5. PropertyDefine-XML AttributeValue
    ?/ODM/Study/GlobalVariables/StudyName?
    ?/ODM/Study/GlobalVariables/StudyDescription?
    ?/ODM/Study/GlobalVariables/ProtocolName?
  6. Special data rules:

    Define-XML AttributeRulesConfirmed?
    Mandatory

    Default value is Mandatory="No", except:

    • For SDTMIG, SENDIG, or ADaMIG, when "Core=Req", set Mandatory="Yes"
    • For CDASHIG, when "Core= H/R", set Mandatory="Yes"

    Repeating

    Default value is Repeating="Yes", except when datasets or domains in these names, in which case Repeating="No":

    • ADSL, APDM, DI, DM, DO, DT, OI, PB, TA, TD, TE, TI, TM, TP, TS, TT, TV, TX

  7. How do we implement CDASH data collection scenarios and implementation options? Already requested ODM-XML outputs from eCRF team.

  8. How do we implement QRS metadata?

    • Each QRS instrument is its own Define-XML with 1 domain dataset and the relevant variables --CAT, --TEST, --TESTCD, --ORRES, --ORRESU, --STRESC, --STRESU?