예제 #1
0
 def test_add_range_check(self):
     rc = ODM.RangeCheck(Comparator="EQ", SoftHard="Soft")
     tt1 = ODM.TranslatedText(_content="invalid test code", lang="en")
     tt2 = ODM.TranslatedText(_content="code de test invalide", lang="fr")
     rc.CheckValue = [ODM.CheckValue(_content="DIABP")]
     rc.FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7",
                              _content="print('hello world')")
     ]
     rc.MeasurementUnitRef = ODM.MeasurementUnitRef(
         MeasurementUnitOID="ODM.MU.UNITS")
     attrs = {"Comparator": "GT", "SoftHard": "Soft"}
     rc1 = ODM.RangeCheck(**attrs)
     tt1 = ODM.TranslatedText(_content="invalid test code", lang="en")
     rc1.ErrorMessage.TranslatedText = [tt1]
     rc1.CheckValue = [ODM.CheckValue(_content="SYSBP")]
     rc1.FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7",
                              _content="print('hello world')")
     ]
     rc1.MeasurementUnitRef = ODM.MeasurementUnitRef(
         MeasurementUnitOID="ODM.MU.UNITS")
     self.item.RangeCheck = [rc, rc1]
     self.assertEqual(self.item.RangeCheck[0].Comparator, "EQ")
     self.assertEqual(self.item.RangeCheck[1].Comparator, "GT")
예제 #2
0
 def test_add_formal_expression(self):
     self.FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7",
                              _content="print('hello world')")
     ]
     self.assertEqual(self.FormalExpression[0]._content,
                      "print('hello world')")
예제 #3
0
 def test_to_xml(self):
     attrs = self.set_item_attributes()
     item = ODM.ItemDef(**attrs)
     item.Description.TranslatedText = [
         ODM.TranslatedText(_content="this is the first test description",
                            lang="en")
     ]
     item.Question.TranslatedText = [
         ODM.TranslatedText(_content="Any AEs?", lang="en")
     ]
     item.ExternalQuestion = ODM.ExternalQuestion(Dictionary="SF36",
                                                  Version="12",
                                                  Code="Walks 1-mile")
     item.CodeListRef = ODM.CodeListRef(
         CodeListOID="CL.NY_SUB_Y_N_2011-10-24")
     item.RangeCheck = [ODM.RangeCheck(Comparator="EQ", SoftHard="Soft")]
     item.RangeCheck[0].CheckValue = [ODM.CheckValue(_content="DIABP")]
     item.RangeCheck[0].FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7",
                              _content="print('hello world')")
     ]
     item.RangeCheck[0].MeasurementUnitRef = ODM.MeasurementUnitRef(
         MeasurementUnitOID="ODM.MU.UNITS")
     item.RangeCheck[0].ErrorMessage.TranslatedText = [
         ODM.TranslatedText(_content="invalid test code", lang="en")
     ]
     item_xml = item.to_xml()
     self.assertEqual(item_xml.attrib["OID"], "ODM.IT.AE.AEYN")
     cv = item_xml.find("*/CheckValue")
     self.assertEqual(cv.text, "DIABP")
     dt = item_xml.findall("Description/TranslatedText")
     self.assertEqual(len(dt), 1)
예제 #4
0
    def test_no_description(self):
        tt = ODM.TranslatedText(lang="en", _content="hello, world")
        validator = METADATA.MetadataSchema()
        results = tt.verify_conformance(validator)

        self.methoddef.FormalExpression = [ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')")]
        self.assertEqual(self.methoddef.FormalExpression[0]._content, "print('hello world')")
        with self.assertRaises(ValueError):
            results = self.methoddef.verify_conformance(validator)
예제 #5
0
 def test_to_dict(self):
     attrs = self.set_attributes()
     method = ODM.MethodDef(**attrs)
     desc = ODM.Description()
     tt1 = ODM.TranslatedText(_content="Age at Screening Date (Screening Date - Birth date)", lang="en")
     desc.TranslatedText = [tt1]
     method.Description = desc
     fex = ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')")
     method.FormalExpression = [fex]
     method_dict = method.to_dict()
     self.assertEqual(method_dict["OID"], "ODM.MT.AGE")
     self.assertDictEqual(method_dict, self.expected_dict())
예제 #6
0
 def test_to_xml(self):
     attrs = self.set_attributes()
     cd = ODM.ConditionDef(**attrs)
     cd.Description = ODM.Description()
     cd.Description.TranslatedText = [
         ODM.TranslatedText(
             _content="Skip the BRTHMO field when BRTHYR length NE 4",
             lang="en")
     ]
     cd.FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7", _content="BRTHYR != 4")
     ]
     cd_xml = cd.to_xml()
     self.assertEqual(cd_xml.attrib["OID"], "ODM.CD.BRTHMO")
     fex_xml = cd_xml.find("FormalExpression")
     self.assertEqual(fex_xml.attrib["Context"], "Python 3.7")
예제 #7
0
 def test_to_dict(self):
     attrs = self.set_attributes()
     cd = ODM.ConditionDef(**attrs)
     cd.Description = ODM.Description()
     cd.Description.TranslatedText = [
         ODM.TranslatedText(
             _content="Skip the BRTHMO field when BRTHYR length NE 4",
             lang="en")
     ]
     cd.FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7", _content="BRTHYR != 4")
     ]
     cd_dict = cd.to_dict()
     print(cd_dict)
     self.assertEqual(cd_dict["OID"], "ODM.CD.BRTHMO")
     self.assertDictEqual(cd_dict, self.expected_dict())
예제 #8
0
 def test_ConditionDef(self):
     attrs = {"OID": "ODM.CD.BRTHMO", "Name": "Skip BRTHMO when no BRTHYR"}
     cd = ODM.ConditionDef(**attrs)
     cd.Description = ODM.Description()
     cd.Description.TranslatedText = [
         ODM.TranslatedText(
             _content="Skip the BRTHMO field when BRTHYR length NE 4",
             lang="en")
     ]
     cd.FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7", _content="BRTHYR != 4")
     ]
     cd_dict = cd.to_dict()
     print(cd_dict)
     is_valid = self.validator.verify_conformance(cd_dict, "ConditionDef")
     self.assertTrue(is_valid)
예제 #9
0
 def test_RangeCheck(self):
     rc = ODM.RangeCheck(Comparator="EQ", SoftHard="Soft")
     tt1 = ODM.TranslatedText(_content="invalid test code", lang="en")
     tt2 = ODM.TranslatedText(_content="code de test invalide", lang="fr")
     rc.ErrorMessage.TranslatedText = [tt1, tt2]
     rc.CheckValue = [ODM.CheckValue(_content="DIABP")]
     rc.FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7",
                              _content="print('hello world')")
     ]
     rc.MeasurementUnitRef = ODM.MeasurementUnitRef(
         MeasurementUnitOID="ODM.MU.UNITS")
     rc_dict = rc.to_dict()
     print(rc_dict)
     is_valid = self.validator.verify_conformance(rc_dict, "RangeCheck")
     self.assertTrue(is_valid)
예제 #10
0
 def test_set_invalid_description(self):
     rc = ODM.RangeCheck(Comparator="EQ", SoftHard="Soft")
     tt1 = ODM.TranslatedText(_content="invalid test code", lang="en")
     tt2 = ODM.TranslatedText(_content="code de test invalide", lang="fr")
     rc.ErrorMessage.TranslatedText.append(tt1)
     rc.ErrorMessage.TranslatedText.append(tt2)
     rc.CheckValue = [ODM.CheckValue(_content="DIABP")]
     rc.FormalExpression = [
         ODM.FormalExpression(Context="Python 3.7",
                              _content="print('hello world')")
     ]
     rc.MeasurementUnitRef = [
         ODM.MeasurementUnitRef(MeasurementUnitOID="ODM.MU.UNITS")
     ]
     self.item.RangeCheck = [rc]
     # Description requires a Description object, not a RangeCheck object
     with self.assertRaises(TypeError):
         self.item.Description = rc
예제 #11
0
 def test_MethodDef(self):
     attrs = {
         "OID": "ODM.MT.AGE",
         "Name": "Algorithm to derive AGE",
         "Type": "Computation"
     }
     method = ODM.MethodDef(**attrs)
     method.Description = ODM.Description()
     method.Description.TranslatedText.append(
         ODM.TranslatedText(
             _content="Age at Screening Date (Screening Date - Birth date)",
             lang="en"))
     method.FormalExpression.append(
         ODM.FormalExpression(Context="Python 3.7",
                              _content="print('hello world')"))
     is_valid = self.validator.verify_conformance(method.to_dict(),
                                                  "MethodDef")
     self.assertTrue(is_valid)
예제 #12
0
 def test_add_formal_expression(self):
     fex = ODM.FormalExpression(Context="Python 3.7",
                                _content="BRTHYR != 4")
     self.cond_def.FormalExpression = [fex]
     self.assertEqual(self.cond_def.FormalExpression[0]._content,
                      "BRTHYR != 4")