[Enhance][Fix] Healthcare - DocType and Fields renaming (#14861)
* Rename DT - Physician Schedule Time Slot to Healthcare Schedule Time Slot
* Role name change
* Rename DT - Physician Schedule to Practitioner Schedule
* Rename DT - Physician Service Unit Schedule
* Rename DT - Physician to Practitioner
* Lab Test Template - field disabled in standard filter
* Patient - customer creation fix
* Rename DT - Consultation - Encounter
* Patches.txt updated for rename doctypes and fields in Healthcare
* Patch - Rename doctypes and fields in Healthcare Domain
* Fix - Patch - rename_healthcare_doctype_and_fields
* Vital Signs - New Fields - Abdomen, Tongue and Reflexes
* Web Form - Patient - Personal Details
* Rename DocType Physician to Healthcare Practitioner
* Rename DocType Consultation to Patient Encounter
* Web Form - Personal Details - Fix
* Web Form - Personal Details - Codacy Fix
* Healthcare patch run for all domain
* Rename label Practitioner to Healthcare Practitioner
* Rename Encounter to Patient Encounter
diff --git a/erpnext/config/desktop.py b/erpnext/config/desktop.py
index f987316..117b4c3 100644
--- a/erpnext/config/desktop.py
+++ b/erpnext/config/desktop.py
@@ -304,13 +304,13 @@
"hidden": 1
},
{
- "module_name": "Consultation",
+ "module_name": "Patient Encounter",
"color": "#2ecc71",
"icon": "fa fa-stethoscope",
- "doctype": "Consultation",
+ "doctype": "Patient Encounter",
"type": "link",
- "link": "List/Consultation",
- "label": _("Consultation"),
+ "link": "List/Patient Encounter",
+ "label": _("Patient Encounter"),
"hidden": 1
},
{
diff --git a/erpnext/config/healthcare.py b/erpnext/config/healthcare.py
index f1339a7..ae36f9c 100644
--- a/erpnext/config/healthcare.py
+++ b/erpnext/config/healthcare.py
@@ -15,8 +15,8 @@
},
{
"type": "doctype",
- "name": "Consultation",
- "label": _("Consultation"),
+ "name": "Patient Encounter",
+ "label": _("Patient Encounter"),
},
{
"type": "doctype",
@@ -74,13 +74,13 @@
},
{
"type": "doctype",
- "name": "Physician",
- "label": _("Physician"),
+ "name": "Healthcare Practitioner",
+ "label": _("Healthcare Practitioner"),
},
{
"type": "doctype",
- "name": "Physician Schedule",
- "label": _("Physician Schedule"),
+ "name": "Practitioner Schedule",
+ "label": _("Practitioner Schedule"),
},
{
"type": "doctype",
diff --git a/erpnext/demo/data/physician.json b/erpnext/demo/data/practitioner.json
similarity index 62%
rename from erpnext/demo/data/physician.json
rename to erpnext/demo/data/practitioner.json
index 3afea99..39c960f 100644
--- a/erpnext/demo/data/physician.json
+++ b/erpnext/demo/data/practitioner.json
@@ -1,16 +1,16 @@
[
{
- "doctype": "Physician",
+ "doctype": "Healthcare Practitioner",
"first_name": "Eddie Jessup",
"department": "Pathology"
},
{
- "doctype": "Physician",
+ "doctype": "Healthcare Practitioner",
"first_name": "Deepshi Garg",
"department": "ENT"
},
{
- "doctype": "Physician",
+ "doctype": "Healthcare Practitioner",
"first_name": "Amit Jain",
"department": "Microbiology"
}
diff --git a/erpnext/demo/setup/healthcare.py b/erpnext/demo/setup/healthcare.py
index b48e0bc..3ddb2ae 100644
--- a/erpnext/demo/setup/healthcare.py
+++ b/erpnext/demo/setup/healthcare.py
@@ -16,12 +16,12 @@
make_consulation()
make_appointment()
consulation_on_appointment()
- lab_test_on_consultation()
+ lab_test_on_encounter()
frappe.db.commit()
frappe.clear_cache()
def make_masters():
- import_json("Physician")
+ import_json("Healthcare Practitioner")
import_drug()
frappe.db.commit()
@@ -46,8 +46,8 @@
def make_appointment():
i = 1
while i <= 4:
- physician = get_random("Physician")
- department = frappe.get_value("Physician", physician, "department")
+ practitioner = get_random("Healthcare Practitioner")
+ department = frappe.get_value("Healthcare Practitioner", practitioner, "department")
patient = get_random("Patient")
patient_sex = frappe.get_value("Patient", patient, "sex")
appointment = frappe.new_doc("Patient Appointment")
@@ -59,92 +59,92 @@
appointment.appointment_date = appointment_datetime
appointment.patient = patient
appointment.patient_sex = patient_sex
- appointment.physician = physician
+ appointment.practitioner = practitioner
appointment.department = department
appointment.save(ignore_permissions = True)
i += 1
def make_consulation():
for i in range(3):
- physician = get_random("Physician")
- department = frappe.get_value("Physician", physician, "department")
+ practitioner = get_random("Healthcare Practitioner")
+ department = frappe.get_value("Healthcare Practitioner", practitioner, "department")
patient = get_random("Patient")
patient_sex = frappe.get_value("Patient", patient, "sex")
- consultation = set_consultation(patient, patient_sex, physician, department, getdate(), i)
- consultation.save(ignore_permissions=True)
+ encounter = set_encounter(patient, patient_sex, practitioner, department, getdate(), i)
+ encounter.save(ignore_permissions=True)
def consulation_on_appointment():
for i in range(3):
appointment = get_random("Patient Appointment")
appointment = frappe.get_doc("Patient Appointment",appointment)
- consultation = set_consultation(appointment.patient, appointment.patient_sex, appointment.physician, appointment.department, appointment.appointment_date, i)
- consultation.appointment = appointment.name
- consultation.save(ignore_permissions=True)
+ encounter = set_encounter(appointment.patient, appointment.patient_sex, appointment.practitioner, appointment.department, appointment.appointment_date, i)
+ encounter.appointment = appointment.name
+ encounter.save(ignore_permissions=True)
-def set_consultation(patient, patient_sex, physician, department, consultation_date, i):
- consultation = frappe.new_doc("Consultation")
- consultation.patient = patient
- consultation.patient_sex = patient_sex
- consultation.physician = physician
- consultation.visit_department = department
- consultation.consultation_date = consultation_date
+def set_encounter(patient, patient_sex, practitioner, department, encounter_date, i):
+ encounter = frappe.new_doc("Patient Encounter")
+ encounter.patient = patient
+ encounter.patient_sex = patient_sex
+ encounter.practitioner = practitioner
+ encounter.visit_department = department
+ encounter.encounter_date = encounter_date
if i > 2 and patient_sex=='Female':
- consultation.symptoms = "Having chest pains for the last week."
- consultation.diagnosis = """This patient's description of dull, aching,
+ encounter.symptoms = "Having chest pains for the last week."
+ encounter.diagnosis = """This patient's description of dull, aching,
exertion related substernal chest pain is suggestive of ischemic
cardiac origin. Her findings of a FH of early ASCVD, hypertension,
and early surgical menopause are pertinent risk factors for development
of coronary artery disease. """
else:
- consultation = append_drug_rx(consultation)
- consultation = append_test_rx(consultation)
- return consultation
+ encounter = append_drug_rx(encounter)
+ encounter = append_test_rx(encounter)
+ return encounter
def make_lab_test():
- physician = get_random("Physician")
+ practitioner = get_random("Healthcare Practitioner")
patient = get_random("Patient")
patient_sex = frappe.get_value("Patient", patient, "sex")
template = get_random("Lab Test Template")
- set_lab_test(patient, patient_sex, physician, template)
+ set_lab_test(patient, patient_sex, practitioner, template)
-def lab_test_on_consultation():
+def lab_test_on_encounter():
i = 1
while i <= 2:
test_rx = get_random("Lab Prescription", filters={'test_created': 0})
test_rx = frappe.get_doc("Lab Prescription", test_rx)
- consultation = frappe.get_doc("Consultation", test_rx.parent)
- set_lab_test(consultation.patient, consultation.patient_sex, consultation.physician, test_rx.test_code, test_rx.name)
+ encounter = frappe.get_doc("Patient Encounter", test_rx.parent)
+ set_lab_test(encounter.patient, encounter.patient_sex, encounter.practitioner, test_rx.test_code, test_rx.name)
i += 1
-def set_lab_test(patient, patient_sex, physician, template, rx=None):
+def set_lab_test(patient, patient_sex, practitioner, template, rx=None):
lab_test = frappe.new_doc("Lab Test")
- lab_test.physician = physician
+ lab_test.practitioner = practitioner
lab_test.patient = patient
lab_test.patient_sex = patient_sex
lab_test.template = template
lab_test.prescription = rx
create_test_from_template(lab_test)
-def append_test_rx(consultation):
+def append_test_rx(encounter):
i = 1
while i <= 2:
- test_rx = consultation.append("test_prescription")
+ test_rx = encounter.append("test_prescription")
test_rx.test_code = get_random("Lab Test Template")
i += 1
- return consultation
+ return encounter
-def append_drug_rx(consultation):
+def append_drug_rx(encounter):
i = 1
while i <= 3:
drug = get_random("Item", filters={"item_group":"Drug"})
drug = frappe.get_doc("Item", drug)
- drug_rx = consultation.append("drug_prescription")
+ drug_rx = encounter.append("drug_prescription")
drug_rx.drug_code = drug.item_code
drug_rx.drug_name = drug.item_name
drug_rx.dosage = get_random("Prescription Dosage")
drug_rx.period = get_random("Prescription Duration")
i += 1
- return consultation
+ return encounter
def random_date(start,l):
current = start
diff --git a/erpnext/domains/healthcare.py b/erpnext/domains/healthcare.py
index 3c54b01..5a54cf6 100644
--- a/erpnext/domains/healthcare.py
+++ b/erpnext/domains/healthcare.py
@@ -2,7 +2,7 @@
'desktop_icons': [
'Patient',
'Patient Appointment',
- 'Consultation',
+ 'Patient Encounter',
'Lab Test',
'Healthcare',
'Accounts',
@@ -26,4 +26,4 @@
insert_after='customer')
},
'on_setup': 'erpnext.healthcare.setup.setup_healthcare'
-}
\ No newline at end of file
+}
diff --git a/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.json b/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.json
index aac4224..35c0ff5 100644
--- a/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.json
+++ b/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.json
@@ -725,7 +725,7 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "Medical Administrator",
+ "role": "Healthcare Administrator",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
@@ -781,4 +781,4 @@
"title_field": "template",
"track_changes": 1,
"track_seen": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/healthcare/doctype/consultation/consultation_list.js b/erpnext/healthcare/doctype/consultation/consultation_list.js
deleted file mode 100755
index ea3906d..0000000
--- a/erpnext/healthcare/doctype/consultation/consultation_list.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-(c) ESS 2015-16
-*/
-frappe.listview_settings['Consultation'] = {
- filters:[["docstatus","!=","1"]]
-};
-
diff --git a/erpnext/healthcare/doctype/consultation/test_consultation.js b/erpnext/healthcare/doctype/consultation/test_consultation.js
deleted file mode 100644
index 803e73c..0000000
--- a/erpnext/healthcare/doctype/consultation/test_consultation.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable */
-// rename this file from _test_[name] to test_[name] to activate
-// and remove above this line
-
-QUnit.test("test: Consultation", function (assert) {
- let done = assert.async();
-
- // number of asserts
- assert.expect(1);
-
- frappe.run_serially([
- // insert a new Consultation
- () => frappe.tests.make('Consultation', [
- // values to be set
- {key: 'value'}
- ]),
- () => {
- assert.equal(cur_frm.doc.key, 'value');
- },
- () => done()
- ]);
-
-});
diff --git a/erpnext/healthcare/doctype/consultation/test_consultation.py b/erpnext/healthcare/doctype/consultation/test_consultation.py
deleted file mode 100644
index 24dc011..0000000
--- a/erpnext/healthcare/doctype/consultation/test_consultation.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, ESS LLP and Contributors
-# See license.txt
-from __future__ import unicode_literals
-import unittest
-
-# test_records = frappe.get_test_records('Consultation')
-
-class TestConsultation(unittest.TestCase):
- pass
diff --git a/erpnext/healthcare/doctype/fee_validity/fee_validity.json b/erpnext/healthcare/doctype/fee_validity/fee_validity.json
index 595539c..802f04a 100644
--- a/erpnext/healthcare/doctype/fee_validity/fee_validity.json
+++ b/erpnext/healthcare/doctype/fee_validity/fee_validity.json
@@ -14,11 +14,12 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "physician",
+ "fieldname": "practitioner",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -27,10 +28,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Physician",
+ "label": "Healthcare Practitioner",
"length": 0,
"no_copy": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -41,10 +42,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -72,10 +75,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -102,10 +107,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -132,10 +139,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -162,10 +171,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -193,6 +204,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -206,7 +218,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-10-05 11:26:35.292841",
+ "modified": "2018-07-16 12:43:45.635230",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Fee Validity",
@@ -215,7 +227,6 @@
"permissions": [
{
"amend": 0,
- "apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
@@ -238,11 +249,11 @@
"read_only": 0,
"read_only_onload": 0,
"restrict_to_domain": "Healthcare",
- "search_fields": "physician,patient",
+ "search_fields": "practitioner, patient",
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
- "title_field": "physician",
+ "title_field": "practitioner",
"track_changes": 0,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
index ed852f1..64222ad 100644
--- a/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
+++ b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
@@ -13,7 +13,7 @@
class TestFeeValidity(unittest.TestCase):
def test_fee_validity(self):
patient = get_random("Patient")
- physician = get_random("Physician")
+ practitioner = get_random("Healthcare Practitioner")
department = get_random("Medical Department")
if not patient:
@@ -29,36 +29,36 @@
medical_department.save(ignore_permissions=True)
department = medical_department.name
- if not physician:
- physician = frappe.new_doc("Physician")
- physician.first_name = "Amit Jain"
- physician.department = department
- physician.save(ignore_permissions=True)
- physician = physician.name
+ if not practitioner:
+ practitioner = frappe.new_doc("Healthcare Practitioner")
+ practitioner.first_name = "Amit Jain"
+ practitioner.department = department
+ practitioner.save(ignore_permissions=True)
+ practitioner = practitioner.name
frappe.db.set_value("Healthcare Settings", None, "max_visit", 2)
frappe.db.set_value("Healthcare Settings", None, "valid_days", 7)
- appointment = create_appointment(patient, physician, nowdate(), department)
+ appointment = create_appointment(patient, practitioner, nowdate(), department)
invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
self.assertEqual(invoice, None)
invoice_appointment(appointment)
- appointment = create_appointment(patient, physician, add_days(nowdate(), 4), department)
+ appointment = create_appointment(patient, practitioner, add_days(nowdate(), 4), department)
invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
self.assertTrue(invoice)
- appointment = create_appointment(patient, physician, add_days(nowdate(), 5), department)
+ appointment = create_appointment(patient, practitioner, add_days(nowdate(), 5), department)
invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
self.assertEqual(invoice, None)
- appointment = create_appointment(patient, physician, add_days(nowdate(), 10), department)
+ appointment = create_appointment(patient, practitioner, add_days(nowdate(), 10), department)
invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
self.assertEqual(invoice, None)
-def create_appointment(patient, physician, appointment_date, department):
+def create_appointment(patient, practitioner, appointment_date, department):
appointment = frappe.new_doc("Patient Appointment")
appointment.patient = patient
- appointment.physician = physician
+ appointment.practitioner = practitioner
appointment.department = department
appointment.appointment_date = appointment_date
appointment.company = "_Test Company"
diff --git a/erpnext/healthcare/doctype/consultation/__init__.py b/erpnext/healthcare/doctype/healthcare_practitioner/__init__.py
similarity index 100%
rename from erpnext/healthcare/doctype/consultation/__init__.py
rename to erpnext/healthcare/doctype/healthcare_practitioner/__init__.py
diff --git a/erpnext/healthcare/doctype/physician/physician.js b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js
old mode 100755
new mode 100644
similarity index 90%
rename from erpnext/healthcare/doctype/physician/physician.js
rename to erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js
index 0b1a077..f2dc849
--- a/erpnext/healthcare/doctype/physician/physician.js
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js
@@ -1,7 +1,7 @@
// Copyright (c) 2016, ESS LLP and contributors
// For license information, please see license.txt
-frappe.ui.form.on('Physician', {
+frappe.ui.form.on('Healthcare Practitioner', {
setup: function(frm) {
frm.set_query('account', 'accounts', function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
@@ -15,11 +15,11 @@
});
},
refresh: function(frm) {
- frappe.dynamic_link = {doc: frm.doc, fieldname: 'name', doctype: 'Physician'};
+ frappe.dynamic_link = {doc: frm.doc, fieldname: 'name', doctype: 'Healthcare Practitioner'};
if(!frm.is_new()) {
frappe.contacts.render_address_and_contact(frm);
}
- frm.set_query("service_unit", "physician_schedules", function(){
+ frm.set_query("service_unit", "practitioner_schedules", function(){
return {
filters: {
"is_group": false,
@@ -30,7 +30,7 @@
}
});
-frappe.ui.form.on("Physician", "user_id",function(frm) {
+frappe.ui.form.on("Healthcare Practitioner", "user_id",function(frm) {
if(frm.doc.user_id){
frappe.call({
"method": "frappe.client.get",
@@ -64,7 +64,7 @@
}
});
-frappe.ui.form.on("Physician", "employee", function(frm) {
+frappe.ui.form.on("Healthcare Practitioner", "employee", function(frm) {
if(frm.doc.employee){
frappe.call({
"method": "frappe.client.get",
diff --git a/erpnext/healthcare/doctype/physician/physician.json b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json
similarity index 94%
rename from erpnext/healthcare/doctype/physician/physician.json
rename to erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json
index 7fb1a56..e7c575d 100644
--- a/erpnext/healthcare/doctype/physician/physician.json
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json
@@ -14,6 +14,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -45,6 +46,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -76,6 +78,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -107,6 +110,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -138,6 +142,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -170,6 +175,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -202,6 +208,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -234,6 +241,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -266,6 +274,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -296,6 +305,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -327,6 +337,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -358,6 +369,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -389,6 +401,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -420,6 +433,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -451,11 +465,12 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "physician_schedules",
+ "fieldname": "practitioner_schedules",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -464,10 +479,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Physician Schedules",
+ "label": "Practitioner Schedules",
"length": 0,
"no_copy": 0,
- "options": "Physician Service Unit Schedule",
+ "options": "Practitioner Service Unit Schedule",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -483,6 +498,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -514,6 +530,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -546,6 +563,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -577,6 +595,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -608,6 +627,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -638,6 +658,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -669,6 +690,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -700,6 +722,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -732,6 +755,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -774,16 +798,15 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-03-09 15:25:43.166877",
+ "modified": "2018-07-10 11:18:58.760297",
"modified_by": "Administrator",
"module": "Healthcare",
- "name": "Physician",
+ "name": "Healthcare Practitioner",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
- "apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 0,
@@ -803,7 +826,6 @@
},
{
"amend": 0,
- "apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
@@ -823,7 +845,6 @@
},
{
"amend": 0,
- "apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
diff --git a/erpnext/healthcare/doctype/physician/physician.py b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py
similarity index 62%
rename from erpnext/healthcare/doctype/physician/physician.py
rename to erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py
index eb03083..753ecd1 100644
--- a/erpnext/healthcare/doctype/physician/physician.py
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py
@@ -10,12 +10,12 @@
from erpnext.accounts.party import validate_party_accounts
from frappe.contacts.address_and_contact import load_address_and_contact, delete_contact_and_address
-class Physician(Document):
+class HealthcarePractitioner(Document):
def onload(self):
load_address_and_contact(self)
def autoname(self):
- # physician first_name and last_name
+ # practitioner first_name and last_name
self.name = " ".join(filter(None,
[cstr(self.get(f)).strip() for f in ["first_name","middle_name","last_name"]]))
@@ -25,20 +25,20 @@
if self.user_id:
self.validate_for_enabled_user_id()
self.validate_duplicate_user_id()
- existing_user_id = frappe.db.get_value("Physician", self.name, "user_id")
+ existing_user_id = frappe.db.get_value("Healthcare Practitioner", self.name, "user_id")
if self.user_id != existing_user_id:
frappe.permissions.remove_user_permission(
- "Physician", self.name, existing_user_id)
+ "Healthcare Practitioner", self.name, existing_user_id)
else:
- existing_user_id = frappe.db.get_value("Physician", self.name, "user_id")
+ existing_user_id = frappe.db.get_value("Healthcare Practitioner", self.name, "user_id")
if existing_user_id:
frappe.permissions.remove_user_permission(
- "Physician", self.name, existing_user_id)
+ "Healthcare Practitioner", self.name, existing_user_id)
def on_update(self):
if self.user_id:
- frappe.permissions.add_user_permission("Physician", self.name, self.user_id)
+ frappe.permissions.add_user_permission("Healthcare Practitioner", self.name, self.user_id)
def validate_for_enabled_user_id(self):
@@ -49,11 +49,11 @@
frappe.throw(_("User {0} is disabled").format(self.user_id))
def validate_duplicate_user_id(self):
- physician = frappe.db.sql_list("""select name from `tabPhysician` where
+ practitioner = frappe.db.sql_list("""select name from `tabHealthcare Practitioner` where
user_id=%s and name!=%s""", (self.user_id, self.name))
- if physician:
- throw(_("User {0} is already assigned to Physician {1}").format(
- self.user_id, physician[0]), frappe.DuplicateEntryError)
+ if practitioner:
+ throw(_("User {0} is already assigned to Healthcare Practitioner {1}").format(
+ self.user_id, practitioner[0]), frappe.DuplicateEntryError)
def on_trash(self):
- delete_contact_and_address('Physician', self.name)
+ delete_contact_and_address('Healthcare Practitioner', self.name)
diff --git a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner_dashboard.py b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner_dashboard.py
new file mode 100644
index 0000000..3c01ab0
--- /dev/null
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner_dashboard.py
@@ -0,0 +1,18 @@
+from frappe import _
+
+def get_data():
+ return {
+ 'heatmap': True,
+ 'heatmap_message': _('This is based on transactions against this Healthcare Practitioner.'),
+ 'fieldname': 'practitioner',
+ 'transactions': [
+ {
+ 'label': _('Appointments and Patient Encounters'),
+ 'items': ['Patient Appointment', 'Patient Encounter']
+ },
+ {
+ 'label': _('Lab Tests'),
+ 'items': ['Lab Test']
+ }
+ ]
+ }
diff --git a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js b/erpnext/healthcare/doctype/healthcare_practitioner/test_healthcare_practitioner.js
similarity index 67%
copy from erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js
copy to erpnext/healthcare/doctype/healthcare_practitioner/test_healthcare_practitioner.js
index c397f18..75aa208 100644
--- a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/test_healthcare_practitioner.js
@@ -2,15 +2,15 @@
// rename this file from _test_[name] to test_[name] to activate
// and remove above this line
-QUnit.test("test: Physician Schedule", function (assert) {
+QUnit.test("test: Healthcare Practitioner", function (assert) {
let done = assert.async();
// number of asserts
assert.expect(1);
frappe.run_serially([
- // insert a new Physician Schedule
- () => frappe.tests.make('Physician Schedule', [
+ // insert a new Healthcare Practitioner
+ () => frappe.tests.make('Healthcare Practitioner', [
// values to be set
{key: 'value'}
]),
diff --git a/erpnext/healthcare/doctype/healthcare_practitioner/test_healthcare_practitioner.py b/erpnext/healthcare/doctype/healthcare_practitioner/test_healthcare_practitioner.py
new file mode 100644
index 0000000..de8201b
--- /dev/null
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/test_healthcare_practitioner.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestHealthcarePractitioner(unittest.TestCase):
+ pass
diff --git a/erpnext/healthcare/doctype/physician_schedule_time_slot/__init__.py b/erpnext/healthcare/doctype/healthcare_schedule_time_slot/__init__.py
similarity index 100%
rename from erpnext/healthcare/doctype/physician_schedule_time_slot/__init__.py
rename to erpnext/healthcare/doctype/healthcare_schedule_time_slot/__init__.py
diff --git a/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.json b/erpnext/healthcare/doctype/healthcare_schedule_time_slot/healthcare_schedule_time_slot.json
similarity index 94%
rename from erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.json
rename to erpnext/healthcare/doctype/healthcare_schedule_time_slot/healthcare_schedule_time_slot.json
index 8aece2b..9faa5b2 100644
--- a/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.json
+++ b/erpnext/healthcare/doctype/healthcare_schedule_time_slot/healthcare_schedule_time_slot.json
@@ -41,6 +41,7 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
@@ -71,6 +72,7 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
@@ -101,6 +103,7 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -114,10 +117,10 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-07-12 14:28:01.985998",
+ "modified": "2018-05-08 13:45:57.226530",
"modified_by": "Administrator",
"module": "Healthcare",
- "name": "Physician Schedule Time Slot",
+ "name": "Healthcare Schedule Time Slot",
"name_case": "",
"owner": "rmehta@gmail.com",
"permissions": [],
diff --git a/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.py b/erpnext/healthcare/doctype/healthcare_schedule_time_slot/healthcare_schedule_time_slot.py
similarity index 61%
rename from erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.py
rename to erpnext/healthcare/doctype/healthcare_schedule_time_slot/healthcare_schedule_time_slot.py
index abdce51..e58ea53 100644
--- a/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.py
+++ b/erpnext/healthcare/doctype/healthcare_schedule_time_slot/healthcare_schedule_time_slot.py
@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
from frappe.model.document import Document
-class PhysicianScheduleTimeSlot(Document):
+class HealthcareScheduleTimeSlot(Document):
pass
diff --git a/erpnext/healthcare/doctype/healthcare_service_unit/healthcare_service_unit.json b/erpnext/healthcare/doctype/healthcare_service_unit/healthcare_service_unit.json
index d11ecdc..dbb5b20 100644
--- a/erpnext/healthcare/doctype/healthcare_service_unit/healthcare_service_unit.json
+++ b/erpnext/healthcare/doctype/healthcare_service_unit/healthcare_service_unit.json
@@ -380,7 +380,7 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "Medical Administrator",
+ "role": "Healthcare Administrator",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
@@ -417,4 +417,4 @@
"title_field": "healthcare_service_unit_name",
"track_changes": 1,
"track_seen": 0
-}
\ No newline at end of file
+}
diff --git a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json
index 7d9f2c7..0bd8534 100644
--- a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json
+++ b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json
@@ -14,6 +14,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -40,10 +41,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -71,10 +74,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -103,10 +108,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -134,10 +141,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -163,10 +172,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -193,10 +204,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -225,10 +238,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -242,7 +257,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Consultations in valid days",
+ "label": "Patient Encounters in valid days",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -255,10 +270,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -285,10 +302,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -315,10 +334,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -345,10 +366,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -377,10 +400,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -407,15 +432,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "default": "Hello {{doc.patient}}, You have scheduled an appointment with {{doc.physician}} by {{doc.start_dt}} at {{doc.company}}.\nThank you, Good day!",
+ "default": "Hello {{doc.patient}}, You have scheduled an appointment with {{doc.practitioner}} by {{doc.start_dt}} at {{doc.company}}.\nThank you, Good day!",
"depends_on": "app_con",
"fieldname": "app_con_msg",
"fieldtype": "Small Text",
@@ -439,10 +466,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -471,10 +500,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -500,10 +531,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -530,15 +563,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "default": "Hello {{doc.patient}}, You have an appointment with {{doc.physician}} by {{doc.appointment_time}} at {{doc.company}}.\nThank you, Good day!\n",
+ "default": "Hello {{doc.patient}}, You have an appointment with {{doc.practitioner}} by {{doc.appointment_time}} at {{doc.company}}.\nThank you, Good day!\n",
"depends_on": "app_rem",
"fieldname": "app_rem_msg",
"fieldtype": "Small Text",
@@ -562,10 +597,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -593,15 +630,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
"columns": 0,
- "description": "Default income accounts to be used if not set in Physician to book Consultation charges.",
+ "description": "Default income accounts to be used if not set in Healthcare Practitioner to book Appointment charges.",
"fieldname": "sb_in_ac",
"fieldtype": "Section Break",
"hidden": 0,
@@ -624,10 +663,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -655,15 +696,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
"columns": 0,
- "description": "Default receivable accounts to be used if not set in Patient to book Consultation charges.",
+ "description": "Default receivable accounts to be used if not set in Patient to book Appointment charges.",
"fieldname": "sb_r_ac",
"fieldtype": "Section Break",
"hidden": 0,
@@ -686,10 +729,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -717,10 +762,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -747,10 +794,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -778,10 +827,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -808,10 +859,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -837,10 +890,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -868,10 +923,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -899,10 +956,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -929,10 +988,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -960,10 +1021,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -989,10 +1052,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1020,6 +1085,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -1033,7 +1099,7 @@
"issingle": 1,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-10-05 11:36:44.087182",
+ "modified": "2018-07-16 14:00:04.171717",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Healthcare Settings",
@@ -1042,7 +1108,6 @@
"permissions": [
{
"amend": 0,
- "apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
diff --git a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
index ae7c4c5..3a142f5 100644
--- a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
+++ b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
@@ -50,9 +50,9 @@
return receivable_account
return frappe.db.get_value("Company", company, "default_receivable_account")
-def get_income_account(physician, company):
- if(physician):
- income_account = get_account("Physician", None, physician, company)
+def get_income_account(practitioner, company):
+ if(practitioner):
+ income_account = get_account("Healthcare Practitioner", None, practitioner, company)
if income_account:
return income_account
income_account = get_account(None, "income_account", "Healthcare Settings", company)
diff --git a/erpnext/healthcare/doctype/lab_test/lab_test.js b/erpnext/healthcare/doctype/lab_test/lab_test.js
index 02aa001..c3b069d 100644
--- a/erpnext/healthcare/doctype/lab_test/lab_test.js
+++ b/erpnext/healthcare/doctype/lab_test/lab_test.js
@@ -30,7 +30,7 @@
});
}
if(frm.doc.__islocal){
- frm.add_custom_button(__('Get from Consultation'), function () {
+ frm.add_custom_button(__('Get from Patient Encounter'), function () {
get_lab_test_prescribed(frm);
});
}
@@ -60,7 +60,7 @@
},
onload: function (frm) {
- frm.add_fetch("physician", "department", "department");
+ frm.add_fetch("practitioner", "department", "department");
if(frm.doc.employee){
frappe.call({
method: "frappe.client.get",
@@ -160,21 +160,21 @@
$.each(result, function(x, y){
var row = $(repl('<div class="col-xs-12" style="padding-top:12px; text-align:center;" >\
<div class="col-xs-2"> %(lab_test)s </div>\
- <div class="col-xs-2"> %(consultation)s </div>\
- <div class="col-xs-3"> %(physician)s </div>\
+ <div class="col-xs-2"> %(encounter)s </div>\
+ <div class="col-xs-3"> %(practitioner)s </div>\
<div class="col-xs-3"> %(date)s </div>\
<div class="col-xs-1">\
<a data-name="%(name)s" data-lab-test="%(lab_test)s"\
- data-consultation="%(consultation)s" data-physician="%(physician)s"\
+ data-encounter="%(encounter)s" data-practitioner="%(practitioner)s"\
data-invoice="%(invoice)s" href="#"><button class="btn btn-default btn-xs">Get Lab Test\
- </button></a></div></div>', {name:y[0], lab_test: y[1], consultation:y[2], invoice:y[3], physician:y[4], date:y[5]})).appendTo(html_field);
+ </button></a></div></div>', {name:y[0], lab_test: y[1], encounter:y[2], invoice:y[3], practitioner:y[4], date:y[5]})).appendTo(html_field);
row.find("a").click(function() {
frm.doc.template = $(this).attr("data-lab-test");
frm.doc.prescription = $(this).attr("data-name");
- frm.doc.physician = $(this).attr("data-physician");
+ frm.doc.practitioner = $(this).attr("data-practitioner");
frm.set_df_property("template", "read_only", 1);
frm.set_df_property("patient", "read_only", 1);
- frm.set_df_property("physician", "read_only", 1);
+ frm.set_df_property("practitioner", "read_only", 1);
if($(this).attr("data-invoice") != 'null'){
frm.doc.invoice = $(this).attr("data-invoice");
refresh_field("invoice");
diff --git a/erpnext/healthcare/doctype/lab_test/lab_test.json b/erpnext/healthcare/doctype/lab_test/lab_test.json
index a64c13c..ae66325 100644
--- a/erpnext/healthcare/doctype/lab_test/lab_test.json
+++ b/erpnext/healthcare/doctype/lab_test/lab_test.json
@@ -15,6 +15,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -42,11 +43,12 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -74,11 +76,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -106,16 +109,17 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fetch_from": "patient.patient_name",
+ "fetch_from": "patient.patient_name",
"fieldname": "patient_name",
"fieldtype": "Data",
"hidden": 0,
@@ -139,11 +143,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -170,11 +175,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -202,16 +208,17 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "physician",
+ "fieldname": "practitioner",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 1,
@@ -220,10 +227,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Doctor",
+ "label": "Healthcare Practitioner",
"length": 0,
"no_copy": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -234,11 +241,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -265,11 +273,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -296,11 +305,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -328,11 +338,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -358,11 +369,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -390,11 +402,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -422,11 +435,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -453,11 +467,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -484,11 +499,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -516,11 +532,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -548,11 +565,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -581,16 +599,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fetch_from": "employee.employee_name",
+ "fetch_from": "employee.employee_name",
"fieldname": "employee_name",
"fieldtype": "Data",
"hidden": 0,
@@ -614,16 +633,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fetch_from": "employee.designation",
+ "fetch_from": "employee.designation",
"fieldname": "employee_designation",
"fieldtype": "Data",
"hidden": 0,
@@ -647,11 +667,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -679,11 +700,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -710,11 +732,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -740,11 +763,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -771,11 +795,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -801,11 +826,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -833,11 +859,12 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -865,11 +892,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -895,11 +923,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -926,11 +955,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -956,11 +986,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -987,11 +1018,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1017,11 +1049,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1048,11 +1081,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1078,11 +1112,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1109,11 +1144,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -1140,11 +1176,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1171,11 +1208,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1202,11 +1240,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1234,11 +1273,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1265,11 +1305,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1296,11 +1337,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1327,11 +1369,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1358,11 +1401,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1389,11 +1433,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1421,7 +1466,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -1436,7 +1481,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-05-16 22:43:40.341869",
+ "modified": "2018-07-16 12:47:01.425117",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Lab Test",
@@ -1505,7 +1550,7 @@
"read_only": 0,
"read_only_onload": 0,
"restrict_to_domain": "Healthcare",
- "search_fields": "patient,invoice,physician,test_name,sample",
+ "search_fields": "patient,invoice,practitioner,test_name,sample",
"show_name_in_global_search": 1,
"sort_field": "modified",
"sort_order": "DESC",
diff --git a/erpnext/healthcare/doctype/lab_test/lab_test.py b/erpnext/healthcare/doctype/lab_test/lab_test.py
index 4e07ed6..767581f 100644
--- a/erpnext/healthcare/doctype/lab_test/lab_test.py
+++ b/erpnext/healthcare/doctype/lab_test/lab_test.py
@@ -60,13 +60,13 @@
def update_lab_test_print_sms_email_status(print_sms_email, name):
frappe.db.set_value("Lab Test",name,print_sms_email,1)
-def create_lab_test_doc(invoice, consultation, patient, template):
+def create_lab_test_doc(invoice, encounter, patient, template):
#create Test Result for template, copy vals from Invoice
lab_test = frappe.new_doc("Lab Test")
if(invoice):
lab_test.invoice = invoice
- if(consultation):
- lab_test.physician = consultation.physician
+ if(encounter):
+ lab_test.practitioner = encounter.practitioner
lab_test.patient = patient.name
lab_test.patient_age = patient.get_age()
lab_test.patient_sex = patient.sex
@@ -159,9 +159,9 @@
if not (template):
return
patient = frappe.get_doc("Patient", patient)
- consultation_id = frappe.get_value("Lab Prescription", prescription, "parent")
- consultation = frappe.get_doc("Consultation", consultation_id)
- lab_test = create_lab_test(patient, template, prescription, consultation, invoice)
+ encounter_id = frappe.get_value("Lab Prescription", prescription, "parent")
+ encounter = frappe.get_doc("Patient Encounter", encounter_id)
+ lab_test = create_lab_test(patient, template, prescription, encounter, invoice)
return lab_test.name
def create_sample_collection(lab_test, template, patient, invoice):
@@ -215,8 +215,8 @@
lab_test.save(ignore_permissions=True) # insert the result
return lab_test
-def create_lab_test(patient, template, prescription, consultation, invoice):
- lab_test = create_lab_test_doc(invoice, consultation, patient, template)
+def create_lab_test(patient, template, prescription, encounter, invoice):
+ lab_test = create_lab_test_doc(invoice, encounter, patient, template)
lab_test = create_sample_collection(lab_test, template, patient, invoice)
lab_test = load_result_format(lab_test, template, prescription, invoice)
return lab_test
@@ -292,5 +292,5 @@
@frappe.whitelist()
def get_lab_test_prescribed(patient):
- return frappe.db.sql("""select cp.name, cp.test_code, cp.parent, cp.invoice, ct.physician, ct.consultation_date from tabConsultation ct,
+ return frappe.db.sql("""select cp.name, cp.test_code, cp.parent, cp.invoice, ct.practitioner, ct.encounter_date from `tabPatient Encounter` ct,
`tabLab Prescription` cp where ct.patient=%s and cp.parent=ct.name and cp.test_created=0""", (patient))
diff --git a/erpnext/healthcare/doctype/lab_test_template/lab_test_template.json b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.json
index 3e3878a..35620e9 100644
--- a/erpnext/healthcare/doctype/lab_test_template/lab_test_template.json
+++ b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.json
@@ -14,6 +14,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -40,11 +41,12 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -72,11 +74,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -103,11 +106,12 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -136,11 +140,12 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -168,11 +173,12 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -198,11 +204,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -232,11 +239,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -266,11 +274,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -299,11 +308,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -332,11 +342,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -364,11 +375,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -395,11 +407,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -425,11 +438,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -458,11 +472,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -489,11 +504,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -521,11 +537,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -553,11 +570,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -584,11 +602,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -616,11 +635,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -648,11 +668,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -678,11 +699,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -709,11 +731,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -740,11 +763,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -772,16 +796,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fetch_from": "sample.sample_uom",
+ "fetch_from": "sample.sample_uom",
"fieldname": "sample_uom",
"fieldtype": "Data",
"hidden": 0,
@@ -805,11 +830,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -837,11 +863,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -868,11 +895,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -900,11 +928,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -918,7 +947,7 @@
"in_filter": 1,
"in_global_search": 0,
"in_list_view": 0,
- "in_standard_filter": 0,
+ "in_standard_filter": 1,
"label": "disabled",
"length": 0,
"no_copy": 0,
@@ -932,7 +961,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -946,7 +975,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-05-16 22:43:26.086857",
+ "modified": "2018-07-02 11:58:00.266070",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Lab Test Template",
diff --git a/erpnext/healthcare/doctype/patient/patient.js b/erpnext/healthcare/doctype/patient/patient.js
index b40f78d..d0ab94c 100644
--- a/erpnext/healthcare/doctype/patient/patient.js
+++ b/erpnext/healthcare/doctype/patient/patient.js
@@ -33,8 +33,8 @@
frm.add_custom_button(__('Medical Record'), function () {
create_medical_record(frm);
}, "Create");
- frm.add_custom_button(__('Consultation'), function () {
- btn_create_consultation(frm);
+ frm.add_custom_button(__('Patient Encounter'), function () {
+ btn_create_encounter(frm);
}, "Create");
}
},
@@ -94,14 +94,14 @@
frappe.new_doc("Vital Signs");
};
-var btn_create_consultation = function (frm) {
+var btn_create_encounter = function (frm) {
if (!frm.doc.name) {
frappe.throw(__("Please save the patient first"));
}
frappe.route_options = {
"patient": frm.doc.name,
};
- frappe.new_doc("Consultation");
+ frappe.new_doc("Patient Encounter");
};
var btn_invoice_registration = function (frm) {
diff --git a/erpnext/healthcare/doctype/patient/patient.py b/erpnext/healthcare/doctype/patient/patient.py
index d0332d8..bff24f7 100644
--- a/erpnext/healthcare/doctype/patient/patient.py
+++ b/erpnext/healthcare/doctype/patient/patient.py
@@ -81,7 +81,7 @@
territory = "Rest Of The World"
frappe.msgprint(_("Please set default customer group and territory in Selling Settings"), alert=True)
customer = frappe.get_doc({"doctype": "Customer",
- "customer_name": doc.name,
+ "customer_name": doc.patient_name,
"customer_group": customer_group,
"territory" : territory,
"customer_type": "Individual"
diff --git a/erpnext/healthcare/doctype/patient/patient_dashboard.py b/erpnext/healthcare/doctype/patient/patient_dashboard.py
index 628e91b..098497c 100644
--- a/erpnext/healthcare/doctype/patient/patient_dashboard.py
+++ b/erpnext/healthcare/doctype/patient/patient_dashboard.py
@@ -7,8 +7,8 @@
'fieldname': 'patient',
'transactions': [
{
- 'label': _('Appointments and Consultations'),
- 'items': ['Patient Appointment', 'Consultation']
+ 'label': _('Appointments and Patient Encounters'),
+ 'items': ['Patient Appointment', 'Patient Encounter']
},
{
'label': _('Lab Tests and Vital Signs'),
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
index 7d5ed8d..f5e59f2 100644
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
@@ -6,7 +6,7 @@
frm.custom_make_buttons = {
'Sales Invoice': 'Invoice',
'Vital Signs': 'Vital Signs',
- 'Consultation': 'Consultation'
+ 'Patient Encounter': 'Patient Encounter'
};
},
refresh: function(frm) {
@@ -15,7 +15,7 @@
filters: {"disabled": 0}
};
});
- frm.set_query("physician", function() {
+ frm.set_query("practitioner", function() {
return {
filters: {
'department': frm.doc.department
@@ -47,8 +47,8 @@
},"Create");
}
else{
- frm.add_custom_button(__("Consultation"),function(){
- btn_create_consultation(frm);
+ frm.add_custom_button(__("Patient Encounter"),function(){
+ btn_create_encounter(frm);
},"Create");
}
@@ -67,8 +67,8 @@
},"Create");
}
else{
- frm.add_custom_button(__("Consultation"),function(){
- btn_create_consultation(frm);
+ frm.add_custom_button(__("Patient Encounter"),function(){
+ btn_create_encounter(frm);
},"Create");
}
@@ -93,22 +93,22 @@
}
else if(frm.doc.status != "Cancelled" && frappe.user.has_role("Accounts User")){
frm.add_custom_button(__('Invoice'), function() {
- btn_invoice_consultation(frm);
+ btn_invoice_encounter(frm);
},__("Create"));
}
}
},
check_availability: function(frm) {
- var { physician, appointment_date } = frm.doc;
- if(!(physician && appointment_date)) {
- frappe.throw(__("Please select Physician and Date"));
+ var { practitioner, appointment_date } = frm.doc;
+ if(!(practitioner && appointment_date)) {
+ frappe.throw(__("Please select Healthcare Practitioner and Date"));
}
// show booking modal
frm.call({
method: 'get_availability_data',
args: {
- physician: physician,
+ practitioner: practitioner,
date: appointment_date
},
callback: (r) => {
@@ -124,7 +124,7 @@
function show_empty_state() {
frappe.msgprint({
title: __('Not Available'),
- message: __("Physician {0} not available on {1}", [physician.bold(), appointment_date.bold()]),
+ message: __("Healthcare Practitioner {0} not available on {1}", [practitioner.bold(), appointment_date.bold()]),
indicator: 'red'
});
}
@@ -216,7 +216,7 @@
frm.disable_save();
}
},
- get_procedure_from_consultation: function(frm) {
+ get_procedure_from_encounter: function(frm) {
get_procedure_prescribed(frm);
}
});
@@ -249,26 +249,26 @@
html_field.empty();
$.each(result, function(x, y){
var row = $(repl('<div class="col-xs-12" style="padding-top:12px; text-align:center;" >\
- <div class="col-xs-5"> %(consultation)s <br> %(consulting_physician)s <br> %(consultation_date)s </div>\
- <div class="col-xs-5"> %(procedure_template)s <br>%(physician)s <br> %(date)s</div>\
+ <div class="col-xs-5"> %(encounter)s <br> %(consulting_practitioner)s <br> %(encounter_date)s </div>\
+ <div class="col-xs-5"> %(procedure_template)s <br>%(practitioner)s <br> %(date)s</div>\
<div class="col-xs-2">\
<a data-name="%(name)s" data-procedure-template="%(procedure_template)s"\
- data-consultation="%(consultation)s" data-physician="%(physician)s"\
+ data-encounter="%(encounter)s" data-practitioner="%(practitioner)s"\
data-date="%(date)s" data-department="%(department)s">\
<button class="btn btn-default btn-xs">Add\
</button></a></div></div><div class="col-xs-12"><hr/><div/>', {name:y[0], procedure_template: y[1],
- consultation:y[2], consulting_physician:y[3], consultation_date:y[4],
- physician:y[5]? y[5]:'', date: y[6]? y[6]:'', department: y[7]? y[7]:''})).appendTo(html_field);
+ encounter:y[2], consulting_practitioner:y[3], encounter_date:y[4],
+ practitioner:y[5]? y[5]:'', date: y[6]? y[6]:'', department: y[7]? y[7]:''})).appendTo(html_field);
row.find("a").click(function() {
frm.doc.procedure_template = $(this).attr("data-procedure-template");
frm.doc.procedure_prescription = $(this).attr("data-name");
- frm.doc.physician = $(this).attr("data-physician");
+ frm.doc.practitioner = $(this).attr("data-practitioner");
frm.doc.appointment_date = $(this).attr("data-date");
frm.doc.department = $(this).attr("data-department");
refresh_field("procedure_template");
refresh_field("procedure_prescription");
refresh_field("appointment_date");
- refresh_field("physician");
+ refresh_field("practitioner");
refresh_field("department");
d.hide();
return false;
@@ -295,10 +295,10 @@
});
};
-var btn_create_consultation = function(frm){
+var btn_create_encounter = function(frm){
var doc = frm.doc;
frappe.call({
- method:"erpnext.healthcare.doctype.patient_appointment.patient_appointment.create_consultation",
+ method:"erpnext.healthcare.doctype.patient_appointment.patient_appointment.create_encounter",
args: {appointment: doc.name},
callback: function(data){
if(!data.exc){
@@ -338,7 +338,7 @@
);
};
-var btn_invoice_consultation = function(frm){
+var btn_invoice_encounter = function(frm){
frappe.call({
doc: frm.doc,
method:"create_invoice",
@@ -353,13 +353,13 @@
});
};
-frappe.ui.form.on("Patient Appointment", "physician", function(frm) {
- if(frm.doc.physician){
+frappe.ui.form.on("Patient Appointment", "practitioner", function(frm) {
+ if(frm.doc.practitioner){
frappe.call({
"method": "frappe.client.get",
args: {
- doctype: "Physician",
- name: frm.doc.physician
+ doctype: "Healthcare Practitioner",
+ name: frm.doc.practitioner
},
callback: function (data) {
frappe.model.set_value(frm.doctype,frm.docname, "department",data.message.department);
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json
index 3c087ea..f88a1e0 100644
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json
@@ -15,6 +15,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -42,11 +43,12 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -74,16 +76,17 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "physician",
+ "fieldname": "practitioner",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 1,
@@ -92,10 +95,10 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 1,
- "label": "Physician",
+ "label": "Healthcare Practitioner",
"length": 0,
"no_copy": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -106,16 +109,17 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "get_procedure_from_consultation",
+ "fieldname": "get_procedure_from_encounter",
"fieldtype": "Button",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -137,11 +141,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -169,11 +174,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -201,11 +207,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -232,11 +239,12 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -263,11 +271,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -295,11 +304,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -327,11 +337,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -359,11 +370,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -391,17 +403,18 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "",
- "fetch_from": "patient.patient_name",
+ "fetch_from": "patient.patient_name",
"fieldname": "patient_name",
"fieldtype": "Data",
"hidden": 0,
@@ -425,16 +438,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fetch_from": "patient.sex",
+ "fetch_from": "patient.sex",
"fieldname": "patient_sex",
"fieldtype": "Data",
"hidden": 0,
@@ -458,11 +472,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -490,11 +505,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -523,11 +539,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -555,11 +572,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -586,11 +604,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -617,11 +636,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -647,11 +667,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -679,11 +700,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -711,11 +733,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -742,11 +765,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -773,16 +797,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "referring_physician",
+ "fieldname": "referring_practitioner",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 1,
@@ -791,10 +816,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Referring Physician",
+ "label": "Referring Practitioner",
"length": 0,
"no_copy": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -805,11 +830,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 1,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -837,7 +863,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -851,7 +877,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-05-16 22:43:39.359254",
+ "modified": "2018-07-16 12:48:28.394133",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Patient Appointment",
@@ -920,7 +946,7 @@
"read_only": 0,
"read_only_onload": 0,
"restrict_to_domain": "Healthcare",
- "search_fields": "patient, physician, department, appointment_date, appointment_time",
+ "search_fields": "patient, practitioner, department, appointment_date, appointment_time",
"show_name_in_global_search": 1,
"sort_field": "modified",
"sort_order": "DESC",
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
index a9561a0..d535bec 100755
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
@@ -28,7 +28,7 @@
frappe.db.set_value("Procedure Prescription", self.procedure_prescription, "appointment_booked", True)
# Check fee validity exists
appointment = self
- validity_exist = validity_exists(appointment.physician, appointment.patient)
+ validity_exist = validity_exists(appointment.practitioner, appointment.patient)
if validity_exist:
fee_validity = frappe.get_doc("Fee Validity", validity_exist[0][0])
@@ -64,11 +64,11 @@
@frappe.whitelist()
-def get_availability_data(date, physician):
+def get_availability_data(date, practitioner):
"""
- Get availability data of 'physician' on 'date'
+ Get availability data of 'practitioner' on 'date'
:param date: Date to check in schedule
- :param physician: Name of the physician
+ :param practitioner: Name of the practitioner
:return: dict containing a list of available slots, list of appointments and time of appointments
"""
@@ -77,21 +77,21 @@
available_slots = []
slot_details = []
- physician_schedule = None
+ practitioner_schedule = None
employee = None
- physician_obj = frappe.get_doc("Physician", physician)
+ practitioner_obj = frappe.get_doc("Healthcare Practitioner", practitioner)
- # Get Physician employee relation
- if physician_obj.employee:
- employee = physician_obj.employee
- elif physician_obj.user_id:
+ # Get practitioner employee relation
+ if practitioner_obj.employee:
+ employee = practitioner_obj.employee
+ elif practitioner_obj.user_id:
if frappe.db.exists({
"doctype": "Employee",
- "user_id": physician_obj.user_id
+ "user_id": practitioner_obj.user_id
}):
- employee = frappe.get_doc("Employee", {"user_id": physician_obj.user_id}).name
+ employee = frappe.get_doc("Employee", {"user_id": practitioner_obj.user_id}).name
if employee:
# Check if it is Holiday
@@ -104,21 +104,21 @@
and docstatus = 1""", (employee, date), as_dict=True)
if leave_record:
if leave_record[0].half_day:
- frappe.throw(_("Dr {0} on Half day Leave on {1}").format(physician, date))
+ frappe.throw(_("{0} on Half day Leave on {1}").format(practitioner, date))
else:
- frappe.throw(_("Dr {0} on Leave on {1}").format(physician, date))
+ frappe.throw(_("{0} on Leave on {1}").format(practitioner, date))
- # get physicians schedule
- if physician_obj.physician_schedules:
- for schedule in physician_obj.physician_schedules:
+ # get practitioners schedule
+ if practitioner_obj.practitioner_schedules:
+ for schedule in practitioner_obj.practitioner_schedules:
if schedule.schedule:
- physician_schedule = frappe.get_doc("Physician Schedule", schedule.schedule)
+ practitioner_schedule = frappe.get_doc("Practitioner Schedule", schedule.schedule)
else:
- frappe.throw(_("Dr {0} does not have a Physician Schedule. Add it in Physician master".format(physician)))
+ frappe.throw(_("{0} does not have a Healthcare Practitioner Schedule. Add it in Healthcare Practitioner master".format(practitioner)))
- if physician_schedule:
+ if practitioner_schedule:
available_slots = []
- for t in physician_schedule.time_slots:
+ for t in practitioner_schedule.time_slots:
if weekday == t.day:
available_slots.append(t)
@@ -129,10 +129,10 @@
slot_name = schedule.schedule+" - "+schedule.service_unit
allow_overlap = frappe.get_value('Healthcare Service Unit', schedule.service_unit, 'overlap_appointments')
if allow_overlap:
- # fetch all appointments to physician by service unit
+ # fetch all appointments to practitioner by service unit
appointments = frappe.get_all(
"Patient Appointment",
- filters={"physician": physician, "service_unit": schedule.service_unit, "appointment_date": date, "status": ["not in",["Cancelled"]]},
+ filters={"practitioner": practitioner, "service_unit": schedule.service_unit, "appointment_date": date, "status": ["not in",["Cancelled"]]},
fields=["name", "appointment_time", "duration", "status"])
else:
# fetch all appointments to service unit
@@ -142,21 +142,21 @@
fields=["name", "appointment_time", "duration", "status"])
else:
slot_name = schedule.schedule
- # fetch all appointments to physician without service unit
+ # fetch all appointments to practitioner without service unit
appointments = frappe.get_all(
"Patient Appointment",
- filters={"physician": physician, "service_unit": '', "appointment_date": date, "status": ["not in",["Cancelled"]]},
+ filters={"practitioner": practitioner, "service_unit": '', "appointment_date": date, "status": ["not in",["Cancelled"]]},
fields=["name", "appointment_time", "duration", "status"])
slot_details.append({"slot_name":slot_name, "service_unit":schedule.service_unit,
"avail_slot":available_slots, 'appointments': appointments})
else:
- frappe.throw(_("Dr {0} does not have a Physician Schedule. Add it in Physician master".format(physician)))
+ frappe.throw(_("{0} does not have a Healthcare Practitioner Schedule. Add it in Healthcare Practitioner master".format(practitioner)))
if not available_slots and not slot_details:
# TODO: return available slots in nearby dates
- frappe.throw(_("Physician not available on {0}").format(weekday))
+ frappe.throw(_("Healthcare Practitioner not available on {0}").format(weekday))
return {
"slot_details": slot_details
@@ -210,37 +210,37 @@
sales_invoice.company = appointment_doc.company
sales_invoice.debit_to = get_receivable_account(appointment_doc.company)
- fee_validity = get_fee_validity(appointment_doc.physician, appointment_doc.patient, appointment_doc.appointment_date)
+ fee_validity = get_fee_validity(appointment_doc.practitioner, appointment_doc.patient, appointment_doc.appointment_date)
procedure_template = False
if appointment_doc.procedure_template:
procedure_template = appointment_doc.procedure_template
- create_invoice_items(appointment_doc.physician, appointment_doc.company, sales_invoice, procedure_template)
+ create_invoice_items(appointment_doc.practitioner, appointment_doc.company, sales_invoice, procedure_template)
sales_invoice.save(ignore_permissions=True)
frappe.db.sql("""update `tabPatient Appointment` set sales_invoice=%s where name=%s""", (sales_invoice.name, appointment_doc.name))
frappe.db.set_value("Fee Validity", fee_validity.name, "ref_invoice", sales_invoice.name)
- consultation = frappe.db.exists({
- "doctype": "Consultation",
+ encounter = frappe.db.exists({
+ "doctype": "Patient Encounter",
"appointment": appointment_doc.name})
- if consultation:
- frappe.db.set_value("Consultation", consultation[0][0], "invoice", sales_invoice.name)
+ if encounter:
+ frappe.db.set_value("Patient Encounter", encounter[0][0], "invoice", sales_invoice.name)
return sales_invoice.name
-def get_fee_validity(physician, patient, date):
- validity_exist = validity_exists(physician, patient)
+def get_fee_validity(practitioner, patient, date):
+ validity_exist = validity_exists(practitioner, patient)
if validity_exist:
fee_validity = frappe.get_doc("Fee Validity", validity_exist[0][0])
fee_validity = update_fee_validity(fee_validity, date)
else:
- fee_validity = create_fee_validity(physician, patient, date)
+ fee_validity = create_fee_validity(practitioner, patient, date)
return fee_validity
-def validity_exists(physician, patient):
+def validity_exists(practitioner, patient):
return frappe.db.exists({
"doctype": "Fee Validity",
- "physician": physician,
+ "practitioner": practitioner,
"patient": patient})
@@ -260,15 +260,15 @@
return fee_validity
-def create_fee_validity(physician, patient, date):
+def create_fee_validity(practitioner, patient, date):
fee_validity = frappe.new_doc("Fee Validity")
- fee_validity.physician = physician
+ fee_validity.practitioner = practitioner
fee_validity.patient = patient
fee_validity = update_fee_validity(fee_validity, date)
return fee_validity
-def create_invoice_items(physician, company, invoice, procedure_template):
+def create_invoice_items(practitioner, company, invoice, procedure_template):
item_line = invoice.append("items")
if procedure_template:
procedure_template_obj = frappe.get_doc("Clinical Procedure Template", procedure_template)
@@ -277,11 +277,11 @@
item_line.description = procedure_template_obj.description
else:
item_line.item_name = "Consulting Charges"
- item_line.description = "Consulting Charges: " + physician
+ item_line.description = "Consulting Charges: " + practitioner
item_line.uom = "Nos"
item_line.conversion_factor = 1
- item_line.income_account = get_income_account(physician, company)
- op_consulting_charge = frappe.db.get_value("Physician", physician, "op_consulting_charge")
+ item_line.income_account = get_income_account(practitioner, company)
+ op_consulting_charge = frappe.db.get_value("Healthcare Practitioner", practitioner, "op_consulting_charge")
if op_consulting_charge:
item_line.rate = op_consulting_charge
item_line.amount = op_consulting_charge
@@ -292,18 +292,18 @@
@frappe.whitelist()
-def create_consultation(appointment):
+def create_encounter(appointment):
appointment = frappe.get_doc("Patient Appointment", appointment)
- consultation = frappe.new_doc("Consultation")
- consultation.appointment = appointment.name
- consultation.patient = appointment.patient
- consultation.physician = appointment.physician
- consultation.visit_department = appointment.department
- consultation.patient_sex = appointment.patient_sex
- consultation.consultation_date = appointment.appointment_date
+ encounter = frappe.new_doc("Patient Encounter")
+ encounter.appointment = appointment.name
+ encounter.patient = appointment.patient
+ encounter.practitioner = appointment.practitioner
+ encounter.visit_department = appointment.department
+ encounter.patient_sex = appointment.patient_sex
+ encounter.encounter_date = appointment.appointment_date
if appointment.sales_invoice:
- consultation.invoice = appointment.sales_invoice
- return consultation.as_dict()
+ encounter.invoice = appointment.sales_invoice
+ return encounter.as_dict()
def remind_appointment():
@@ -347,7 +347,7 @@
"""
from frappe.desk.calendar import get_event_conditions
conditions = get_event_conditions("Patient Appointment", filters)
- data = frappe.db.sql("""select `tabPatient Appointment`.name, patient, physician, status,
+ data = frappe.db.sql("""select `tabPatient Appointment`.name, patient, practitioner, status,
duration, timestamp(appointment_date, appointment_time) as 'start', type.color as 'color'
from `tabPatient Appointment`
left join `tabAppointment Type` as type on `tabPatient Appointment`.appointment_type=type.name
@@ -360,8 +360,8 @@
return data
@frappe.whitelist()
def get_procedure_prescribed(patient):
- return frappe.db.sql("""select pp.name, pp.procedure, pp.parent, ct.physician,
- ct.consultation_date, pp.physician, pp.date, pp.department
- from tabConsultation ct, `tabProcedure Prescription` pp
+ return frappe.db.sql("""select pp.name, pp.procedure, pp.parent, ct.practitioner,
+ ct.encounter_date, pp.practitioner, pp.date, pp.department
+ from `tabPatient Encounter` ct, `tabProcedure Prescription` pp
where ct.patient='{0}' and pp.parent=ct.name and pp.appointment_booked=0
order by ct.creation desc""".format(patient))
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment_calendar.js b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_calendar.js
index dfff5a4..fc674a8 100644
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment_calendar.js
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_calendar.js
@@ -14,9 +14,9 @@
filters: [
{
'fieldtype': 'Link',
- 'fieldname': 'physician',
- 'options': 'Physician',
- 'label': __('Physician')
+ 'fieldname': 'practitioner',
+ 'options': 'Healthcare Practitioner',
+ 'label': __('Healthcare Practitioner')
},
{
'fieldtype': 'Link',
@@ -43,4 +43,4 @@
'label': __('Status')
}
]
-};
\ No newline at end of file
+};
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment_dashboard.py b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_dashboard.py
index 1862915..f9ef1cb 100644
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment_dashboard.py
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_dashboard.py
@@ -9,7 +9,7 @@
'transactions': [
{
'label': _('Consultations'),
- 'items': ['Consultation', 'Vital Signs', 'Patient Medical Record']
+ 'items': ['Patient Encounter', 'Vital Signs', 'Patient Medical Record']
},
{
'label': _('Billing'),
diff --git a/erpnext/healthcare/doctype/physician/__init__.py b/erpnext/healthcare/doctype/patient_encounter/__init__.py
similarity index 100%
rename from erpnext/healthcare/doctype/physician/__init__.py
rename to erpnext/healthcare/doctype/patient_encounter/__init__.py
diff --git a/erpnext/healthcare/doctype/consultation/consultation.js b/erpnext/healthcare/doctype/patient_encounter/patient_encounter.js
similarity index 86%
rename from erpnext/healthcare/doctype/consultation/consultation.js
rename to erpnext/healthcare/doctype/patient_encounter/patient_encounter.js
index 727d175..a9b45ac 100644
--- a/erpnext/healthcare/doctype/consultation/consultation.js
+++ b/erpnext/healthcare/doctype/patient_encounter/patient_encounter.js
@@ -1,7 +1,7 @@
// Copyright (c) 2016, ESS LLP and contributors
// For license information, please see license.txt
-frappe.ui.form.on('Consultation', {
+frappe.ui.form.on('Patient Encounter', {
setup: function(frm) {
frm.get_field('drug_prescription').grid.editable_fields = [
{fieldname: 'drug_code', columns: 2},
@@ -75,7 +75,7 @@
});
if(!frm.doc.__islocal && !frm.doc.invoice && (frappe.user.has_role("Accounts User"))){
frm.add_custom_button(__('Invoice'), function() {
- btn_invoice_consultation(frm);
+ btn_invoice_encounter(frm);
},__("Create"));
}
frm.set_df_property("appointment", "read_only", frm.doc.__islocal ? 0:1);
@@ -83,19 +83,19 @@
frm.set_df_property("patient_age", "read_only", frm.doc.__islocal ? 0:1);
frm.set_df_property("patient_sex", "read_only", frm.doc.__islocal ? 0:1);
frm.set_df_property("type", "read_only", frm.doc.__islocal ? 0:1);
- frm.set_df_property("physician", "read_only", frm.doc.__islocal ? 0:1);
+ frm.set_df_property("practitioner", "read_only", frm.doc.__islocal ? 0:1);
frm.set_df_property("visit_department", "read_only", frm.doc.__islocal ? 0:1);
- frm.set_df_property("consultation_date", "read_only", frm.doc.__islocal ? 0:1);
- frm.set_df_property("consultation_time", "read_only", frm.doc.__islocal ? 0:1);
+ frm.set_df_property("encounter_date", "read_only", frm.doc.__islocal ? 0:1);
+ frm.set_df_property("encounter_time", "read_only", frm.doc.__islocal ? 0:1);
}
});
-var btn_invoice_consultation = function(frm){
+var btn_invoice_encounter = function(frm){
var doc = frm.doc;
frappe.call({
method:
- "erpnext.healthcare.doctype.consultation.consultation.create_invoice",
- args: {company: doc.company, patient: doc.patient, physician: doc.physician, consultation_id: doc.name },
+ "erpnext.healthcare.doctype.encounter.encounter.create_invoice",
+ args: {company: doc.company, patient: doc.patient, practitioner: doc.practitioner, encounter_id: doc.name },
callback: function(data){
if(!data.exc){
if(data.message){
@@ -142,7 +142,7 @@
frappe.new_doc("Clinical Procedure");
};
-frappe.ui.form.on("Consultation", "appointment", function(frm){
+frappe.ui.form.on("Patient Encounter", "appointment", function(frm){
if(frm.doc.appointment){
frappe.call({
"method": "frappe.client.get",
@@ -153,20 +153,20 @@
callback: function (data) {
frappe.model.set_value(frm.doctype,frm.docname, "patient", data.message.patient);
frappe.model.set_value(frm.doctype,frm.docname, "type", data.message.appointment_type);
- frappe.model.set_value(frm.doctype,frm.docname, "physician", data.message.physician);
+ frappe.model.set_value(frm.doctype,frm.docname, "practitioner", data.message.practitioner);
frappe.model.set_value(frm.doctype,frm.docname, "invoice", data.message.sales_invoice);
}
});
}
});
-frappe.ui.form.on("Consultation", "physician", function(frm) {
- if(frm.doc.physician){
+frappe.ui.form.on("Patient Encounter", "practitioner", function(frm) {
+ if(frm.doc.practitioner){
frappe.call({
"method": "frappe.client.get",
args: {
- doctype: "Physician",
- name: frm.doc.physician
+ doctype: "Healthcare Practitioner",
+ name: frm.doc.practitioner
},
callback: function (data) {
frappe.model.set_value(frm.doctype,frm.docname, "visit_department",data.message.department);
@@ -175,7 +175,7 @@
}
});
-frappe.ui.form.on("Consultation", "symptoms_select", function(frm) {
+frappe.ui.form.on("Patient Encounter", "symptoms_select", function(frm) {
if(frm.doc.symptoms_select){
var symptoms = null;
if(frm.doc.symptoms)
@@ -186,7 +186,7 @@
frappe.model.set_value(frm.doctype,frm.docname, "symptoms_select", null);
}
});
-frappe.ui.form.on("Consultation", "diagnosis_select", function(frm) {
+frappe.ui.form.on("Patient Encounter", "diagnosis_select", function(frm) {
if(frm.doc.diagnosis_select){
var diagnosis = null;
if(frm.doc.diagnosis)
@@ -198,7 +198,7 @@
}
});
-frappe.ui.form.on("Consultation", "patient", function(frm) {
+frappe.ui.form.on("Patient Encounter", "patient", function(frm) {
if(frm.doc.patient){
frappe.call({
"method": "erpnext.healthcare.doctype.patient.patient.get_patient_detail",
diff --git a/erpnext/healthcare/doctype/consultation/consultation.json b/erpnext/healthcare/doctype/patient_encounter/patient_encounter.json
similarity index 90%
rename from erpnext/healthcare/doctype/consultation/consultation.json
rename to erpnext/healthcare/doctype/patient_encounter/patient_encounter.json
index 2f6de0c..1373503 100644
--- a/erpnext/healthcare/doctype/consultation/consultation.json
+++ b/erpnext/healthcare/doctype/patient_encounter/patient_encounter.json
@@ -15,6 +15,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -40,10 +41,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -71,10 +74,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -103,10 +108,12 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -134,10 +141,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -165,10 +174,12 @@
"reqd": 1,
"search_index": 1,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -196,10 +207,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -227,15 +240,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "physician",
+ "fieldname": "practitioner",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -244,10 +259,10 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 1,
- "label": "Doctor",
+ "label": "Healthcare Practitioner",
"length": 0,
"no_copy": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -258,10 +273,12 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -289,10 +306,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -318,10 +337,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -349,16 +370,18 @@
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "Today",
- "fieldname": "consultation_date",
+ "fieldname": "encounter_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -367,7 +390,7 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Consultation Date",
+ "label": "Encounter Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -380,16 +403,18 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "",
- "fieldname": "consultation_time",
+ "fieldname": "encounter_time",
"fieldtype": "Time",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -398,7 +423,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Consultation Time",
+ "label": "Encounter Time",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -411,10 +436,12 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -442,10 +469,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -472,10 +501,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -503,10 +534,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -533,10 +566,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -564,10 +599,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -594,10 +631,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -626,10 +665,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -657,10 +698,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -689,10 +732,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -719,10 +764,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -750,10 +797,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -780,10 +829,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -811,10 +862,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -841,10 +894,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -872,10 +927,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -902,10 +959,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -933,15 +992,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "consultation_comment",
+ "fieldname": "encounter_comment",
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -963,10 +1024,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -983,7 +1046,7 @@
"label": "Amended From",
"length": 0,
"no_copy": 1,
- "options": "Consultation",
+ "options": "Patient Encounter",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
@@ -993,6 +1056,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -1006,16 +1070,15 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-03-19 11:35:13.826577",
+ "modified": "2018-07-16 12:51:13.487000",
"modified_by": "Administrator",
"module": "Healthcare",
- "name": "Consultation",
+ "name": "Patient Encounter",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 1,
- "apply_user_permissions": 0,
"cancel": 1,
"create": 1,
"delete": 1,
@@ -1038,7 +1101,7 @@
"read_only": 0,
"read_only_onload": 0,
"restrict_to_domain": "Healthcare",
- "search_fields": "patient, physician, visit_department, consultation_date, consultation_time",
+ "search_fields": "patient, practitioner, visit_department, encounter_date, encounter_time",
"show_name_in_global_search": 1,
"sort_field": "modified",
"sort_order": "DESC",
diff --git a/erpnext/healthcare/doctype/consultation/consultation.py b/erpnext/healthcare/doctype/patient_encounter/patient_encounter.py
old mode 100755
new mode 100644
similarity index 71%
rename from erpnext/healthcare/doctype/consultation/consultation.py
rename to erpnext/healthcare/doctype/patient_encounter/patient_encounter.py
index ace5ac0..3d8f952
--- a/erpnext/healthcare/doctype/consultation/consultation.py
+++ b/erpnext/healthcare/doctype/patient_encounter/patient_encounter.py
@@ -9,14 +9,14 @@
import json
from erpnext.healthcare.doctype.healthcare_settings.healthcare_settings import get_receivable_account, get_income_account
-class Consultation(Document):
+class PatientEncounter(Document):
def on_update(self):
if(self.appointment):
frappe.db.set_value("Patient Appointment", self.appointment, "status", "Closed")
- update_consultation_to_medical_record(self)
+ update_encounter_to_medical_record(self)
def after_insert(self):
- insert_consultation_to_medical_record(self)
+ insert_encounter_to_medical_record(self)
def on_cancel(self):
if(self.appointment):
@@ -62,8 +62,8 @@
return sales_invoice.as_dict()
@frappe.whitelist()
-def create_invoice(company, patient, physician, consultation_id):
- if not consultation_id:
+def create_invoice(company, patient, practitioner, encounter_id):
+ if not encounter_id:
return False
sales_invoice = frappe.new_doc("Sales Invoice")
sales_invoice.customer = frappe.get_value("Patient", patient, "customer")
@@ -71,61 +71,61 @@
sales_invoice.is_pos = '0'
sales_invoice.debit_to = get_receivable_account(company)
- create_invoice_items(physician, sales_invoice, company)
+ create_invoice_items(practitioner, sales_invoice, company)
sales_invoice.save(ignore_permissions=True)
- frappe.db.sql("""update tabConsultation set invoice=%s where name=%s""", (sales_invoice.name, consultation_id))
- appointment = frappe.db.get_value("Consultation", consultation_id, "appointment")
+ frappe.db.sql("""update `tabPatient Encounter` set invoice=%s where name=%s""", (sales_invoice.name, encounter_id))
+ appointment = frappe.db.get_value("Patient Encounter", encounter_id, "appointment")
if appointment:
frappe.db.set_value("Patient Appointment", appointment, "sales_invoice", sales_invoice.name)
return sales_invoice.name
-def create_invoice_items(physician, invoice, company):
+def create_invoice_items(practitioner, invoice, company):
item_line = invoice.append("items")
item_line.item_name = "Consulting Charges"
- item_line.description = "Consulting Charges: " + physician
+ item_line.description = "Consulting Charges: " + practitioner
item_line.qty = 1
item_line.uom = "Nos"
item_line.conversion_factor = 1
- item_line.income_account = get_income_account(physician, company)
- op_consulting_charge = frappe.get_value("Physician", physician, "op_consulting_charge")
+ item_line.income_account = get_income_account(practitioner, company)
+ op_consulting_charge = frappe.get_value("Healthcare Practitioner", practitioner, "op_consulting_charge")
if op_consulting_charge:
item_line.rate = op_consulting_charge
item_line.amount = op_consulting_charge
return invoice
-def insert_consultation_to_medical_record(doc):
+def insert_encounter_to_medical_record(doc):
subject = set_subject_field(doc)
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.consultation_date
- medical_record.reference_doctype = "Consultation"
+ medical_record.communication_date = doc.encounter_date
+ medical_record.reference_doctype = "Patient Encounter"
medical_record.reference_name = doc.name
medical_record.reference_owner = doc.owner
medical_record.save(ignore_permissions=True)
-def update_consultation_to_medical_record(consultation):
- medical_record_id = frappe.db.sql("select name from `tabPatient Medical Record` where reference_name=%s", (consultation.name))
+def update_encounter_to_medical_record(encounter):
+ medical_record_id = frappe.db.sql("select name from `tabPatient Medical Record` where reference_name=%s", (encounter.name))
if medical_record_id and medical_record_id[0][0]:
- subject = set_subject_field(consultation)
+ subject = set_subject_field(encounter)
frappe.db.set_value("Patient Medical Record", medical_record_id[0][0], "subject", subject)
else:
- insert_consultation_to_medical_record(consultation)
+ insert_encounter_to_medical_record(encounter)
-def delete_medical_record(consultation):
- frappe.db.sql("""delete from `tabPatient Medical Record` where reference_name = %s""", (consultation.name))
+def delete_medical_record(encounter):
+ frappe.db.sql("""delete from `tabPatient Medical Record` where reference_name = %s""", (encounter.name))
-def set_subject_field(consultation):
+def set_subject_field(encounter):
subject = "No Diagnosis "
- if(consultation.diagnosis):
- subject = "Diagnosis: \n"+ cstr(consultation.diagnosis)+". "
- if(consultation.drug_prescription):
+ if(encounter.diagnosis):
+ subject = "Diagnosis: \n"+ cstr(encounter.diagnosis)+". "
+ if(encounter.drug_prescription):
subject +="\nDrug(s) Prescribed. "
- if(consultation.test_prescription):
+ if(encounter.test_prescription):
subject += "\nTest(s) Prescribed."
- if(consultation.procedure_prescription):
+ if(encounter.procedure_prescription):
subject += "\nProcedure(s) Prescribed."
return subject
diff --git a/erpnext/healthcare/doctype/consultation/consultation_dashboard.py b/erpnext/healthcare/doctype/patient_encounter/patient_encounter_dashboard.py
similarity index 88%
rename from erpnext/healthcare/doctype/consultation/consultation_dashboard.py
rename to erpnext/healthcare/doctype/patient_encounter/patient_encounter_dashboard.py
index 6170891..ec35211 100644
--- a/erpnext/healthcare/doctype/consultation/consultation_dashboard.py
+++ b/erpnext/healthcare/doctype/patient_encounter/patient_encounter_dashboard.py
@@ -2,7 +2,7 @@
def get_data():
return {
- 'fieldname': 'consultation',
+ 'fieldname': 'encounter',
'non_standard_fieldnames': {
'Patient Medical Record': 'reference_name'
},
diff --git a/erpnext/healthcare/doctype/patient_encounter/patient_encounter_list.js b/erpnext/healthcare/doctype/patient_encounter/patient_encounter_list.js
new file mode 100644
index 0000000..93c02f6
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_encounter/patient_encounter_list.js
@@ -0,0 +1,6 @@
+/*
+(c) ESS 2015-16
+*/
+frappe.listview_settings['Patient Encounter'] = {
+ filters:[["docstatus","!=","1"]]
+};
diff --git a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js b/erpnext/healthcare/doctype/patient_encounter/test_patient_encounter.js
similarity index 69%
rename from erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js
rename to erpnext/healthcare/doctype/patient_encounter/test_patient_encounter.js
index c397f18..1baabf7 100644
--- a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js
+++ b/erpnext/healthcare/doctype/patient_encounter/test_patient_encounter.js
@@ -2,15 +2,15 @@
// rename this file from _test_[name] to test_[name] to activate
// and remove above this line
-QUnit.test("test: Physician Schedule", function (assert) {
+QUnit.test("test: Patient Encounter", function (assert) {
let done = assert.async();
// number of asserts
assert.expect(1);
frappe.run_serially([
- // insert a new Physician Schedule
- () => frappe.tests.make('Physician Schedule', [
+ // insert a new Patient Encounter
+ () => frappe.tests.make('Patient Encounter', [
// values to be set
{key: 'value'}
]),
diff --git a/erpnext/healthcare/doctype/patient_encounter/test_patient_encounter.py b/erpnext/healthcare/doctype/patient_encounter/test_patient_encounter.py
new file mode 100644
index 0000000..f5df152
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_encounter/test_patient_encounter.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestPatientEncounter(unittest.TestCase):
+ pass
diff --git a/erpnext/healthcare/doctype/physician/physician_dashboard.py b/erpnext/healthcare/doctype/physician/physician_dashboard.py
deleted file mode 100644
index ee8f774..0000000
--- a/erpnext/healthcare/doctype/physician/physician_dashboard.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from frappe import _
-
-def get_data():
- return {
- 'heatmap': True,
- 'heatmap_message': _('This is based on transactions against this Physician.'),
- 'fieldname': 'physician',
- 'transactions': [
- {
- 'label': _('Appointments and Consultations'),
- 'items': ['Patient Appointment', 'Consultation']
- },
- {
- 'label': _('Lab Tests'),
- 'items': ['Lab Test']
- }
- ]
- }
diff --git a/erpnext/healthcare/doctype/physician/test_physician.js b/erpnext/healthcare/doctype/physician/test_physician.js
deleted file mode 100644
index 43750ac..0000000
--- a/erpnext/healthcare/doctype/physician/test_physician.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable */
-// rename this file from _test_[name] to test_[name] to activate
-// and remove above this line
-
-QUnit.test("test: Physician", function (assert) {
- let done = assert.async();
-
- // number of asserts
- assert.expect(1);
-
- frappe.run_serially([
- // insert a new Physician
- () => frappe.tests.make('Physician', [
- // values to be set
- {key: 'value'}
- ]),
- () => {
- assert.equal(cur_frm.doc.key, 'value');
- },
- () => done()
- ]);
-
-});
diff --git a/erpnext/healthcare/doctype/physician/test_physician.py b/erpnext/healthcare/doctype/physician/test_physician.py
deleted file mode 100644
index 2fbf574..0000000
--- a/erpnext/healthcare/doctype/physician/test_physician.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, ESS LLP and Contributors
-# See license.txt
-from __future__ import unicode_literals
-import unittest
-import frappe
-
-test_dependencies = ['Physician Schedule']
-
-
-class TestPhysician(unittest.TestCase):
- def tearDown(self):
- frappe.delete_doc_if_exists('Physician', '_Testdoctor2', force=1)
-
- def test_new_physician_without_schedule(self):
- physician = frappe.new_doc('Physician')
- physician.first_name = '_Testdoctor2'
-
- physician.insert()
- self.assertEqual(frappe.get_value('Physician', '_Testdoctor2', 'first_name'), '_Testdoctor2')
diff --git a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.py b/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.py
deleted file mode 100644
index ece3578..0000000
--- a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-from __future__ import unicode_literals
-import unittest
-
-class TestPhysicianSchedule(unittest.TestCase):
- pass
diff --git a/erpnext/healthcare/doctype/physician_schedule/test_records.json b/erpnext/healthcare/doctype/physician_schedule/test_records.json
deleted file mode 100644
index 1e6230d..0000000
--- a/erpnext/healthcare/doctype/physician_schedule/test_records.json
+++ /dev/null
@@ -1,8 +0,0 @@
-[
- {
- "schedule_name": "_Testdoctor1 Schedule"
- },
- {
- "schedule_name": "_Testdoctor2 Schedule"
- }
-]
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/physician_schedule/__init__.py b/erpnext/healthcare/doctype/practitioner_schedule/__init__.py
similarity index 100%
rename from erpnext/healthcare/doctype/physician_schedule/__init__.py
rename to erpnext/healthcare/doctype/practitioner_schedule/__init__.py
diff --git a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.js b/erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.js
similarity index 96%
rename from erpnext/healthcare/doctype/physician_schedule/physician_schedule.js
rename to erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.js
index c1b5581..f247856 100644
--- a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.js
+++ b/erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.js
@@ -1,7 +1,7 @@
-// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
-frappe.ui.form.on('Physician Schedule', {
+frappe.ui.form.on('Practitioner Schedule', {
refresh: function(frm) {
cur_frm.fields_dict["time_slots"].grid.wrapper.find('.grid-add-row').hide();
cur_frm.fields_dict["time_slots"].grid.add_custom_button(__('Add Time Slots'), () => {
diff --git a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.json b/erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.json
similarity index 91%
rename from erpnext/healthcare/doctype/physician_schedule/physician_schedule.json
rename to erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.json
index b1b3129..08a1b86 100644
--- a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.json
+++ b/erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.json
@@ -15,6 +15,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -41,10 +42,12 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -61,7 +64,7 @@
"label": "Time Slots",
"length": 0,
"no_copy": 0,
- "options": "Physician Schedule Time Slot",
+ "options": "Healthcare Schedule Time Slot",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -72,10 +75,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -102,6 +107,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -115,16 +121,15 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-10-05 11:21:54.488194",
+ "modified": "2018-06-29 14:55:34.795995",
"modified_by": "Administrator",
"module": "Healthcare",
- "name": "Physician Schedule",
+ "name": "Practitioner Schedule",
"name_case": "",
"owner": "rmehta@gmail.com",
"permissions": [
{
"amend": 0,
- "apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
diff --git a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.py b/erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.py
similarity index 67%
rename from erpnext/healthcare/doctype/physician_schedule/physician_schedule.py
rename to erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.py
index 167e9cd..8bd0937 100644
--- a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.py
+++ b/erpnext/healthcare/doctype/practitioner_schedule/practitioner_schedule.py
@@ -1,11 +1,10 @@
# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
from frappe.model.document import Document
-
-class PhysicianSchedule(Document):
+class PractitionerSchedule(Document):
def autoname(self):
self.name = self.schedule_name
diff --git a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js b/erpnext/healthcare/doctype/practitioner_schedule/test_practitioner_schedule.js
similarity index 68%
copy from erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js
copy to erpnext/healthcare/doctype/practitioner_schedule/test_practitioner_schedule.js
index c397f18..32dac2c 100644
--- a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js
+++ b/erpnext/healthcare/doctype/practitioner_schedule/test_practitioner_schedule.js
@@ -2,15 +2,15 @@
// rename this file from _test_[name] to test_[name] to activate
// and remove above this line
-QUnit.test("test: Physician Schedule", function (assert) {
+QUnit.test("test: Practitioner Schedule", function (assert) {
let done = assert.async();
// number of asserts
assert.expect(1);
frappe.run_serially([
- // insert a new Physician Schedule
- () => frappe.tests.make('Physician Schedule', [
+ // insert a new Practitioner Schedule
+ () => frappe.tests.make('Practitioner Schedule', [
// values to be set
{key: 'value'}
]),
diff --git a/erpnext/healthcare/doctype/practitioner_schedule/test_practitioner_schedule.py b/erpnext/healthcare/doctype/practitioner_schedule/test_practitioner_schedule.py
new file mode 100644
index 0000000..52638cb
--- /dev/null
+++ b/erpnext/healthcare/doctype/practitioner_schedule/test_practitioner_schedule.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestPractitionerSchedule(unittest.TestCase):
+ pass
diff --git a/erpnext/healthcare/doctype/physician_service_unit_schedule/__init__.py b/erpnext/healthcare/doctype/practitioner_service_unit_schedule/__init__.py
similarity index 100%
rename from erpnext/healthcare/doctype/physician_service_unit_schedule/__init__.py
rename to erpnext/healthcare/doctype/practitioner_service_unit_schedule/__init__.py
diff --git a/erpnext/healthcare/doctype/physician_service_unit_schedule/physician_service_unit_schedule.json b/erpnext/healthcare/doctype/practitioner_service_unit_schedule/practitioner_service_unit_schedule.json
similarity index 91%
rename from erpnext/healthcare/doctype/physician_service_unit_schedule/physician_service_unit_schedule.json
rename to erpnext/healthcare/doctype/practitioner_service_unit_schedule/practitioner_service_unit_schedule.json
index 7fff2be..f4a80ab 100644
--- a/erpnext/healthcare/doctype/physician_service_unit_schedule/physician_service_unit_schedule.json
+++ b/erpnext/healthcare/doctype/practitioner_service_unit_schedule/practitioner_service_unit_schedule.json
@@ -14,6 +14,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -30,7 +31,7 @@
"label": "Schedule",
"length": 0,
"no_copy": 0,
- "options": "Physician Schedule",
+ "options": "Practitioner Schedule",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -46,6 +47,7 @@
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -87,10 +89,10 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2018-05-02 03:38:09.935153",
+ "modified": "2018-06-29 15:14:18.647514",
"modified_by": "Administrator",
"module": "Healthcare",
- "name": "Physician Service Unit Schedule",
+ "name": "Practitioner Service Unit Schedule",
"name_case": "",
"owner": "Administrator",
"permissions": [],
diff --git a/erpnext/healthcare/doctype/physician_service_unit_schedule/physician_service_unit_schedule.py b/erpnext/healthcare/doctype/practitioner_service_unit_schedule/practitioner_service_unit_schedule.py
similarity index 60%
rename from erpnext/healthcare/doctype/physician_service_unit_schedule/physician_service_unit_schedule.py
rename to erpnext/healthcare/doctype/practitioner_service_unit_schedule/practitioner_service_unit_schedule.py
index 7aaec4d..c18a440 100644
--- a/erpnext/healthcare/doctype/physician_service_unit_schedule/physician_service_unit_schedule.py
+++ b/erpnext/healthcare/doctype/practitioner_service_unit_schedule/practitioner_service_unit_schedule.py
@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
from frappe.model.document import Document
-class PhysicianServiceUnitSchedule(Document):
+class PractitionerServiceUnitSchedule(Document):
pass
diff --git a/erpnext/healthcare/doctype/procedure_prescription/procedure_prescription.json b/erpnext/healthcare/doctype/procedure_prescription/procedure_prescription.json
index 73bcf3f..b4c4532 100644
--- a/erpnext/healthcare/doctype/procedure_prescription/procedure_prescription.json
+++ b/erpnext/healthcare/doctype/procedure_prescription/procedure_prescription.json
@@ -14,6 +14,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -41,16 +42,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fetch_from": "procedure.template",
+ "fetch_from": "procedure.template",
"fieldname": "procedure_name",
"fieldtype": "Data",
"hidden": 0,
@@ -74,11 +76,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -106,16 +109,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "physician",
+ "fieldname": "practitioner",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -124,10 +128,10 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Physician",
+ "label": "Referral",
"length": 0,
"no_copy": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -138,11 +142,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -169,11 +174,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -200,11 +206,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -231,7 +238,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -245,7 +252,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2018-05-16 22:43:37.924984",
+ "modified": "2018-07-16 13:08:15.499491",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Procedure Prescription",
diff --git a/erpnext/healthcare/doctype/vital_signs/vital_signs.json b/erpnext/healthcare/doctype/vital_signs/vital_signs.json
index 70a04fa..761ae6d 100644
--- a/erpnext/healthcare/doctype/vital_signs/vital_signs.json
+++ b/erpnext/healthcare/doctype/vital_signs/vital_signs.json
@@ -14,6 +14,7 @@
"fields": [
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -41,16 +42,17 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fetch_from": "patient.patient_name",
+ "fetch_from": "patient.patient_name",
"fieldname": "patient_name",
"fieldtype": "Data",
"hidden": 0,
@@ -74,11 +76,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -106,16 +109,17 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "consultation",
+ "fieldname": "encounter",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -124,10 +128,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Consultation",
+ "label": "Patient Encounter",
"length": 0,
"no_copy": 1,
- "options": "Consultation",
+ "options": "Patient Encounter",
"permlevel": 0,
"precision": "",
"print_hide": 1,
@@ -138,11 +142,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -168,11 +173,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -200,11 +206,12 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -230,11 +237,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -262,11 +270,12 @@
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -293,11 +302,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -325,11 +335,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -357,11 +368,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -389,11 +401,78 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "tongue",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Tongue",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nCoated\nVery Coated\nNormal\nFurry\nCuts",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "abdomen",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Abdomen",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nBloated\nFull\nFluid\nConstipated",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -419,11 +498,45 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "reflexes",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Reflexes",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nNormal\nHyper\nVery Hyper\nOne Sided",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -450,11 +563,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -482,11 +596,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -514,11 +629,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -545,11 +661,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -576,11 +693,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -607,11 +725,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -638,11 +757,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -670,11 +790,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -700,11 +821,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -731,11 +853,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -763,11 +886,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -794,7 +918,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "translatable": 0,
+ "translatable": 0,
"unique": 0
}
],
@@ -808,7 +932,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-05-16 22:42:54.580491",
+ "modified": "2018-07-16 14:04:09.604470",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Vital Signs",
diff --git a/erpnext/healthcare/page/appointment_analytic/appointment_analytic.js b/erpnext/healthcare/page/appointment_analytic/appointment_analytic.js
index aeab4fc..9f2e552 100644
--- a/erpnext/healthcare/page/appointment_analytic/appointment_analytic.js
+++ b/erpnext/healthcare/page/appointment_analytic/appointment_analytic.js
@@ -14,7 +14,7 @@
title: __("Appointment Analytics"),
parent: $(wrapper).find('.layout-main'),
page: wrapper.page,
- doctypes: ["Patient Appointment", "Physician", "Medical Department", "Appointment Type", "Patient"],
+ doctypes: ["Patient Appointment", "Healthcare Practitioner", "Medical Department", "Appointment Type", "Patient"],
tree_grid: { show: true }
});
@@ -22,16 +22,16 @@
"Medical Department": {
label: __("Department"),
show: true,
- item_key: "physician",
+ item_key: "practitioner",
parent_field: "department",
formatter: function(item) {
return item.name;
}
},
- "Physician": {
- label: __("Physician"),
+ "Healthcare Practitioner": {
+ label: __("Healthcare Practitioner"),
show: true,
- item_key: "physician",
+ item_key: "practitioner",
formatter: function(item) {
return item.name;
}
@@ -52,7 +52,7 @@
},
filters: [
{fieldtype:"Select", label: __("Tree Type"), fieldname: "tree_type",
- options:["Physician", "Medical Department"], filter: function(val, item, opts, me) {
+ options:["Healthcare Practitioner", "Medical Department"], filter: function(val, item, opts, me) {
return me.apply_zero_filter(val, item, opts, me);}},
{fieldtype:"Select", label: __("Status"), fieldname: "status",
options:[
@@ -64,10 +64,10 @@
{label: __("Cancelled"), value: "Cancelled"}]},
{fieldtype:"Select", label: __("Type"), link:"Appointment Type", fieldname: "type",
default_value: __("Select Type...")},
- {fieldtype:"Select", label: __("Physician"), link:"Physician", fieldname: "physician",
- default_value: __("Select Physician..."), filter: function(val, item, opts) {
+ {fieldtype:"Select", label: __("Healthcare Practitioner"), link:"Healthcare Practitioner", fieldname: "practitioner",
+ default_value: __("Select Healthcare Practitioner..."), filter: function(val, item, opts) {
return val == opts.default_value || item.name == val || item._show;
- }, link_formatter: {filter_input: "physician"}},
+ }, link_formatter: {filter_input: "practitioner"}},
{fieldtype:"Select", label: __("Department"), link:"Medical Department", fieldname: "department",
default_value: __("Select Department..."), filter: function(val, item, opts) {
return val == opts.default_value || item.department == val || item._show;
@@ -81,7 +81,7 @@
],
setup_filters: function() {
this._super();
- this.trigger_refresh_on_change(["tree_type", "physician", "department", "status", "type"]);
+ this.trigger_refresh_on_change(["tree_type", "practitioner", "department", "status", "type"]);
// this.show_zero_check()
},
@@ -96,10 +96,10 @@
}
if(!this.data || me.item_type != me.tree_type) {
var items = null;
- if(me.tree_type=='Physician') {
- items = frappe.report_dump.data["Physician"];
+ if(me.tree_type=='Healthcare Practitioner') {
+ items = frappe.report_dump.data["Healthcare Practitioner"];
} if(me.tree_type=='Medical Department') {
- items = this.prepare_tree("Physician", "Medical Department");
+ items = this.prepare_tree("Healthcare Practitioner", "Medical Department");
}
me.item_type = me.tree_type;
me.parent_map = {};
diff --git a/erpnext/healthcare/print_format/consultation_print/consultation_print.json b/erpnext/healthcare/print_format/consultation_print/consultation_print.json
deleted file mode 100644
index 05b8b43..0000000
--- a/erpnext/healthcare/print_format/consultation_print/consultation_print.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "align_labels_left": 0,
- "creation": "2017-04-10 14:05:53.355863",
- "custom_format": 1,
- "disabled": 0,
- "doc_type": "Consultation",
- "docstatus": 0,
- "doctype": "Print Format",
- "font": "Default",
- "html": "<div >\n {% if letter_head and not no_letterhead -%}\n <div class=\"letter-head\">{{ letter_head }}</div>\n <hr>\n {% else %}\n <div align=\"right\">\n <h1>{{doc.name}}</h1>\n </div>\n {%- endif %}\n <div class=\"row section-break\">\n <div class=\"col-xs-6 column-break\">\n {% if doc.appointment %}\n\t <div class=\"row\">\n\t\t\t<div class=\"col-xs-4 text-left\">\n\t\t\t<label>Appointment</label>\n\t\t\t</div>\n\t\t\t<div class=\"col-xs-7 value\">\n\t\t\t<strong>: </strong>{{doc.appointment}}\n\t\t\t</div>\n\t\t</div>\n\t\t{%- endif -%}\n\n <div class=\"row\">\n\t\t <div class=\"col-xs-4 text-left\">\n\t\t\t <label>Patient</label>\n\t\t </div>\n {% if doc.patient %}\n\t\t <div class=\"col-xs-7 value\">\n\t\t\t <strong>: </strong>{{doc.patient}}\n\t\t </div>\n {% else %}\n <div class=\"col-xs-7 value\">\n\t\t\t <strong>: </strong><em>Patient Name</em>\n\t\t </div>\n {%- endif -%}\n\t\t</div>\n\t <div class=\"row\">\n\t\t\t<div class=\"col-xs-4 text-left\">\n\t\t\t\t<label>Age</label>\n\t\t\t</div>\n\t\t\t<div class=\"col-xs-7 value\">\n\t\t\t <strong>: </strong> {{doc.patient_age}}\n\t\t\t</div>\n\t\t</div>\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n\t\t\t\t<label>Gender</label>\n\t\t\t</div>\n\t\t\t<div class=\"col-xs-7 value\">\n\t\t\t <strong>: </strong> {{doc.patient_sex}}\n\t\t\t</div>\n </div>\n\n </div>\n <div class=\"col-xs-6 column-break\">\n\n <div class=\"row\">\n\t <div class=\"col-xs-4 text-left\">\n\t\t <label>Doctor</label>\n\t </div>\n {% if doc.physician %}\n\t <div class=\"col-xs-7 text-left value\">\n\t\t\t<strong>: </strong>{{doc.physician}}\n\t </div>\n {%- endif -%}\n\t</div>\n\n {% if doc.consultation_date %}\n\t <div class=\"row\">\n\t\t<div class=\"col-xs-4 text-left\">\n\t\t<label>Date</label>\n\t\t</div>\n\t\t<div class=\"col-xs-7 text-left value\">\n\t\t<strong>: </strong>{{doc.consultation_date}}\n\t\t</div>\n </div>\n\t {%- endif -%}\n {% if doc.consultation_time %}\n\t <div class=\"row\">\n\t\t<div class=\"col-xs-4 text-left\">\n\t\t<label>Time</label>\n\t\t</div>\n\t\t<div class=\"col-xs-7 text-left value\">\n\t\t<strong>: </strong>{{doc.consultation_time}}\n\t\t</div>\n </div>\n\t {%- endif -%}\n {% if doc.visit_department %}\n\t <div class=\"row\">\n\t\t<div class=\"col-xs-4 text-left\">\n\t\t<label>Department</label>\n\t\t</div>\n\t\t<div class=\"col-xs-7 text-left value\">\n\t\t<strong>: </strong>{{doc.visit_department}}\n\t\t</div>\n </div>\n {%- endif -%}\n </div>\n\n </div>\n\n</div>\n<div>\n <hr>\n {% if doc.symptoms_in_print%}\n {% if doc.symptoms %}\n Complaints:\n <strong>{{doc.symptoms}}</strong>\n \t <br>\n {%- endif -%}\n {%- endif -%}\n\n {% if doc.diagnosis_in_print%}\n {% if doc.diagnosis %}\n \t Diagnosis:\n <strong>{{doc.diagnosis}}</strong>\n <br>\n {%- endif -%}\n {%- endif -%}\n\n</div>\n\n<div>\n {% if doc.drug_prescription %}\n <br>\n Rx,\n <table class=\"table\">\n <tbody>\n <!--<tr>\n <th>Drug</th>\n <th class=\"text-left\">Dosage</th>\n <th class=\"text-left\">Period</th>\n <th>Remark</th>\n </tr>-->\n\n {%- for row in doc.drug_prescription -%}\n <tr>\n <td style=\"width: 30%;border:none;\">\n {%- if row.drug_name -%}<b>{{ row.drug_name }}</b>{%- endif -%}\n </td>\n \t<td style=\"width: 20%;text-align: left;border:none;\">\n {%- if row.dosage -%}{{ row.dosage }}{%- endif -%}\n </td>\n \t<td style=\"width: 20%;text-align: left;border:none;\">\n {%- if row.period -%}{{ row.period }}{%- endif -%}\n\t\t </td>\n <td style=\"width: 30%;text-align: left;border:none;\">\n\t\t\t <div style=\"border: 0px;\">\n {%- if row.comment -%}{{ row.comment }}{%- endif -%}\n </div>\n\t\t </td>\n </tr>\n\t {%- endfor -%}\n </tbody>\n </table>\n\n\n {%- endif -%}\n</div>\n\n\n<div>\n {% if doc.test_prescription %}\n Investigations,\n <table class=\"table\">\n <tbody>\n <!--<tr>\n <th>Test</th>\n <th>Remark</th>\n </tr>-->\n\n {%- for row in doc.test_prescription -%}\n <tr>\n <td style=\"width: 30%;border:none;\">\n {%- if row.test_name -%}<b>{{ row.test_name }}</b>{%- endif -%}\n </td>\n <td style=\"width: 30%;text-align: left;border:none;\">\n\t\t\t <div style=\"border: 0px;\">\n {%- if row.test_comment -%}{{ row.test_comment }}{%- endif -%}\n </div>\n\t\t </td>\n </tr>\n\n\t {%- endfor -%}\n </tbody>\n </table>\n\n\n {%- endif -%}\n</div>\n<div>\n {% if doc.consultation_comment %}\n <br>\n {{doc.consultation_comment}}\n {%- endif -%}\n</div>\n",
- "idx": 0,
- "line_breaks": 0,
- "modified": "2017-05-15 16:36:06.034909",
- "modified_by": "Administrator",
- "module": "Healthcare",
- "name": "Consultation Print",
- "owner": "Administrator",
- "print_format_builder": 0,
- "print_format_type": "Server",
- "show_section_headings": 0,
- "standard": "Yes"
-}
\ No newline at end of file
diff --git a/erpnext/healthcare/print_format/consultation_print/__init__.py b/erpnext/healthcare/print_format/encounter_print/__init__.py
similarity index 100%
rename from erpnext/healthcare/print_format/consultation_print/__init__.py
rename to erpnext/healthcare/print_format/encounter_print/__init__.py
diff --git a/erpnext/healthcare/print_format/encounter_print/encounter_print.json b/erpnext/healthcare/print_format/encounter_print/encounter_print.json
new file mode 100644
index 0000000..b33c777
--- /dev/null
+++ b/erpnext/healthcare/print_format/encounter_print/encounter_print.json
@@ -0,0 +1,22 @@
+{
+ "align_labels_right": 0,
+ "creation": "2017-04-10 14:05:53.355863",
+ "custom_format": 1,
+ "disabled": 0,
+ "doc_type": "Patient Encounter",
+ "docstatus": 0,
+ "doctype": "Print Format",
+ "font": "Default",
+ "html": "<div >\n {% if letter_head and not no_letterhead -%}\n <div class=\"letter-head\">{{ letter_head }}</div>\n <hr>\n {% else %}\n <div align=\"right\">\n <h1>{{doc.name}}</h1>\n </div>\n {%- endif %}\n <div class=\"row section-break\">\n <div class=\"col-xs-6 column-break\">\n {% if doc.appointment %}\n\t <div class=\"row\">\n\t\t\t<div class=\"col-xs-4 text-left\">\n\t\t\t<label>Appointment</label>\n\t\t\t</div>\n\t\t\t<div class=\"col-xs-7 value\">\n\t\t\t<strong>: </strong>{{doc.appointment}}\n\t\t\t</div>\n\t\t</div>\n\t\t{%- endif -%}\n\n <div class=\"row\">\n\t\t <div class=\"col-xs-4 text-left\">\n\t\t\t <label>Patient</label>\n\t\t </div>\n {% if doc.patient %}\n\t\t <div class=\"col-xs-7 value\">\n\t\t\t <strong>: </strong>{{doc.patient}}\n\t\t </div>\n {% else %}\n <div class=\"col-xs-7 value\">\n\t\t\t <strong>: </strong><em>Patient Name</em>\n\t\t </div>\n {%- endif -%}\n\t\t</div>\n\t <div class=\"row\">\n\t\t\t<div class=\"col-xs-4 text-left\">\n\t\t\t\t<label>Age</label>\n\t\t\t</div>\n\t\t\t<div class=\"col-xs-7 value\">\n\t\t\t <strong>: </strong> {{doc.patient_age}}\n\t\t\t</div>\n\t\t</div>\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n\t\t\t\t<label>Gender</label>\n\t\t\t</div>\n\t\t\t<div class=\"col-xs-7 value\">\n\t\t\t <strong>: </strong> {{doc.patient_sex}}\n\t\t\t</div>\n </div>\n\n </div>\n <div class=\"col-xs-6 column-break\">\n\n <div class=\"row\">\n\t <div class=\"col-xs-4 text-left\">\n\t\t <label>Healthcare Practitioner</label>\n\t </div>\n {% if doc.practitioner %}\n\t <div class=\"col-xs-7 text-left value\">\n\t\t\t<strong>: </strong>{{doc.practitioner}}\n\t </div>\n {%- endif -%}\n\t</div>\n\n {% if doc.encounter_date %}\n\t <div class=\"row\">\n\t\t<div class=\"col-xs-4 text-left\">\n\t\t<label>Date</label>\n\t\t</div>\n\t\t<div class=\"col-xs-7 text-left value\">\n\t\t<strong>: </strong>{{doc.encounter_date}}\n\t\t</div>\n </div>\n\t {%- endif -%}\n {% if doc.encounter_time %}\n\t <div class=\"row\">\n\t\t<div class=\"col-xs-4 text-left\">\n\t\t<label>Time</label>\n\t\t</div>\n\t\t<div class=\"col-xs-7 text-left value\">\n\t\t<strong>: </strong>{{doc.encounter_time}}\n\t\t</div>\n </div>\n\t {%- endif -%}\n {% if doc.visit_department %}\n\t <div class=\"row\">\n\t\t<div class=\"col-xs-4 text-left\">\n\t\t<label>Department</label>\n\t\t</div>\n\t\t<div class=\"col-xs-7 text-left value\">\n\t\t<strong>: </strong>{{doc.visit_department}}\n\t\t</div>\n </div>\n {%- endif -%}\n </div>\n\n </div>\n\n</div>\n<div>\n <hr>\n {% if doc.symptoms_in_print%}\n {% if doc.symptoms %}\n Complaints:\n <strong>{{doc.symptoms}}</strong>\n \t <br>\n {%- endif -%}\n {%- endif -%}\n\n {% if doc.diagnosis_in_print%}\n {% if doc.diagnosis %}\n \t Diagnosis:\n <strong>{{doc.diagnosis}}</strong>\n <br>\n {%- endif -%}\n {%- endif -%}\n\n</div>\n\n<div>\n {% if doc.drug_prescription %}\n <br>\n Rx,\n <table class=\"table\">\n <tbody>\n <!--<tr>\n <th>Drug</th>\n <th class=\"text-left\">Dosage</th>\n <th class=\"text-left\">Period</th>\n <th>Remark</th>\n </tr>-->\n\n {%- for row in doc.drug_prescription -%}\n <tr>\n <td style=\"width: 30%;border:none;\">\n {%- if row.drug_name -%}<b>{{ row.drug_name }}</b>{%- endif -%}\n </td>\n \t<td style=\"width: 20%;text-align: left;border:none;\">\n {%- if row.dosage -%}{{ row.dosage }}{%- endif -%}\n </td>\n \t<td style=\"width: 20%;text-align: left;border:none;\">\n {%- if row.period -%}{{ row.period }}{%- endif -%}\n\t\t </td>\n <td style=\"width: 30%;text-align: left;border:none;\">\n\t\t\t <div style=\"border: 0px;\">\n {%- if row.comment -%}{{ row.comment }}{%- endif -%}\n </div>\n\t\t </td>\n </tr>\n\t {%- endfor -%}\n </tbody>\n </table>\n\n\n {%- endif -%}\n</div>\n\n\n<div>\n {% if doc.test_prescription %}\n Investigations,\n <table class=\"table\">\n <tbody>\n <!--<tr>\n <th>Test</th>\n <th>Remark</th>\n </tr>-->\n\n {%- for row in doc.test_prescription -%}\n <tr>\n <td style=\"width: 30%;border:none;\">\n {%- if row.test_name -%}<b>{{ row.test_name }}</b>{%- endif -%}\n </td>\n <td style=\"width: 30%;text-align: left;border:none;\">\n\t\t\t <div style=\"border: 0px;\">\n {%- if row.test_comment -%}{{ row.test_comment }}{%- endif -%}\n </div>\n\t\t </td>\n </tr>\n\n\t {%- endfor -%}\n </tbody>\n </table>\n\n\n {%- endif -%}\n</div>\n<div>\n {% if doc.encounter_comment %}\n <br>\n {{doc.encounter_comment}}\n {%- endif -%}\n</div>\n",
+ "idx": 0,
+ "line_breaks": 0,
+ "modified": "2018-07-10 18:52:10.970448",
+ "modified_by": "Administrator",
+ "module": "Healthcare",
+ "name": "Encounter Print",
+ "owner": "Administrator",
+ "print_format_builder": 0,
+ "print_format_type": "Server",
+ "show_section_headings": 0,
+ "standard": "Yes"
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/print_format/lab_test_print/lab_test_print.json b/erpnext/healthcare/print_format/lab_test_print/lab_test_print.json
index e3e21a7..2f85ff6 100644
--- a/erpnext/healthcare/print_format/lab_test_print/lab_test_print.json
+++ b/erpnext/healthcare/print_format/lab_test_print/lab_test_print.json
@@ -1,22 +1,22 @@
{
- "align_labels_left": 0,
- "creation": "2017-04-24 15:38:45.332473",
- "custom_format": 1,
- "disabled": 0,
- "doc_type": "Lab Test",
- "docstatus": 0,
- "doctype": "Print Format",
- "font": "Default",
- "html": "<div >\n {% if letter_head and not no_letterhead -%}\n <div class=\"letter-head\">{{ letter_head }}</div>\n <hr>\n {%- endif %}\n\n {% if (doc.docstatus != 1) %}\n <b>Lab Tests have to be Submitted for Print .. !</b>\n {% elif (frappe.db.get_value(\"Healthcare Settings\", \"None\", \"require_test_result_approval\") == '1' and doc.approval_status != \"Approved\") %}\n <b>Lab Tests have to be Approved for Print .. !</b>\n {%- else -%}\n <div class=\"row section-break\">\n <div class=\"col-xs-6 column-break\">\n {% if doc.invoice %}\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Order No.</label>\n </div>\n <div class=\"col-xs-7 value\">\n <strong>: </strong>{{doc.invoice}}\n </div>\n </div>\n {%- endif -%}\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Patient</label>\n </div>\n {% if doc.patient %}\n <div class=\"col-xs-7 value\">\n <strong>: </strong>{{doc.patient}}\n </div>\n {% else %}\n <div class=\"col-xs-7 value\">\n <strong>: </strong><em>Patient Name</em>\n </div>\n {%- endif -%}\n </div>\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Age</label>\n </div>\n <div class=\"col-xs-7 value\">\n <strong>: </strong> {{doc.patient_age}}\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Gender</label>\n </div>\n <div class=\"col-xs-7 value\">\n <strong>: </strong> {{doc.patient_sex}}\n </div>\n </div>\n\n </div>\n\n <div class=\"col-xs-6 column-break\">\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Doctor</label>\n </div>\n {% if doc.physician %}\n <div class=\"col-xs-7 text-left value\">\n <strong>: </strong>{{doc.physician}}\n </div>\n {%- endif -%}\n </div>\n\n {% if doc.sample_date %}\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Sample Date</label>\n </div>\n <div class=\"col-xs-7 text-left value\">\n <strong>: </strong>{{doc.sample_date}}\n </div>\n </div>\n {%- endif -%}\n\n {% if doc.result_date %}\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Result Date</label>\n </div>\n <div class=\"col-xs-7 text-left value\">\n <strong>: </strong>{{doc.result_date}}\n </div>\n </div>\n {%- endif -%}\n\n </div>\n\n </div>\n\n <div align=\"center\">\n <hr><h4 class=\"text-uppercase\"><b><u>Department of {{doc.department}}</u></b></h4>\n </div>\n\n <table class=\"table\">\n <tbody>\n {%- if doc.normal_test_items -%}\n <tr>\n <th>Name of Test</th>\n <th class=\"text-left\">Result</th>\n <th class=\"text-right\">Normal Range</th>\n </tr>\n\n {%- if doc.normal_test_items|length > 1 %}\n <tr><td style=\"width: 40%;\"> <b>{{ doc.test_name }}</b> </td><td></td></tr>\n {%- endif -%}\n\n {%- for row in doc.normal_test_items -%}\n <tr>\n <td style=\"width: 40%;border:none;\">\n {%- if doc.normal_test_items|length > 1 %}  {%- endif -%}\n {%- if row.test_name -%}<b>{{ row.test_name }}</b>\n {%- else -%}   {%- endif -%}\n {%- if row.test_event -%}   {{ row.test_event }}{%- endif -%}\n </td>\n\n <td style=\"width: 20%;text-align: left;border:none;\">\n {%- if row.result_value -%}{{ row.result_value }}{%- endif -%} \n {%- if row.test_uom -%}{{ row.test_uom }}{%- endif -%}\n </td>\n\n <td style=\"width: 30%;text-align: right;border:none;\">\n <div style=\"border: 0px;\">\n {%- if row.normal_range -%}{{ row.normal_range }}{%- endif -%}\n </div>\n </td>\n </tr>\n\n {%- endfor -%}\n {%- endif -%}\n </tbody>\n </table>\n\n <table class=\"table\">\n <tbody>\n {%- if doc.special_test_items -%}\n <tr>\n <th>Name of Test</th>\n <th class=\"text-left\">Result</th>\n </tr>\n <tr><td style=\"width: 30%;border:none;\"> <b>{{ doc.test_name }}</b> </td><td></td></tr>\n {%- for row in doc.special_test_items -%}\n <tr>\n <td style=\"width: 30%;border:none;\">   {{ row.test_particulars }} </td>\n <td style=\"width: 70%;text-align: left;border:none;\">\n {%- if row.result_value -%}{{ row.result_value }}{%- endif -%}\n </td>\n </tr>\n\n {%- endfor -%}\n {%- endif -%}\n\n {%- if doc.sensitivity_test_items -%}\n <tr>\n <th>Antibiotic</th>\n <th class=\"text-left\">Sensitivity</th>\n </tr>\n {%- for row in doc.sensitivity_test_items -%}\n <tr>\n <td style=\"width: 30%;border:none;\"> {{ row.antibiotic }} </td>\n <td style=\"width: 70%;text-align: left;border:none;\">{{ row.antibiotic_sensitivity }}</td>\n </tr>\n\n {%- endfor -%}\n {%- endif -%}\n\n </tbody>\n </table>\n {%- endif -%}\n\n <div align=\"right\">\n {%- if (frappe.db.get_value(\"Healthcare Settings\", \"None\", \"employee_name_and_designation_in_print\") == '1') -%}\n <h6 class=\"text-uppercase\"><b>{{doc.employee_name}}</b></h6>\n <h6 class=\"text-uppercase\"><b>{{doc.employee_designation}}</b></h6>\n {%- else -%}\n <h6 ><b>{{frappe.db.get_value(\"Healthcare Settings\", \"None\", \"custom_signature_in_print\") }}</b></h6>\n {%- endif -%}\n </div>\n</div>\n",
- "idx": 0,
- "line_breaks": 0,
- "modified": "2017-04-27 12:11:58.342145",
- "modified_by": "Administrator",
- "module": "Healthcare",
- "name": "Lab Test Print",
- "owner": "Administrator",
- "print_format_builder": 0,
- "print_format_type": "Server",
- "show_section_headings": 0,
+ "align_labels_right": 0,
+ "creation": "2017-04-24 15:38:45.332473",
+ "custom_format": 1,
+ "disabled": 0,
+ "doc_type": "Lab Test",
+ "docstatus": 0,
+ "doctype": "Print Format",
+ "font": "Default",
+ "html": "<div >\n {% if letter_head and not no_letterhead -%}\n <div class=\"letter-head\">{{ letter_head }}</div>\n <hr>\n {%- endif %}\n\n {% if (doc.docstatus != 1) %}\n <b>Lab Tests have to be Submitted for Print .. !</b>\n {% elif (frappe.db.get_value(\"Healthcare Settings\", \"None\", \"require_test_result_approval\") == '1' and doc.approval_status != \"Approved\") %}\n <b>Lab Tests have to be Approved for Print .. !</b>\n {%- else -%}\n <div class=\"row section-break\">\n <div class=\"col-xs-6 column-break\">\n {% if doc.invoice %}\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Order No.</label>\n </div>\n <div class=\"col-xs-7 value\">\n <strong>: </strong>{{doc.invoice}}\n </div>\n </div>\n {%- endif -%}\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Patient</label>\n </div>\n {% if doc.patient %}\n <div class=\"col-xs-7 value\">\n <strong>: </strong>{{doc.patient}}\n </div>\n {% else %}\n <div class=\"col-xs-7 value\">\n <strong>: </strong><em>Patient Name</em>\n </div>\n {%- endif -%}\n </div>\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Age</label>\n </div>\n <div class=\"col-xs-7 value\">\n <strong>: </strong> {{doc.patient_age}}\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Gender</label>\n </div>\n <div class=\"col-xs-7 value\">\n <strong>: </strong> {{doc.patient_sex}}\n </div>\n </div>\n\n </div>\n\n <div class=\"col-xs-6 column-break\">\n\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Healthcare Practitioner</label>\n </div>\n {% if doc.practitioner %}\n <div class=\"col-xs-7 text-left value\">\n <strong>: </strong>{{doc.practitioner}}\n </div>\n {%- endif -%}\n </div>\n\n {% if doc.sample_date %}\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Sample Date</label>\n </div>\n <div class=\"col-xs-7 text-left value\">\n <strong>: </strong>{{doc.sample_date}}\n </div>\n </div>\n {%- endif -%}\n\n {% if doc.result_date %}\n <div class=\"row\">\n <div class=\"col-xs-4 text-left\">\n <label>Result Date</label>\n </div>\n <div class=\"col-xs-7 text-left value\">\n <strong>: </strong>{{doc.result_date}}\n </div>\n </div>\n {%- endif -%}\n\n </div>\n\n </div>\n\n <div align=\"center\">\n <hr><h4 class=\"text-uppercase\"><b><u>Department of {{doc.department}}</u></b></h4>\n </div>\n\n <table class=\"table\">\n <tbody>\n {%- if doc.normal_test_items -%}\n <tr>\n <th>Name of Test</th>\n <th class=\"text-left\">Result</th>\n <th class=\"text-right\">Normal Range</th>\n </tr>\n\n {%- if doc.normal_test_items|length > 1 %}\n <tr><td style=\"width: 40%;\"> <b>{{ doc.test_name }}</b> </td><td></td></tr>\n {%- endif -%}\n\n {%- for row in doc.normal_test_items -%}\n <tr>\n <td style=\"width: 40%;border:none;\">\n {%- if doc.normal_test_items|length > 1 %}  {%- endif -%}\n {%- if row.test_name -%}<b>{{ row.test_name }}</b>\n {%- else -%}   {%- endif -%}\n {%- if row.test_event -%}   {{ row.test_event }}{%- endif -%}\n </td>\n\n <td style=\"width: 20%;text-align: left;border:none;\">\n {%- if row.result_value -%}{{ row.result_value }}{%- endif -%} \n {%- if row.test_uom -%}{{ row.test_uom }}{%- endif -%}\n </td>\n\n <td style=\"width: 30%;text-align: right;border:none;\">\n <div style=\"border: 0px;\">\n {%- if row.normal_range -%}{{ row.normal_range }}{%- endif -%}\n </div>\n </td>\n </tr>\n\n {%- endfor -%}\n {%- endif -%}\n </tbody>\n </table>\n\n <table class=\"table\">\n <tbody>\n {%- if doc.special_test_items -%}\n <tr>\n <th>Name of Test</th>\n <th class=\"text-left\">Result</th>\n </tr>\n <tr><td style=\"width: 30%;border:none;\"> <b>{{ doc.test_name }}</b> </td><td></td></tr>\n {%- for row in doc.special_test_items -%}\n <tr>\n <td style=\"width: 30%;border:none;\">   {{ row.test_particulars }} </td>\n <td style=\"width: 70%;text-align: left;border:none;\">\n {%- if row.result_value -%}{{ row.result_value }}{%- endif -%}\n </td>\n </tr>\n\n {%- endfor -%}\n {%- endif -%}\n\n {%- if doc.sensitivity_test_items -%}\n <tr>\n <th>Antibiotic</th>\n <th class=\"text-left\">Sensitivity</th>\n </tr>\n {%- for row in doc.sensitivity_test_items -%}\n <tr>\n <td style=\"width: 30%;border:none;\"> {{ row.antibiotic }} </td>\n <td style=\"width: 70%;text-align: left;border:none;\">{{ row.antibiotic_sensitivity }}</td>\n </tr>\n\n {%- endfor -%}\n {%- endif -%}\n\n </tbody>\n </table>\n {%- endif -%}\n\n <div align=\"right\">\n {%- if (frappe.db.get_value(\"Healthcare Settings\", \"None\", \"employee_name_and_designation_in_print\") == '1') -%}\n <h6 class=\"text-uppercase\"><b>{{doc.employee_name}}</b></h6>\n <h6 class=\"text-uppercase\"><b>{{doc.employee_designation}}</b></h6>\n {%- else -%}\n <h6 ><b>{{frappe.db.get_value(\"Healthcare Settings\", \"None\", \"custom_signature_in_print\") }}</b></h6>\n {%- endif -%}\n </div>\n</div>\n",
+ "idx": 0,
+ "line_breaks": 0,
+ "modified": "2018-07-10 11:29:24.167265",
+ "modified_by": "Administrator",
+ "module": "Healthcare",
+ "name": "Lab Test Print",
+ "owner": "Administrator",
+ "print_format_builder": 0,
+ "print_format_type": "Server",
+ "show_section_headings": 0,
"standard": "Yes"
-}
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/report/lab_test_report/lab_test_report.py b/erpnext/healthcare/report/lab_test_report/lab_test_report.py
index 61769f8..e4771c5 100644
--- a/erpnext/healthcare/report/lab_test_report/lab_test_report.py
+++ b/erpnext/healthcare/report/lab_test_report/lab_test_report.py
@@ -17,7 +17,7 @@
data = []
for lab_test in lab_test_list:
- row = [ lab_test.test_name, lab_test.patient, lab_test.physician, lab_test.invoice, lab_test.status, lab_test.result_date, lab_test.department]
+ row = [ lab_test.test_name, lab_test.patient, lab_test.practitioner, lab_test.invoice, lab_test.status, lab_test.result_date, lab_test.department]
data.append(row)
return columns, data
@@ -27,7 +27,7 @@
columns = [
_("Test") + ":Data:120",
_("Patient") + ":Link/Patient:180",
- _("Doctor") + ":Link/Physician:120",
+ _("Healthcare Practitioner") + ":Link/Healthcare Practitioner:120",
_("Invoice") + ":Link/Sales Invoice:120",
_("Status") + ":Data:120",
_("Result Date") + ":Date:120",
@@ -52,7 +52,7 @@
def get_lab_test(filters):
conditions = get_conditions(filters)
- return frappe.db.sql("""select name, patient, test_name, patient_name, status, result_date, physician, invoice, department
+ return frappe.db.sql("""select name, patient, test_name, patient_name, status, result_date, practitioner, invoice, department
from `tabLab Test`
where docstatus<2 %s order by submitted_date desc, name desc""" %
conditions, filters, as_dict=1)
diff --git a/erpnext/healthcare/web_form/lab_test/lab_test.json b/erpnext/healthcare/web_form/lab_test/lab_test.json
index fec34b6..89029fa 100644
--- a/erpnext/healthcare/web_form/lab_test/lab_test.json
+++ b/erpnext/healthcare/web_form/lab_test/lab_test.json
@@ -18,7 +18,7 @@
"is_standard": 1,
"login_required": 1,
"max_attachment_size": 0,
- "modified": "2017-06-07 16:03:06.781364",
+ "modified": "2018-07-16 13:10:47.940128",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "lab-test",
@@ -77,13 +77,13 @@
"reqd": 0
},
{
- "fieldname": "physician",
+ "fieldname": "practitioner",
"fieldtype": "Link",
"hidden": 0,
- "label": "Doctor",
+ "label": "Healthcare Practitioner",
"max_length": 0,
"max_value": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"read_only": 0,
"reqd": 0
},
diff --git a/erpnext/healthcare/web_form/patient_appointments/patient_appointments.json b/erpnext/healthcare/web_form/patient_appointments/patient_appointments.json
index 613e367..e9cf7a8 100644
--- a/erpnext/healthcare/web_form/patient_appointments/patient_appointments.json
+++ b/erpnext/healthcare/web_form/patient_appointments/patient_appointments.json
@@ -18,7 +18,7 @@
"is_standard": 1,
"login_required": 1,
"max_attachment_size": 0,
- "modified": "2017-06-07 15:57:27.196428",
+ "modified": "2018-07-16 13:11:08.626316",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "patient-appointments",
@@ -43,13 +43,13 @@
"reqd": 1
},
{
- "fieldname": "physician",
+ "fieldname": "practitioner",
"fieldtype": "Link",
"hidden": 0,
- "label": "Physician",
+ "label": "Healthcare Practitioner",
"max_length": 0,
"max_value": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"read_only": 0,
"reqd": 1
},
diff --git a/erpnext/healthcare/doctype/consultation/__init__.py b/erpnext/healthcare/web_form/personal_details/__init__.py
similarity index 100%
copy from erpnext/healthcare/doctype/consultation/__init__.py
copy to erpnext/healthcare/web_form/personal_details/__init__.py
diff --git a/erpnext/healthcare/web_form/personal_details/personal_details.js b/erpnext/healthcare/web_form/personal_details/personal_details.js
new file mode 100644
index 0000000..f09e540
--- /dev/null
+++ b/erpnext/healthcare/web_form/personal_details/personal_details.js
@@ -0,0 +1,3 @@
+frappe.ready(function() {
+ // bind events here
+});
diff --git a/erpnext/healthcare/web_form/personal_details/personal_details.json b/erpnext/healthcare/web_form/personal_details/personal_details.json
new file mode 100644
index 0000000..aad987a
--- /dev/null
+++ b/erpnext/healthcare/web_form/personal_details/personal_details.json
@@ -0,0 +1,87 @@
+{
+ "accept_payment": 0,
+ "allow_comments": 0,
+ "allow_delete": 0,
+ "allow_edit": 1,
+ "allow_incomplete": 0,
+ "allow_multiple": 0,
+ "allow_print": 0,
+ "amount": 0.0,
+ "amount_based_on_field": 0,
+ "creation": "2018-07-03 19:33:23.332661",
+ "currency": "INR",
+ "doc_type": "Patient",
+ "docstatus": 0,
+ "doctype": "Web Form",
+ "idx": 0,
+ "introduction_text": "",
+ "is_standard": 1,
+ "login_required": 1,
+ "max_attachment_size": 0,
+ "modified": "2018-07-04 17:22:28.936442",
+ "modified_by": "Administrator",
+ "module": "Healthcare",
+ "name": "personal-details",
+ "owner": "Administrator",
+ "payment_button_label": "Buy Now",
+ "published": 1,
+ "route": "personal-details",
+ "show_sidebar": 1,
+ "sidebar_items": [],
+ "success_url": "/personal-details",
+ "title": "Personal Details",
+ "web_form_fields": [
+ {
+ "fieldname": "patient_name",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "label": "Full Name",
+ "max_length": 0,
+ "max_value": 0,
+ "read_only": 0,
+ "reqd": 1
+ },
+ {
+ "fieldname": "sex",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "label": "Gender",
+ "max_length": 0,
+ "max_value": 0,
+ "options": "\nMale\nFemale\nOther",
+ "read_only": 0,
+ "reqd": 1
+ },
+ {
+ "fieldname": "dob",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "label": "Date of birth",
+ "max_length": 0,
+ "max_value": 0,
+ "read_only": 0,
+ "reqd": 1
+ },
+ {
+ "fieldname": "mobile",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "label": "Mobile",
+ "max_length": 0,
+ "max_value": 0,
+ "read_only": 0,
+ "reqd": 0
+ },
+ {
+ "fieldname": "email",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "label": "Email",
+ "max_length": 0,
+ "max_value": 0,
+ "options": "Email",
+ "read_only": 1,
+ "reqd": 0
+ }
+ ]
+}
diff --git a/erpnext/healthcare/web_form/personal_details/personal_details.py b/erpnext/healthcare/web_form/personal_details/personal_details.py
new file mode 100644
index 0000000..aa68c42
--- /dev/null
+++ b/erpnext/healthcare/web_form/personal_details/personal_details.py
@@ -0,0 +1,28 @@
+from __future__ import unicode_literals
+
+import frappe
+from frappe import _
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+ if frappe.session.user=='Guest':
+ frappe.throw(_("You need to be logged in to access this page"), frappe.PermissionError)
+
+ context.show_sidebar=True
+
+ if frappe.db.exists("Patient", {'email': frappe.session.user}):
+ patient = frappe.get_doc("Patient", {'email': frappe.session.user})
+ context.doc = patient
+ frappe.form_dict.new = 0
+ frappe.form_dict.name = patient.name
+
+def get_patient():
+ return frappe.get_value("Patient",{"email": frappe.session.user}, "name")
+
+def has_website_permission(doc, ptype, user, verbose=False):
+ if doc.name == get_patient():
+ return True
+ else:
+ return False
diff --git a/erpnext/healthcare/web_form/prescription/prescription.json b/erpnext/healthcare/web_form/prescription/prescription.json
index 5f251a3..a2aabd1 100644
--- a/erpnext/healthcare/web_form/prescription/prescription.json
+++ b/erpnext/healthcare/web_form/prescription/prescription.json
@@ -10,7 +10,7 @@
"amount_based_on_field": 0,
"creation": "2017-06-06 17:13:19.101374",
"currency": "INR",
- "doc_type": "Consultation",
+ "doc_type": "Patient Encounter",
"docstatus": 0,
"doctype": "Web Form",
"idx": 0,
@@ -18,13 +18,13 @@
"is_standard": 1,
"login_required": 1,
"max_attachment_size": 0,
- "modified": "2017-06-20 11:56:05.132154",
+ "modified": "2018-07-16 13:11:28.057697",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "prescription",
"owner": "Administrator",
"payment_button_label": "Buy Now",
- "print_format": "Consultation Print",
+ "print_format": "Encounter Print",
"published": 1,
"route": "prescription",
"show_sidebar": 1,
@@ -33,13 +33,13 @@
"title": "Prescription",
"web_form_fields": [
{
- "fieldname": "physician",
+ "fieldname": "practitioner",
"fieldtype": "Link",
"hidden": 0,
- "label": "Doctor",
+ "label": "Healthcare Practitioner",
"max_length": 0,
"max_value": 0,
- "options": "Physician",
+ "options": "Healthcare Practitioner",
"read_only": 0,
"reqd": 1
},
@@ -56,10 +56,10 @@
},
{
"default": "Today",
- "fieldname": "consultation_date",
+ "fieldname": "encounter_date",
"fieldtype": "Date",
"hidden": 0,
- "label": "Consultation Date",
+ "label": "Encounter Date",
"max_length": 0,
"max_value": 0,
"read_only": 0,
@@ -67,10 +67,10 @@
},
{
"default": "",
- "fieldname": "consultation_time",
+ "fieldname": "encounter_time",
"fieldtype": "Data",
"hidden": 0,
- "label": "Consultation Time",
+ "label": "Encounter Time",
"max_length": 0,
"max_value": 0,
"read_only": 0,
@@ -99,7 +99,7 @@
"reqd": 0
},
{
- "fieldname": "consultation_comment",
+ "fieldname": "encounter_comment",
"fieldtype": "Small Text",
"hidden": 0,
"label": "Review Details",
diff --git a/erpnext/healthcare/web_form/prescription/prescription.py b/erpnext/healthcare/web_form/prescription/prescription.py
index 73b0350..efdeaa9 100644
--- a/erpnext/healthcare/web_form/prescription/prescription.py
+++ b/erpnext/healthcare/web_form/prescription/prescription.py
@@ -7,13 +7,13 @@
def get_list_context(context):
context.row_template = "erpnext/templates/includes/healthcare/prescription_row_template.html"
- context.get_list = get_consultation_list
+ context.get_list = get_encounter_list
-def get_consultation_list(doctype, txt, filters, limit_start, limit_page_length = 20, order_by='modified desc'):
+def get_encounter_list(doctype, txt, filters, limit_start, limit_page_length = 20, order_by='modified desc'):
patient = get_patient()
- consultations = frappe.db.sql("""select * from `tabConsultation`
+ encounters = frappe.db.sql("""select * from `tabPatient Encounter`
where patient = %s order by creation desc""", patient, as_dict = True)
- return consultations
+ return encounters
def get_patient():
return frappe.get_value("Patient",{"email": frappe.session.user}, "name")
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index be73b3a..3a276d5 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -133,6 +133,7 @@
]
standard_portal_menu_items = [
+ {"title": _("Personal Details"), "route": "/personal-details", "reference_doctype": "Patient", "role": "Patient"},
{"title": _("Projects"), "route": "/project", "reference_doctype": "Project"},
{"title": _("Request for Quotations"), "route": "/rfq", "reference_doctype": "Request for Quotation", "role": "Supplier"},
{"title": _("Supplier Quotation"), "route": "/supplier-quotations", "reference_doctype": "Supplier Quotation", "role": "Supplier"},
@@ -145,7 +146,7 @@
{"title": _("Timesheets"), "route": "/timesheets", "reference_doctype": "Timesheet", "role":"Customer"},
{"title": _("Timesheets"), "route": "/timesheets", "reference_doctype": "Timesheet", "role":"Customer"},
{"title": _("Lab Test"), "route": "/lab-test", "reference_doctype": "Lab Test", "role":"Patient"},
- {"title": _("Prescription"), "route": "/prescription", "reference_doctype": "Consultation", "role":"Patient"},
+ {"title": _("Prescription"), "route": "/prescription", "reference_doctype": "Patient Encounter", "role":"Patient"},
{"title": _("Patient Appointment"), "route": "/patient-appointments", "reference_doctype": "Patient Appointment", "role":"Patient"},
{"title": _("Fees"), "route": "/fees", "reference_doctype": "Fees", "role":"Student"},
{"title": _("Newsletter"), "route": "/newsletters", "reference_doctype": "Newsletter"},
@@ -168,8 +169,9 @@
"Issue": "erpnext.support.doctype.issue.issue.has_website_permission",
"Timesheet": "erpnext.controllers.website_list_for_contact.has_website_permission",
"Lab Test": "erpnext.healthcare.web_form.lab_test.lab_test.has_website_permission",
- "Consultation": "erpnext.healthcare.web_form.prescription.prescription.has_website_permission",
- "Patient Appointment": "erpnext.healthcare.web_form.patient_appointments.patient_appointments.has_website_permission"
+ "Patient Encounter": "erpnext.healthcare.web_form.prescription.prescription.has_website_permission",
+ "Patient Appointment": "erpnext.healthcare.web_form.patient_appointments.patient_appointments.has_website_permission",
+ "Patient": "erpnext.healthcare.web_form.personal_details.personal_details.has_website_permission"
}
dump_report_map = "erpnext.startup.report_data_map.data_map"
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index a7fc349..bd6d1c3 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -555,4 +555,5 @@
erpnext.patches.v11_0.set_salary_component_properties
erpnext.patches.v11_0.set_user_permissions_for_department
erpnext.patches.v11_0.hr_ux_cleanups
-erpnext.patches.v11_0.update_allow_transfer_for_manufacture
\ No newline at end of file
+erpnext.patches.v11_0.update_allow_transfer_for_manufacture
+erpnext.patches.v11_0.rename_healthcare_doctype_and_fields
diff --git a/erpnext/patches/v11_0/rename_healthcare_doctype_and_fields.py b/erpnext/patches/v11_0/rename_healthcare_doctype_and_fields.py
new file mode 100644
index 0000000..3a77f10
--- /dev/null
+++ b/erpnext/patches/v11_0/rename_healthcare_doctype_and_fields.py
@@ -0,0 +1,56 @@
+import frappe
+from frappe.model.rename_doc import rename_doc
+from frappe.model.utils.rename_field import rename_field
+from frappe.modules import scrub, get_doctype_module
+
+field_rename_map = {
+ "Patient Encounter": [
+ ["consultation_time", "encounter_time"],
+ ["consultation_date", "encounter_date"],
+ ["consultation_comment", "encounter_comment"],
+ ["physician", "practitioner"]
+ ],
+ "Fee Validity": [
+ ["physician", "practitioner"]
+ ],
+ "Lab Test": [
+ ["physician", "practitioner"]
+ ],
+ "Patient Appointment": [
+ ["physician", "practitioner"],
+ ["referring_physician", "referring_practitioner"]
+ ],
+ "Procedure Prescription": [
+ ["physician", "practitioner"]
+ ]
+}
+
+doc_rename_map = {
+ "Physician Schedule Time Slot": "Healthcare Schedule Time Slot",
+ "Physician Schedule": "Practitioner Schedule",
+ "Physician Service Unit Schedule": "Practitioner Service Unit Schedule",
+ "Consultation": "Patient Encounter",
+ "Physician": "Healthcare Practitioner"
+}
+
+def execute():
+ for dt in doc_rename_map:
+ if frappe.db.exists('DocType', dt):
+ rename_doc('DocType', dt, doc_rename_map[dt], force=True)
+
+ for dn in field_rename_map:
+ if frappe.db.exists('DocType', dn):
+ 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 frappe.db.has_column(dt, field[0]):
+ rename_field(dt, field[0], field[1])
+
+ if frappe.db.exists('DocType', 'Practitioner Service Unit Schedule'):
+ if frappe.db.has_column('Practitioner Service Unit Schedule', 'parentfield'):
+ frappe.db.sql("""
+ update `tabPractitioner Service Unit Schedule` set parentfield = 'practitioner_schedules'
+ where parentfield = 'physician_schedules' and parenttype = 'Healthcare Practitioner'
+ """)
diff --git a/erpnext/startup/notifications.py b/erpnext/startup/notifications.py
index 49b770b..8e880dc 100644
--- a/erpnext/startup/notifications.py
+++ b/erpnext/startup/notifications.py
@@ -60,7 +60,7 @@
"Lab Test": {"docstatus": 0},
"Sample Collection": {"docstatus": 0},
"Patient Appointment": {"status": "Open"},
- "Consultation": {"docstatus": 0}
+ "Patient Encounter": {"docstatus": 0}
},
"targets": {
diff --git a/erpnext/startup/report_data_map.py b/erpnext/startup/report_data_map.py
index 5de7998..fec2dea 100644
--- a/erpnext/startup/report_data_map.py
+++ b/erpnext/startup/report_data_map.py
@@ -298,14 +298,14 @@
}
},
"Patient Appointment": {
- "columns": ["name", "appointment_type", "patient", "physician", "appointment_date", "department", "status", "company"],
+ "columns": ["name", "appointment_type", "patient", "practitioner", "appointment_date", "department", "status", "company"],
"order_by": "name",
"links": {
- "physician": ["Physician", "name"],
+ "practitioner": ["Healthcare Practitioner", "name"],
"appointment_type": ["Appointment Type", "name"]
}
},
- "Physician": {
+ "Healthcare Practitioner": {
"columns": ["name", "department"],
"order_by": "name",
"links": {
diff --git a/erpnext/templates/includes/healthcare/appointment_row_template.html b/erpnext/templates/includes/healthcare/appointment_row_template.html
index 53be5e6..b369c2a 100644
--- a/erpnext/templates/includes/healthcare/appointment_row_template.html
+++ b/erpnext/templates/includes/healthcare/appointment_row_template.html
@@ -7,7 +7,7 @@
</span>
</div>
<div class="col-xs-3">
- {{ doc.physician }}
+ {{ doc.practitioner }}
</div>
<div class="col-xs-2">
{% if doc.department %}{{ doc.department }}{% endif %}
diff --git a/erpnext/templates/includes/healthcare/lab_test_row_template.html b/erpnext/templates/includes/healthcare/lab_test_row_template.html
index d6c9b54..b67f2bd 100644
--- a/erpnext/templates/includes/healthcare/lab_test_row_template.html
+++ b/erpnext/templates/includes/healthcare/lab_test_row_template.html
@@ -10,7 +10,7 @@
{{ doc.test_name }}
</div>
<div class="col-xs-3">
- {{ doc.physician }}
+ {{ doc.practitioner }}
</div>
<div class="col-xs-3 text-right small text-muted">
{{ frappe.format_date(doc.result_date) }}
diff --git a/erpnext/templates/includes/healthcare/prescription_row_template.html b/erpnext/templates/includes/healthcare/prescription_row_template.html
index 13ce3bc..22ef6e4 100644
--- a/erpnext/templates/includes/healthcare/prescription_row_template.html
+++ b/erpnext/templates/includes/healthcare/prescription_row_template.html
@@ -5,10 +5,10 @@
{{ doc.name }}
</div>
<div class="col-xs-4">
- {{ doc.physician }}
+ {{ doc.practitioner }}
</div>
<div class="col-xs-4 text-right small text-muted">
- {{ frappe.format_date(doc.consultation_date) }}
+ {{ frappe.format_date(doc.encounter_date) }}
</div>
</div>
</a>