feat: hooks for updating and deleting medical records
This commit is contained in:
parent
4097e89f8b
commit
c0fcc807d3
@ -26,11 +26,11 @@ class PatientHistorySettings(Document):
|
|||||||
|
|
||||||
|
|
||||||
def create_medical_record(doc, method=None):
|
def create_medical_record(doc, method=None):
|
||||||
if frappe.flags.in_patch or frappe.flags.in_install or frappe.flags.in_setup_wizard or \
|
medical_record_required = validate_medical_record_required(doc)
|
||||||
frappe.db.get_value('Doctype', doc.doctype, 'module') != 'Healthcare':
|
if not medical_record_required:
|
||||||
return
|
return
|
||||||
|
|
||||||
if doc.doctype not in get_patient_history_doctypes():
|
if frappe.db.exists('Patient Medical Record', { 'reference_name': doc.name }):
|
||||||
return
|
return
|
||||||
|
|
||||||
subject = set_subject_field(doc)
|
subject = set_subject_field(doc)
|
||||||
@ -46,6 +46,30 @@ def create_medical_record(doc, method=None):
|
|||||||
medical_record.save(ignore_permissions=True)
|
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):
|
def set_subject_field(doc):
|
||||||
from frappe.utils.formatters import format_value
|
from frappe.utils.formatters import format_value
|
||||||
|
|
||||||
@ -114,3 +138,14 @@ def get_patient_history_config_dt(doctype):
|
|||||||
return 'Patient History Custom Document Type'
|
return 'Patient History Custom Document Type'
|
||||||
else:
|
else:
|
||||||
return 'Patient History Standard Document Type'
|
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
|
@ -223,7 +223,7 @@ standard_queries = {
|
|||||||
doc_events = {
|
doc_events = {
|
||||||
"*": {
|
"*": {
|
||||||
"on_submit": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.create_medical_record",
|
"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"
|
"on_cancel": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.delete_medical_record"
|
||||||
},
|
},
|
||||||
"Stock Entry": {
|
"Stock Entry": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user