refactor: Patient master
diff --git a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json
index 3bde187..6e3fdee 100644
--- a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json
+++ b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json
@@ -7,7 +7,7 @@
"engine": "InnoDB",
"field_order": [
"sb_op_settings",
- "patient_master_name",
+ "patient_name_by",
"link_customer_to_patient",
"default_medical_code_standard",
"column_break_9",
@@ -53,12 +53,6 @@
"label": "Out Patient Settings"
},
{
- "fieldname": "patient_master_name",
- "fieldtype": "Select",
- "label": "Patient Name By",
- "options": "Patient Name\nNaming Series"
- },
- {
"fieldname": "default_medical_code_standard",
"fieldtype": "Link",
"label": "Default Medical Code Standard",
@@ -291,11 +285,17 @@
"fieldname": "create_sample_collection_for_lab_test",
"fieldtype": "Check",
"label": "Create Sample Collection document for Lab Test"
+ },
+ {
+ "fieldname": "patient_name_by",
+ "fieldtype": "Select",
+ "label": "Patient Name By",
+ "options": "Patient Name\nNaming Series"
}
],
"issingle": 1,
"links": [],
- "modified": "2020-01-29 10:49:00.758580",
+ "modified": "2020-01-29 14:31:56.983534",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Healthcare Settings",
diff --git a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
index a36bed6..c26ab0c 100644
--- a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
+++ b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
@@ -11,7 +11,7 @@
class HealthcareSettings(Document):
def validate(self):
- for key in ['collect_registration_fee', 'link_customer_to_patient', 'patient_master_name',
+ for key in ['collect_registration_fee', 'link_customer_to_patient', 'patient_name_by',
'lab_test_approval_required', 'create_sample_collection_for_lab_test', 'default_medical_code_standard']:
frappe.db.set_default(key, self.get(key, ""))
@@ -46,12 +46,12 @@
return sms_text
def send_registration_sms(doc):
- if frappe.db.get_value('Healthcare Settings', None, 'reg_sms'):
+ if frappe.db.get_single_value('Healthcare Settings', 'reg_sms'):
if doc.mobile:
context = {'doc': doc, 'alert': doc, 'comments': None}
if doc.get('_comments'):
context['comments'] = json.loads(doc.get('_comments'))
- messages = frappe.db.get_value('Healthcare Settings', None, 'reg_msg')
+ messages = frappe.db.get_single_value('Healthcare Settings', 'reg_msg')
messages = frappe.render_template(messages, context)
number = [doc.mobile]
send_sms(number,messages)
diff --git a/erpnext/healthcare/doctype/patient/patient.js b/erpnext/healthcare/doctype/patient/patient.js
index 9984b0a..d5df956 100644
--- a/erpnext/healthcare/doctype/patient/patient.js
+++ b/erpnext/healthcare/doctype/patient/patient.js
@@ -3,128 +3,77 @@
frappe.ui.form.on('Patient', {
refresh: function (frm) {
- frm.set_query("patient", "patient_relation", function () {
+ frm.set_query('patient', 'patient_relation', function () {
return {
filters: [
- ["Patient", "name", "!=", frm.doc.name]
+ ['Patient', 'name', '!=', frm.doc.name]
]
};
});
- if (frappe.defaults.get_default("patient_master_name") != "Naming Series") {
- frm.toggle_display("naming_series", false);
+
+ if (frappe.defaults.get_default('patient_name_by') != 'Naming Series') {
+ frm.toggle_display('naming_series', false);
} else {
erpnext.toggle_naming_series();
}
- if (frappe.defaults.get_default("collect_registration_fee") && frm.doc.status == 'Disabled') {
+
+ if (frappe.defaults.get_default('collect_registration_fee') && frm.doc.status == 'Disabled') {
frm.add_custom_button(__('Invoice Patient Registration'), function () {
- btn_invoice_registration(frm);
+ invoice_registration(frm);
});
}
- if (frm.doc.patient_name && frappe.user.has_role("Physician")) {
- frm.add_custom_button(__('Patient History'), function () {
- frappe.route_options = { "patient": frm.doc.name };
- frappe.set_route("patient_history");
- },"View");
+
+ if (frm.doc.patient_name && frappe.user.has_role('Physician')) {
+ frm.add_custom_button(__('Patient History'), function() {
+ frappe.route_options = {'patient': frm.doc.name};
+ frappe.set_route('patient_history');
+ },'View');
}
- if (!frm.doc.__islocal && (frappe.user.has_role("Nursing User") || frappe.user.has_role("Physician"))) {
+
+ if (!frm.doc.__islocal && (frappe.user.has_role('Nursing User') || frappe.user.has_role('Physician'))) {
frm.add_custom_button(__('Vital Signs'), function () {
- btn_create_vital_signs(frm);
- }, "Create");
+ create_vital_signs(frm);
+ }, 'Create');
frm.add_custom_button(__('Medical Record'), function () {
create_medical_record(frm);
- }, "Create");
+ }, 'Create');
frm.add_custom_button(__('Patient Encounter'), function () {
- btn_create_encounter(frm);
- }, "Create");
+ create_encounter(frm);
+ }, 'Create');
}
},
onload: function (frm) {
if(!frm.doc.dob){
- $(frm.fields_dict['age_html'].wrapper).html("");
+ $(frm.fields_dict['age_html'].wrapper).html('');
}
if(frm.doc.dob){
- $(frm.fields_dict['age_html'].wrapper).html("AGE : " + get_age(frm.doc.dob));
+ $(frm.fields_dict['age_html'].wrapper).html('AGE : ' + get_age(frm.doc.dob));
}
}
});
-frappe.ui.form.on("Patient", "dob", function(frm) {
- if(frm.doc.dob) {
- var today = new Date();
- var birthDate = new Date(frm.doc.dob);
- if(today < birthDate){
- frappe.msgprint(__("Please select a valid Date"));
- frappe.model.set_value(frm.doctype,frm.docname, "dob", "");
+frappe.ui.form.on('Patient', 'dob', function(frm) {
+ if (frm.doc.dob) {
+ let today = new Date();
+ let birthDate = new Date(frm.doc.dob);
+ if (today < birthDate){
+ frappe.msgprint(__('Please select a valid Date'));
+ frappe.model.set_value(frm.doctype,frm.docname, 'dob', '');
}
- else{
- var age_str = get_age(frm.doc.dob);
- $(frm.fields_dict['age_html'].wrapper).html("AGE : " + age_str);
+ else {
+ let age_str = get_age(frm.doc.dob);
+ $(frm.fields_dict['age_html'].wrapper).html('AGE : ' + age_str);
}
}
else {
- $(frm.fields_dict['age_html'].wrapper).html("");
+ $(frm.fields_dict['age_html'].wrapper).html('');
}
});
-var create_medical_record = function (frm) {
- frappe.route_options = {
- "patient": frm.doc.name,
- "status": "Open",
- "reference_doctype": "Patient Medical Record",
- "reference_owner": frm.doc.owner
- };
- frappe.new_doc("Patient Medical Record");
-};
-
-var get_age = function (birth) {
- var ageMS = Date.parse(Date()) - Date.parse(birth);
- var age = new Date();
- age.setTime(ageMS);
- var years = age.getFullYear() - 1970;
- return years + " Year(s) " + age.getMonth() + " Month(s) " + age.getDate() + " Day(s)";
-};
-
-var btn_create_vital_signs = function (frm) {
- if (!frm.doc.name) {
- frappe.throw(__("Please save the patient first"));
- }
- frappe.route_options = {
- "patient": frm.doc.name,
- };
- frappe.new_doc("Vital Signs");
-};
-
-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("Patient Encounter");
-};
-
-var btn_invoice_registration = function (frm) {
- frappe.call({
- doc: frm.doc,
- method: "invoice_patient_registration",
- callback: function(data){
- if(!data.exc){
- if(data.message.invoice){
- /* frappe.show_alert(__('Sales Invoice {0} created',
- ['<a href="#Form/Sales Invoice/'+data.message.invoice+'">' + data.message.invoice+ '</a>'])); */
- frappe.set_route("Form", "Sales Invoice", data.message.invoice);
- }
- cur_frm.reload_doc();
- }
- }
- });
-};
-
frappe.ui.form.on('Patient Relation', {
patient_relation_add: function(frm){
frm.fields_dict['patient_relation'].grid.get_field('patient').get_query = function(doc){
- var patient_list = [];
+ let patient_list = [];
if(!doc.__islocal) patient_list.push(doc.name);
$.each(doc.patient_relation, function(idx, val){
if (val.patient) patient_list.push(val.patient);
@@ -133,3 +82,56 @@
};
}
});
+
+let create_medical_record = function (frm) {
+ frappe.route_options = {
+ 'patient': frm.doc.name,
+ 'status': 'Open',
+ 'reference_doctype': 'Patient Medical Record',
+ 'reference_owner': frm.doc.owner
+ };
+ frappe.new_doc('Patient Medical Record');
+};
+
+let get_age = function (birth) {
+ let ageMS = Date.parse(Date()) - Date.parse(birth);
+ let age = new Date();
+ age.setTime(ageMS);
+ let years = age.getFullYear() - 1970;
+ return years + ' Year(s) ' + age.getMonth() + ' Month(s) ' + age.getDate() + ' Day(s)';
+};
+
+let create_vital_signs = function (frm) {
+ if (!frm.doc.name) {
+ frappe.throw(__('Please save the patient first'));
+ }
+ frappe.route_options = {
+ 'patient': frm.doc.name,
+ };
+ frappe.new_doc('Vital Signs');
+};
+
+let 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('Patient Encounter');
+};
+
+let invoice_registration = function (frm) {
+ frappe.call({
+ doc: frm.doc,
+ method: 'invoice_patient_registration',
+ callback: function(data) {
+ if (!data.exc) {
+ if (data.message.invoice) {
+ frappe.set_route('Form', 'Sales Invoice', data.message.invoice);
+ }
+ cur_frm.reload_doc();
+ }
+ }
+ });
+};
diff --git a/erpnext/healthcare/doctype/patient/patient.json b/erpnext/healthcare/doctype/patient/patient.json
index 7f97e17..e866f09 100644
--- a/erpnext/healthcare/doctype/patient/patient.json
+++ b/erpnext/healthcare/doctype/patient/patient.json
@@ -12,9 +12,10 @@
"engine": "InnoDB",
"field_order": [
"basic_info",
- "inpatient_status",
- "inpatient_record",
"naming_series",
+ "first_name",
+ "middle_name",
+ "last_name",
"patient_name",
"sex",
"blood_group",
@@ -23,11 +24,17 @@
"image",
"column_break_14",
"status",
+ "inpatient_status",
+ "inpatient_record",
"customer",
- "report_preference",
"mobile",
"email",
"phone",
+ "report_preference",
+ "personal_and_social_history",
+ "occupation",
+ "column_break_25",
+ "marital_status",
"sb_relation",
"patient_relation",
"allergy_medical_and_surgical_history",
@@ -36,10 +43,6 @@
"column_break_20",
"medical_history",
"surgical_history",
- "personal_and_social_history",
- "occupation",
- "column_break_25",
- "marital_status",
"risk_factors",
"tobacco_past_use",
"tobacco_current_use",
@@ -87,12 +90,11 @@
"bold": 1,
"fieldname": "patient_name",
"fieldtype": "Data",
- "in_filter": 1,
+ "in_global_search": 1,
+ "in_list_view": 1,
"in_standard_filter": 1,
"label": "Full Name",
- "no_copy": 1,
- "oldfieldtype": "Data",
- "reqd": 1,
+ "read_only": 1,
"search_index": 1
},
{
@@ -149,6 +151,7 @@
"fieldtype": "Column Break"
},
{
+ "description": "If \"Link Customer to Patient\" is checked in Healthcare Settings and an existing Customer is not selected then, a Customer will be created for this Patient for recording transactions in Accounts module.",
"fieldname": "customer",
"fieldtype": "Link",
"ignore_user_permissions": 1,
@@ -263,27 +266,31 @@
},
{
"fieldname": "tobacco_past_use",
- "fieldtype": "Data",
+ "fieldtype": "Select",
"ignore_xss_filter": 1,
- "label": "Tobacco Past Use"
+ "label": "Tobacco Consumption (Past)",
+ "options": "\nYes\nNo"
},
{
"fieldname": "tobacco_current_use",
- "fieldtype": "Data",
+ "fieldtype": "Select",
"ignore_xss_filter": 1,
- "label": "Tobacco Current Use"
+ "label": "Tobacco Consumption (Present)",
+ "options": "\nYes\nNo"
},
{
"fieldname": "alcohol_past_use",
- "fieldtype": "Data",
+ "fieldtype": "Select",
"ignore_xss_filter": 1,
- "label": "Alcohol Past Use"
+ "label": "Alcohol Consumption (Past)",
+ "options": "\nYes\nNo"
},
{
"fieldname": "alcohol_current_use",
- "fieldtype": "Data",
+ "fieldtype": "Select",
"ignore_user_permissions": 1,
- "label": "Alcohol Current Use"
+ "label": "Alcohol Consumption (Present)",
+ "options": "\nYes\nNo"
},
{
"fieldname": "column_break_32",
@@ -331,13 +338,31 @@
"label": "Default Currency",
"options": "Currency",
"print_hide": 1
+ },
+ {
+ "fieldname": "last_name",
+ "fieldtype": "Data",
+ "label": "Last Name",
+ "reqd": 1
+ },
+ {
+ "fieldname": "first_name",
+ "fieldtype": "Data",
+ "label": "First Name",
+ "oldfieldtype": "Data",
+ "reqd": 1
+ },
+ {
+ "fieldname": "middle_name",
+ "fieldtype": "Data",
+ "label": "Middle Name (optional)"
}
],
"icon": "fa fa-user",
"image_field": "image",
"links": [],
"max_attachments": 50,
- "modified": "2020-01-29 11:22:40.698125",
+ "modified": "2020-01-29 13:56:10.174897",
"modified_by": "Administrator",
"module": "Healthcare",
"name": "Patient",
diff --git a/erpnext/healthcare/doctype/patient/patient.py b/erpnext/healthcare/doctype/patient/patient.py
index f3fcfb5..e957a3f 100644
--- a/erpnext/healthcare/doctype/patient/patient.py
+++ b/erpnext/healthcare/doctype/patient/patient.py
@@ -9,43 +9,49 @@
from frappe.utils import cint, cstr, getdate, flt
import dateutil
from frappe.model.naming import set_name_by_naming_series
-from erpnext.healthcare.doctype.healthcare_settings.healthcare_settings import get_receivable_account,get_income_account,send_registration_sms
+from erpnext.healthcare.doctype.healthcare_settings.healthcare_settings import get_receivable_account, get_income_account, send_registration_sms
class Patient(Document):
+ def validate(self):
+ self.set_full_name()
+ self.add_as_website_user()
+
def after_insert(self):
- if(frappe.db.get_value("Healthcare Settings", None, "link_customer_to_patient") == '1' and not self.customer):
+ if frappe.db.get_value('Healthcare Settings', None, 'link_customer_to_patient') and not self.customer:
create_customer(self)
if frappe.db.get_single_value('Healthcare Settings', 'collect_registration_fee'):
frappe.db.set_value('Patient', self.name, 'status', 'Disabled')
else:
send_registration_sms(self)
+ self.add_as_website_user()
self.reload()
- def on_update(self):
- self.add_as_website_user()
+ def set_full_name(self):
+ self.patient_name = ' '.join(filter(None, [self.first_name, self.last_name]))
def add_as_website_user(self):
- if(self.email):
- if not frappe.db.exists ("User", self.email):
+ if self.email:
+ if not frappe.db.exists ('User', self.email):
user = frappe.get_doc({
- "doctype": "User",
- "first_name": self.patient_name,
- "email": self.email,
- "user_type": "Website User"
+ 'doctype': 'User',
+ 'first_name': self.first_name,
+ 'last_name': self.last_name,
+ 'email': self.email,
+ 'user_type': 'Website User'
})
user.flags.ignore_permissions = True
- user.add_roles("Patient")
+ user.add_roles('Patient')
def autoname(self):
- patient_master_name = frappe.defaults.get_global_default('patient_master_name')
- if patient_master_name == 'Patient Name':
+ patient_name_by = frappe.db.get_single_value('Healthcare Settings', 'patient_name_by')
+ if patient_name_by == 'Patient Name':
self.name = self.get_patient_name()
else:
set_name_by_naming_series(self)
def get_patient_name(self):
name = self.patient_name
- if frappe.db.get_value("Patient", name):
+ if frappe.db.get_value('Patient', name):
count = frappe.db.sql("""select ifnull(MAX(CAST(SUBSTRING_INDEX(name, ' ', -1) AS UNSIGNED)), 0) from tabPatient
where name like %s""", "%{0} - %".format(name), as_list=1)[0][0]
count = cint(count) + 1
@@ -54,56 +60,59 @@
return name
def get_age(self):
- age_str = ""
+ age_str = ''
if self.dob:
- born = getdate(self.dob)
- age = dateutil.relativedelta.relativedelta(getdate(), born)
- age_str = str(age.years) + " year(s) " + str(age.months) + " month(s) " + str(age.days) + " day(s)"
+ dob = getdate(self.dob)
+ age = dateutil.relativedelta.relativedelta(getdate(), dob)
+ age_str = str(age.years) + ' year(s) ' + str(age.months) + ' month(s) ' + str(age.days) + ' day(s)'
return age_str
def invoice_patient_registration(self):
- frappe.db.set_value("Patient", self.name, "status", "Active")
- send_registration_sms(self)
- if(flt(frappe.get_value("Healthcare Settings", None, "registration_fee"))>0):
+ if frappe.db.get_single_value('Healthcare Settings', 'registration_fee'):
company = frappe.defaults.get_user_default('company')
if not company:
- company = frappe.db.get_value("Global Defaults", None, "default_company")
+ company = frappe.db.get_single_value('Global Defaults', 'default_company')
+
sales_invoice = make_invoice(self.name, company)
sales_invoice.save(ignore_permissions=True)
+ frappe.db.set_value('Patient', self.name, 'status', 'Active')
+ send_registration_sms(self)
+
return {'invoice': sales_invoice.name}
def create_customer(doc):
- customer_group = frappe.get_value("Selling Settings", None, "customer_group")
- territory = frappe.get_value("Selling Settings", None, "territory")
+ customer_group = frappe.db.get_single_value('Selling Settings', 'customer_group')
+ territory = frappe.db.get_single_value('Selling Settings', 'territory')
if not (customer_group and territory):
- customer_group = "Commercial"
- 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.patient_name,
- "customer_group": customer_group,
- "territory" : territory,
- "customer_type": "Individual"
+ customer_group = 'All Customer Groups'
+ territory = 'All Territories'
+ frappe.msgprint(_('Please set default customer group and territory in Selling Settings'), alert=True)
+ customer = frappe.get_doc({
+ 'doctype': 'Customer',
+ 'customer_name': doc.patient_name,
+ 'customer_group': customer_group,
+ 'territory' : territory,
+ 'customer_type': 'Individual'
}).insert(ignore_permissions=True)
- frappe.db.set_value("Patient", doc.name, "customer", customer.name)
- frappe.msgprint(_("Customer {0} is created.").format(customer.name), alert=True)
+ frappe.db.set_value('Patient', doc.name, 'customer', customer.name)
+ frappe.msgprint(_('Customer {0} is created.').format(customer.name), alert=True)
def make_invoice(patient, company):
- sales_invoice = frappe.new_doc("Sales Invoice")
- sales_invoice.customer = frappe.get_value("Patient", patient, "customer")
+ sales_invoice = frappe.new_doc('Sales Invoice')
+ sales_invoice.customer = frappe.get_value('Patient', patient, 'customer')
sales_invoice.due_date = getdate()
sales_invoice.company = company
- sales_invoice.is_pos = '0'
+ sales_invoice.is_pos = 0
sales_invoice.debit_to = get_receivable_account(company)
- item_line = sales_invoice.append("items")
- item_line.item_name = "Registeration Fee"
- item_line.description = "Registeration Fee"
+ item_line = sales_invoice.append('items')
+ item_line.item_name = 'Registeration Fee'
+ item_line.description = 'Registeration Fee'
item_line.qty = 1
- item_line.uom = "Nos"
+ item_line.uom = 'Nos'
item_line.conversion_factor = 1
item_line.income_account = get_income_account(None, company)
- item_line.rate = frappe.get_value("Healthcare Settings", None, "registration_fee")
+ item_line.rate = frappe.db.get_single_value('Healthcare Settings', 'registration_fee')
item_line.amount = item_line.rate
sales_invoice.set_missing_values()
return sales_invoice
@@ -112,7 +121,7 @@
def get_patient_detail(patient):
patient_dict = frappe.db.sql("""select * from tabPatient where name=%s""", (patient), as_dict=1)
if not patient_dict:
- frappe.throw(_("Patient not found"))
+ frappe.throw(_('Patient not found'))
vital_sign = frappe.db.sql("""select * from `tabVital Signs` where patient=%s
order by signs_date desc limit 1""", (patient), as_dict=1)
diff --git a/erpnext/healthcare/doctype/patient_relation/patient_relation.json b/erpnext/healthcare/doctype/patient_relation/patient_relation.json
index 209a374..376f7f7 100644
--- a/erpnext/healthcare/doctype/patient_relation/patient_relation.json
+++ b/erpnext/healthcare/doctype/patient_relation/patient_relation.json
@@ -1,134 +1,52 @@
{
- "allow_copy": 1,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 0,
- "beta": 1,
- "creation": "2017-04-26 15:40:11.561855",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
+ "actions": [],
+ "allow_copy": 1,
+ "beta": 1,
+ "creation": "2017-04-26 15:40:11.561855",
+ "doctype": "DocType",
+ "editable_grid": 1,
+ "engine": "InnoDB",
+ "field_order": [
+ "patient",
+ "relation",
+ "description"
+ ],
"fields": [
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "relation",
- "fieldtype": "Select",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Relation",
- "length": 0,
- "no_copy": 0,
- "options": "\nFather\nMother\nSpouse\nSiblings\nFamily",
- "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": 1,
- "set_only_once": 0,
- "unique": 0
- },
+ "fieldname": "relation",
+ "fieldtype": "Select",
+ "in_list_view": 1,
+ "label": "Relation",
+ "options": "\nFather\nMother\nSpouse\nSiblings\nFamily\nOther",
+ "search_index": 1
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "patient",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Patient",
- "length": 0,
- "no_copy": 0,
- "options": "Patient",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
+ "fieldname": "patient",
+ "fieldtype": "Link",
+ "ignore_user_permissions": 1,
+ "in_list_view": 1,
+ "label": "Patient",
+ "options": "Patient",
+ "reqd": 1
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "description",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 1,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Description",
- "length": 0,
- "no_copy": 0,
- "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,
- "unique": 0
+ "fieldname": "description",
+ "fieldtype": "Small Text",
+ "ignore_xss_filter": 1,
+ "label": "Description"
}
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "idx": 0,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 0,
- "issingle": 0,
- "istable": 1,
- "max_attachments": 0,
- "modified": "2017-10-04 16:12:45.485333",
- "modified_by": "Administrator",
- "module": "Healthcare",
- "name": "Patient Relation",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [],
- "quick_entry": 1,
- "read_only": 0,
- "read_only_onload": 0,
- "restrict_to_domain": "Healthcare",
- "show_name_in_global_search": 0,
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1,
- "track_seen": 0
+ ],
+ "istable": 1,
+ "links": [],
+ "modified": "2020-01-29 12:45:40.081899",
+ "modified_by": "Administrator",
+ "module": "Healthcare",
+ "name": "Patient Relation",
+ "owner": "Administrator",
+ "permissions": [],
+ "quick_entry": 1,
+ "restrict_to_domain": "Healthcare",
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "track_changes": 1
}
\ No newline at end of file