Ejemplo n.º 1
0
    def test_invalid_healthcare_service_unit_validation(self):
        from erpnext.healthcare.doctype.inpatient_record.inpatient_record import admit_patient, discharge_patient, schedule_discharge
        from erpnext.healthcare.doctype.inpatient_record.test_inpatient_record import \
         create_inpatient, get_healthcare_service_unit, mark_invoiced_inpatient_occupancy

        frappe.db.sql("""delete from `tabInpatient Record`""")
        patient, medical_department, practitioner = create_healthcare_docs()
        patient = create_patient()
        # Schedule Admission
        ip_record = create_inpatient(patient)
        ip_record.expected_length_of_stay = 0
        ip_record.save(ignore_permissions=True)

        # Admit
        service_unit = get_healthcare_service_unit(
            'Test Service Unit Ip Occupancy')
        admit_patient(ip_record, service_unit, now_datetime())

        appointment_service_unit = get_healthcare_service_unit(
            'Test Service Unit Ip Occupancy for Appointment')
        appointment = create_appointment(patient,
                                         practitioner,
                                         nowdate(),
                                         service_unit=appointment_service_unit,
                                         save=0)
        self.assertRaises(frappe.exceptions.ValidationError, appointment.save)

        # Discharge
        schedule_discharge(frappe.as_json({'patient': patient}))
        ip_record1 = frappe.get_doc("Inpatient Record", ip_record.name)
        mark_invoiced_inpatient_occupancy(ip_record1)
        discharge_patient(ip_record1)
    def test_inpatient_validation(self):
        # Discharge
        schedule_discharge(frappe.as_json({'patient': self.patient}))

        self.ip_record.reload()
        mark_invoiced_inpatient_occupancy(self.ip_record)

        self.ip_record.reload()
        discharge_patient(self.ip_record)

        ipmo = create_ipmo(self.patient)
        # inpatient validation
        self.assertRaises(frappe.ValidationError, ipmo.insert)
    def tearDown(self):
        if frappe.db.get_value('Patient', self.patient, 'inpatient_record'):
            # cleanup - Discharge
            schedule_discharge(frappe.as_json({'patient': self.patient}))
            self.ip_record.reload()
            mark_invoiced_inpatient_occupancy(self.ip_record)

            self.ip_record.reload()
            discharge_patient(self.ip_record)

        for doctype in [
                "Inpatient Medication Entry", "Inpatient Medication Order"
        ]:
            frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype))
Ejemplo n.º 4
0
    def tearDown(self):
        # cleanup - Discharge
        schedule_discharge(frappe.as_json({'patient': self.patient}))
        self.ip_record.reload()
        mark_invoiced_inpatient_occupancy(self.ip_record)

        self.ip_record.reload()
        discharge_patient(self.ip_record)

        for entry in frappe.get_all('Inpatient Medication Entry'):
            doc = frappe.get_doc('Inpatient Medication Entry', entry.name)
            doc.cancel()

        for entry in frappe.get_all('Inpatient Medication Order'):
            doc = frappe.get_doc('Inpatient Medication Order', entry.name)
            doc.cancel()
Ejemplo n.º 5
0
    def test_inpatient_validation(self):
        # Discharge
        schedule_discharge(
            frappe.as_json({
                "patient": self.patient,
                "discharge_ordered_datetime": now_datetime()
            }))

        self.ip_record.reload()
        mark_invoiced_inpatient_occupancy(self.ip_record)

        self.ip_record.reload()
        discharge_patient(self.ip_record, now_datetime())

        ipmo = create_ipmo(self.patient)
        # inpatient validation
        self.assertRaises(frappe.ValidationError, ipmo.insert)
Ejemplo n.º 6
0
    def tearDown(self):
        if frappe.db.get_value("Patient", self.patient, "inpatient_record"):
            # cleanup - Discharge
            schedule_discharge(
                frappe.as_json({
                    "patient": self.patient,
                    "discharge_ordered_datetime": now_datetime()
                }))
            self.ip_record.reload()
            mark_invoiced_inpatient_occupancy(self.ip_record)

            self.ip_record.reload()
            discharge_patient(self.ip_record, now_datetime())

        for doctype in [
                "Inpatient Medication Entry", "Inpatient Medication Order"
        ]:
            frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype))
Ejemplo n.º 7
0
    def tearDown(self):
        # cleanup - Discharge
        schedule_discharge(
            frappe.as_json({
                "patient": self.patient,
                "discharge_ordered_datetime": now_datetime()
            }))
        self.ip_record.reload()
        mark_invoiced_inpatient_occupancy(self.ip_record)

        self.ip_record.reload()
        discharge_patient(self.ip_record, now_datetime())

        for entry in frappe.get_all("Inpatient Medication Entry"):
            doc = frappe.get_doc("Inpatient Medication Entry", entry.name)
            doc.cancel()

        for entry in frappe.get_all("Inpatient Medication Order"):
            doc = frappe.get_doc("Inpatient Medication Order", entry.name)
            doc.cancel()
Ejemplo n.º 8
0
    def test_appointment_booking_for_admission_service_unit(self):
        from erpnext.healthcare.doctype.inpatient_record.inpatient_record import (
            admit_patient,
            discharge_patient,
            schedule_discharge,
        )
        from erpnext.healthcare.doctype.inpatient_record.test_inpatient_record import (
            create_inpatient,
            get_healthcare_service_unit,
            mark_invoiced_inpatient_occupancy,
        )

        frappe.db.sql("""delete from `tabInpatient Record`""")
        patient, practitioner = create_healthcare_docs()
        patient = create_patient()
        # Schedule Admission
        ip_record = create_inpatient(patient)
        ip_record.expected_length_of_stay = 0
        ip_record.save(ignore_permissions=True)

        # Admit
        service_unit = get_healthcare_service_unit(
            "_Test Service Unit Ip Occupancy")
        admit_patient(ip_record, service_unit, now_datetime())

        appointment = create_appointment(patient,
                                         practitioner,
                                         nowdate(),
                                         service_unit=service_unit)
        self.assertEqual(appointment.service_unit, service_unit)

        # Discharge
        schedule_discharge(
            frappe.as_json({
                "patient": patient,
                "discharge_ordered_datetime": now_datetime()
            }))
        ip_record1 = frappe.get_doc("Inpatient Record", ip_record.name)
        mark_invoiced_inpatient_occupancy(ip_record1)
        discharge_patient(ip_record1, now_datetime())
    def tearDown(self):
        if frappe.db.get_value('Patient', self.patient, 'inpatient_record'):
            # cleanup - Discharge
            schedule_discharge(
                frappe.as_json({
                    'patient': self.patient,
                    'discharge_ordered_datetime': now_datetime()
                }))
            self.ip_record.reload()
            mark_invoiced_inpatient_occupancy(self.ip_record)

            self.ip_record.reload()
            discharge_patient(self.ip_record, now_datetime())

        for entry in frappe.get_all('Inpatient Medication Entry'):
            doc = frappe.get_doc('Inpatient Medication Entry', entry.name)
            doc.cancel()
            doc.delete()

        for entry in frappe.get_all('Inpatient Medication Order'):
            doc = frappe.get_doc('Inpatient Medication Order', entry.name)
            doc.cancel()
            doc.delete()