feat: create medical record for therapy sessions
This commit is contained in:
parent
708bceba6e
commit
7a0f425674
@ -246,7 +246,7 @@ def make_procedure(source_name, target_doc=None):
|
|||||||
|
|
||||||
|
|
||||||
def insert_clinical_procedure_to_medical_record(doc):
|
def insert_clinical_procedure_to_medical_record(doc):
|
||||||
subject = cstr(doc.procedure_template)
|
subject = frappe.bold(_("Clinical Procedure conducted: ")) + cstr(doc.procedure_template) + "<br>"
|
||||||
if doc.practitioner:
|
if doc.practitioner:
|
||||||
subject += frappe.bold(_('Healthcare Practitioner: ')) + doc.practitioner
|
subject += frappe.bold(_('Healthcare Practitioner: ')) + doc.practitioner
|
||||||
if subject and doc.notes:
|
if subject and doc.notes:
|
||||||
|
@ -21,8 +21,14 @@ class TherapyPlan(Document):
|
|||||||
self.status = 'Completed'
|
self.status = 'Completed'
|
||||||
|
|
||||||
def set_totals(self):
|
def set_totals(self):
|
||||||
total_sessions = sum([int(d.no_of_sessions) for d in self.get('therapy_plan_details')])
|
total_sessions = 0
|
||||||
total_sessions_completed = sum([int(d.sessions_completed) for d in self.get('therapy_plan_details')])
|
total_sessions_completed = 0
|
||||||
|
for entry in self.therapy_plan_details:
|
||||||
|
if entry.no_of_sessions:
|
||||||
|
total_sessions += entry.no_of_sessions
|
||||||
|
if entry.sessions_completed:
|
||||||
|
total_sessions_completed += entry.sessions_completed
|
||||||
|
|
||||||
self.db_set('total_sessions', total_sessions)
|
self.db_set('total_sessions', total_sessions)
|
||||||
self.db_set('total_sessions_completed', total_sessions_completed)
|
self.db_set('total_sessions_completed', total_sessions_completed)
|
||||||
|
|
||||||
|
@ -13,14 +13,9 @@ frappe.ui.form.on('Therapy Session', {
|
|||||||
|
|
||||||
refresh: function(frm) {
|
refresh: function(frm) {
|
||||||
if (!frm.doc.__islocal) {
|
if (!frm.doc.__islocal) {
|
||||||
let target = 0;
|
frm.dashboard.add_indicator(__('Counts Targeted: {0}', [frm.doc.total_counts_targeted]), 'blue');
|
||||||
let completed = 0;
|
frm.dashboard.add_indicator(__('Counts Completed: {0}', [frm.doc.total_counts_completed]),
|
||||||
$.each(frm.doc.exercises, function(_i, e) {
|
(frm.doc.total_counts_completed < frm.doc.total_counts_targeted) ? 'orange' : 'green');
|
||||||
target += e.counts_target;
|
|
||||||
completed += e.counts_completed;
|
|
||||||
});
|
|
||||||
frm.dashboard.add_indicator(__('Counts Targetted: {0}', [target]), 'blue');
|
|
||||||
frm.dashboard.add_indicator(__('Counts Completed: {0}', [completed]), (completed < target) ? 'orange' : 'green');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frm.doc.docstatus === 1) {
|
if (frm.doc.docstatus === 1) {
|
||||||
|
@ -28,6 +28,10 @@
|
|||||||
"invoiced",
|
"invoiced",
|
||||||
"exercises_section",
|
"exercises_section",
|
||||||
"exercises",
|
"exercises",
|
||||||
|
"section_break_23",
|
||||||
|
"total_counts_targeted",
|
||||||
|
"column_break_25",
|
||||||
|
"total_counts_completed",
|
||||||
"amended_from"
|
"amended_from"
|
||||||
],
|
],
|
||||||
"fields": [
|
"fields": [
|
||||||
@ -173,11 +177,31 @@
|
|||||||
"fieldtype": "Data",
|
"fieldtype": "Data",
|
||||||
"label": "Patient Age",
|
"label": "Patient Age",
|
||||||
"read_only": 1
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "total_counts_targeted",
|
||||||
|
"fieldtype": "Int",
|
||||||
|
"label": "Total Counts Targeted",
|
||||||
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "total_counts_completed",
|
||||||
|
"fieldtype": "Int",
|
||||||
|
"label": "Total Counts Completed",
|
||||||
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "section_break_23",
|
||||||
|
"fieldtype": "Section Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_25",
|
||||||
|
"fieldtype": "Column Break"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2020-04-21 13:16:46.378798",
|
"modified": "2020-04-29 13:22:13.190353",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Healthcare",
|
"module": "Healthcare",
|
||||||
"name": "Therapy Session",
|
"name": "Therapy Session",
|
||||||
|
@ -6,10 +6,16 @@ from __future__ import unicode_literals
|
|||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.model.mapper import get_mapped_doc
|
from frappe.model.mapper import get_mapped_doc
|
||||||
|
from frappe import _
|
||||||
|
from frappe.utils import cstr
|
||||||
|
|
||||||
class TherapySession(Document):
|
class TherapySession(Document):
|
||||||
|
def validate(self):
|
||||||
|
self.set_total_counts()
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
self.update_sessions_count_in_therapy_plan()
|
self.update_sessions_count_in_therapy_plan()
|
||||||
|
insert_session_medical_record(self)
|
||||||
|
|
||||||
def on_cancel(self):
|
def on_cancel(self):
|
||||||
self.update_sessions_count_in_therapy_plan(on_cancel=True)
|
self.update_sessions_count_in_therapy_plan(on_cancel=True)
|
||||||
@ -24,6 +30,18 @@ class TherapySession(Document):
|
|||||||
entry.sessions_completed += 1
|
entry.sessions_completed += 1
|
||||||
therapy_plan.save()
|
therapy_plan.save()
|
||||||
|
|
||||||
|
def set_total_counts(self):
|
||||||
|
target_total = 0
|
||||||
|
counts_completed = 0
|
||||||
|
for entry in self.exercises:
|
||||||
|
if entry.counts_target:
|
||||||
|
target_total += entry.counts_target
|
||||||
|
if entry.counts_completed:
|
||||||
|
counts_completed += entry.counts_completed
|
||||||
|
|
||||||
|
self.db_set('total_counts_targeted', target_total)
|
||||||
|
self.db_set('total_counts_completed', counts_completed)
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def create_therapy_session(source_name, target_doc=None):
|
def create_therapy_session(source_name, target_doc=None):
|
||||||
@ -52,4 +70,24 @@ def create_therapy_session(source_name, target_doc=None):
|
|||||||
}
|
}
|
||||||
}, target_doc, set_missing_values)
|
}, target_doc, set_missing_values)
|
||||||
|
|
||||||
return doc
|
return doc
|
||||||
|
|
||||||
|
|
||||||
|
def insert_session_medical_record(doc):
|
||||||
|
subject = frappe.bold(_('Therapy: ')) + cstr(doc.therapy_type) + '<br>'
|
||||||
|
if doc.therapy_plan:
|
||||||
|
subject += frappe.bold(_('Therapy Plan: ')) + cstr(doc.therapy_plan) + '<br>'
|
||||||
|
if doc.practitioner:
|
||||||
|
subject += frappe.bold(_('Healthcare Practitioner: ')) + doc.practitioner
|
||||||
|
subject += frappe.bold(_('Total Counts Targeted: ')) + cstr(doc.total_counts_targeted) + '<br>'
|
||||||
|
subject += frappe.bold(_('Total Counts Completed: ')) + cstr(doc.total_counts_completed) + '<br>'
|
||||||
|
|
||||||
|
medical_record = frappe.new_doc('Patient Medical Record')
|
||||||
|
medical_record.patient = doc.patient
|
||||||
|
medical_record.subject = subject
|
||||||
|
medical_record.status = 'Open'
|
||||||
|
medical_record.communication_date = doc.start_date
|
||||||
|
medical_record.reference_doctype = 'Therapy Session'
|
||||||
|
medical_record.reference_name = doc.name
|
||||||
|
medical_record.reference_owner = doc.owner
|
||||||
|
medical_record.save(ignore_permissions=True)
|
Loading…
x
Reference in New Issue
Block a user