Пример #1
0
 def add_ITD(self):
     # ItemDef 1
     ttd1 = ODM.TranslatedText(_content="Date of measurements", lang="en")
     ttq1 = ODM.TranslatedText(_content="Date", lang="en")
     desc1 = ODM.Description()
     desc1.TranslatedText = [ttd1]
     q1 = ODM.Question()
     q1.TranslatedText = [ttq1]
     a1 = ODM.Alias(Context="CDASH", Name="VSDAT")
     itd1 = ODM.ItemDef(OID="ODM.IT.VS.VSDAT",
                        Name="Date",
                        DataType="partialDate")
     itd1.Description = desc1
     itd1.Question = q1
     itd1.Alias = [a1]
     # ItemDef 2
     ttd2 = ODM.TranslatedText(
         _content=
         "Result of the vital signs measurement as originally received or collected.",
         lang="en")
     ttq2 = ODM.TranslatedText(_content="Diastolic", lang="en")
     desc2 = ODM.Description()
     desc2.TranslatedText = [ttd2]
     q2 = ODM.Question()
     q2.TranslatedText = [ttq2]
     a2a = ODM.Alias(Context="CDASH", Name="BP.DIABP.VSORRES")
     a2b = ODM.Alias(Context="CDASH/SDTM", Name="VSORRES+VSORRESU")
     itd2 = ODM.ItemDef(OID="ODM.IT.VS.BP.VSORRESU",
                        Name="BP Units",
                        DataType="text")
     itd2.Description = desc2
     itd2.Question = q2
     itd2.Alias = [a2a, a2b]
     return [itd1, itd2]
Пример #2
0
 def test_to_dict(self):
     attrs = self._set_attributes()
     cl = ODM.CodeList(**attrs)
     eni = ODM.EnumeratedItem(CodedValue="HGB", OrderNumber=1)
     eni.Alias = [ODM.Alias(Context="nci:ExtCodeID", Name="C64848")]
     cl.EnumeratedItem.append(eni)
     eni.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C65047"))
     cl_dict = cl.to_dict()
     self.assertDictEqual(cl_dict, self.expected_json_dict())
Пример #3
0
    def setUp(self) -> None:
        current_datetime = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
        root = ODM.ODM(FileOID="ODM.DEMO.001", Granularity="Metadata", AsOfDateTime=current_datetime,
                       CreationDateTime=current_datetime, ODMVersion="1.3.2", FileType="Snapshot",
                       Originator="swhume", SourceSystem="odmlib", SourceSystemVersion="0.1")

        # create Study and add to ODM
        root.Study.append(ODM.Study(OID="ODM.GET.STARTED"))

        # create the global variables
        root.Study[0].GlobalVariables = ODM.GlobalVariables()
        root.Study[0].GlobalVariables.StudyName = ODM.StudyName(_content="Get Started with ODM XML")
        root.Study[0].GlobalVariables.StudyDescription = ODM.StudyDescription(
            _content="Demo to get started with odmlib")
        root.Study[0].GlobalVariables.ProtocolName = ODM.ProtocolName(_content="ODM XML Get Started")

        # create the MetaDataVersion
        root.Study[0].MetaDataVersion.append(ODM.MetaDataVersion(OID="MDV.DEMO-ODM-01", Name="Get Started MDV",
                                                                 Description="Get Started Demo"))
        # create Protocol
        p = ODM.Protocol()
        p.Description = ODM.Description()
        p.Description.TranslatedText.append(ODM.TranslatedText(_content="Get Started Protocol", lang="en"))
        p.StudyEventRef.append(ODM.StudyEventRef(StudyEventOID="BASELINE", OrderNumber=1, Mandatory="Yes"))
        root.Study[0].MetaDataVersion[0].Protocol = p

        # create a StudyEventDef
        sed = ODM.StudyEventDef(OID="BASELINE", Name="Baseline Visit", Repeating="No", Type="Scheduled")
        sed.FormRef.append(ODM.FormRef(FormOID="ODM.F.DM", Mandatory="Yes", OrderNumber=1))
        root.Study[0].MetaDataVersion[0].StudyEventDef.append(sed)

        # create a FormDef
        fd = ODM.FormDef(OID="ODM.F.DM", Name="Demographics", Repeating="No")
        fd.ItemGroupRef.append(ODM.ItemGroupRef(ItemGroupOID="ODM.IG.DM", Mandatory="Yes", OrderNumber=2))
        root.Study[0].MetaDataVersion[0].FormDef.append(fd)

        # create an ItemGroupDef
        igd = ODM.ItemGroupDef(OID="ODM.IG.DM", Name="Demographics", Repeating="No")
        igd.ItemRef.append(ODM.ItemRef(ItemOID="ODM.IT.DM.BRTHYR", Mandatory="Yes"))
        root.Study[0].MetaDataVersion[0].ItemGroupDef.append(igd)

        # create an ItemDef
        itd = ODM.ItemDef(OID="ODM.IT.DM.BRTHYR", Name="Birth Year", DataType="integer")
        itd.Description = ODM.Description()
        itd.Description.TranslatedText.append(ODM.TranslatedText(_content="Year of the subject's birth", lang="en"))
        itd.Question = ODM.Question()
        itd.Question.TranslatedText.append(ODM.TranslatedText(_content="Birth Year", lang="en"))
        itd.Alias.append(ODM.Alias(Context="CDASH", Name="BRTHYR"))
        itd.Alias.append(ODM.Alias(Context="SDTM", Name="BRTHDTC"))
        root.Study[0].MetaDataVersion[0].ItemDef.append(itd)

        # save the new ODM document to an ODM XML file
        root.write_xml(ODM_XML_FILE)

        # save the same ODM document to a JSON file
        root.write_json(ODM_JSON_FILE)
Пример #4
0
 def test_to_xml(self):
     attrs = self._set_attributes()
     cl = ODM.CodeList(**attrs)
     eni = ODM.EnumeratedItem(CodedValue="HGB", OrderNumber=1)
     eni.Alias = [ODM.Alias(Context="nci:ExtCodeID", Name="C64848")]
     cl.EnumeratedItem.append(eni)
     eni.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C65047"))
     cl_xml = cl.to_xml()
     self.assertEqual(cl_xml.attrib["OID"], "ODM.CL.LBTESTCD")
     ei = cl_xml.find("EnumeratedItem")
     self.assertEqual(ei.attrib["CodedValue"], "HGB")
Пример #5
0
 def test_add_code_list_item(self):
     cli1 = ODM.CodeListItem(CodedValue="HGB", OrderNumber=1)
     cli1.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C64848"))
     self.cl.CodeListItem.append(cli1)
     cli2 = ODM.CodeListItem(CodedValue="VITB12", OrderNumber=2)
     cli2.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C64817"))
     self.cl.CodeListItem.append(cli2)
     cli3 = ODM.CodeListItem(CodedValue="GLUC", OrderNumber=3)
     cli3.Alias = [ODM.Alias(Context="nci:ExtCodeID", Name="C41376")]
     self.cl.CodeListItem.append(cli3)
     cl_dict = self.cl.to_dict()
     print(cl_dict)
     self.assertDictEqual(cl_dict, self.expected_cli_dict())
Пример #6
0
 def test_add_enumerated_item(self):
     eni1 = ODM.EnumeratedItem(CodedValue="HGB", OrderNumber=1)
     eni1.Alias = [ODM.Alias(Context="nci:ExtCodeID", Name="C64848")]
     self.cl.EnumeratedItem.append(eni1)
     eni2 = ODM.EnumeratedItem(CodedValue="VITB12", OrderNumber=2)
     eni2.Alias = [ODM.Alias(Context="nci:ExtCodeID", Name="C64817")]
     self.cl.EnumeratedItem.append(eni2)
     eni3 = ODM.EnumeratedItem(CodedValue="GLUC", OrderNumber=3)
     eni3.Alias = [ODM.Alias(Context="nci:ExtCodeID", Name="C41376")]
     self.cl.EnumeratedItem.append(eni3)
     ei_dict = self.cl.to_dict()
     print(ei_dict)
     self.assertDictEqual(ei_dict, self.expected_eni_dict())
Пример #7
0
 def test_CodeList(self):
     attrs = {
         "OID": "ODM.CL.LBTESTCD",
         "Name": "Laboratory Test Code",
         "DataType": "text"
     }
     cl = ODM.CodeList(**attrs)
     eni = ODM.EnumeratedItem(CodedValue="HGB", OrderNumber=1)
     eni.Alias = [ODM.Alias(Context="nci:ExtCodeID", Name="C64848")]
     cl.EnumeratedItem.append(eni)
     eni.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C65047"))
     cl_dict = cl.to_dict()
     print(cl_dict)
     is_valid = self.validator.verify_conformance(cl_dict, "CodeList")
     self.assertTrue(is_valid)
Пример #8
0
 def test_to_xml_code_list_item(self):
     attrs = self._set_attributes()
     cl = ODM.CodeList(**attrs)
     cli1 = ODM.CodeListItem(CodedValue="HGB", OrderNumber=1)
     cli1.Alias = [ODM.Alias(Context="nci:ExtCodeID", Name="C64848")]
     cl.CodeListItem.append(cli1)
     cli2 = ODM.CodeListItem(CodedValue="VITB12", OrderNumber=2)
     cli2.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C64817"))
     cl.CodeListItem.append(cli2)
     cli3 = ODM.CodeListItem(CodedValue="GLUC", OrderNumber=3)
     cli3.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C41376"))
     cl.CodeListItem.append(cli3)
     cl_xml = cl.to_xml()
     self.assertEqual(cl_xml.attrib["OID"], "ODM.CL.LBTESTCD")
     ei = cl_xml.findall("CodeListItem")
     self.assertEqual(ei[0].attrib["CodedValue"], "HGB")
Пример #9
0
 def test_FormDef(self):
     formdef = ODM.FormDef(OID="ODM.F.VS",
                           Name="Vital Signs Form",
                           Repeating="Yes")
     tt1 = ODM.TranslatedText(_content="this is the first test description",
                              lang="en")
     formdef.Description = ODM.Description()
     formdef.Description.TranslatedText = [tt1]
     igr = ODM.ItemGroupRef(ItemGroupOID="ODM.IG.COMMON",
                            Mandatory="Yes",
                            OrderNumber="1")
     formdef.ItemGroupRef.append(igr)
     igr = ODM.ItemGroupRef(ItemGroupOID="ODM.IG.VS_GENERAL",
                            Mandatory="Yes",
                            OrderNumber="2")
     formdef.ItemGroupRef.append(igr)
     igr = ODM.ItemGroupRef(ItemGroupOID="ODM.IG.VS",
                            Mandatory="Yes",
                            OrderNumber="3")
     formdef.ItemGroupRef.append(igr)
     formdef.Alias.append(ODM.Alias(Context="SDTMIG", Name="VS"))
     fd_dict = formdef.to_dict()
     print(fd_dict)
     is_valid = self.validator.verify_conformance(fd_dict, "FormDef")
     self.assertTrue(is_valid)
Пример #10
0
 def test_to_dict(self):
     attrs = self._set_attributes()
     eni = ODM.EnumeratedItem(**attrs)
     eni.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C64848"))
     eni_dict = eni.to_dict()
     self.assertEqual(eni_dict["CodedValue"], "HGB")
     self.assertDictEqual(eni_dict, self.expected_dict())
Пример #11
0
 def test_Protocol(self):
     p = ODM.Protocol()
     tt = ODM.TranslatedText(_content="Trace-XML Test CDASH File",
                             lang="en")
     p.Description = ODM.Description()
     p.Description.TranslatedText = [tt]
     ser1 = ODM.StudyEventRef(StudyEventOID="BASELINE",
                              OrderNumber="1",
                              Mandatory="Yes")
     ser2 = ODM.StudyEventRef(StudyEventOID="FOLLOW-UP",
                              OrderNumber="2",
                              Mandatory="Yes")
     p.StudyEventRef = [ser1, ser2]
     p.Alias = [
         ODM.Alias(Context="ClinicalTrials.gov", Name="trace-protocol")
     ]
     description_dict = p.Description.to_dict()
     print(description_dict)
     is_valid = self.validator.verify_conformance(description_dict,
                                                  "Description")
     self.assertTrue(is_valid)
     protocol_dict = p.to_dict()
     print(protocol_dict)
     is_valid = self.validator.verify_conformance(protocol_dict, "Protocol")
     self.assertTrue(is_valid)
Пример #12
0
 def test_to_xml(self):
     attrs = self._set_attributes()
     eni = ODM.EnumeratedItem(**attrs)
     eni.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C64848"))
     eni_xml = eni.to_xml()
     self.assertEqual(eni_xml.attrib["CodedValue"], "HGB")
     alias_elem = eni_xml.find("Alias")
     self.assertEqual(alias_elem.attrib["Name"], "C64848")
Пример #13
0
 def test_add_not_alias(self):
     item = ODM.ItemDef(OID="ODM.IT.VSPOS", Name="VS Position", DataType="text")
     with self.assertRaises(TypeError):
         self.formdef.Alias = [item]
     self.formdef.Alias.append(ODM.Alias(Context="SDTMIG", Name="VS"))
     # list accepts invalid objects
     self.formdef.Alias.append(ODM.ItemDef(OID="ODM.IT.VSDT", Name="VS Date", DataType="text"))
     self.assertEqual(len(self.formdef.Alias), 2)
     self.assertEqual(self.formdef.Alias[0].Context, "SDTMIG")
Пример #14
0
 def test_CodeListItem(self):
     cli = ODM.CodeListItem(CodedValue="HGB", OrderNumber="1")
     tt1 = ODM.TranslatedText(_content="Hemoglobin", lang="en")
     decode = ODM.Decode()
     decode.TranslatedText.append(tt1)
     cli.Decode = decode
     cli.Alias.append(ODM.Alias(Context="nci:ExtCodeID", Name="C64848"))
     cli_dict = cli.to_dict()
     print(cli_dict)
     is_valid = self.validator.verify_conformance(cli_dict, "CodeListItem")
     self.assertTrue(is_valid)
Пример #15
0
 def test_to_dict(self):
     attrs = self.set_formdef_attributes()
     fd = ODM.FormDef(**attrs)
     fd.Description = ODM.Description()
     fd.Description.TranslatedText.append(ODM.TranslatedText(_content="this is the first test description", lang="en"))
     fd.ItemGroupRef.append(ODM.ItemGroupRef(ItemGroupOID="ODM.IG.COMMON", Mandatory="Yes", OrderNumber=1))
     fd.ItemGroupRef.append(ODM.ItemGroupRef(ItemGroupOID="ODM.IG.VS_GENERAL", Mandatory="Yes", OrderNumber=2))
     fd.ItemGroupRef.append(ODM.ItemGroupRef(ItemGroupOID="ODM.IG.VS", Mandatory="Yes", OrderNumber=3))
     fd.Alias.append(ODM.Alias(Context="SDTMIG", Name="VS"))
     fd_dict = fd.to_dict()
     self.assertEqual(fd_dict["OID"], "ODM.F.VS")
     self.assertDictEqual(fd_dict, self.expected_dict())
Пример #16
0
 def test_to_xml(self):
     attrs = self.set_formdef_attributes()
     fd = ODM.FormDef(**attrs)
     fd.Description = ODM.Description()
     fd.Description.TranslatedText.append(ODM.TranslatedText(_content="this is the first test description", lang="en"))
     fd.ItemGroupRef.append(ODM.ItemGroupRef(ItemGroupOID="ODM.IG.COMMON", Mandatory="Yes", OrderNumber=1))
     fd.ItemGroupRef.append(ODM.ItemGroupRef(ItemGroupOID="ODM.IG.VS_GENERAL", Mandatory="Yes", OrderNumber=2))
     fd.ItemGroupRef.append(ODM.ItemGroupRef(ItemGroupOID="ODM.IG.VS", Mandatory="Yes", OrderNumber=3))
     fd.Alias.append(ODM.Alias(Context="SDTMIG", Name="VS"))
     fd_xml = fd.to_xml()
     self.assertEqual(fd_xml.attrib["OID"], "ODM.F.VS")
     igr = fd_xml.findall("ItemGroupRef")
     self.assertEqual(len(igr), 3)
     self.assertEqual(igr[0].attrib, {"ItemGroupOID": "ODM.IG.COMMON", "Mandatory": "Yes", "OrderNumber": "1"})
Пример #17
0
 def test_StudEventDef(self):
     attrs = {
         "OID": "ODM.SE.BASELINE",
         "Name": "Baseline Visit",
         "Repeating": "No",
         "Type": "Scheduled",
         "Category": "Pre-treatment"
     }
     sed = ODM.StudyEventDef(**attrs)
     tt1 = ODM.TranslatedText(_content="this is the first test description",
                              lang="en")
     sed.Description = ODM.Description()
     sed.Description.TranslatedText = [tt1]
     fr1 = ODM.FormRef(FormOID="ODM.F.VS", Mandatory="Yes", OrderNumber="1")
     fr2 = ODM.FormRef(FormOID="ODM.F.DM", Mandatory="Yes", OrderNumber="2")
     fr3 = ODM.FormRef(FormOID="ODM.F.MH", Mandatory="Yes", OrderNumber="3")
     sed.FormRef = [fr1, fr2, fr3]
     a1 = ODM.Alias(Context="SDTMIG", Name="VS")
     a2 = ODM.Alias(Context="CDASHIG", Name="VS")
     sed.Alias = [a1, a2]
     sed_dict = sed.to_dict()
     print(sed_dict)
     is_valid = self.validator.verify_conformance(sed_dict, "StudyEventDef")
     self.assertTrue(is_valid)
Пример #18
0
 def test_to_dict(self):
     attrs = self.set_attributes()
     sed = ODM.StudyEventDef(**attrs)
     tt1 = ODM.TranslatedText(_content="this is the first test description",
                              lang="en")
     desc = ODM.Description()
     desc.TranslatedText = [tt1]
     sed.Description = desc
     fr1 = ODM.FormRef(FormOID="ODM.F.VS", Mandatory="Yes", OrderNumber=1)
     fr2 = ODM.FormRef(FormOID="ODM.F.DM", Mandatory="Yes", OrderNumber=2)
     fr3 = ODM.FormRef(FormOID="ODM.F.MH", Mandatory="Yes", OrderNumber=3)
     sed.FormRef = [fr1, fr2, fr3]
     a1 = ODM.Alias(Context="SDTMIG", Name="VS")
     sed.Alias = [a1]
     sed_dict = sed.to_dict()
     self.assertEqual(sed_dict["OID"], "ODM.SE.BASELINE")
     self.assertDictEqual(sed_dict, self.expected_dict())
Пример #19
0
 def add_protocol(self):
     p = ODM.Protocol()
     tt = ODM.TranslatedText(_content="Trace-XML Test CDASH File",
                             lang="en")
     p.Description = ODM.Description()
     p.Description.TranslatedText = [tt]
     ser1 = ODM.StudyEventRef(StudyEventOID="BASELINE",
                              OrderNumber=1,
                              Mandatory="Yes")
     ser2 = ODM.StudyEventRef(StudyEventOID="FOLLOW-UP",
                              OrderNumber=2,
                              Mandatory="Yes")
     p.StudyEventRef = [ser1, ser2]
     p.Alias = [
         ODM.Alias(Context="ClinicalTrials.gov", Name="trace-protocol")
     ]
     return p
Пример #20
0
 def test_to_xml(self):
     attrs = self.set_attributes()
     sed = ODM.StudyEventDef(**attrs)
     tt1 = ODM.TranslatedText(_content="this is the first test description",
                              lang="en")
     desc = ODM.Description()
     desc.TranslatedText = [tt1]
     sed.Description = desc
     fr1 = ODM.FormRef(FormOID="ODM.F.VS", Mandatory="Yes", OrderNumber=1)
     fr2 = ODM.FormRef(FormOID="ODM.F.DM", Mandatory="Yes", OrderNumber=2)
     fr3 = ODM.FormRef(FormOID="ODM.F.MH", Mandatory="Yes", OrderNumber=3)
     sed.FormRef = [fr1, fr2, fr3]
     a1 = ODM.Alias(Context="SDTMIG", Name="VS")
     sed.Alias = [a1]
     sed_xml = sed.to_xml()
     self.assertEqual(sed_xml.attrib["OID"], "ODM.SE.BASELINE")
     fr = sed_xml.findall("FormRef")
     self.assertEqual(len(fr), 3)
     self.assertEqual(fr[0].attrib, {
         "FormOID": "ODM.F.VS",
         "Mandatory": "Yes",
         "OrderNumber": "1"
     })
Пример #21
0
 def test_add_alias(self):
     a = ODM.Alias(Context="CDASH", Name="AGE")
     self.cond_def.Alias = [a]
     self.assertEqual(self.cond_def.Alias[0].Name, "AGE")
Пример #22
0
 def test_add_alias(self):
     self.item.Alias = [ODM.Alias(Context="CDASH", Name="AEYN")]
     self.assertEqual(self.item.Alias[0].Name, "AEYN")
Пример #23
0
 def test_add_alias(self):
     self.formdef.Alias.append(ODM.Alias(Context="SDTMIG", Name="VS"))
     self.formdef.Alias.append(ODM.Alias(Context="CDASHIG", Name="VS"))
     self.assertEqual(len(self.formdef.Alias), 2)
     self.assertEqual(self.formdef.Alias[1].Context, "CDASHIG")
Пример #24
0
 def test_add_alias(self):
     a1 = ODM.Alias(Context="SDTMIG", Name="VSORRES")
     a2 = ODM.Alias(Context="SDTMIG", Name="VSTESTCD")
     self.igd.Alias = [a1, a2]
     self.assertEqual(len(self.igd.Alias), 2)
     self.assertEqual(self.igd.Alias[1].Name, "VSTESTCD")
Пример #25
0
 def test_add_alias(self):
     a1 = ODM.Alias(Context="SDTMIG", Name="VS")
     a2 = ODM.Alias(Context="CDASHIG", Name="VS")
     self.sed.Alias = [a1, a2]
     self.assertEqual(len(self.sed.Alias), 2)
     self.assertEqual(self.sed.Alias[1].Context, "CDASHIG")
Пример #26
0
 def test_add_alias(self):
     alias = ODM.Alias(Context="nci:ExtCodeID", Name="C64848")
     self.cl.Alias = [alias]
     self.assertEqual(self.cl.Alias[0].Name, "C64848")
Пример #27
0
 def test_add_alias(self):
     self.eni.Alias.append(ODM.Alias(Context="nci:ExtCodeID",
                                     Name="C64848"))
     self.assertEqual(self.eni.Alias[0].Context, "nci:ExtCodeID")
     self.assertEqual(self.eni.Alias[0].Name, "C64848")
Пример #28
0
 def test_add_undefined_content(self):
     # use conformance rules to check for unknown objects being added after creation
     attrs = {
         "OID": "ODM.IT.AE.AEYN",
         "Name": "Any AEs?",
         "DataType": "text",
         "Length": 1,
         "SASFieldName": "AEYN",
         "SDSVarName": "AEYN",
         "Origin": "CRF",
         "Comment": "Data management field",
         "SignificantDigits": 1
     }
     item = ODM.ItemDef(**attrs)
     clr = ODM.CodeListRef(CodeListOID="CL.TEST")
     with self.assertRaises(TypeError):
         item.NewCodeList = clr
     # cannot add unknown attributes or elements during creation, but can afterwards; catch with conformance checks
     attrs = {
         "OID": "ODM.IT.AE.AEYN",
         "Name": "Any AEs?",
         "DataType": "text",
         "Length": 1,
         "SASFieldName": "AEYN",
         "SDSVarName": "AEYN",
         "Origin": "CRF",
         "Comment": "Data management field",
         "SignificantDigits": 1
     }
     item = ODM.ItemDef(**attrs)
     with self.assertRaises(TypeError):
         item.InSignificantDigits = 1
     # can add all objects during creation and they are validated
     attrs = {
         "OID": "ODM.IT.AE.AEYN",
         "Name": "Any AEs?",
         "DataType": "text",
         "Length": 1,
         "SASFieldName": "AEYN",
         "SDSVarName": "AEYN",
         "Origin": "CRF",
         "Comment": "Data management field",
         "CodeListRef": clr
     }
     item = ODM.ItemDef(**attrs)
     self.assertEqual(item.CodeListRef, clr)
     attrs["CodeListReference"] = clr
     with self.assertRaises(TypeError):
         # test shows that ItemDef fails the schema check because it has an unknown CodeListReference object
         item = ODM.ItemDef(**attrs)
     self.assertEqual(item.CodeListRef, clr)
     # test adding the wrong type of object to a list
     attrs = {
         "OID": "ODM.IT.AE.AEYN",
         "Name": "Any AEs?",
         "DataType": "text",
         "Length": 1,
         "SASFieldName": "AEYN",
         "SDSVarName": "AEYN",
         "Origin": "CRF",
         "Comment": "Data management field",
         "Alias": [clr]
     }
     with self.assertRaises(TypeError):
         item = ODM.ItemDef(**attrs)
     # test adding the wrong type of object to a list
     alias = ODM.Alias(Context="CDASH", Name="AEYN")
     attrs = {
         "OID": "ODM.IT.AE.AEYN",
         "Name": "Any AEs?",
         "DataType": "text",
         "Length": 1,
         "SASFieldName": "AEYN",
         "SDSVarName": "AEYN",
         "Origin": "CRF",
         "Comment": "Data management field",
         "Alias": alias
     }
     with self.assertRaises(TypeError):
         item = ODM.ItemDef(**attrs)
     # assign wrong type of object to an element
     attrs = {
         "OID": "ODM.IT.AE.AEYN",
         "Name": "Any AEs?",
         "DataType": "text",
         "Length": 1,
         "SASFieldName": "AEYN",
         "SDSVarName": "AEYN",
         "Origin": "CRF",
         "Comment": "Data management field",
         "CodeListRef": alias
     }
     with self.assertRaises(TypeError):
         item = ODM.ItemDef(**attrs)
Пример #29
0
 def test_add_alias(self):
     self.methoddef.Alias = [ODM.Alias(Context="CDASH", Name="AGE")]
     self.assertEqual(self.methoddef.Alias[0].Name, "AGE")
Пример #30
0
 def add_ITD_nonunique(self):
     # ItemDef 1
     ttd1 = ODM.TranslatedText(_content="Date of measurements", lang="en")
     ttq1 = ODM.TranslatedText(_content="Date", lang="en")
     desc1 = ODM.Description()
     desc1.TranslatedText = [ttd1]
     q1 = ODM.Question()
     q1.TranslatedText = [ttq1]
     a1 = ODM.Alias(Context="CDASH", Name="VSDAT")
     itd1 = ODM.ItemDef(OID="ODM.IT.VS.VSDAT",
                        Name="Date",
                        DataType="partialDate")
     itd1.Description = desc1
     itd1.Question = q1
     itd1.Alias = [a1]
     # ItemDef 2
     ttd2 = ODM.TranslatedText(
         _content=
         "Result of the vital signs measurement as originally received or collected.",
         lang="en")
     ttq2 = ODM.TranslatedText(_content="Diastolic", lang="en")
     desc2 = ODM.Description()
     desc2.TranslatedText = [ttd2]
     q2 = ODM.Question()
     q2.TranslatedText = [ttq2]
     a2a = ODM.Alias(Context="CDASH", Name="BP.DIABP.VSORRES")
     a2b = ODM.Alias(Context="CDASH/SDTM", Name="VSORRES+VSORRESU")
     itd2 = ODM.ItemDef(OID="ODM.IT.VS.BP.VSORRESU",
                        Name="BP Units",
                        DataType="text")
     itd2.Description = desc2
     itd2.Question = q2
     itd2.Alias = [a2a, a2b]
     # ItemDef 3
     ttd3 = ODM.TranslatedText(_content="Adverse Event Term", lang="en")
     ttq3 = ODM.TranslatedText(_content="AE Term", lang="en")
     desc3 = ODM.Description()
     desc3.TranslatedText = [ttd3]
     q3 = ODM.Question()
     q3.TranslatedText = [ttq3]
     itd3 = ODM.ItemDef(OID="ODM.IT.AE.AETERM",
                        Name="AE Term",
                        DataType="text")
     itd3.Description = desc3
     itd3.Question = q3
     # ItemDef 4
     ttd4 = ODM.TranslatedText(_content="Adverse Event Severity", lang="en")
     ttq4 = ODM.TranslatedText(_content="AE Severity", lang="en")
     desc4 = ODM.Description()
     desc4.TranslatedText = [ttd4]
     q4 = ODM.Question()
     q4.TranslatedText = [ttq4]
     itd4 = ODM.ItemDef(OID="ODM.IT.AE.AESEV",
                        Name="AE Severity",
                        DataType="text")
     itd4.Description = desc4
     itd4.Question = q4
     # ItemDef 5
     ttd5 = ODM.TranslatedText(_content="Subject ID", lang="en")
     ttq5 = ODM.TranslatedText(_content="Subject ID", lang="en")
     desc5 = ODM.Description()
     desc5.TranslatedText = [ttd5]
     q5 = ODM.Question()
     q5.TranslatedText = [ttq5]
     itd5 = ODM.ItemDef(OID="ODM.IT.Common.SubjectID",
                        Name="Subject ID",
                        DataType="text")
     itd5.Description = desc5
     itd5.Question = q5
     # ItemDef 6
     ttd6 = ODM.TranslatedText(_content="Diastolic Blood Pressure Result",
                               lang="en")
     ttq6 = ODM.TranslatedText(_content="Diastolic BP", lang="en")
     desc6 = ODM.Description()
     desc6.TranslatedText = [ttd6]
     q6 = ODM.Question()
     q6.TranslatedText = [ttq6]
     itd6 = ODM.ItemDef(OID="ODM.IT.VS.BP.SYSBP.VSORRES",
                        Name="DBP Result",
                        DataType="text")
     itd6.Description = desc6
     itd6.Question = q6
     # ItemDef 7
     ttd7 = ODM.TranslatedText(_content="Birth Year", lang="en")
     ttq7 = ODM.TranslatedText(_content="DOB Year", lang="en")
     desc7 = ODM.Description()
     desc7.TranslatedText = [ttd7]
     q7 = ODM.Question()
     q7.TranslatedText = [ttq7]
     itd7 = ODM.ItemDef(OID="ODM.IT.DM.BRTHYR",
                        Name="Birth Year",
                        DataType="text")
     itd7.Description = desc7
     itd7.Question = q7
     # ItemDef 8
     ttd8 = ODM.TranslatedText(_content="Visit", lang="en")
     ttq8 = ODM.TranslatedText(_content="Visit", lang="en")
     desc8 = ODM.Description()
     desc8.TranslatedText = [ttd8]
     q8 = ODM.Question()
     q8.TranslatedText = [ttq8]
     itd8 = ODM.ItemDef(OID="ODM.IT.Common.Visit",
                        Name="Visit",
                        DataType="text")
     itd8.Description = desc8
     itd8.Question = q8
     # ItemDef 9
     ttd9 = ODM.TranslatedText(_content="Sex", lang="en")
     ttq9 = ODM.TranslatedText(_content="Sex", lang="en")
     desc9 = ODM.Description()
     desc9.TranslatedText = [ttd9]
     q9 = ODM.Question()
     q9.TranslatedText = [ttq9]
     itd9 = ODM.ItemDef(OID="ODM.IT.DM.SEX", Name="Sex", DataType="text")
     itd9.Description = desc9
     itd9.Question = q9
     # ItemDef 10
     ttd10 = ODM.TranslatedText(_content="Systolic Blood Pressure Result",
                                lang="en")
     ttq10 = ODM.TranslatedText(_content="Systolic BP", lang="en")
     desc10 = ODM.Description()
     desc10.TranslatedText = [ttd10]
     q10 = ODM.Question()
     q10.TranslatedText = [ttq10]
     itd10 = ODM.ItemDef(OID="ODM.IT.VS.BP.SYSBP.VSORRES",
                         Name="Systolic BP Result",
                         DataType="text")
     itd10.Description = desc10
     itd10.Question = q10
     return [itd1, itd2, itd3, itd4, itd5, itd6, itd7, itd8, itd9, itd10]