Esempio n. 1
0
class ObservationFactSQLTestCase(CRCTestCase):
    opts = connection_helper(CRCTestCase.test_conf_file)

    def test_insert(self):
        from i2b2model.data.i2b2observationfact import ObservationFactKey

        print("{} records deleted".format(
            ObservationFact.delete_upload_id(self.opts.tables,
                                             self.opts.uploadid)))
        ofk = ObservationFactKey(12345, 23456, 'provider',
                                 datetime(2017, 5, 23, 11, 17))
        I2B2Core.update_date = datetime(2017, 2, 19, 12, 33)
        with self.sourcesystem_cd():
            I2B2CoreWithUploadId.upload_id = self.opts.uploadid
            I2B2Core.sourcesystem_cd = "FHIR R4"
            obsf = ObservationFact(ofk, 'fhir:concept')
            n_ins, n_upd = ObservationFact.add_or_update_records(
                self.opts.tables, [obsf])
            self.assertEqual((0, 1), (n_upd, n_ins))
            obsf.instance_num = 2
            I2B2Core.sourcesystem_cd = "FHIR R4z"
            obsf2 = ObservationFact(ofk, 'fhir:concept')
            obsf2.instance_num = 2
            obsf2.modifier_cd = "fhir:modifier"
            n_ins, n_upd = ObservationFact.add_or_update_records(
                self.opts.tables, [obsf, obsf2])
            self.assertEqual((0, 2), (n_upd, n_ins))
            self.assertEqual(
                3,
                ObservationFact.delete_upload_id(self.opts.tables,
                                                 self.opts.uploadid))
Esempio n. 2
0
class SchemesTestcase(unittest.TestCase):
    opts = connection_helper(CRCTestCase.test_conf_file)
    rec = Schemes("TestCodeSystem", "A test coding system", "Used for unit tests - you should never see this")

    def setUp(self):
        self.rec.del_record(self.opts.tables)

    def tearDown(self):
        self.rec.del_record(self.opts.tables)

    def test_create(self):
        self.assertEqual("c_key\tc_name\tc_description", heading(self.rec))
        self.assertEqual('TestCodeSystem\tA test coding system\tUsed for unit tests - you should never see this',
                         row(self.rec))
        self.assertEqual(OrderedDict([
             ('c_key', 'TestCodeSystem'),
             ('c_name', 'A test coding system'),
             ('c_description',
              'Used for unit tests - you should never see this')]), as_dict(self.rec))

        self.assertEqual((1, 0), self.rec.add_or_update_record(self.opts.tables))
        self.assertEqual((0, 0), self.rec.add_or_update_record(self.opts.tables))
        self.rec.c_description = "Used for tests"
        self.assertEqual((0, 1), self.rec.add_or_update_record(self.opts.tables))
        self.assertEqual(1, self.rec.del_record(self.opts.tables))
        self.assertEqual(0, self.rec.del_record(self.opts.tables))
class PatientMappingSQLTestCase(unittest.TestCase):
    opts = connection_helper(CRCTestCase.test_conf_file)

    def test_insert(self):
        from i2b2model.data.i2b2patientmapping import PatientMapping, PatientIDEStatus

        PatientMapping.delete_upload_id(self.opts.tables, self.opts.uploadid)
        I2B2CoreWithUploadId.upload_id = self.opts.uploadid
        pm = PatientMapping(10000001, "12345", PatientIDEStatus.active, "http://hl7.org/fhir/", "fhir")

        n_ins, n_upd = PatientMapping.add_or_update_records(self.opts.tables, [pm])
        self.assertEqual((0, 1), (n_upd, n_ins))
        n_ins, n_upd = PatientMapping.add_or_update_records(self.opts.tables, [pm])
        self.assertEqual((0, 0), (n_upd, n_ins))
        pm.project_id = "TEST"

        pm2 = PatientMapping(10000001, "12346", PatientIDEStatus.active, "http://hl7.org/fhir/", "fhir")
        n_ins, n_upd = PatientMapping.add_or_update_records(self.opts.tables, [pm, pm2])
        self.assertEqual((0, 2), (n_upd, n_ins))
        self.assertEqual(3, PatientMapping.delete_upload_id(self.opts.tables, self.opts.uploadid))
Esempio n. 4
0
class EncounterMappingSQLTest(CRCTestCase):
    opts = connection_helper(CRCTestCase.test_conf_file)

    def test_insert(self):
        from i2b2model.data.i2b2encountermapping import EncounterIDEStatus

        I2B2Core.update_date = datetime(2017, 5, 25)

        with self.sourcesystem_cd():
            I2B2Core.sourcesystem_cd = self._sourcesystem_cd
            I2B2CoreWithUploadId.upload_id = self._upload_id

            # Add a brand new encounter mapping entry
            EncounterMapping.delete_sourcesystem_cd(self.opts.tables,
                                                    self._sourcesystem_cd)
            em = EncounterMapping("f001x", "http://hl7.org/fhir", "FHIR",
                                  1005000017, "patient01x",
                                  "http://hl7.org/fhir",
                                  EncounterIDEStatus.active)

            n_ins, n_upd = EncounterMapping.add_or_update_records(
                self.opts.tables, [em])
            self.assertEqual((0, 1), (n_upd, n_ins))
            n_ins, n_upd = EncounterMapping.add_or_update_records(
                self.opts.tables, [em])
            self.assertEqual((0, 0), (n_upd, n_ins))

            # Modify one entry and add a second
            em.encounter_ide_status = EncounterIDEStatus.inactive
            em2 = EncounterMapping("f002x", "http://hl7.org/fhir", "FHIR",
                                   1005000018, "patient01x",
                                   "http://hl7.org/fhir",
                                   EncounterIDEStatus.active)
            n_ins, n_upd = EncounterMapping.add_or_update_records(
                self.opts.tables, [em, em2])
            self.assertEqual((1, 1), (n_upd, n_ins))
            self.assertEqual(
                2,
                EncounterMapping.delete_upload_id(self.opts.tables,
                                                  self._upload_id))
Esempio n. 5
0
class PatientDimensionSQLTestCase(CRCTestCase):
    opts = connection_helper(CRCTestCase.test_conf_file)

    def test_insert(self):
        from i2b2model.data.i2b2patientdimension import PatientDimension, VitalStatusCd

        I2B2Core.update_date = datetime(2017, 5, 25)

        with self.sourcesystem_cd():
            I2B2Core.sourcesystem_cd = self._sourcesystem_cd
            I2B2CoreWithUploadId.upload_id = self._upload_id

            # Add a brand new encounter mapping entry
            PatientDimension.delete_sourcesystem_cd(self.opts.tables,
                                                    self._sourcesystem_cd)

            I2B2CoreWithUploadId.upload_id = self.opts.uploadid
            x = PatientDimension(12345)

            # Add a new patient dimension entry
            n_ins, n_upd = x.add_or_update_records(self.opts.tables, [x])
            self.assertEqual((0, 1), (n_upd, n_ins))

            # Make sure nothing happens when we re-enter it
            n_ins, n_upd = x.add_or_update_records(self.opts.tables, [x])
            self.assertEqual((0, 0), (n_upd, n_ins))

            # Change some properties on one and add another
            x.birth_date = datetime(2001, 12, 17)
            x.vital_status_cd = VitalStatusCd(VitalStatusCd.bd_day,
                                              VitalStatusCd.dd_living)
            y = PatientDimension(
                12346,
                VitalStatusCd(VitalStatusCd.bd_unknown,
                              VitalStatusCd.dd_unknown))
            n_ins, n_upd = x.add_or_update_records(self.opts.tables, [x, y])
            self.assertEqual((1, 1), (n_upd, n_ins))
            self.assertEqual(2,
                             x.delete_upload_id(self.opts.tables, x.upload_id))
Esempio n. 6
0
class VisitDimensionSQLTestCase(unittest.TestCase):
    opts = connection_helper(CRCTestCase.test_conf_file)

    def test_insert(self):
        from i2b2model.data.i2b2visitdimension import VisitDimension, ActiveStatusCd

        VisitDimension.delete_upload_id(self.opts.tables, self.opts.uploadid)
        I2B2CoreWithUploadId.upload_id = self.opts.uploadid

        x = VisitDimension(5000017, 10000017, ActiveStatusCd(ActiveStatusCd.sd_day, ActiveStatusCd.ed_year),
                           datetime(2007, 12, 9), datetime(2008, 1, 1))

        n_ins, n_upd = x.add_or_update_records(self.opts.tables, [x])
        self.assertEqual((0, 1), (n_upd, n_ins))
        n_ins, n_upd = x.add_or_update_records(self.opts.tables, [x])
        self.assertEqual((0, 0), (n_upd, n_ins))
        x.end_date = datetime(2010, 2, 1)
        x.active_status_cd_.endcode = ActiveStatusCd.ed_month
        y = VisitDimension(5000018, 10000017, ActiveStatusCd(ActiveStatusCd.sd_day, ActiveStatusCd.ed_year),
                           datetime(2007, 12, 9), datetime(2008, 1, 1))

        n_ins, n_upd = x.add_or_update_records(self.opts.tables, [x, y])
        self.assertEqual((1, 1), (n_upd, n_ins))
        self.assertEqual(2, x.delete_upload_id(self.opts.tables, x.upload_id))