fix: added patch for refactored changes
This commit is contained in:
parent
ced978e192
commit
0f23a304bc
@ -241,8 +241,7 @@
|
||||
"fieldname": "gender",
|
||||
"fieldtype": "Link",
|
||||
"label": "Gender",
|
||||
"options": "Gender",
|
||||
"reqd": 1
|
||||
"options": "Gender"
|
||||
},
|
||||
{
|
||||
"fieldname": "employee_and_user_details_section",
|
||||
@ -277,7 +276,7 @@
|
||||
],
|
||||
"image_field": "image",
|
||||
"links": [],
|
||||
"modified": "2020-03-24 17:25:55.128808",
|
||||
"modified": "2020-04-06 13:44:24.759623",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Healthcare",
|
||||
"name": "Healthcare Practitioner",
|
||||
|
@ -266,31 +266,27 @@
|
||||
},
|
||||
{
|
||||
"fieldname": "tobacco_past_use",
|
||||
"fieldtype": "Select",
|
||||
"fieldtype": "Data",
|
||||
"ignore_xss_filter": 1,
|
||||
"label": "Tobacco Consumption (Past)",
|
||||
"options": "\nYes\nNo"
|
||||
"label": "Tobacco Consumption Habbits (Past)"
|
||||
},
|
||||
{
|
||||
"fieldname": "tobacco_current_use",
|
||||
"fieldtype": "Select",
|
||||
"fieldtype": "Data",
|
||||
"ignore_xss_filter": 1,
|
||||
"label": "Tobacco Consumption (Present)",
|
||||
"options": "\nYes\nNo"
|
||||
"label": "Tobacco Consumption Habbits (Present)"
|
||||
},
|
||||
{
|
||||
"fieldname": "alcohol_past_use",
|
||||
"fieldtype": "Select",
|
||||
"fieldtype": "Data",
|
||||
"ignore_xss_filter": 1,
|
||||
"label": "Alcohol Consumption (Past)",
|
||||
"options": "\nYes\nNo"
|
||||
"label": "Alcohol Consumption Habbits (Past)"
|
||||
},
|
||||
{
|
||||
"fieldname": "alcohol_current_use",
|
||||
"fieldtype": "Select",
|
||||
"fieldtype": "Data",
|
||||
"ignore_user_permissions": 1,
|
||||
"label": "Alcohol Consumption (Present)",
|
||||
"options": "\nYes\nNo"
|
||||
"label": "Alcohol Consumption Habbits (Present)"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_32",
|
||||
@ -361,7 +357,7 @@
|
||||
"image_field": "image",
|
||||
"links": [],
|
||||
"max_attachments": 50,
|
||||
"modified": "2020-03-20 14:59:53.945849",
|
||||
"modified": "2020-04-06 12:55:30.807744",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Healthcare",
|
||||
"name": "Patient",
|
||||
|
@ -660,3 +660,4 @@ erpnext.patches.v12_0.set_job_offer_applicant_email
|
||||
erpnext.patches.v12_0.create_irs_1099_field_united_states
|
||||
erpnext.patches.v12_0.move_bank_account_swift_number_to_bank
|
||||
erpnext.patches.v12_0.rename_bank_reconciliation_fields # 2020-01-22
|
||||
erpnext.patches.v12_0.update_healthcare_refactored_changes
|
131
erpnext/patches/v12_0/update_healthcare_refactored_changes.py
Normal file
131
erpnext/patches/v12_0/update_healthcare_refactored_changes.py
Normal file
@ -0,0 +1,131 @@
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe.model.utils.rename_field import rename_field
|
||||
from frappe.modules import scrub, get_doctype_module
|
||||
|
||||
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
|
||||
patients = frappe.get_all('Patient', fields=['name', 'patient_name'])
|
||||
frappe.reload_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
|
||||
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_doctype('Healthcare Practitioner')
|
||||
frappe.db.sql("update `tabHealthcare Practitioner` set status = 'Disabled' where name IN %(practitioners)s""", {"practitioners": practitioners_lst})
|
||||
|
||||
# set Clinical Procedure status
|
||||
frappe.reload_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
|
||||
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')
|
||||
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')
|
||||
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()
|
||||
|
||||
# update fee validity status
|
||||
frappe.db.sql("""
|
||||
UPDATE
|
||||
`tabFee Validity`
|
||||
SET
|
||||
status = (CASE WHEN visited >= max_visits THEN 'Completed'
|
||||
ELSE 'Pending'
|
||||
END)
|
||||
""")
|
Loading…
x
Reference in New Issue
Block a user