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))
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()
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)
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))
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()
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()