feat: hooks for updating and deleting medical records

This commit is contained in:
Rucha Mahabal 2020-11-30 13:22:01 +05:30
parent 4097e89f8b
commit c0fcc807d3
2 changed files with 39 additions and 4 deletions

View File

@ -26,11 +26,11 @@ class PatientHistorySettings(Document):
def create_medical_record(doc, method=None):
if frappe.flags.in_patch or frappe.flags.in_install or frappe.flags.in_setup_wizard or \
frappe.db.get_value('Doctype', doc.doctype, 'module') != 'Healthcare':
medical_record_required = validate_medical_record_required(doc)
if not medical_record_required:
return
if doc.doctype not in get_patient_history_doctypes():
if frappe.db.exists('Patient Medical Record', { 'reference_name': doc.name }):
return
subject = set_subject_field(doc)
@ -46,6 +46,30 @@ def create_medical_record(doc, method=None):
medical_record.save(ignore_permissions=True)
def update_medical_record(doc, method=None):
medical_record_required = validate_medical_record_required(doc)
if not medical_record_required:
return
medical_record_id = frappe.db.exists('Patient Medical Record', { 'reference_name': doc.name })
if medical_record_id:
subject = set_subject_field(doc)
frappe.db.set_value('Patient Medical Record', medical_record_id[0][0], 'subject', subject)
else:
create_medical_record(doc)
def delete_medical_record(doc, method=None):
medical_record_required = validate_medical_record_required(doc)
if not medical_record_required:
return
record = frappe.db.exists('Patient Medical Record', { 'reference_name': doc.name })
if record:
frappe.delete_doc('Patient Medical Record', record, force=1)
def set_subject_field(doc):
from frappe.utils.formatters import format_value
@ -114,3 +138,14 @@ def get_patient_history_config_dt(doctype):
return 'Patient History Custom Document Type'
else:
return 'Patient History Standard Document Type'
def validate_medical_record_required(doc):
if frappe.flags.in_patch or frappe.flags.in_install or frappe.flags.in_setup_wizard or \
frappe.db.get_value('Doctype', doc.doctype, 'module') != 'Healthcare':
return False
if doc.doctype not in get_patient_history_doctypes():
return False
return True

View File

@ -223,7 +223,7 @@ standard_queries = {
doc_events = {
"*": {
"on_submit": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.create_medical_record",
"on_cancel": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.update_medical_record",
"on_update": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.update_medical_record",
"on_cancel": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.delete_medical_record"
},
"Stock Entry": {