Forums: Define.xml
Hi Nalin!
You can use different datatype for the same external dictionary. The OD0080 check compares a datatype of variables with a datatype of referenced dictionary records. They should be the same. E.g.,
<!-- Defining ItemDef for all variables -->
<ItemDef OID="AE.AELLT" Name="AELLT" DataType="text" Origin="" Comment=""def:Label="Dictionary-Derived Term" Length="200">
<CodeListRef CodeListOID="ExternalCodeList.AELLT" />
</ItemDef>
<ItemDef OID="AE.AELLTCD" Name="AELLTCD" DataType="integer" Origin=""Comment="" def:Label="Dictionary-Derived Term" Length="8">
<CodeListRef CodeListOID="ExternalCodeList.AELLTCD" />
</ItemDef>
<!-- Defining External Code Lists -->
<CodeList OID="ExternalCodeList.AELLT"
Name="MedDRA Adverse Events Dictionary"
DataType="text">
<ExternalCodeList Dictionary="MedDRA" Version="14.1"/>
</CodeList>
<CodeList OID="ExternalCodeList.AELLTCD"
Name="MedDRA Adverse Events Dictionary"
DataType="integer">
<ExternalCodeList Dictionary="MedDRA" Version="14.1"/>
</CodeList>
Regards,
Sergiy
Hello Sergiy.
As I mentioned in my original message, I am doing as you recommended but this causes the same dictionary name to be presented twice in the "External Dictionary" section. Once with the datatype=text and the other with datatype=integer. codelist oid being aellt and aelltcd per your example.
Thanks,
Nalin
Hi Nalin,
I can not reproduce your case with a OD0080 Error message. It works fine for me. Could you send me your define.xml file to explore the issue you have.
Thank you,
Sergiy
sergiy at opencdisc dot org
Hello Sergiy.
I was able to fix the error based on your recommendation; sorry if my previous message caused any confusion.
The point i was trying to make is that with this solution, 2 external codelist oids are created which show up as 2 separate items in the "External Dictionaries" section under "Controlled Terms" section in the navigation pane on the left side and also in the display pane on the right side.
Thanks,
Nalin
Hi.
I also get the same error message for datetime datatypes. My example:
<ItemDef OID="dm.RFXSTDTC"
Name="RFXSTDTC"
DataType="datetime"
External Codelist:
<CodeList OID="ISO 8601" Name="ISO 8601" DataType="text">
<ExternalCodeList Dictionary="ISO 8601" Version=" "/>
</CodeList>
So, can I just change the DataType in the external codelist to "datetime"?
@kitri:
ISO-8601 is NOT a controlled terminology, it is controlled format!
So when you have an ItemDef with DataType "date", "time" or "datetime", you should NOT add a reference to an (external) codelist.
So, in your example, you must REMOVE the
<CodeList OID="ISO 8601" Name="ISO 8601" DataType="text">
<ExternalCodeList Dictionary="ISO 8601" Version=" "/>
</CodeList>
And all references to it.
Hi !
Thanks for the answer! I greatly appreciate it! I am very knew to this topic in general, that's why I am firing so many questions. So ISO 8601 is not a CT, however, ISO 3166 is a CT, correct? So I could add reference to the latter one.
Hi Sergiy or Nalin,
I also get two external codelists if I do the example from you.But I would like to reference AELLT and AELLTCD to the same external codelist, so how do I get ONE codelist for several ItemDef OID's?
<ItemDef OID="ae.AELLT"
Name="AELLT"
DataType="text"
Length="100"
Origin="Assigned"
Comment=" "
def:Label="Lowest Level Term">
<CodeListRef CodeListOID="ExternalCodeList.AELLT"/>
</ItemDef>
<ItemDef OID="ae.AELLTCD"
Name="AELLTCD"
DataType="integer"
Length="8"
Origin="Assigned"
Comment=" "
def:Label="Lowest Level Term Code">
<CodeListRef CodeListOID="ExternalCodeList.AELLTCD"/>
</ItemDef>
External Codelists:
<CodeList OID="ExternalCodeList.AELLT" Name="ADVERSE EVENT DICTIONARY" DataType="text">
<ExternalCodeList Dictionary="MedDRA" Version="14.1"/>
</CodeList>
<CodeList OID="ExternalCodeList.AELLTCD" Name="ADVERSE EVENT DICTIONARY" DataType="integer">
<ExternalCodeList Dictionary="MedDRA" Version="14.1"/>
</CodeList>
Best regards
Hi Sergiy,
Your solution omits the error message but at the Controlled Terminology (External Dictionaries) there are several MeDDRA outputs related to each different Reference Name. There are several of them (e.g. AELLT and AELLTCD). This means that you will not only have one external dictionary definition. Should each variable be shown at External Dictionaries?
Or should the error message OD0080 be omitted from the OpenCDISC validator?
I highly appreciate your input to this issue.
Best regards,
Pablo
Hello.
I am referencing MedDRA as the external codelist for all coded variables in the AE domain. The dataype for Code Variables (eg. AELLTCD) is 'integer' where as for the term variables (eg. AELLT) the datatype is 'text' per Amendment 1 to SDTM IG 3.1.2. When referencing the same codelist for both datatype i get the error OD0080.
OD0080ItemDef/CodeList 'DataType' mismatchThe ItemDef DataType should match the DataType of the referenced CodeList.ConsistencyErrorA work around to avoid this error results in 2 entries referencing the same dictionary name in the define.xml file, one named AEDICT_N for datatype='integer' where the other named AEDICT_C for datatype='text'.
Thanks,
Nalin