mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-03 20:29:09 +00:00
test: verify that all patches exist in patches.txt (#31371)
* chore: delete orphaned patches * test: orphan/missing entries in patches.txt [skip ci]
This commit is contained in:
@@ -1,131 +0,0 @@
|
||||
import frappe
|
||||
from frappe.model.utils.rename_field import rename_field
|
||||
from frappe.modules import get_doctype_module, scrub
|
||||
|
||||
field_rename_map = {
|
||||
"Healthcare Settings": [
|
||||
["patient_master_name", "patient_name_by"],
|
||||
["max_visit", "max_visits"],
|
||||
["reg_sms", "send_registration_msg"],
|
||||
["reg_msg", "registration_msg"],
|
||||
["app_con", "send_appointment_confirmation"],
|
||||
["app_con_msg", "appointment_confirmation_msg"],
|
||||
["no_con", "avoid_confirmation"],
|
||||
["app_rem", "send_appointment_reminder"],
|
||||
["app_rem_msg", "appointment_reminder_msg"],
|
||||
["rem_before", "remind_before"],
|
||||
["manage_customer", "link_customer_to_patient"],
|
||||
["create_test_on_si_submit", "create_lab_test_on_si_submit"],
|
||||
["require_sample_collection", "create_sample_collection_for_lab_test"],
|
||||
["require_test_result_approval", "lab_test_approval_required"],
|
||||
["manage_appointment_invoice_automatically", "automate_appointment_invoicing"],
|
||||
],
|
||||
"Drug Prescription": [["use_interval", "usage_interval"], ["in_every", "interval_uom"]],
|
||||
"Lab Test Template": [
|
||||
["sample_quantity", "sample_qty"],
|
||||
["sample_collection_details", "sample_details"],
|
||||
],
|
||||
"Sample Collection": [
|
||||
["sample_quantity", "sample_qty"],
|
||||
["sample_collection_details", "sample_details"],
|
||||
],
|
||||
"Fee Validity": [["max_visit", "max_visits"]],
|
||||
}
|
||||
|
||||
|
||||
def execute():
|
||||
for dn in field_rename_map:
|
||||
if frappe.db.exists("DocType", dn):
|
||||
if dn == "Healthcare Settings":
|
||||
frappe.reload_doctype("Healthcare Settings")
|
||||
else:
|
||||
frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))
|
||||
|
||||
for dt, field_list in field_rename_map.items():
|
||||
if frappe.db.exists("DocType", dt):
|
||||
for field in field_list:
|
||||
if dt == "Healthcare Settings":
|
||||
rename_field(dt, field[0], field[1])
|
||||
elif frappe.db.has_column(dt, field[0]):
|
||||
rename_field(dt, field[0], field[1])
|
||||
|
||||
# first name mandatory in Patient
|
||||
if frappe.db.exists("DocType", "Patient"):
|
||||
patients = frappe.db.sql("select name, patient_name from `tabPatient`", as_dict=1)
|
||||
frappe.reload_doc("healthcare", "doctype", "patient")
|
||||
for entry in patients:
|
||||
name = entry.patient_name.split(" ")
|
||||
frappe.db.set_value("Patient", entry.name, "first_name", name[0])
|
||||
|
||||
# mark Healthcare Practitioner status as Disabled
|
||||
if frappe.db.exists("DocType", "Healthcare Practitioner"):
|
||||
practitioners = frappe.db.sql(
|
||||
"select name from `tabHealthcare Practitioner` where 'active'= 0", as_dict=1
|
||||
)
|
||||
practitioners_lst = [p.name for p in practitioners]
|
||||
frappe.reload_doc("healthcare", "doctype", "healthcare_practitioner")
|
||||
if practitioners_lst:
|
||||
frappe.db.sql(
|
||||
"update `tabHealthcare Practitioner` set status = 'Disabled' where name IN %(practitioners)s"
|
||||
"",
|
||||
{"practitioners": practitioners_lst},
|
||||
)
|
||||
|
||||
# set Clinical Procedure status
|
||||
if frappe.db.exists("DocType", "Clinical Procedure"):
|
||||
frappe.reload_doc("healthcare", "doctype", "clinical_procedure")
|
||||
frappe.db.sql(
|
||||
"""
|
||||
UPDATE
|
||||
`tabClinical Procedure`
|
||||
SET
|
||||
docstatus = (CASE WHEN status = 'Cancelled' THEN 2
|
||||
WHEN status = 'Draft' THEN 0
|
||||
ELSE 1
|
||||
END)
|
||||
"""
|
||||
)
|
||||
|
||||
# set complaints and diagnosis in table multiselect in Patient Encounter
|
||||
if frappe.db.exists("DocType", "Patient Encounter"):
|
||||
field_list = [["visit_department", "medical_department"], ["type", "appointment_type"]]
|
||||
encounter_details = frappe.db.sql(
|
||||
"""select symptoms, diagnosis, name from `tabPatient Encounter`""", as_dict=True
|
||||
)
|
||||
frappe.reload_doc("healthcare", "doctype", "patient_encounter")
|
||||
frappe.reload_doc("healthcare", "doctype", "patient_encounter_symptom")
|
||||
frappe.reload_doc("healthcare", "doctype", "patient_encounter_diagnosis")
|
||||
|
||||
for field in field_list:
|
||||
if frappe.db.has_column(dt, field[0]):
|
||||
rename_field(dt, field[0], field[1])
|
||||
|
||||
for entry in encounter_details:
|
||||
doc = frappe.get_doc("Patient Encounter", entry.name)
|
||||
symptoms = entry.symptoms.split("\n") if entry.symptoms else []
|
||||
for symptom in symptoms:
|
||||
if not frappe.db.exists("Complaint", symptom):
|
||||
frappe.get_doc({"doctype": "Complaint", "complaints": symptom}).insert()
|
||||
row = doc.append("symptoms", {"complaint": symptom})
|
||||
row.db_update()
|
||||
|
||||
diagnosis = entry.diagnosis.split("\n") if entry.diagnosis else []
|
||||
for d in diagnosis:
|
||||
if not frappe.db.exists("Diagnosis", d):
|
||||
frappe.get_doc({"doctype": "Diagnosis", "diagnosis": d}).insert()
|
||||
row = doc.append("diagnosis", {"diagnosis": d})
|
||||
row.db_update()
|
||||
doc.db_update()
|
||||
|
||||
if frappe.db.exists("DocType", "Fee Validity"):
|
||||
# update fee validity status
|
||||
frappe.db.sql(
|
||||
"""
|
||||
UPDATE
|
||||
`tabFee Validity`
|
||||
SET
|
||||
status = (CASE WHEN visited >= max_visits THEN 'Completed'
|
||||
ELSE 'Pending'
|
||||
END)
|
||||
"""
|
||||
)
|
||||
Reference in New Issue
Block a user