Merge branch 'healthcare-charts-and-onboarding' of https://github.com/ruchamahabal/erpnext into ruchamahabal-healthcare-charts-and-onboarding
This commit is contained in:
commit
4db4464123
@ -0,0 +1,14 @@
|
||||
frappe.provide('frappe.dashboards.chart_sources');
|
||||
|
||||
frappe.dashboards.chart_sources["Department wise Patient Appointments"] = {
|
||||
method: "erpnext.healthcare.dashboard_chart_source.department_wise_patient_appointments.department_wise_patient_appointments.get",
|
||||
filters: [
|
||||
{
|
||||
fieldname: "company",
|
||||
label: __("Company"),
|
||||
fieldtype: "Link",
|
||||
options: "Company",
|
||||
default: frappe.defaults.get_user_default("Company")
|
||||
}
|
||||
]
|
||||
};
|
@ -0,0 +1,13 @@
|
||||
{
|
||||
"creation": "2020-05-18 19:18:42.571045",
|
||||
"docstatus": 0,
|
||||
"doctype": "Dashboard Chart Source",
|
||||
"idx": 0,
|
||||
"modified": "2020-05-18 19:18:42.571045",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Healthcare",
|
||||
"name": "Department wise Patient Appointments",
|
||||
"owner": "Administrator",
|
||||
"source_name": "Department wise Patient Appointments",
|
||||
"timeseries": 0
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe.utils.dashboard import cache_source
|
||||
|
||||
@frappe.whitelist()
|
||||
@cache_source
|
||||
def get(chart_name = None, chart = None, no_cache = None, filters = None, from_date = None,
|
||||
to_date = None, timespan = None, time_interval = None, heatmap_year = None):
|
||||
if chart_name:
|
||||
chart = frappe.get_doc('Dashboard Chart', chart_name)
|
||||
else:
|
||||
chart = frappe._dict(frappe.parse_json(chart))
|
||||
|
||||
filters = frappe.parse_json(filters)
|
||||
|
||||
data = frappe.db.get_list('Medical Department', fields=['name'])
|
||||
if not filters:
|
||||
filters = {}
|
||||
|
||||
status = ['Open', 'Scheduled', 'Closed', 'Cancelled']
|
||||
for department in data:
|
||||
filters['department'] = department.name
|
||||
department['total_appointments'] = frappe.db.count('Patient Appointment', filters=filters)
|
||||
|
||||
for entry in status:
|
||||
filters['status'] = entry
|
||||
department[frappe.scrub(entry)] = frappe.db.count('Patient Appointment', filters=filters)
|
||||
filters.pop('status')
|
||||
|
||||
sorted_department_map = sorted(data, key = lambda i: i['total_appointments'], reverse=True)
|
||||
|
||||
if len(sorted_department_map) > 10:
|
||||
sorted_department_map = sorted_department_map[:10]
|
||||
|
||||
labels = []
|
||||
open_appointments = []
|
||||
scheduled = []
|
||||
closed = []
|
||||
cancelled = []
|
||||
|
||||
for department in sorted_department_map:
|
||||
labels.append(department.name)
|
||||
open_appointments.append(department.open)
|
||||
scheduled.append(department.scheduled)
|
||||
closed.append(department.closed)
|
||||
cancelled.append(department.cancelled)
|
||||
|
||||
return {
|
||||
'labels': labels,
|
||||
'datasets': [
|
||||
{
|
||||
'name': 'Open',
|
||||
'values': open_appointments
|
||||
},
|
||||
{
|
||||
'name': 'Scheduled',
|
||||
'values': scheduled
|
||||
},
|
||||
{
|
||||
'name': 'Closed',
|
||||
'values': closed
|
||||
},
|
||||
{
|
||||
'name': 'Cancelled',
|
||||
'values': cancelled
|
||||
}
|
||||
],
|
||||
'type': 'bar'
|
||||
}
|
@ -9,18 +9,43 @@ def get_data():
|
||||
return frappe._dict({
|
||||
"dashboards": get_dashboards(),
|
||||
"charts": get_charts(),
|
||||
"number_cards": get_number_cards(),
|
||||
})
|
||||
|
||||
def get_company():
|
||||
company = frappe.defaults.get_defaults().company
|
||||
if company:
|
||||
return company
|
||||
else:
|
||||
company = frappe.get_list("Company", limit=1)
|
||||
if company:
|
||||
return company.name
|
||||
return None
|
||||
|
||||
def get_dashboards():
|
||||
return [{
|
||||
"name": "Healthcare",
|
||||
"dashboard_name": "Healthcare",
|
||||
"charts": [
|
||||
{ "chart": "Patient Appointments" }
|
||||
{ "chart": "Patient Appointments", "width": "Full"},
|
||||
{ "chart": "In-Patient Status", "width": "Half"},
|
||||
{ "chart": "Clinical Procedures Status", "width": "Half"},
|
||||
{ "chart": "Lab Tests", "width": "Half"},
|
||||
{ "chart": "Clinical Procedures", "width": "Half"},
|
||||
{ "chart": "Symptoms", "width": "Half"},
|
||||
{ "chart": "Diagnoses", "width": "Half"},
|
||||
{ "chart": "Department wise Patient Appointments", "width": "Full"}
|
||||
],
|
||||
"cards": [
|
||||
{ "card": "Total Patients" },
|
||||
{ "card": "Total Patient Admitted" },
|
||||
{ "card": "Open Appointments" },
|
||||
{ "card": "Appointments to Bill" }
|
||||
]
|
||||
}]
|
||||
|
||||
def get_charts():
|
||||
company = get_company()
|
||||
return [
|
||||
{
|
||||
"doctype": "Dashboard Chart",
|
||||
@ -28,8 +53,10 @@ def get_charts():
|
||||
"name": "Patient Appointments",
|
||||
"chart_name": "Patient Appointments",
|
||||
"timespan": "Last Month",
|
||||
"color": "#77ecca",
|
||||
"filters_json": json.dumps({}),
|
||||
"filters_json": json.dumps([
|
||||
["Patient Appointment", "company", "=", company, False],
|
||||
["Patient Appointment", "status", "!=", "Cancelled"]
|
||||
]),
|
||||
"chart_type": "Count",
|
||||
"timeseries": 1,
|
||||
"based_on": "appointment_datetime",
|
||||
@ -37,5 +64,182 @@ def get_charts():
|
||||
"document_type": "Patient Appointment",
|
||||
"type": "Line",
|
||||
"width": "Half"
|
||||
},
|
||||
{
|
||||
"doctype": "Dashboard Chart",
|
||||
"name": "Department wise Patient Appointments",
|
||||
"chart_name": "Department wise Patient Appointments",
|
||||
"chart_type": "Custom",
|
||||
"source": "Department wise Patient Appointments",
|
||||
"filters_json": json.dumps({}),
|
||||
'is_public': 1,
|
||||
"owner": "Administrator",
|
||||
"type": "Bar",
|
||||
"width": "Full",
|
||||
"custom_options": json.dumps({
|
||||
"colors": ["#7CD5FA", "#5F62F6", "#7544E2", "#EE5555"],
|
||||
"barOptions":{
|
||||
"stacked":1
|
||||
},
|
||||
"height": 300
|
||||
})
|
||||
},
|
||||
{
|
||||
"doctype": "Dashboard Chart",
|
||||
"name": "Lab Tests",
|
||||
"chart_name": "Lab Tests",
|
||||
"chart_type": "Group By",
|
||||
"document_type": "Lab Test",
|
||||
"group_by_type": "Count",
|
||||
"group_by_based_on": "template",
|
||||
"filters_json": json.dumps([
|
||||
["Lab Test", "company", "=", company, False],
|
||||
["Lab Test", "docstatus", "=", 1]
|
||||
]),
|
||||
'is_public': 1,
|
||||
"owner": "Administrator",
|
||||
"type": "Percentage",
|
||||
"width": "Half",
|
||||
},
|
||||
{
|
||||
"doctype": "Dashboard Chart",
|
||||
"name": "Clinical Procedures",
|
||||
"chart_name": "Clinical Procedures",
|
||||
"chart_type": "Group By",
|
||||
"document_type": "Clinical Procedure",
|
||||
"group_by_type": "Count",
|
||||
"group_by_based_on": "procedure_template",
|
||||
"filters_json": json.dumps([
|
||||
["Clinical Procedure", "company", "=", company, False],
|
||||
["Clinical Procedure", "docstatus", "=", 1]
|
||||
]),
|
||||
'is_public': 1,
|
||||
"owner": "Administrator",
|
||||
"type": "Percentage",
|
||||
"width": "Half",
|
||||
},
|
||||
{
|
||||
"doctype": "Dashboard Chart",
|
||||
"name": "In-Patient Status",
|
||||
"chart_name": "In-Patient Status",
|
||||
"chart_type": "Group By",
|
||||
"document_type": "Inpatient Record",
|
||||
"group_by_type": "Count",
|
||||
"group_by_based_on": "status",
|
||||
"filters_json": json.dumps([
|
||||
["Inpatient Record", "company", "=", company, False]
|
||||
]),
|
||||
'is_public': 1,
|
||||
"owner": "Administrator",
|
||||
"type": "Bar",
|
||||
"width": "Half",
|
||||
},
|
||||
{
|
||||
"doctype": "Dashboard Chart",
|
||||
"name": "Clinical Procedures Status",
|
||||
"chart_name": "Clinical Procedure Status",
|
||||
"chart_type": "Group By",
|
||||
"document_type": "Clinical Procedure",
|
||||
"group_by_type": "Count",
|
||||
"group_by_based_on": "status",
|
||||
"filters_json": json.dumps([
|
||||
["Clinical Procedure", "company", "=", company, False],
|
||||
["Clinical Procedure", "docstatus", "=", 1]
|
||||
]),
|
||||
'is_public': 1,
|
||||
"owner": "Administrator",
|
||||
"type": "Pie",
|
||||
"width": "Half",
|
||||
},
|
||||
{
|
||||
"doctype": "Dashboard Chart",
|
||||
"name": "Symptoms",
|
||||
"chart_name": "Symptoms",
|
||||
"chart_type": "Group By",
|
||||
"document_type": "Patient Encounter Symptom",
|
||||
"group_by_type": "Count",
|
||||
"group_by_based_on": "complaint",
|
||||
"filters_json": json.dumps({}),
|
||||
'is_public': 1,
|
||||
"owner": "Administrator",
|
||||
"type": "Percentage",
|
||||
"width": "Half",
|
||||
},
|
||||
{
|
||||
"doctype": "Dashboard Chart",
|
||||
"name": "Diagnoses",
|
||||
"chart_name": "Diagnoses",
|
||||
"chart_type": "Group By",
|
||||
"document_type": "Patient Encounter Diagnosis",
|
||||
"group_by_type": "Count",
|
||||
"group_by_based_on": "diagnosis",
|
||||
"filters_json": json.dumps({}),
|
||||
'is_public': 1,
|
||||
"owner": "Administrator",
|
||||
"type": "Percentage",
|
||||
"width": "Half",
|
||||
}
|
||||
]
|
||||
|
||||
def get_number_cards():
|
||||
company = get_company()
|
||||
return [
|
||||
{
|
||||
"name": "Total Patients",
|
||||
"label": "Total Patients",
|
||||
"function": "Count",
|
||||
"doctype": "Number Card",
|
||||
"document_type": "Patient",
|
||||
"filters_json": json.dumps(
|
||||
[["Patient","status","=","Active",False]]
|
||||
),
|
||||
"is_public": 1,
|
||||
"owner": "Administrator",
|
||||
"show_percentage_stats": 1,
|
||||
"stats_time_interval": "Daily"
|
||||
},
|
||||
{
|
||||
"name": "Total Patients Admitted",
|
||||
"label": "Total Patients Admitted",
|
||||
"function": "Count",
|
||||
"doctype": "Number Card",
|
||||
"document_type": "Patient",
|
||||
"filters_json": json.dumps(
|
||||
[["Patient","inpatient_status","=","Admitted",False]]
|
||||
),
|
||||
"is_public": 1,
|
||||
"owner": "Administrator",
|
||||
"show_percentage_stats": 1,
|
||||
"stats_time_interval": "Daily"
|
||||
},
|
||||
{
|
||||
"name": "Open Appointments",
|
||||
"label": "Open Appointments",
|
||||
"function": "Count",
|
||||
"doctype": "Number Card",
|
||||
"document_type": "Patient Appointment",
|
||||
"filters_json": json.dumps(
|
||||
[["Patient Appointment","company","=",company,False],
|
||||
["Patient Appointment","status","=","Open",False]]
|
||||
),
|
||||
"is_public": 1,
|
||||
"owner": "Administrator",
|
||||
"show_percentage_stats": 1,
|
||||
"stats_time_interval": "Daily"
|
||||
},
|
||||
{
|
||||
"name": "Appointments to Bill",
|
||||
"label": "Appointments to Bill",
|
||||
"function": "Count",
|
||||
"doctype": "Number Card",
|
||||
"document_type": "Patient Appointment",
|
||||
"filters_json": json.dumps(
|
||||
[["Patient Appointment","company","=",company,False],
|
||||
["Patient Appointment","invoiced","=",0,False]]
|
||||
),
|
||||
"is_public": 1,
|
||||
"owner": "Administrator",
|
||||
"show_percentage_stats": 1,
|
||||
"stats_time_interval": "Daily"
|
||||
}
|
||||
]
|
@ -63,23 +63,26 @@
|
||||
"idx": 0,
|
||||
"is_standard": 1,
|
||||
"label": "Healthcare",
|
||||
"modified": "2020-04-25 22:31:36.576444",
|
||||
"modified": "2020-05-19 14:05:10.520457",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Healthcare",
|
||||
"name": "Healthcare",
|
||||
"onboarding": "Healthcare",
|
||||
"owner": "Administrator",
|
||||
"pin_to_bottom": 0,
|
||||
"pin_to_top": 0,
|
||||
"restrict_to_domain": "Healthcare",
|
||||
"shortcuts": [
|
||||
{
|
||||
"color": "#ffe8cd",
|
||||
"format": "{} Open",
|
||||
"label": "Patient Appointment",
|
||||
"link_to": "Patient Appointment",
|
||||
"stats_filter": "{\n \"status\": \"Open\"\n}",
|
||||
"stats_filter": "{\n \"status\": \"Open\",\n \"company\": [\"like\", '%' + frappe.defaults.get_global_default(\"company\") + '%']\n}",
|
||||
"type": "DocType"
|
||||
},
|
||||
{
|
||||
"color": "#ffe8cd",
|
||||
"format": "{} Active",
|
||||
"label": "Patient",
|
||||
"link_to": "Patient",
|
||||
@ -87,10 +90,11 @@
|
||||
"type": "DocType"
|
||||
},
|
||||
{
|
||||
"color": "#cef6d1",
|
||||
"format": "{} Vacant",
|
||||
"label": "Healthcare Service Unit",
|
||||
"link_to": "Healthcare Service Unit",
|
||||
"stats_filter": "{\n \"occupancy_status\": \"Vacant\",\n \"is_group\": 0\n}",
|
||||
"stats_filter": "{\n \"occupancy_status\": \"Vacant\",\n \"is_group\": 0,\n \"company\": [\"like\", \"%\" + frappe.defaults.get_global_default(\"company\") + \"%\"]\n}",
|
||||
"type": "DocType"
|
||||
},
|
||||
{
|
||||
|
@ -144,3 +144,38 @@ cur_frm.set_query('item_code', 'items', function() {
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
frappe.tour['Clinical Procedure Template'] = [
|
||||
{
|
||||
fieldname: 'template',
|
||||
title: __('Template Name'),
|
||||
description: __('Enter a name for the Clinical Procedure Template')
|
||||
},
|
||||
{
|
||||
fieldname: 'item_code',
|
||||
title: __('Item Code'),
|
||||
description: __('Set the Item Code which will be used for billing the Clinical Procedure.')
|
||||
},
|
||||
{
|
||||
fieldname: 'item_group',
|
||||
title: __('Item Group'),
|
||||
description: __('Select an Item Group for the Clinical Procedure Item.')
|
||||
},
|
||||
{
|
||||
fieldname: 'is_billable',
|
||||
title: __('Clinical Procedure Rate'),
|
||||
description: __('Check this if the Clinical Procedure is billable and also set the rate.')
|
||||
},
|
||||
{
|
||||
fieldname: 'consume_stock',
|
||||
title: __('Allow Stock Consumption'),
|
||||
description: __('Check this if the Clinical Procedure utilises consumables. Click ') + "<a href='https://docs.erpnext.com/docs/user/manual/en/healthcare/clinical_procedure_template#22-manage-procedure-consumables' target='_blank'>here</a>" + __(' to know more')
|
||||
|
||||
},
|
||||
{
|
||||
fieldname: 'medical_department',
|
||||
title: __('Medical Department'),
|
||||
description: __('You can also set the Medical Department for the template. After saving the document, an Item will automatically be created for billing this Clinical Procedure. You can then use this template while creating Clinical Procedures for Patients. Templates save you from filling up redundant data every single time. You can also create templates for other operations like Lab Tests, Therapy Sessions, etc.')
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -108,3 +108,38 @@ frappe.ui.form.on('Healthcare Practitioner', 'employee', function(frm) {
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
frappe.tour['Healthcare Practitioner'] = [
|
||||
{
|
||||
fieldname: 'employee',
|
||||
title: __('Employee'),
|
||||
description: __('If you want to track Payroll and other HRMS operations for a Practitoner, create an Employee and link it here.')
|
||||
},
|
||||
{
|
||||
fieldname: 'practitioner_schedules',
|
||||
title: __('Practitioner Schedules'),
|
||||
description: __('Set the Practitioner Schedule you just created. This will be used while booking appointments.')
|
||||
},
|
||||
{
|
||||
fieldname: 'op_consulting_charge_item',
|
||||
title: __('Out Patient Consulting Charge Item'),
|
||||
description: __('Create a service item for Out Patient Consulting.')
|
||||
},
|
||||
{
|
||||
fieldname: 'inpatient_visit_charge_item',
|
||||
title: __('Inpatient Visit Charge Item'),
|
||||
description: __('If this Healthcare Practitioner works for the In-Patient Department, create a service item for Inpatient Visits.')
|
||||
},
|
||||
{
|
||||
fieldname: 'op_consulting_charge',
|
||||
title: __('Out Patient Consulting Charge'),
|
||||
description: __('Set the Out Patient Consulting Charge for this Practitioner.')
|
||||
|
||||
},
|
||||
{
|
||||
fieldname: 'inpatient_visit_charge',
|
||||
title: __('Inpatient Visit Charge'),
|
||||
description: __('If this Healthcare Practitioner also works for the In-Patient Department, set the inpatient visit charge for this Practitioner.')
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -39,3 +39,37 @@ var set_query_service_item = function(frm, service_item_field) {
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
frappe.tour['Healthcare Settings'] = [
|
||||
{
|
||||
fieldname: 'link_customer_to_patient',
|
||||
title: __('Link Customer to Patient'),
|
||||
description: __('If checked, a customer will be created for every Patient. Patient Invoices will be created against this Customer. You can also select existing Customer while creating a Patient. This field is checked by default.')
|
||||
},
|
||||
{
|
||||
fieldname: 'collect_registration_fee',
|
||||
title: __('Collect Registration Fee'),
|
||||
description: __('If your Healthcare facility bills registrations of Patients, you can check this and set the Registration Fee in the field below. Checking this will create new Patients with a Disabled status by default and will only be enabled after invoicing the Registration Fee.')
|
||||
},
|
||||
{
|
||||
fieldname: 'automate_appointment_invoicing',
|
||||
title: __('Automate Appointment Invoicing'),
|
||||
description: __('Checking this will automatically create a Sales Invoice whenever an appointment is booked for a Patient.')
|
||||
},
|
||||
{
|
||||
fieldname: 'healthcare_service_items',
|
||||
title: __('Healthcare Service Items'),
|
||||
description: __('Set up the Healthcare Service Items for billing. Click ') + "<a href='https://docs.erpnext.com/docs/user/manual/en/healthcare/healthcare_settings#2-default-healthcare-service-items' target='_blank'>here</a>" + __(' to know more')
|
||||
},
|
||||
{
|
||||
fieldname: 'sb_in_ac',
|
||||
title: __('Set up default Accounts for the Healthcare Facility'),
|
||||
description: __('If you wish to override default accounts settings and configure the Income and Receivable accounts for Healthcare, you can do so here.')
|
||||
|
||||
},
|
||||
{
|
||||
fieldname: 'out_patient_sms_alerts',
|
||||
title: __('Out Patient SMS alerts'),
|
||||
description: __('You can set up Out Patient SMS alerts here. Click ') + "<a href='https://docs.erpnext.com/docs/user/manual/en/healthcare/healthcare_settings#4-out-patient-sms-alerts' target='_blank'>here</a>" + __(' to know more')
|
||||
}
|
||||
];
|
||||
|
@ -0,0 +1,42 @@
|
||||
{
|
||||
"allow_roles": [
|
||||
{
|
||||
"role": "Healthcare Administrator"
|
||||
}
|
||||
],
|
||||
"creation": "2020-05-19 10:32:43.025852",
|
||||
"docstatus": 0,
|
||||
"doctype": "Module Onboarding",
|
||||
"documentation_url": "https://docs.erpnext.com/docs/user/manual/en/healthcare",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"modified": "2020-05-19 12:52:09.757729",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Healthcare",
|
||||
"name": "Healthcare",
|
||||
"owner": "Administrator",
|
||||
"steps": [
|
||||
{
|
||||
"step": "Create Patient"
|
||||
},
|
||||
{
|
||||
"step": "Create Practitioner"
|
||||
},
|
||||
{
|
||||
"step": "Create Practitioner Schedule"
|
||||
},
|
||||
{
|
||||
"step": "Setup Schedule and Employee for Healthcare Practitioner"
|
||||
},
|
||||
{
|
||||
"step": "Explore Healthcare Settings"
|
||||
},
|
||||
{
|
||||
"step": "Explore Clinical Procedure Templates"
|
||||
}
|
||||
],
|
||||
"subtitle": "Patients, Practitioner Schedules, Settings and more.",
|
||||
"success_message": "Yayy! The Healthcare Module is all set up!",
|
||||
"title": "Let's Setup the Healthcare Module",
|
||||
"user_can_dismiss": 1
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"creation": "2020-05-19 10:32:27.648902",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"is_mandatory": 1,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2020-05-19 12:26:24.023418",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Create Patient",
|
||||
"owner": "Administrator",
|
||||
"reference_document": "Patient",
|
||||
"show_full_form": 1,
|
||||
"title": "Create Patient",
|
||||
"validate_action": 1
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"creation": "2020-05-19 10:39:55.728057",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"is_mandatory": 1,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2020-05-19 12:27:39.851375",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Create Practitioner",
|
||||
"owner": "Administrator",
|
||||
"reference_document": "Healthcare Practitioner",
|
||||
"show_full_form": 1,
|
||||
"title": "Create Practitioner",
|
||||
"validate_action": 1
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"creation": "2020-05-19 10:41:19.065753",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"is_mandatory": 1,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2020-05-19 12:27:09.437825",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Create Practitioner Schedule",
|
||||
"owner": "Administrator",
|
||||
"reference_document": "Practitioner Schedule",
|
||||
"show_full_form": 1,
|
||||
"title": "Create Practitioner Schedule",
|
||||
"validate_action": 1
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
{
|
||||
"action": "Show Form Tour",
|
||||
"creation": "2020-05-19 11:40:51.963741",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"is_mandatory": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2020-05-19 11:46:35.085270",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Explore Clinical Procedure Templates",
|
||||
"owner": "Administrator",
|
||||
"reference_document": "Clinical Procedure Template",
|
||||
"show_full_form": 0,
|
||||
"title": "Explore Clinical Procedure Templates",
|
||||
"validate_action": 1
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
{
|
||||
"action": "Show Form Tour",
|
||||
"creation": "2020-05-19 11:14:33.044989",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"is_mandatory": 1,
|
||||
"is_single": 1,
|
||||
"is_skipped": 0,
|
||||
"modified": "2020-05-19 12:26:48.682673",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Explore Healthcare Settings",
|
||||
"owner": "Administrator",
|
||||
"reference_document": "Healthcare Settings",
|
||||
"show_full_form": 0,
|
||||
"title": "Explore Healthcare Settings",
|
||||
"validate_action": 1
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
{
|
||||
"action": "Show Form Tour",
|
||||
"creation": "2020-05-19 10:43:56.231679",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"field": "schedule",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"is_mandatory": 1,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2020-05-19 12:26:42.492734",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Setup Schedule and Employee for Healthcare Practitioner",
|
||||
"owner": "Administrator",
|
||||
"reference_document": "Healthcare Practitioner",
|
||||
"show_full_form": 0,
|
||||
"title": "Setup Schedule and Employee for Healthcare Practitioner",
|
||||
"validate_action": 0
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user