[domain] Healthcare (#10664)

* Medical module for erpnext

* Changes in core for Medical module

* patient registration updated

* fix - appointment invioce - fields missing

* pages- indicator instead of bg-color

* Lab Test field renamed service type

* Department added Lab Test

* procedure name in prescription

* fixes sample collection

* filter disabled patient

* fix patient admission

* updated patient age

* availability check msg updated

* fixes, removed procedure from invoice

* sample print renamed

* fixes, validation

* service desk physician in filter

* refactor scheduler

* Appointment -field property - set only once = 1

* Appointment - Mark closed and pending buttons removed

* Appointment - readonly = 1 if value set

* Appointment - availabilty

* Appointment - Cancel - info - cancel invoice

* Appointment - set pending appointments

* Dosage form - new DT

* Drug Prescription - Dosage form added

* Facility - Floor - removed from Fecility

* Floor - removed

* Lab Test Template - item creation validation

* Procedure - Create Procedure

* Procedure Appointment - new DT

* Service Unit - Floor reference removed

* Zone Fcilities - Unused DT removed

* Appointment Desk - fixed

* Service Desk - method pointing from procedure changed to procedure_appointment

* Consultation print - got featured

* Consultation - removed patient refernce to procedure prescription

* Procedure Prescription - removed patient refernce

* Lab Test - Changed field properties and value

* Lab Test - field property changed

* Lab Test - methods rewrite - lab test doc creation

* Lab Test - create lab test from invoice and consultaion - got changed

* Button History changed to Medical Record

* Service Desk - Updated

* Notification - Procedure Appointment

* fix-get procedure prescription

* fix field added to test prescription

* msgprint on invoice creation

* fix data on install

* Merge branch erpnext/develop

* fixes- minor

* Setup wizard - Create Sensitivity

* Appointment - Validate and Save if there is no schedule for Physician

* Consultation - Button create vital signs and medical record

* Review Type - New DocType

* Review Detail and Treatment Plan - Childs - Consultation

* Patient Medical Record - field Attach doc

* Consultation - New Fields

* Consultation - Manage new Fields - Medical record add action

* Patient Relation - Child DocType - Patient

* Patient - Patient Relation added

* Patient - collapsible = 1

* Laboratory Settings - fields - message for lab test

* Laboratory Settings - get message for lab test

* SMS text for lab test and invoice test report

* Procedure Stock Detail - Stock detail for Procedure and Template

* Template Stage Detail - Stage detail for Procedure Template

* Procedure Stage Detail - Stage detail for Procedure

* Service Unit - field - warehouse

* Scheduler - msg - content changed

* Laboratory Settings - defualt - msg content

* Invoice Test Report - msg print

* Print Format-Changed-Consultation-Invoice Test Report-Lab Test

* OP Settings - Expnse Account for Stock Entry in Procedure

* Procedure and Procedure Template - Manage Stock Stage and Sample Collection

* Procedure Appointment - Manage Stock and Stage

* Lab Test - fixed - resource not find

* Invoice Test Report - fixed - resource not find

* Procedure - doc reload after insert

* Patient Medical Record - fixed - refernce missed

* Create Vital Signs -on client side

* Rename module Medical to Healthcare

* Remove In Patient (IP) Feature.

* Rename - Procedure to Clinical Procedure

* Remove spaces in Naming Series

* Rename Duration to Drug Prescription Duration

* Duration to Drug Prescription Duration

* Merge All Settings to Healthcare Settings

* Healthcare settings - import fixed

* Procedure related documents are removed

* Appointment Desk and Sevrvice Desk are removed

* Consultation - minimal

* Consultation - minimal

* Consultation - minimal - patient detials in collapsible section

* Message Print to Alerts

* Patient - some fields removed

* Patient - create consultation - message print to alerts

* Consultation - show patient details updated

* Setup wizard - Duration to Drug Prescritpion Duration

* Healthcare Settings - patient registration - fee collection

* Lab Test - Create Sales Invoice bug fixed

* Healthcare menu rearranged

* Healthcare Settings - Optimised and Rearragnged

* Healthcare Settings - Expense account removed

* Receivable account removed from patient

* Patient - Optimised and Rearragnged

* Removed Referring Physician

* Healthcare Settings - bold headings removed

* Physician - Patient - Fields are Segregated

* Remove Service Unit

* Remove - Service Type

* Consultation invoice

* Lab Test - invoice

* Patient - Invoice

* Rename Appointment to Patient Appointment

* wip

* Patient Dashboard, Physician Form cleanup

* Dosage renamed to Prescription Dosage

* Renamed Drug Prescription Duration to Prescription Duration

* Patient Appointment booking modal

* Patient Age - calculate by dob

* Remove - scheduler

* Consultation - Appointment to Patient Appointment

* Patient Dashboard - rearranged

* Patient Appointment

* Removed rer_physician from lab test and consultation

* Patient Appontment Changes

* Appointment and Consultation - optimized

* Patient Appointment - fee validity code optimized

* Consultation and Patient Appointment - Invoice validate two side

* fix: #13 remove relation to admission

* Healthcare - Patient Portal

* fix import error

* domain Healthcare added on install

* Removed - Invoice Test Report

* Physician Schedule - menu

* Consultation - patient details - re write

* New Doctype-Medical Code

* Consultation - Daignosis codification

* Medical Code - Codification - Settings

* Medical Code Standard - Medical Code - Codification - Settings

* fix appointment calendar

* fix appointment analytics

* Menu Medical Code Standard

* New Doctype - Medical Code Standard

* Set Physician Role insted of IP Physician and OP Physician Role

* fixed some json files

* Medical code - permission to physician

* Unused Childs - Work Schedule and User List - Removed

* Label Procedure to Lab Test

* Lab Test and Patient - code optimised

* Add Item Groups - setup wizard

* Healthcare Settings - add Role - Medical Administrator

* Healthcare - Demo setup - Make Demo

* Fee Validity - Logic Test

* Test Fee Validity - Optimised

* Healthcare Doctypes - Restricted to Domain Healthcare

* Domainify - remove Healthcare Roles - Other Domains

* Healthcare doctypes - beta checked

* Codacy fixes

* Codacy - fixes

* Codacy - fixes

* Codacy - fixes

* Codacy - fixes

* Codacy - fixes

* Lab Test - print hide =1 for some fields

* Consultation - Codification field label to Medical Coding

* Codacy fixes - import frappe and etc.

* Codacy fixes - import frappe in test_vital_signs

* Codacy fixes

* Codacy fixes

* Codacy fixes and remove delete perm for patient

* send_sms - import form frappe

* Healthcare Settings

* Lab Prescription - Consultation - Test Code - read_only = 0

* Portal fixes

* Patient Appointment - filter physician - if has schedule

* Physician - IP Charge - Removed

* test - files

* Web Form - Patient Profile - removed

* Role Medical Administrator to Healthcare Administrator

* WIP healthcare documentation

* Coday - fixes

* Travis - fixes

* Lab Test Report - menu

* Reorder Healthcare settings - group lab config to bottom

* Sample Collection - New - allow Sample and patient Selection

* Rate - similar behaviour and Label as in Item Standard Selling Rate

* Healthcare documentation

* Lab Test Samples to Lab Test sample

* Commplaints to Complaint

* Commplaints to Complaint

* Antibiotics to Antibiotic

* Appointment Token Number - remove

* View - Medical record

* Codacy fixes

* update healthcare docs

* Cleanup Docs - Search, quick entry, trsck change, etc.

* [minor] ux changes
diff --git a/erpnext/buying/doctype/supplier/supplier.py b/erpnext/buying/doctype/supplier/supplier.py
index b2b9063..c715fbd 100644
--- a/erpnext/buying/doctype/supplier/supplier.py
+++ b/erpnext/buying/doctype/supplier/supplier.py
@@ -16,7 +16,7 @@
 
 	def onload(self):
 		"""Load address and contacts in `__onload`"""
-		load_address_and_contact(self, "supplier")
+		load_address_and_contact(self)
 		self.load_dashboard_info()
 
 	def load_dashboard_info(self):
diff --git a/erpnext/config/desktop.py b/erpnext/config/desktop.py
index 029ef74..ef1ff10 100644
--- a/erpnext/config/desktop.py
+++ b/erpnext/config/desktop.py
@@ -261,5 +261,12 @@
 			"icon": "octicon octicon-mortar-board",
 			"type": "module",
 			"label": _("Schools")
+		},
+		{
+			"module_name": "Healthcare",
+			"color": "#FF888B",
+			"icon": "octicon octicon-plus",
+			"type": "module",
+			"label": _("Healthcare")
 		}
 	]
diff --git a/erpnext/config/healthcare.py b/erpnext/config/healthcare.py
new file mode 100644
index 0000000..f4bf4f7
--- /dev/null
+++ b/erpnext/config/healthcare.py
@@ -0,0 +1,157 @@
+from __future__ import unicode_literals
+from frappe import _
+
+def get_data():
+
+	return [
+		{
+			"label": _("Consultation"),
+			"icon": "icon-star",
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Patient Appointment",
+					"description": _("Patient Appointment"),
+				},
+				{
+					"type": "doctype",
+					"name": "Consultation",
+					"label": _("Consultation"),
+				},
+				{
+					"type": "doctype",
+					"name": "Vital Signs",
+					"label": _("Vital Signs"),
+					"description": _("Record Patient Vitals"),
+				},
+				{
+					"type": "page",
+					"name": "medical_record",
+					"label": _("Patient Medical Record"),
+				},
+				{
+					"type": "page",
+					"name": "appointment-analytic",
+					"label": _("Appointment Analytics"),
+				}
+			]
+		},
+		{
+			"label": _("Laboratory"),
+			"icon": "icon-list",
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Lab Test",
+					"description": _("Results"),
+				},
+				{
+					"type": "doctype",
+					"name": "Sample Collection",
+					"label": _("Sample Collection"),
+				},
+				{
+					"type": "report",
+					"name": "Lab Test Report",
+					"is_query_report": True
+				}
+			]
+		},
+		{
+			"label": _("Masters"),
+			"icon": "icon-list",
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Patient",
+					"label": _("Patient"),
+				},
+				{
+					"type": "doctype",
+					"name": "Physician",
+					"label": "Physician",
+				},
+				{
+					"type": "doctype",
+					"name": "Physician Schedule",
+					"label": _("Physician Schedule"),
+				},
+				{
+					"type": "doctype",
+					"name": "Medical Code Standard",
+					"label": _("Medical Code Standard"),
+				},
+				{
+					"type": "doctype",
+					"name": "Medical Code",
+					"label": _("Medical Code"),
+				}
+			]
+		},
+		{
+			"label": _("Setup"),
+			"icon": "icon-cog",
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Healthcare Settings",
+					"label": _("Healthcare Settings"),
+				},
+				{
+					"type": "doctype",
+					"name": "Medical Department",
+					"label": "Medical Department"
+				},
+				{
+					"type": "doctype",
+					"name": "Appointment Type",
+					"description": _("Appointment Type Master"),
+				},
+				{
+					"type": "doctype",
+					"name": "Prescription Dosage",
+					"description": _("Prescription Dosage")
+				},
+				{
+					"type": "doctype",
+					"name": "Prescription Duration",
+					"description": _("Prescription Period")
+				},
+				{
+					"type": "doctype",
+					"name": "Complaint",
+					"description": _("Complaint")
+				},
+				{
+					"type": "doctype",
+					"name": "Diagnosis",
+					"description": _("Diagnosis")
+				},
+				{
+					"type": "doctype",
+					"name": "Lab Test Sample",
+					"description": _("Test Sample Master."),
+				},
+				{
+					"type": "doctype",
+					"name": "Lab Test UOM",
+					"description": _("Lab Test UOM.")
+				},
+				{
+					"type": "doctype",
+					"name": "Antibiotic",
+					"description": _("Antibiotic.")
+				},
+				{
+					"type": "doctype",
+					"name": "Sensitivity",
+					"description": _("Sensitivity Naming.")
+				},
+				{
+					"type": "doctype",
+					"name": "Lab Test Template",
+					"description": _("Lab Test Configurations.")
+				}
+			]
+		}
+	]
diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py
index a05bacd..eb6e876 100644
--- a/erpnext/crm/doctype/lead/lead.py
+++ b/erpnext/crm/doctype/lead/lead.py
@@ -20,7 +20,7 @@
 	def onload(self):
 		customer = frappe.db.get_value("Customer", {"lead_name": self.name})
 		self.get("__onload").is_customer = customer
-		load_address_and_contact(self, "lead")
+		load_address_and_contact(self)
 
 	def validate(self):
 		self._prev = frappe._dict({
diff --git a/erpnext/demo/data/drug_list.json b/erpnext/demo/data/drug_list.json
new file mode 100644
index 0000000..51b029c
--- /dev/null
+++ b/erpnext/demo/data/drug_list.json
@@ -0,0 +1,5420 @@
+[
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Atocopherol",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Atocopherol",
+  "item_group": "Drug",
+  "item_name": "Atocopherol",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:16.577151",
+  "name": "Atocopherol",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Abacavir",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Abacavir",
+  "item_group": "Drug",
+  "item_name": "Abacavir",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:16.678257",
+  "name": "Abacavir",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Abciximab",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Abciximab",
+  "item_group": "Drug",
+  "item_name": "Abciximab",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:16.695413",
+  "name": "Abciximab",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Acacia",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Acacia",
+  "item_group": "Drug",
+  "item_name": "Acacia",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:16.797774",
+  "name": "Acacia",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Acamprosate",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Acamprosate",
+  "item_group": "Drug",
+  "item_name": "Acamprosate",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:16.826952",
+  "name": "Acamprosate",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Acarbose",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Acarbose",
+  "item_group": "Drug",
+  "item_name": "Acarbose",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:16.843890",
+  "name": "Acarbose",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Acebrofylline",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Acebrofylline",
+  "item_group": "Drug",
+  "item_name": "Acebrofylline",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:16.969984",
+  "name": "Acebrofylline",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Acebrofylline (SR)",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Acebrofylline (SR)",
+  "item_group": "Drug",
+  "item_name": "Acebrofylline (SR)",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:16.987354",
+  "name": "Acebrofylline (SR)",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Aceclofenac",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Aceclofenac",
+  "item_group": "Drug",
+  "item_name": "Aceclofenac",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.004369",
+  "name": "Aceclofenac",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Ash",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Ash",
+  "item_group": "Drug",
+  "item_name": "Ash",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.021192",
+  "name": "Ash",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Asparaginase",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Asparaginase",
+  "item_group": "Drug",
+  "item_name": "Asparaginase",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.038058",
+  "name": "Asparaginase",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Aspartame",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Aspartame",
+  "item_group": "Drug",
+  "item_name": "Aspartame",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.054463",
+  "name": "Aspartame",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Aspartic Acid",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Aspartic Acid",
+  "item_group": "Drug",
+  "item_name": "Aspartic Acid",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.071001",
+  "name": "Aspartic Acid",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Bleomycin",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Bleomycin",
+  "item_group": "Drug",
+  "item_name": "Bleomycin",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.087170",
+  "name": "Bleomycin",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Bleomycin Sulphate",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Bleomycin Sulphate",
+  "item_group": "Drug",
+  "item_name": "Bleomycin Sulphate",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.103691",
+  "name": "Bleomycin Sulphate",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Blue cap contains",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Blue cap contains",
+  "item_group": "Drug",
+  "item_name": "Blue cap contains",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.120040",
+  "name": "Blue cap contains",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Boran",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Boran",
+  "item_group": "Drug",
+  "item_name": "Boran",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.135964",
+  "name": "Boran",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Borax",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Borax",
+  "item_group": "Drug",
+  "item_name": "Borax",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.152575",
+  "name": "Borax",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlorbutanol",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlorbutanol",
+  "item_group": "Drug",
+  "item_name": "Chlorbutanol",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.168998",
+  "name": "Chlorbutanol",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlorbutol",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlorbutol",
+  "item_group": "Drug",
+  "item_name": "Chlorbutol",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.185316",
+  "name": "Chlorbutol",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlordiazepoxide",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlordiazepoxide",
+  "item_group": "Drug",
+  "item_name": "Chlordiazepoxide",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.208361",
+  "name": "Chlordiazepoxide",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlordiazepoxide and Clidinium Bromide",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlordiazepoxide and Clidinium Bromide",
+  "item_group": "Drug",
+  "item_name": "Chlordiazepoxide and Clidinium Bromide",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.224341",
+  "name": "Chlordiazepoxide and Clidinium Bromide",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlorhexidine",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlorhexidine",
+  "item_group": "Drug",
+  "item_name": "Chlorhexidine",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.240634",
+  "name": "Chlorhexidine",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlorhexidine 40%",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlorhexidine 40%",
+  "item_group": "Drug",
+  "item_name": "Chlorhexidine 40%",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.256922",
+  "name": "Chlorhexidine 40%",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlorhexidine Acetate",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlorhexidine Acetate",
+  "item_group": "Drug",
+  "item_name": "Chlorhexidine Acetate",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.274789",
+  "name": "Chlorhexidine Acetate",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlorhexidine Gluconate",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlorhexidine Gluconate",
+  "item_group": "Drug",
+  "item_name": "Chlorhexidine Gluconate",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.295371",
+  "name": "Chlorhexidine Gluconate",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlorhexidine HCL",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlorhexidine HCL",
+  "item_group": "Drug",
+  "item_name": "Chlorhexidine HCL",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.312916",
+  "name": "Chlorhexidine HCL",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chlorhexidine Hydrochloride",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chlorhexidine Hydrochloride",
+  "item_group": "Drug",
+  "item_name": "Chlorhexidine Hydrochloride",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.329570",
+  "name": "Chlorhexidine Hydrochloride",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Chloride",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Chloride",
+  "item_group": "Drug",
+  "item_name": "Chloride",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.346088",
+  "name": "Chloride",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Fosfomycin Tromethamine",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Fosfomycin Tromethamine",
+  "item_group": "Drug",
+  "item_name": "Fosfomycin Tromethamine",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.362777",
+  "name": "Fosfomycin Tromethamine",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Fosinopril",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Fosinopril",
+  "item_group": "Drug",
+  "item_name": "Fosinopril",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.379465",
+  "name": "Fosinopril",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Iodochlorhydroxyquinoline",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Iodochlorhydroxyquinoline",
+  "item_group": "Drug",
+  "item_name": "Iodochlorhydroxyquinoline",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.396068",
+  "name": "Iodochlorhydroxyquinoline",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Iodochlorohydroxyquinoline",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Iodochlorohydroxyquinoline",
+  "item_group": "Drug",
+  "item_name": "Iodochlorohydroxyquinoline",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.412734",
+  "name": "Iodochlorohydroxyquinoline",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Ipratropium",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Ipratropium",
+  "item_group": "Drug",
+  "item_name": "Ipratropium",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.429333",
+  "name": "Ipratropium",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Mebeverine hydrochloride",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Mebeverine hydrochloride",
+  "item_group": "Drug",
+  "item_name": "Mebeverine hydrochloride",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.445814",
+  "name": "Mebeverine hydrochloride",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Mecetronium ethylsulphate",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Mecetronium ethylsulphate",
+  "item_group": "Drug",
+  "item_name": "Mecetronium ethylsulphate",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.461696",
+  "name": "Mecetronium ethylsulphate",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Meclizine",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Meclizine",
+  "item_group": "Drug",
+  "item_name": "Meclizine",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.478020",
+  "name": "Meclizine",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Oxaprozin",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Oxaprozin",
+  "item_group": "Drug",
+  "item_name": "Oxaprozin",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.496221",
+  "name": "Oxaprozin",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Oxazepam",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Oxazepam",
+  "item_group": "Drug",
+  "item_name": "Oxazepam",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.511933",
+  "name": "Oxazepam",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Oxcarbazepine",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Oxcarbazepine",
+  "item_group": "Drug",
+  "item_name": "Oxcarbazepine",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.528472",
+  "name": "Oxcarbazepine",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Oxetacaine",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Oxetacaine",
+  "item_group": "Drug",
+  "item_name": "Oxetacaine",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.544177",
+  "name": "Oxetacaine",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Oxethazaine",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Oxethazaine",
+  "item_group": "Drug",
+  "item_name": "Oxethazaine",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.560193",
+  "name": "Oxethazaine",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Suxamethonium Chloride",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Suxamethonium Chloride",
+  "item_group": "Drug",
+  "item_name": "Suxamethonium Chloride",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.576447",
+  "name": "Suxamethonium Chloride",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Tacrolimus",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Tacrolimus",
+  "item_group": "Drug",
+  "item_name": "Tacrolimus",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.593481",
+  "name": "Tacrolimus",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Ubiquinol",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Ubiquinol",
+  "item_group": "Drug",
+  "item_name": "Ubiquinol",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.609930",
+  "name": "Ubiquinol",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Vitamin B12",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Vitamin B12",
+  "item_group": "Drug",
+  "item_name": "Vitamin B12",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.626225",
+  "name": "Vitamin B12",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Vitamin B1Hydrochloride",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Vitamin B1Hydrochloride",
+  "item_group": "Drug",
+  "item_name": "Vitamin B1Hydrochloride",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.642423",
+  "name": "Vitamin B1Hydrochloride",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Vitamin B1Monohydrate",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Vitamin B1Monohydrate",
+  "item_group": "Drug",
+  "item_name": "Vitamin B1Monohydrate",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.658946",
+  "name": "Vitamin B1Monohydrate",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Vitamin B2",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Vitamin B2",
+  "item_group": "Drug",
+  "item_name": "Vitamin B2",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.675234",
+  "name": "Vitamin B2",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Vitamin B3",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Vitamin B3",
+  "item_group": "Drug",
+  "item_name": "Vitamin B3",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.691598",
+  "name": "Vitamin B3",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Vitamin D4",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Vitamin D4",
+  "item_group": "Drug",
+  "item_name": "Vitamin D4",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.707840",
+  "name": "Vitamin D4",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Vitamin E",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Vitamin E",
+  "item_group": "Drug",
+  "item_name": "Vitamin E",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.723859",
+  "name": "Vitamin E",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Wheat Germ Oil",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Wheat Germ Oil",
+  "item_group": "Drug",
+  "item_name": "Wheat Germ Oil",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.739829",
+  "name": "Wheat Germ Oil",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Wheatgrass extr",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Wheatgrass extr",
+  "item_group": "Drug",
+  "item_name": "Wheatgrass extr",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.757695",
+  "name": "Wheatgrass extr",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Whey Protein",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Whey Protein",
+  "item_group": "Drug",
+  "item_name": "Whey Protein",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.774098",
+  "name": "Whey Protein",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Xylometazoline",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Xylometazoline",
+  "item_group": "Drug",
+  "item_name": "Xylometazoline",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.790224",
+  "name": "Xylometazoline",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Xylometazoline Hydrochloride",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Xylometazoline Hydrochloride",
+  "item_group": "Drug",
+  "item_name": "Xylometazoline Hydrochloride",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.806359",
+  "name": "Xylometazoline Hydrochloride",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Yeast",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Yeast",
+  "item_group": "Drug",
+  "item_name": "Yeast",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.823305",
+  "name": "Yeast",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Yellow Fever Vaccine",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Yellow Fever Vaccine",
+  "item_group": "Drug",
+  "item_name": "Yellow Fever Vaccine",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.840250",
+  "name": "Yellow Fever Vaccine",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Zafirlukast",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Zafirlukast",
+  "item_group": "Drug",
+  "item_name": "Zafirlukast",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.856856",
+  "name": "Zafirlukast",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Zaleplon",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Zaleplon",
+  "item_group": "Drug",
+  "item_name": "Zaleplon",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.873287",
+  "name": "Zaleplon",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Zaltoprofen",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Zaltoprofen",
+  "item_group": "Drug",
+  "item_name": "Zaltoprofen",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.889263",
+  "name": "Zaltoprofen",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ },
+ {
+  "asset_category": null,
+  "attributes": [],
+  "barcode": null,
+  "brand": null,
+  "buying_cost_center": null,
+  "country_of_origin": null,
+  "create_new_batch": 0,
+  "customer_code": "",
+  "customer_items": [],
+  "customs_tariff_number": null,
+  "default_bom": null,
+  "default_material_request_type": null,
+  "default_supplier": null,
+  "default_warehouse": null,
+  "delivered_by_supplier": 0,
+  "description": "Zanamivir",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Item",
+  "end_of_life": null,
+  "expense_account": null,
+  "gst_hsn_code": null,
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "has_variants": 0,
+  "image": null,
+  "income_account": null,
+  "inspection_required_before_delivery": 0,
+  "inspection_required_before_purchase": 0,
+  "is_fixed_asset": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "Zanamivir",
+  "item_group": "Drug",
+  "item_name": "Zanamivir",
+  "last_purchase_rate": 0.0,
+  "lead_time_days": 0,
+  "manufacturer": null,
+  "manufacturer_part_no": null,
+  "max_discount": 0.0,
+  "min_order_qty": 0.0,
+  "modified": "2017-07-06 12:53:17.905022",
+  "name": "Zanamivir",
+  "naming_series": null,
+  "net_weight": 0.0,
+  "opening_stock": 0.0,
+  "publish_in_hub": 1,
+  "quality_parameters": [],
+  "reorder_levels": [],
+  "route": null,
+  "safety_stock": 0.0,
+  "selling_cost_center": null,
+  "serial_no_series": null,
+  "show_in_website": 0,
+  "show_variant_in_website": 0,
+  "slideshow": null,
+  "standard_rate": 0.0,
+  "stock_uom": "Nos",
+  "supplier_items": [],
+  "synced_with_hub": 0,
+  "taxes": [],
+  "thumbnail": null,
+  "tolerance": 0.0,
+  "total_projected_qty": 0.0,
+  "uoms": [
+   {
+    "conversion_factor": 1.0,
+    "uom": "Nos"
+   }
+  ],
+  "valuation_method": null,
+  "valuation_rate": 0.0,
+  "variant_based_on": null,
+  "variant_of": null,
+  "warranty_period": null,
+  "web_long_description": null,
+  "website_image": null,
+  "website_item_groups": [],
+  "website_specifications": [],
+  "website_warehouse": null,
+  "weight_uom": null,
+  "weightage": 0
+ }
+]
diff --git a/erpnext/demo/data/patient.json b/erpnext/demo/data/patient.json
new file mode 100644
index 0000000..6d95a20
--- /dev/null
+++ b/erpnext/demo/data/patient.json
@@ -0,0 +1,27 @@
+[
+  {
+  "patient_name": "lila",
+  "gender": "Female"
+  },
+  {
+  "patient_name": "charline",
+  "gender": "Female"
+  },
+  {
+  "patient_name": "soren",
+  "last_name": "le gall",
+  "gender": "Male"
+  },
+  {
+  "patient_name": "fanny",
+  "gender": "Female"
+  },
+  {
+  "patient_name": "julie",
+  "gender": "Female"
+  },
+  {
+  "patient_name": "louka",
+  "gender": "Male"
+  }
+]
diff --git a/erpnext/demo/data/physician.json b/erpnext/demo/data/physician.json
new file mode 100644
index 0000000..3afea99
--- /dev/null
+++ b/erpnext/demo/data/physician.json
@@ -0,0 +1,17 @@
+[
+	{
+		"doctype": "Physician",
+		"first_name": "Eddie Jessup",
+		"department": "Pathology"
+	},
+	{
+		"doctype": "Physician",
+		"first_name": "Deepshi Garg",
+		"department": "ENT"
+	},
+	{
+		"doctype": "Physician",
+		"first_name": "Amit Jain",
+		"department": "Microbiology"
+	}
+]
diff --git a/erpnext/demo/demo.py b/erpnext/demo/demo.py
index 9fde264..35256b5 100644
--- a/erpnext/demo/demo.py
+++ b/erpnext/demo/demo.py
@@ -4,7 +4,7 @@
 import erpnext
 import frappe.utils
 from erpnext.demo.user import hr, sales, purchase, manufacturing, stock, accounts, projects, fixed_asset, schools
-from erpnext.demo.setup import education, manufacture, setup_data
+from erpnext.demo.setup import education, manufacture, setup_data, healthcare
 """
 Make a demo
 
@@ -30,6 +30,8 @@
 		manufacture.setup_data()
 	elif domain== 'Education':
 		education.setup_data()
+	elif domain== 'Healthcare':
+		healthcare.setup_data()
 
 	site = frappe.local.site
 	frappe.destroy()
diff --git a/erpnext/demo/domains.py b/erpnext/demo/domains.py
index 5743e27..456eb5d 100644
--- a/erpnext/demo/domains.py
+++ b/erpnext/demo/domains.py
@@ -15,5 +15,8 @@
 	},
 	'Education': {
 		'company_name': 'Whitmore College'
+	},
+	'Healthcare': {
+		'company_name': 'ABC Hospital Ltd.'
 	}
 }
\ No newline at end of file
diff --git a/erpnext/demo/setup/healthcare.py b/erpnext/demo/setup/healthcare.py
new file mode 100644
index 0000000..d645e30
--- /dev/null
+++ b/erpnext/demo/setup/healthcare.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+import frappe, json
+from frappe.utils.make_random import get_random
+import datetime
+from erpnext.demo.setup.setup_data import import_json
+from frappe.utils import getdate
+from erpnext.healthcare.doctype.lab_test.lab_test import create_test_from_template
+
+def setup_data():
+	frappe.flags.mute_emails = True
+	make_masters()
+	make_patient()
+	make_lab_test()
+	make_consulation()
+	make_appointment()
+	consulation_on_appointment()
+	lab_test_on_consultation()
+	frappe.db.commit()
+	frappe.clear_cache()
+
+def make_masters():
+	import_json("Physician")
+	import_drug()
+	frappe.db.commit()
+
+def make_patient():
+	file_path = get_json_path("Patient")
+	with open(file_path, "r") as open_file:
+		patient_data = json.loads(open_file.read())
+		count = 1
+
+		for d in enumerate(patient_data):
+			patient = frappe.new_doc("Patient")
+			patient.patient_name = d[1]['patient_name'].title()
+			patient.sex = d[1]['gender']
+			patient.blood_group = "A Positive"
+			patient.date_of_birth = datetime.datetime(1990, 3, 25)
+			patient.email_id = d[1]['patient_name'] + "_" + patient.date_of_birth.strftime('%m/%d/%Y') + "@example.com"
+			if count <5:
+				patient.insert()
+				frappe.db.commit()
+			count+=1
+
+def make_appointment():
+	i = 1
+	while i <= 4:
+		physician = get_random("Physician")
+		department = frappe.get_value("Physician", physician, "department")
+		patient = get_random("Patient")
+		patient_sex = frappe.get_value("Patient", patient, "sex")
+		appointment = frappe.new_doc("Patient Appointment")
+		startDate = datetime.datetime.now()
+		for x in random_date(startDate,0):
+			appointment_datetime = x
+		appointment.appointment_datetime = appointment_datetime
+		appointment.appointment_time = appointment_datetime
+		appointment.appointment_date = appointment_datetime
+		appointment.patient = patient
+		appointment.patient_sex = patient_sex
+		appointment.physician = physician
+		appointment.department = department
+		appointment.save(ignore_permissions = True)
+		i += 1
+
+def make_consulation():
+	for i in xrange(3):
+		physician = get_random("Physician")
+		department = frappe.get_value("Physician", physician, "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)
+
+def consulation_on_appointment():
+	for i in xrange(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)
+
+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
+	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,
+		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
+
+def make_lab_test():
+	physician = get_random("Physician")
+	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)
+
+def lab_test_on_consultation():
+	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)
+		i += 1
+
+def set_lab_test(patient, patient_sex, physician, template, rx=None):
+	lab_test = frappe.new_doc("Lab Test")
+	lab_test.physician = physician
+	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):
+	i = 1
+	while i <= 2:
+		test_rx = consultation.append("test_prescription")
+		test_rx.test_code = get_random("Lab Test Template")
+		i += 1
+	return consultation
+
+def append_drug_rx(consultation):
+	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.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
+
+def random_date(start,l):
+   current = start
+   while l >= 0:
+      curr = current + datetime.timedelta(minutes=60)
+      yield curr
+      l-=1
+
+def import_drug():
+	frappe.flags.in_import = True
+	data = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'drug_list.json')).read())
+	for d in data:
+		doc = frappe.new_doc("Item")
+		doc.update(d)
+		doc.insert()
+	frappe.flags.in_import = False
+
+def get_json_path(doctype):
+		return frappe.get_app_path('erpnext', 'demo', 'data', frappe.scrub(doctype) + '.json')
diff --git a/erpnext/demo/setup/setup_data.py b/erpnext/demo/setup/setup_data.py
index cec425c..c4df777 100644
--- a/erpnext/demo/setup/setup_data.py
+++ b/erpnext/demo/setup/setup_data.py
@@ -184,7 +184,8 @@
 	user.add_roles('HR User', 'HR Manager', 'Accounts User', 'Accounts Manager',
 		'Stock User', 'Stock Manager', 'Sales User', 'Sales Manager', 'Purchase User',
 		'Purchase Manager', 'Projects User', 'Manufacturing User', 'Manufacturing Manager',
-		'Support Team', 'Academics User')
+		'Support Team', 'Academics User', 'Physician', 'Healthcare Administrator', 'Laboratory User',
+		'Nursing User', 'Patient')
 
 	if not frappe.db.get_global('demo_hr_user'):
 		user = frappe.get_doc('User', 'CharmaineGaudreau@example.com')
@@ -387,5 +388,3 @@
 	frappe.db.commit()
 
 	frappe.flags.in_import = False
-
-
diff --git a/erpnext/docs/assets/img/healthcare/._.DS_Store b/erpnext/docs/assets/img/healthcare/._.DS_Store
new file mode 100755
index 0000000..77c0a11
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._.DS_Store
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._appointment_1.png b/erpnext/docs/assets/img/healthcare/._appointment_1.png
new file mode 100755
index 0000000..9185da5
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._appointment_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._appointment_2.png b/erpnext/docs/assets/img/healthcare/._appointment_2.png
new file mode 100755
index 0000000..901903a
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._appointment_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._appointment_3.png b/erpnext/docs/assets/img/healthcare/._appointment_3.png
new file mode 100755
index 0000000..acac326
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._appointment_3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._consultation_1.png b/erpnext/docs/assets/img/healthcare/._consultation_1.png
new file mode 100755
index 0000000..26693f4
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._consultation_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._consultation_2.png b/erpnext/docs/assets/img/healthcare/._consultation_2.png
new file mode 100755
index 0000000..ddb28b0
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._consultation_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._consultation_3.png b/erpnext/docs/assets/img/healthcare/._consultation_3.png
new file mode 100755
index 0000000..75615ee
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._consultation_3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._consultation_4.png b/erpnext/docs/assets/img/healthcare/._consultation_4.png
new file mode 100755
index 0000000..a18b518
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._consultation_4.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._home.png b/erpnext/docs/assets/img/healthcare/._home.png
new file mode 100755
index 0000000..38c9eaf
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._home.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._lab_test_1.png b/erpnext/docs/assets/img/healthcare/._lab_test_1.png
new file mode 100755
index 0000000..36be754
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._lab_test_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._lab_test_2.png b/erpnext/docs/assets/img/healthcare/._lab_test_2.png
new file mode 100755
index 0000000..684798b
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._lab_test_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._medical_code_1.png b/erpnext/docs/assets/img/healthcare/._medical_code_1.png
new file mode 100755
index 0000000..a27e933
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._medical_code_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._medical_record_1.png b/erpnext/docs/assets/img/healthcare/._medical_record_1.png
new file mode 100755
index 0000000..df79c91
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._medical_record_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._medical_record_2.png b/erpnext/docs/assets/img/healthcare/._medical_record_2.png
new file mode 100755
index 0000000..8991667
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._medical_record_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._module.png b/erpnext/docs/assets/img/healthcare/._module.png
new file mode 100755
index 0000000..f8a4a0f
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._module.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._patient_1.png b/erpnext/docs/assets/img/healthcare/._patient_1.png
new file mode 100755
index 0000000..589703e
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._patient_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._patient_2.png b/erpnext/docs/assets/img/healthcare/._patient_2.png
new file mode 100755
index 0000000..0ac360a
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._patient_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._patient_3.png b/erpnext/docs/assets/img/healthcare/._patient_3.png
new file mode 100755
index 0000000..d8e0ed2
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._patient_3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._physician_1.png b/erpnext/docs/assets/img/healthcare/._physician_1.png
new file mode 100755
index 0000000..bf7889b
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._physician_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._physician_2.png b/erpnext/docs/assets/img/healthcare/._physician_2.png
new file mode 100755
index 0000000..a726f9a
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._physician_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._physician_schedule_1.png b/erpnext/docs/assets/img/healthcare/._physician_schedule_1.png
new file mode 100755
index 0000000..6dba9d5
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._physician_schedule_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._physician_schedule_2.png b/erpnext/docs/assets/img/healthcare/._physician_schedule_2.png
new file mode 100755
index 0000000..02eec95
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._physician_schedule_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._sample_collection_1.png b/erpnext/docs/assets/img/healthcare/._sample_collection_1.png
new file mode 100755
index 0000000..c72cbf7
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._sample_collection_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._vitals_1.png b/erpnext/docs/assets/img/healthcare/._vitals_1.png
new file mode 100755
index 0000000..cae923b
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._vitals_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/._vitals_2.png b/erpnext/docs/assets/img/healthcare/._vitals_2.png
new file mode 100755
index 0000000..77846b9
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/._vitals_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/__init__.py b/erpnext/docs/assets/img/healthcare/__init__.py
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/__init__.py
diff --git a/erpnext/docs/assets/img/healthcare/appointment_1.png b/erpnext/docs/assets/img/healthcare/appointment_1.png
new file mode 100755
index 0000000..afd308d
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/appointment_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/appointment_2.png b/erpnext/docs/assets/img/healthcare/appointment_2.png
new file mode 100755
index 0000000..104a919
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/appointment_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/appointment_3.png b/erpnext/docs/assets/img/healthcare/appointment_3.png
new file mode 100755
index 0000000..004a978
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/appointment_3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/consultation_1.png b/erpnext/docs/assets/img/healthcare/consultation_1.png
new file mode 100755
index 0000000..a7bc60d
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/consultation_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/consultation_2.png b/erpnext/docs/assets/img/healthcare/consultation_2.png
new file mode 100755
index 0000000..fd5ceee
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/consultation_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/consultation_3.png b/erpnext/docs/assets/img/healthcare/consultation_3.png
new file mode 100755
index 0000000..e2804a9
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/consultation_3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/consultation_4.png b/erpnext/docs/assets/img/healthcare/consultation_4.png
new file mode 100755
index 0000000..3f9817c
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/consultation_4.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/home.png b/erpnext/docs/assets/img/healthcare/home.png
new file mode 100755
index 0000000..afe57a3
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/home.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/lab_test_1.png b/erpnext/docs/assets/img/healthcare/lab_test_1.png
new file mode 100755
index 0000000..b2ddbeb
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/lab_test_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/lab_test_2.png b/erpnext/docs/assets/img/healthcare/lab_test_2.png
new file mode 100755
index 0000000..c06732a
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/lab_test_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/medical_code_1.png b/erpnext/docs/assets/img/healthcare/medical_code_1.png
new file mode 100755
index 0000000..4497e5a
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/medical_code_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/medical_record_1.png b/erpnext/docs/assets/img/healthcare/medical_record_1.png
new file mode 100755
index 0000000..6058652
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/medical_record_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/medical_record_2.png b/erpnext/docs/assets/img/healthcare/medical_record_2.png
new file mode 100755
index 0000000..a482704
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/medical_record_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/module.png b/erpnext/docs/assets/img/healthcare/module.png
new file mode 100755
index 0000000..c795df1
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/module.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/patient_1.png b/erpnext/docs/assets/img/healthcare/patient_1.png
new file mode 100755
index 0000000..03728af
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/patient_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/patient_2.png b/erpnext/docs/assets/img/healthcare/patient_2.png
new file mode 100755
index 0000000..2a632c7
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/patient_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/patient_3.png b/erpnext/docs/assets/img/healthcare/patient_3.png
new file mode 100755
index 0000000..738ce2c
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/patient_3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/physician_1.png b/erpnext/docs/assets/img/healthcare/physician_1.png
new file mode 100755
index 0000000..f570515
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/physician_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/physician_2.png b/erpnext/docs/assets/img/healthcare/physician_2.png
new file mode 100755
index 0000000..7b3d1ed
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/physician_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/physician_schedule_1.png b/erpnext/docs/assets/img/healthcare/physician_schedule_1.png
new file mode 100755
index 0000000..a9102e2
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/physician_schedule_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/physician_schedule_2.png b/erpnext/docs/assets/img/healthcare/physician_schedule_2.png
new file mode 100755
index 0000000..d910568
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/physician_schedule_2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/sample_collection_1.png b/erpnext/docs/assets/img/healthcare/sample_collection_1.png
new file mode 100755
index 0000000..7623847
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/sample_collection_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/vitals_1.png b/erpnext/docs/assets/img/healthcare/vitals_1.png
new file mode 100755
index 0000000..43bf5bf
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/vitals_1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/healthcare/vitals_2.png b/erpnext/docs/assets/img/healthcare/vitals_2.png
new file mode 100755
index 0000000..3e2129a
--- /dev/null
+++ b/erpnext/docs/assets/img/healthcare/vitals_2.png
Binary files differ
diff --git a/erpnext/docs/user/manual/en/healthcare/._.DS_Store b/erpnext/docs/user/manual/en/healthcare/._.DS_Store
new file mode 100755
index 0000000..ed70b66
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/._.DS_Store
Binary files differ
diff --git a/erpnext/docs/user/manual/en/healthcare/__init__.py b/erpnext/docs/user/manual/en/healthcare/__init__.py
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/__init__.py
diff --git a/erpnext/docs/user/manual/en/healthcare/appointment.md b/erpnext/docs/user/manual/en/healthcare/appointment.md
new file mode 100755
index 0000000..a5cea36
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/appointment.md
@@ -0,0 +1,38 @@
+# Patient Appointment
+ERPNext Healthcare allows you to book Patient appointments for any date and if configured, send them alerts via Email or SMS.
+
+You can create a Patient Appointment from
+> Healthcare > Patient Appointment > New Patient Appointment
+
+You can book appointments for a registered Patient by searching and selecting the Patient field. You can search the Patient by Patient ID, Name, Email or Mobile number. You can also register a new Patient from the Appointment screen by selecting "Create a new patient" in the Patient field.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/appointment_1.png">
+
+If you have a front desk executive to manage your appointments, you can configure a user role to have access to Patient Appointment so that she can do the bookings by selecting the Physician whom the Patient wish to consult and the date for booking. "Check Availability" button will pop up all the available time slots with status indicators for the date. She can select a time slot and "Book" the Appointment for the Patient.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/appointment_2.png">
+
+After Booking, the scheduled time of the Appointment and duration will be updated and seved in the document.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/appointment_3.png">
+
+You can configure ERPNext to send an SMS alert to the Patient about the booking confirmation or a reminder on the day of Appointment by doing necessary configurations in -
+
+> Healthcare > Healthcare Settings > Out Patient SMS Alerts
+
+The screen also allows the executive to select a Referring Physician so that you can track the source the appointment.
+
+### Actions
+  * Billing: If you collect the consultation fee while booking the Appointment itself you can do so by using the "Create > Invoice" button. This will take you to the ERPNext Accounts Sales Invoice screen.
+
+  * Vital Signs: "Create > Vital Signs" button will take you to the new Vital Signs screen to record the vitals of the Patient.
+
+  * Consultation: From the Appointment screen you can directly create a Consultation to record the details of patient encounter.
+
+  * View Patient Medical Record.
+
+> Note: User should have privileges (User Role) to view the buttons
+
+A Patient can also book an appointment with a Physician by checking the Physician's availability directly through the **ERPNext Portal**.
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/consultation.md b/erpnext/docs/user/manual/en/healthcare/consultation.md
new file mode 100755
index 0000000..a98713b
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/consultation.md
@@ -0,0 +1,28 @@
+# Consultation
+ERPNext Healthcare allows you to record Patient encounters through the Consultation document. You can create a Consultation based on a previously booked Appointment or directly by creating a new Consultation
+>Healthcare > Consultation > Consultation
+
+If you are creating the Consultation document from an Appointment, Patient and other related data will automatically be populated else you can search the Patient by name, email phone number etc. The Patient Details section will list the latest Vital Signs record of the patient and other information captured in the Patient screen.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/consultation_1.png">
+
+### Assessment
+
+Encounter Impression section allows you to select (or create new) Complaints and your assessment based on the presented complaints. You can opt to include the captured data in Consultation print by selecting the "In Print" flag
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/consultation_2.png">
+
+### Prescriptions
+
+You can prescribe medicines in the Drug Prescription section by selecting the drug codes (Stock Item) and appropriate dosages. If you are not managing Stock and Items are not configured, you can simply enter the Medicine name and strength in the Strength field which will printed.
+
+Prescribing a laboratory investigation is similar and if you have Lab Tests configured, you can select from the list. Or key in the Lab Test name to be printed as part of the Prescription.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/consultation_3.png">
+
+### Medical Coding
+You can also attach one or more Medical Codes to designate the Diagnosis in the Medical Coding Section. You will have to select the Medical Code Standard you wish to encode the diagnosis and then select the Code by searching the Code itself or the Code Description.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/consultation_4.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/index.md b/erpnext/docs/user/manual/en/healthcare/index.md
new file mode 100755
index 0000000..85e3b6f
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/index.md
@@ -0,0 +1,13 @@
+# Healthcare
+
+ERPNext Healthcare helps you manage your Clinic or Practice efficiently by scheduling **Appointments** and  recording **Patient Encounters** (Consultations). You can easily pull out a **Patient's Health Record** anytime to review all the history of treatments assisting you in providing effective, high quality care.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/module.png">
+
+Patients can view various documents relevant to them and book Appointments via the **ERPNext Portal**. The healthcare module is integrated with  **Accounts** and **Human Resources** modules, helping you in **Billing**, **Payroll Management** etc. and benefit from other rich features of ERPNext. You can configure the **Selling** and **Stock** modules manage your Pharmacy.
+
+ERPNext Healthcare also includes features for effectively managing the functions of an associated **Laboratory** by helping you record **Sample Collection**, emailing and printing **Lab Test** results etc. ERPNext Healthcare allows you to upload **Medical Code Standards** like **ICD10** and attach to Consultations.
+
+### Topics
+
+{index}
diff --git a/erpnext/docs/user/manual/en/healthcare/index.txt b/erpnext/docs/user/manual/en/healthcare/index.txt
new file mode 100755
index 0000000..471d91d
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/index.txt
@@ -0,0 +1,12 @@
+patient
+appointment
+vital_signs
+consultation
+medical_record
+sample_collection
+lab_test
+invoicing
+physician
+physician_schedule
+medical_codes
+setup
diff --git a/erpnext/docs/user/manual/en/healthcare/invoicing.md b/erpnext/docs/user/manual/en/healthcare/invoicing.md
new file mode 100755
index 0000000..bc9dead
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/invoicing.md
@@ -0,0 +1,8 @@
+# Invoicing
+Billing is an integral part of any undertaking and ERPNext Healthcare achieves this by making use of the ERPNext Accounts module.
+
+> Note: All transactions of a Patient is booked against the Customer which it is linked to.
+
+All ERPNext Healthcare documents which require Invoicing will have buttons which would take you to the Sales Invoice with the Items configured for the service. You can then proceed by following the ERPNExt Accounts module workflows. Please note that your User account should have appropriate privileges to access the Accounts documents.
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/lab_test.md b/erpnext/docs/user/manual/en/healthcare/lab_test.md
new file mode 100755
index 0000000..bdf0cfc
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/lab_test.md
@@ -0,0 +1,22 @@
+# Lab Test
+
+ERPNext Healthcare allows you to manage a clinical laboratory efficiently by allowing you to enter Lab Tests and print or email test results, manage samples collected, create Invoice etc. ERPNext Healthcare comes pre-packed with some sample tests, you can reconfigure Lab Test Templates for each Test and its result format or crate new ones. You can do this in
+>Healthcare > Setup > Lab Text Templates
+
+Once you have all necessary Lab Test Templates configured, you can start creating Lab Tests by selecting a Test Template every time you create a Test. To create a new Lab Test
+>Healthcare > Laboratory > Lab Test > New Lab Test
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/lab_test_1.png">
+
+You can record the test results in the Lab Test document as the results gets ready.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/lab_test_2.png">
+
+> Note: To create Sample Collection documents for every Lab Test, check "Manage Sample Collection" flag in Healthcare Settings and select Sample in the Lab Test Template
+
+In many Laboratories, approval of Lab Tests is a must before printing and submitting the document. ERPNext Healthcare allows you to create Users with Role "Lab Test Approver" for this. You will also have to enable this in
+>Healthcare Settings > Laboratory Settings > Require Lab Test Approval
+
+This will ensure that emailing or printing of Lab Tests can only be done after Approval of the Lab Test by the Lab Test Approver.
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/medical_codes.md b/erpnext/docs/user/manual/en/healthcare/medical_codes.md
new file mode 100755
index 0000000..c0997b1
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/medical_codes.md
@@ -0,0 +1,9 @@
+# Medical Code Standards
+Medical Coding are in many countries required for regulatory compliance and many of the Medical Insurance companies do that pricing based on Medical Code standards. ERPNext Healthcare offers support, however limited, to encode diagnosis and assessments recorded as part of Consultation. This can be done if you configure the Medical Code Standard and related Medical Codes - this is easily done by data import as the code data tends to be quite large. You can create as many Medical Code Standards you wish
+> Healthcare > Masters > Medical Code Standard
+
+Medical Code Standard document is used to name the Code Standard and act as a container for all the medical codes which are standardized under it. Medical Codes and descriptions can then be imported to the Medical Code document, after ensuring that you set the Medical Code Standard field to the appropriate Standard name.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/medical_code_1.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/medical_record.md b/erpnext/docs/user/manual/en/healthcare/medical_record.md
new file mode 100755
index 0000000..9d2697d
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/medical_record.md
@@ -0,0 +1,13 @@
+# Patient Medical Record
+The maintenance of complete and accurate medical records is a requirement of healthcare providers and is critical in rendering effective, high quality care. ERPNext Healthcare allows you to draw up the treatment history of a Patient anytime by merely selecting the Patient. "Medical Record" button is available in various screens so that you can easily switch to the Medical Record page to view the patient history.
+
+Medical Record automatically keeps track of all Consultations, recorded Vital Signs, Lab Investigations etc. Complaints, Diagnosis etc. captured as part of consultation are easily viewable but to look at the details of other documents, links are provided.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/medical_record_1.png">
+
+##### Adding notes manually to Medical Record
+In the Patient screen Create > Medical Record will allow you to record notes to the Medical Record manually. You can also attach files when doing this, and the Medical Record will display links to the attached file along side the notes. Create > Medical Record button is also made available in the Consultation screen
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/medical_record_2.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/patient.md b/erpnext/docs/user/manual/en/healthcare/patient.md
new file mode 100755
index 0000000..ed6810e
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/patient.md
@@ -0,0 +1,43 @@
+# Patient
+
+In ERPNext Healthcare, the Patient document corresponds any individual who is the recipient of healthcare services you provide. For every ERPNext Healthcare document, it is important to have a Patient associated with it. You can create a new Patient from
+> Healthcare > Masters > Patient > New Patient
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/patient_1.png">
+
+The Patient document holds most details that are required to identify and qualify a patient. You can enter as much information available while creating the Patient. All information in the patient document is presented on the Consultation screen for easy lookup and you can always update this information. Other data like observations, vital signs etc. are not part of the Patient document. These could be recorded during patient encounters and will be available as part of the Patient Medical Record.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/patient_2.png">
+
+### Patient as a Customer
+
+ERPNext Accounts makes use of "Customer" document for booking all transactions. So, you may want to associate every Patient to be associated with a Customer in ERPNext. By default, ERPNext Healthcare creates a Customer alongside a Patient and links to it - every transaction against a Patient is booked against the associated Customer. If, for some reason you do not intend to use the ERPNext Accounts module you can turn this behavior off by unchecking this flag
+>Healthcare > Setup > Healthcare Settings > Manage Customer
+
+In many cases, you may want to associate multiple Patients to a single Customer against whom you want to book the transactions. For instance, a Veterinarian would require the care services provided to different pets of an individual invoiced against a single Customer.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/patient_3.png">
+
+The Patient Relation section of the Patient allows you to select how a Patient is related to another Patient in the system. This is optional, but will be quite handy if you want to use ERPNext in a fertility clinic, for example.
+
+### Registration Fee
+Many clinical facilities collect a registration fee during Registration. You can turn this feature on and set the registration fee amount by checking this flag
+> Healthcare > Setup > Healthcare Settings > Collect Fee for Patient Registration
+
+If you have this enabled, all new Patients you create will by default be in Disabled mode and will be enabled only after Invoicing the Registration Fee. To create Invoice and record the payment receipt, you can use the "Invoice Patient Registration" button in the Patient document.
+
+> Note: For all ERPNext Healthcare documents, "Disabled" Patients are filtered out.
+
+### Grant access to Patient Portal
+ERPNext Healthcare allows you to create a portal user associated with a Patient by simply entering the user email id. A welcome email will be sent to the Patient email address to "Complete" registration.
+
+### Actions
+From the Patient document, the following links are enabled
+
+* Vital Signs: "Create > Vital Signs" button will take you to the new Vital Signs screen to record the vitals of the Patient.
+
+* View Patient Medical Record.
+
+* Consultation: You can directly create a new Consultation to record the details of patient encounter.
+
+> Note: User should have privileges (User Role) to view the buttons
diff --git a/erpnext/docs/user/manual/en/healthcare/physician.md b/erpnext/docs/user/manual/en/healthcare/physician.md
new file mode 100755
index 0000000..7b7995b
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/physician.md
@@ -0,0 +1,18 @@
+# Physician
+ERPNext Healthcare allows you to create multiple physicians and optionally link to a User with appropriate Roles. You can create a Physician here -
+>Healthcare > Masters > Physician
+
+Linking a User to the Physician makes the system populate the Physician field in all documents to the Physician associated with the logged in User.
+>Note: You should also relate the User to an Employee to utilize the various features of Human Resources module.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/physician_1.png">
+
+### Scheduling and Availability
+Each Physician can have a "Physician Schedule" and a "Time per Appointment" on the basis of which, the scheduler will book Appointments. Also, you can select appropriate Income Accounts for a Physician to book all Consultation charges into separate accounts.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/physician_2.png">
+
+### Referring Physicians
+You may also want to manage a list of Doctors who refers Patients to your facility. You can manage such data in the Physician document itself by leaving out the User link.
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/physician_schedule.md b/erpnext/docs/user/manual/en/healthcare/physician_schedule.md
new file mode 100755
index 0000000..0da7896
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/physician_schedule.md
@@ -0,0 +1,13 @@
+# Physician Schedule
+Physician Schedule will help you to configure the availability and work hours of Physicians. You can then select an applicable schedule for each Physician.
+
+You can create Physician Schedule from -
+> Healthcare > Masters > Physician Schedule
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/physician_schedule_1.png">
+
+After naming the schedule you can use the "Add Time Slots" button to create time slots for each day of the week. These time slots will then be displayed while checking the availability of a Physician when booking an Appointment.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/physician_schedule_2.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/sample_collection.md b/erpnext/docs/user/manual/en/healthcare/sample_collection.md
new file mode 100755
index 0000000..3473daf
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/sample_collection.md
@@ -0,0 +1,13 @@
+# Sample Collection
+It's critical for a Laboratory to manage collected samples and you may want to ID the sample, print stickers etc. ERPNext Healthcare "Sample Collection" document helps you to easily manage the sample collection process by creating a sample collection document for every Lab Test automatically. You will have to turn on the flag in Healthcare Settings to enable this feature.
+> Healthcare Settings > Laboratory Settings > Manage Sample Collection
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/sample_collection_1.png">
+
+> Note: You will have to select a Sample in the Lab Test Template for the system to automatically create a Sample Collection document
+
+You will have to enter the sample collected date and time to Submit the document signaling that the sample is collected.
+
+Printing on sample identification tags is also possible. By default a sample sticker print template is made available, but you can always create a custom Print Format by using "Customize" button in the print preview.
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/setup/__init__.py b/erpnext/docs/user/manual/en/healthcare/setup/__init__.py
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/setup/__init__.py
diff --git a/erpnext/docs/user/manual/en/healthcare/setup/index.md b/erpnext/docs/user/manual/en/healthcare/setup/index.md
new file mode 100755
index 0000000..721f521
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/setup/index.md
@@ -0,0 +1,7 @@
+# Setup
+
+Once you setup ERPNext (Company, Chart Of Accounts etc.), you can start with setting up your domain. To setup Healthcare module, User should have Healthcare Admin Role enabled. You can configure each of the departments as detailed in the Topics below.
+
+### Topics
+
+{index}
diff --git a/erpnext/docs/user/manual/en/healthcare/setup/index.txt b/erpnext/docs/user/manual/en/healthcare/setup/index.txt
new file mode 100755
index 0000000..f242381
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/setup/index.txt
@@ -0,0 +1,3 @@
+Setting up Practice Management
+Setting up Laboratory
+Setting up Pharmacy (Stock)
diff --git a/erpnext/docs/user/manual/en/healthcare/setup/setup_laboratory.md b/erpnext/docs/user/manual/en/healthcare/setup/setup_laboratory.md
new file mode 100755
index 0000000..93e53b8
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/setup/setup_laboratory.md
@@ -0,0 +1,67 @@
+# Laboratory
+
+If you wish to use features of Laboratory, you can create Users with "Laboratory User". Lab Tests, Sample Collection etc. are only visible to users with this Role enabled.
+
+### Laboratory Settings
+> Healthcare > Setup > Healthcare Settings > Laboratory Settings
+
+* Manage Sample Collection - If this flag is enabled, every time you create a Lab Test, a Sample Collection document will be created.
+
+* Require Lab Test Approval - Turning this on will restrict printing and emailing of Lab Tests only if the documents are in Approved status. You can use this flag to ensure that every Test result leaves your facility after verification.
+
+* Enable the third option if you want the name and designation of the Employee associated with the User who submits the document to be printed in the Lab Test Report.
+
+##### SMS Alerts
+You can configure ERPNext Healthcare to alert Patients via SMS when the Lab Test result gets ready (Submit) and when you Email the result. You an configure the templates for the SMS as registered with your provider here.
+> Healthcare > Setup > Healthcare Settings > Laboratory SMS Alerts
+
+
+### Lab Test Templates
+Whenever you create a new Lab Test, the Lab Test document is loaded based on the template configured for that particular test. This means, you will have to have separate templates configured for each Lab Test.
+
+Here's how you can configure various types of templates.
+> Healthcare > Setup > Lab Test Template > New Lab Test Template
+
+After providing the Name for the Test you will have to select a Code and Item group for creating the mapped Item. ERPNext Healthcare maps every Lab Test (every other billable healthcare service) to an Item with "Maintain Stock" set to false. This way, the Accounts Module will invoice the Item and you can see the Sales related reports of Selling Module. You can also set selling rate of the Lab Test here - this will update the Selling Price List.
+
+> The Standard Selling Rate field behaves similar to the Item Standard Selling Rate, updating this will not update the Selling Price List
+
+The Is Billable flag in Lab Test Template creates the Item, but as Disabled. Likewise, unchecking this flag will Enable the Item.
+
+###### Result Format
+Following are the result formats available in ERPNext Healthcare
+
+* Single - select this format for results which require only a single input, result UOM and normal value
+* Compound - allows you to configure results which require multiple input fields with corresponding event names, result UOMs and normal values
+* Descriptive - this format is helpful for results which have multiple result components and corresponding result entry fields.
+* Grouped - You can group test templates which are already configured and combine as a single test. For such templates select "Grouped".
+* No Result - Select this if you don not need to enter or manage test result. Also, no Lab Test document will be created. e.g., Sub Tests for Grouped results.
+
+###### Normal values
+For Single and Compound result formats, you can set the normal values.
+
+###### Sample
+You will have to select the Sample required for the test. You can also mention the quantity of sample that needs to be collected. These details will be used when creating the Sample Collection document for the Lab Test.
+
+### Medical Department
+To organize your clinic into departments, you can create multiple Medical Departments. You can select appropriate departments in Lab Test Template and will be included in the Lab Test result print.
+> Healthcare > Setup > Medical Department > New Medical Department
+
+### Lab Test Sample
+You can create various masters for Samples that are to be collected for a Lab Test.
+> Healthcare > Setup > Lab Test Sample > New Lab Test Sample
+
+
+### Lab Test UOM
+You can create various masters for Unit of Measures to be used in Lab Test document.
+> Healthcare > Setup > Lab Test UOM > New Lab Test UOM
+
+### Antibiotic
+You can create masters for a list of Antibiotics.
+> Healthcare > Setup > Antibiotic > New Antibiotic
+
+### Sensitivity
+You can create masters for a list of Sensitivity to various Antibiotics.
+> Healthcare > Setup > Sensitivity > New Sensitivity
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/setup/setup_pharmacy.md b/erpnext/docs/user/manual/en/healthcare/setup/setup_pharmacy.md
new file mode 100755
index 0000000..7f9c719
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/setup/setup_pharmacy.md
@@ -0,0 +1,4 @@
+# Pharmacy
+ERPNext Healthcare do not have a Pharmacy module - but you can configure the Stock module to manage your stock and Accounts and Buying modules for Billing and Purchases. The stock module allows you to configure Items with serial numbers and Batches. Expiry dates can be set if you turn on the "Has Batch No" check. You can also configure the auto reorder levels if required.
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/setup/setup_practice.md b/erpnext/docs/user/manual/en/healthcare/setup/setup_practice.md
new file mode 100755
index 0000000..8160482
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/setup/setup_practice.md
@@ -0,0 +1,38 @@
+# Clinic / Practice
+Configuring ERPNext Healthcare for your practice is simple.
+> Healthcare > Setup > Healthcare Settings > Out Patient Settings
+
+By default Patient document uses the patient name as the name, but you can opt to use a naming series if required.
+
+The "Manage Customer" option will enable the system to create and link a Customer whenever a new Patient is created. This Customer is used while booking all transactions.
+
+Here, you can also select the default Medical Code Standard to use.
+
+###### Collect Fee for Patient Registration
+If you enable this, all new Patients you create will by default be in Disabled mode and will be enabled only after Invoicing the Registration Fee. To create Invoice and record the payment receipt, you can use the "Invoice Patient Registration" button in the Patient document. Also note that all ERPNext Healthcare documents, "Disabled" Patients are filtered out. You can set the registration fee to be collected here.
+
+###### Consultation Fee validity
+Many healthcare facilities do not charge for follow up consultations within a time period after the first visit. You can configure the number of free visits allowed as well as the time period for free consultations here.
+
+### Medical Department
+To organize your clinic into departments, you can create multiple Medical Departments.
+> Healthcare > Setup > Medical Department > New Medical Department
+
+### Appointment Type
+You can create masters for various type of Appointments. This is optional and not considered while appointment scheduling.
+> Healthcare > Setup > Appointment Type > New Appointment Type
+
+### Prescription Dosage & Duration
+You can configure different dosages to be used while prescribing medication to patients. You can name the Prescription dosage in anyway you want (for example, BID or I-0-I), and then set the strength of the drug and the times at which it should be administered.
+> Healthcare > Setup > Prescription Dosage > New Prescription Dosage
+
+> Healthcare > Setup > Prescription Duration > New Prescription Duration
+
+### Complaint and Diagnosis
+To ease the data entry while recording the encounter impression, ERPNext Healthcare allows you to save each of the Complaint / Diagnosis data you enter, from the Consultation screen itself. This way, the database keeps building a list of all complaints and diagnosis you entered. Later on, every time you start keying in, you will be able to select the previously entered word / sentence from the search field. You can also configure the masters manually.
+
+> Healthcare > Setup > Complaints > New Complaint
+
+> Healthcare > Setup > Diagnosis > New Diagnosis
+
+{next}
diff --git a/erpnext/docs/user/manual/en/healthcare/vital_signs.md b/erpnext/docs/user/manual/en/healthcare/vital_signs.md
new file mode 100755
index 0000000..21b25d9
--- /dev/null
+++ b/erpnext/docs/user/manual/en/healthcare/vital_signs.md
@@ -0,0 +1,13 @@
+# Vital Signs
+ERPNext Healthcare allows you to record Vital Signs of Patients and manage this information as part of the Patient's health record. You can create a new document and record Vital Signs of a Patient from most of the Healthcare documents or directly by
+> Healthcare > Consultation > Vital Signs > New Vital Signs
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/vitals_1.png">
+
+You can select the Patient for whom you are recording the vitals and start by entering each of the fields. Normal values or ranges are provided for ease of assessment. Also present is an auto BMI calculator.
+
+<img class="screenshot" alt="ERPNext Healthcare" src="/docs/assets/img/healthcare/vitals_2.png">
+
+All recorded Vital Signs are made available in the Patient Medical Record and the last recorded Vital Sign is displayed on the left hand side pane for easy review.
+
+{next}
diff --git a/erpnext/healthcare/__init__.py b/erpnext/healthcare/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/__init__.py
diff --git a/erpnext/healthcare/doctype/__init__.py b/erpnext/healthcare/doctype/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/__init__.py
diff --git a/erpnext/healthcare/doctype/antibiotic/__init__.py b/erpnext/healthcare/doctype/antibiotic/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/antibiotic/__init__.py
diff --git a/erpnext/healthcare/doctype/antibiotic/antibiotic.js b/erpnext/healthcare/doctype/antibiotic/antibiotic.js
new file mode 100644
index 0000000..42e6adb
--- /dev/null
+++ b/erpnext/healthcare/doctype/antibiotic/antibiotic.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Antibiotic', {
+});
diff --git a/erpnext/healthcare/doctype/antibiotic/antibiotic.json b/erpnext/healthcare/doctype/antibiotic/antibiotic.json
new file mode 100644
index 0000000..d481036
--- /dev/null
+++ b/erpnext/healthcare/doctype/antibiotic/antibiotic.json
@@ -0,0 +1,115 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:antibiotic_name", 
+ "beta": 1, 
+ "creation": "2016-02-23 11:11:30.749731", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "antibiotic_name", 
+   "fieldtype": "Data", 
+   "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": "Antibiotic Name", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:44:43.199657", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Antibiotic", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 0
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "antibiotic_name", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "antibiotic_name", 
+ "track_changes": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/antibiotic/antibiotic.py b/erpnext/healthcare/doctype/antibiotic/antibiotic.py
new file mode 100644
index 0000000..8236c8a
--- /dev/null
+++ b/erpnext/healthcare/doctype/antibiotic/antibiotic.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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 Antibiotic(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/antibiotic/test_antibiotic.js b/erpnext/healthcare/doctype/antibiotic/test_antibiotic.js
new file mode 100644
index 0000000..b92103d
--- /dev/null
+++ b/erpnext/healthcare/doctype/antibiotic/test_antibiotic.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Antibiotic", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Antibiotic
+		() => frappe.tests.make('Antibiotic', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/antibiotic/test_antibiotic.py b/erpnext/healthcare/doctype/antibiotic/test_antibiotic.py
new file mode 100644
index 0000000..6ac4f4f
--- /dev/null
+++ b/erpnext/healthcare/doctype/antibiotic/test_antibiotic.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestAntibiotic(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/appointment_type/__init__.py b/erpnext/healthcare/doctype/appointment_type/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/appointment_type/__init__.py
diff --git a/erpnext/healthcare/doctype/appointment_type/appointment_type.js b/erpnext/healthcare/doctype/appointment_type/appointment_type.js
new file mode 100644
index 0000000..15916a5
--- /dev/null
+++ b/erpnext/healthcare/doctype/appointment_type/appointment_type.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Appointment Type', {
+});
diff --git a/erpnext/healthcare/doctype/appointment_type/appointment_type.json b/erpnext/healthcare/doctype/appointment_type/appointment_type.json
new file mode 100644
index 0000000..4b34892
--- /dev/null
+++ b/erpnext/healthcare/doctype/appointment_type/appointment_type.json
@@ -0,0 +1,145 @@
+{
+ "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 1, 
+ "autoname": "field:appointment_type", 
+ "beta": 1, 
+ "creation": "2016-07-22 11:52:34.953019", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "appointment_type", 
+   "fieldtype": "Data", 
+   "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": "Type", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 1, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "ip", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Is Inpatient", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:46:57.142289", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Appointment Type", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "appointment_type", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "", 
+ "track_changes": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/appointment_type/appointment_type.py b/erpnext/healthcare/doctype/appointment_type/appointment_type.py
new file mode 100644
index 0000000..1dacffa
--- /dev/null
+++ b/erpnext/healthcare/doctype/appointment_type/appointment_type.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class AppointmentType(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/appointment_type/test_appointment_type.js b/erpnext/healthcare/doctype/appointment_type/test_appointment_type.js
new file mode 100644
index 0000000..93274e5
--- /dev/null
+++ b/erpnext/healthcare/doctype/appointment_type/test_appointment_type.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Appointment Type", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Appointment Type
+		() => frappe.tests.make('Appointment Type', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/appointment_type/test_appointment_type.py b/erpnext/healthcare/doctype/appointment_type/test_appointment_type.py
new file mode 100644
index 0000000..04452e4
--- /dev/null
+++ b/erpnext/healthcare/doctype/appointment_type/test_appointment_type.py
@@ -0,0 +1,11 @@
+# -*- 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('Appointment Type')
+
+class TestAppointmentType(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/codification_table/__init__.py b/erpnext/healthcare/doctype/codification_table/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/codification_table/__init__.py
diff --git a/erpnext/healthcare/doctype/codification_table/codification_table.json b/erpnext/healthcare/doctype/codification_table/codification_table.json
new file mode 100644
index 0000000..c411778
--- /dev/null
+++ b/erpnext/healthcare/doctype/codification_table/codification_table.json
@@ -0,0 +1,135 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2017-06-22 13:09:23.159579", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "medical_code", 
+   "fieldtype": "Link", 
+   "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": "Medical Code", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Medical Code", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "code", 
+   "fieldtype": "Read Only", 
+   "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": "Code", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "medical_code.code", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "description", 
+   "fieldtype": "Read Only", 
+   "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": "Description", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "medical_code.description", 
+   "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
+  }
+ ], 
+ "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-08-31 14:06:50.281545", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Codification Table", 
+ "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
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/codification_table/codification_table.py b/erpnext/healthcare/doctype/codification_table/codification_table.py
new file mode 100644
index 0000000..ae29c03
--- /dev/null
+++ b/erpnext/healthcare/doctype/codification_table/codification_table.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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 CodificationTable(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/complaint/__init__.py b/erpnext/healthcare/doctype/complaint/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/complaint/__init__.py
diff --git a/erpnext/healthcare/doctype/complaint/complaint.js b/erpnext/healthcare/doctype/complaint/complaint.js
new file mode 100644
index 0000000..5a2d219
--- /dev/null
+++ b/erpnext/healthcare/doctype/complaint/complaint.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Complaint', {
+});
diff --git a/erpnext/healthcare/doctype/complaint/complaint.json b/erpnext/healthcare/doctype/complaint/complaint.json
new file mode 100644
index 0000000..0899a39
--- /dev/null
+++ b/erpnext/healthcare/doctype/complaint/complaint.json
@@ -0,0 +1,116 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:complaints", 
+ "beta": 1, 
+ "creation": "2017-02-15 12:25:28.045267", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "complaints", 
+   "fieldtype": "Data", 
+   "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": "Complaints", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:44:31.848346", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Complaint", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "complaints", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "complaints", 
+ "track_changes": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/complaint/complaint.py b/erpnext/healthcare/doctype/complaint/complaint.py
new file mode 100644
index 0000000..717f9db
--- /dev/null
+++ b/erpnext/healthcare/doctype/complaint/complaint.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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 Complaint(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/complaint/test_complaint.js b/erpnext/healthcare/doctype/complaint/test_complaint.js
new file mode 100644
index 0000000..9ff44d8
--- /dev/null
+++ b/erpnext/healthcare/doctype/complaint/test_complaint.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Complaint", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Complaint
+		() => frappe.tests.make('Complaint', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/complaint/test_complaint.py b/erpnext/healthcare/doctype/complaint/test_complaint.py
new file mode 100644
index 0000000..2b9273a
--- /dev/null
+++ b/erpnext/healthcare/doctype/complaint/test_complaint.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestComplaint(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/consultation/__init__.py b/erpnext/healthcare/doctype/consultation/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/consultation/__init__.py
diff --git a/erpnext/healthcare/doctype/consultation/consultation.js b/erpnext/healthcare/doctype/consultation/consultation.js
new file mode 100644
index 0000000..15a1c7f
--- /dev/null
+++ b/erpnext/healthcare/doctype/consultation/consultation.js
@@ -0,0 +1,317 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Consultation', {
+	setup: function(frm) {
+		frm.get_field('drug_prescription').grid.editable_fields = [
+			{fieldname: 'drug_code', columns: 2},
+			{fieldname: 'drug_name', columns: 2},
+			{fieldname: 'dosage', columns: 2},
+			{fieldname: 'period', columns: 2}
+		];
+		frm.get_field('test_prescription').grid.editable_fields = [
+			{fieldname: 'test_code', columns: 2},
+			{fieldname: 'test_name', columns: 4},
+			{fieldname: 'test_comment', columns: 4}
+		];
+	},
+	onload: function(frm){
+		if(frm.doc.patient){
+			frappe.call({
+				"method": "erpnext.healthcare.doctype.patient.patient.get_patient_detail",
+				args: {
+					patient: frm.doc.patient
+				},
+				callback: function (data) {
+					var age = null;
+					if(data.message.dob){
+						age = calculate_age(data.message.dob);
+					}
+					frappe.model.set_value(frm.doctype,frm.docname, "patient_age", age);
+					show_details(data.message);
+				}
+			});
+		}
+	},
+	refresh: function(frm) {
+		refresh_field('drug_prescription');
+		refresh_field('test_prescription');
+
+		frm.add_custom_button(__('Medical Record'), function() {
+			if (frm.doc.patient) {
+				frappe.route_options = {"patient": frm.doc.patient};
+				frappe.set_route("medical_record");
+			} else {
+				frappe.msgprint("Please select Patient");
+			}
+		},"View");
+		frm.add_custom_button(__('Vital Signs'), function() {
+			btn_create_vital_signs(frm);
+		},"Create");
+		frm.add_custom_button(__('Medical Record'), function() {
+			create_medical_record(frm);
+		},"Create");
+
+		frm.set_query("patient", function () {
+			return {
+				filters: {"disabled": 0}
+			};
+		});
+		frm.set_query("drug_code", "drug_prescription", function() {
+			return {
+				filters: {
+					is_stock_item:'1'
+				}
+			};
+		});
+		frm.set_query("test_code", "test_prescription", function() {
+			return {
+				filters: {
+					is_billable:'1'
+				}
+			};
+		});
+		frm.set_query("medical_code", "codification_table", function() {
+			return {
+				filters: {
+					medical_code_standard: frappe.defaults.get_default("default_medical_code_standard")
+				}
+			};
+		});
+		frm.set_query("appointment", function() {
+			return {
+				filters: {
+					//	Scheduled filter for demo ...
+					status:['in',["Open","Scheduled"]]
+				}
+			};
+		});
+		if(!frm.doc.__islocal && !frm.doc.invoice && (frappe.user.has_role("Accounts User"))){
+			frm.add_custom_button(__('Invoice'), function() {
+				btn_invoice_consultation(frm);
+			},__("Create"));
+		}
+		frm.set_df_property("appointment", "read_only", frm.doc.__islocal ? 0:1);
+		frm.set_df_property("patient", "read_only", frm.doc.__islocal ? 0:1);
+		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("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);
+	}
+});
+
+var btn_invoice_consultation = 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 },
+		callback: function(data){
+			if(!data.exc){
+				if(data.message){
+					frappe.set_route("Form", "Sales Invoice", data.message);
+				}
+				cur_frm.reload_doc();
+			}
+		}
+	});
+};
+
+var create_medical_record = function (frm) {
+	if(!frm.doc.patient){
+		frappe.throw("Please select patient");
+	}
+	frappe.route_options = {
+		"patient": frm.doc.patient,
+		"status": "Open",
+		"reference_doctype": "Patient Medical Record",
+		"reference_owner": frm.doc.owner
+	};
+	frappe.new_doc("Patient Medical Record");
+};
+
+var btn_create_vital_signs = function (frm) {
+	if(!frm.doc.patient){
+		frappe.throw("Please select patient");
+	}
+	frappe.route_options = {
+		"patient": frm.doc.patient,
+	};
+	frappe.new_doc("Vital Signs");
+};
+
+var show_details = function(data){
+	var personal_details = "";
+	var age = null;
+	if(data.dob){
+		age = calculate_age(data.dob);
+		personal_details += "<br><b>Age :</b> " + age;
+	}
+	if(data.sex) personal_details += "<br><b>Gender :</b> " + data.sex;
+	if(data.blood_group) personal_details += "<br><b>Blood group : </b> " + data.blood_group;
+	if(data.occupation) personal_details += "<br><b>Occupation :</b> " + data.occupation;
+	if(data.email) personal_details += "<br><b>Email :</b> " + data.email;
+	if(data.mobile) personal_details += "<br><b>Mobile :</b> " + data.mobile;
+
+	if(personal_details){
+		personal_details = "<div style='padding-left:10px; font-size:13px;' align='left'></br><b class='text-muted'>Personal Details</b>" + personal_details + "</div>";
+	}
+
+	var details = "";
+	if(data.allergies) details +=  "<br><br><b>Allergies : </b> "+  data.allergies;
+	if(data.medication) details +=  "<br><b>Medication : </b> "+  data.medication;
+	if(data.alcohol_current_use) details +=  "<br><br><b>Alcohol use : </b> "+  data.alcohol_current_use;
+	if(data.alcohol_past_use) details +=  "<br><b>Alcohol past use : </b> "+  data.alcohol_past_use;
+	if(data.tobacco_current_use) details +=  "<br><b>Tobacco use : </b> "+  data.tobacco_current_use;
+	if(data.tobacco_past_use) details +=  "<br><b>Tobacco past use : </b> "+  data.tobacco_past_use;
+	if(data.medical_history) details +=  "<br><br><b>Medical history : </b> "+  data.medical_history;
+	if(data.surgical_history) details +=  "<br><b>Surgical history : </b> "+  data.surgical_history;
+	if(data.surrounding_factors) details +=  "<br><br><b>Occupational hazards : </b> "+  data.surrounding_factors;
+	if(data.other_risk_factors) details += "<br><b>Other risk factors : </b> " + data.other_risk_factors;
+	if(data.patient_details) details += "<br><br><b>More info : </b> " + data.patient_details;
+
+	if(details){
+		details = "<div style='padding-left:10px; font-size:13px;' align='left'></br><b class='text-muted'>Patient Details</b>" + details + "</div>";
+	}
+
+	var vitals = "";
+	if(data.temperature) vitals += "<br><b>Temperature :</b> " + data.temperature;
+	if(data.pulse) vitals += ", <b>Pulse :</b> " + data.pulse;
+	if(data.respiratory_rate) vitals += ", <b>Respiratory Rate :</b> " + data.respiratory_rate;
+	if(data.bp) vitals += ", <b>BP :</b> " + data.bp;
+	if(data.bmi) vitals += "<br><b>BMI :</b> " + data.bmi;
+	if(data.nutrition_note) vitals += " (" + data.nutrition_note + ")";
+	if(data.height) vitals += ", <b>Height :</b> " + data.height;
+	if(data.weight) vitals += ", <b>Weight :</b> " + data.weight;
+	if(data.signs_date) vitals += "<br><b>Date :</b> " + data.signs_date;
+
+	if(vitals){
+		vitals = "<div style='padding-left:10px; font-size:13px;' align='left'></br><b class='text-muted'>Vital Signs</b>" + vitals + "<br></div>";
+	}
+	details = personal_details + vitals + details;
+	cur_frm.fields_dict.patient_details_html.$wrapper.html(details);
+};
+
+frappe.ui.form.on("Consultation", "appointment", function(frm){
+	if(frm.doc.appointment){
+		frappe.call({
+			"method": "frappe.client.get",
+			args: {
+				doctype: "Patient Appointment",
+				name: frm.doc.appointment
+			},
+			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, "invoice", data.message.sales_invoice);
+			}
+		});
+	}
+});
+
+frappe.ui.form.on("Consultation", "physician", function(frm) {
+	if(frm.doc.physician){
+		frappe.call({
+			"method": "frappe.client.get",
+			args: {
+				doctype: "Physician",
+				name: frm.doc.physician
+			},
+			callback: function (data) {
+				frappe.model.set_value(frm.doctype,frm.docname, "visit_department",data.message.department);
+			}
+		});
+	}
+});
+
+frappe.ui.form.on("Consultation", "symptoms_select", function(frm) {
+	if(frm.doc.symptoms_select){
+		var symptoms = null;
+		if(frm.doc.symptoms)
+			symptoms = frm.doc.symptoms + "\n" +frm.doc.symptoms_select;
+		else
+			symptoms = frm.doc.symptoms_select;
+		frappe.model.set_value(frm.doctype,frm.docname, "symptoms", symptoms);
+		frappe.model.set_value(frm.doctype,frm.docname, "symptoms_select", null);
+	}
+});
+frappe.ui.form.on("Consultation", "diagnosis_select", function(frm) {
+	if(frm.doc.diagnosis_select){
+		var diagnosis = null;
+		if(frm.doc.diagnosis)
+			diagnosis = frm.doc.diagnosis + "\n" +frm.doc.diagnosis_select;
+		else
+			diagnosis = frm.doc.diagnosis_select;
+		frappe.model.set_value(frm.doctype,frm.docname, "diagnosis", diagnosis);
+		frappe.model.set_value(frm.doctype,frm.docname, "diagnosis_select", null);
+	}
+});
+
+frappe.ui.form.on("Consultation", "patient", function(frm) {
+	if(frm.doc.patient){
+		frappe.call({
+			"method": "erpnext.healthcare.doctype.patient.patient.get_patient_detail",
+			args: {
+				patient: frm.doc.patient
+			},
+			callback: function (data) {
+				var age = "";
+				if(data.message.dob){
+					age = calculate_age(data.message.dob);
+				}
+				frappe.model.set_value(frm.doctype,frm.docname, "patient_age", age);
+				frappe.model.set_value(frm.doctype,frm.docname, "patient_sex", data.message.sex);
+				if(frm.doc.__islocal) show_details(data.message);
+			}
+		});
+	}
+});
+
+frappe.ui.form.on("Drug Prescription", {
+	drug_code:  function(frm, cdt, cdn) {
+		var child = locals[cdt][cdn];
+		if(child.drug_code){
+			frappe.call({
+				"method": "frappe.client.get",
+				args: {
+					doctype: "Item",
+					name: child.drug_code,
+				},
+				callback: function (data) {
+					frappe.model.set_value(cdt, cdn, 'drug_name',data.message.item_name);
+				}
+			});
+		}
+	},
+	dosage: function(frm, cdt, cdn){
+		frappe.model.set_value(cdt, cdn, 'update_schedule', 1);
+		var child = locals[cdt][cdn];
+		if(child.dosage){
+			frappe.model.set_value(cdt, cdn, 'in_every', 'Day');
+			frappe.model.set_value(cdt, cdn, 'interval', 1);
+		}
+	},
+	period: function(frm, cdt, cdn){
+		frappe.model.set_value(cdt, cdn, 'update_schedule', 1);
+	},
+	in_every: function(frm, cdt, cdn){
+		frappe.model.set_value(cdt, cdn, 'update_schedule', 1);
+		var child = locals[cdt][cdn];
+		if(child.in_every == "Hour"){
+			frappe.model.set_value(cdt, cdn, 'dosage', null);
+		}
+	}
+});
+
+
+var calculate_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)";
+};
diff --git a/erpnext/healthcare/doctype/consultation/consultation.json b/erpnext/healthcare/doctype/consultation/consultation.json
new file mode 100644
index 0000000..70482cb
--- /dev/null
+++ b/erpnext/healthcare/doctype/consultation/consultation.json
@@ -0,0 +1,1046 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "naming_series:", 
+ "beta": 1, 
+ "creation": "2016-04-21 10:53:44.637684", 
+ "custom": 0, 
+ "default_print_format": "", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 1, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_1", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "naming_series", 
+   "fieldtype": "Select", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Series", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "C-", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "", 
+   "fieldname": "appointment", 
+   "fieldtype": "Link", 
+   "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": "Appointment", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Patient Appointment", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "type", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Type", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Appointment Type", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "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": "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": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_age", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Age", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_sex", 
+   "fieldtype": "Select", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Gender", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nMale\nFemale", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "physician", 
+   "fieldtype": "Link", 
+   "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": "Doctor", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Physician", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Company", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Company", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_6", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "visit_department", 
+   "fieldtype": "Link", 
+   "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": "Department", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Medical Department", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Today", 
+   "fieldname": "consultation_date", 
+   "fieldtype": "Date", 
+   "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": "Consultation Date", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "", 
+   "fieldname": "consultation_time", 
+   "fieldtype": "Time", 
+   "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": "Consultation Time", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "invoice", 
+   "fieldtype": "Link", 
+   "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": "Invoice", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sales Invoice", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "patient_details", 
+   "fieldtype": "Section Break", 
+   "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": "Patient Details", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_details_html", 
+   "fieldtype": "HTML", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "sb_symptoms", 
+   "fieldtype": "Section Break", 
+   "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": "Encounter Impression", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "symptoms_select", 
+   "fieldtype": "Link", 
+   "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": "Complaints", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Complaint", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "symptoms", 
+   "fieldtype": "Small Text", 
+   "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": "", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "symptoms_in_print", 
+   "fieldtype": "Check", 
+   "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": "In print", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "physical_examination", 
+   "fieldtype": "Column Break", 
+   "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": "", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "", 
+   "fieldname": "diagnosis_select", 
+   "fieldtype": "Link", 
+   "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": "Diagnosis", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Diagnosis", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "", 
+   "fieldname": "diagnosis", 
+   "fieldtype": "Small Text", 
+   "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": "", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "1", 
+   "depends_on": "", 
+   "fieldname": "diagnosis_in_print", 
+   "fieldtype": "Check", 
+   "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": "In print", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "codification", 
+   "fieldtype": "Section Break", 
+   "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": "Medical Coding", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "codification_table", 
+   "fieldtype": "Table", 
+   "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": "Medical Coding", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Codification Table", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_drug_prescription", 
+   "fieldtype": "Section Break", 
+   "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": "Drug Prescription", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "drug_prescription", 
+   "fieldtype": "Table", 
+   "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": "Drug Prescription", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Drug Prescription", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_test_prescription", 
+   "fieldtype": "Section Break", 
+   "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": "Investigations", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_prescription", 
+   "fieldtype": "Table", 
+   "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": "Investigations", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Prescription", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "consultation_comment", 
+   "fieldtype": "Small Text", 
+   "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": "Review Details", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "amended_from", 
+   "fieldtype": "Link", 
+   "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": "Amended From", 
+   "length": 0, 
+   "no_copy": 1, 
+   "options": "Consultation", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 1, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 14:24:59.935498", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Consultation", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 1, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 1, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "patient, physician, visit_department", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "patient", 
+ "track_changes": 1, 
+ "track_seen": 1
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/consultation/consultation.py b/erpnext/healthcare/doctype/consultation/consultation.py
new file mode 100755
index 0000000..b8155b9
--- /dev/null
+++ b/erpnext/healthcare/doctype/consultation/consultation.py
@@ -0,0 +1,128 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+from frappe.model.document import Document
+from frappe.utils import getdate
+import json
+from erpnext.healthcare.doctype.healthcare_settings.healthcare_settings import get_receivable_account,get_income_account
+
+class Consultation(Document):
+	def on_update(self):
+		if(self.appointment):
+			frappe.db.set_value("Patient Appointment",self.appointment,"status","Closed")
+		update_consultation_to_medical_record(self)
+
+	def after_insert(self):
+		insert_consultation_to_medical_record(self)
+
+	def on_submit(self):
+		if not self.diagnosis or not self.symptoms:
+			frappe.throw("Diagnosis and Complaints cannot be left blank")
+
+		physician = frappe.get_doc("Physician",self.physician)
+		if(frappe.session.user != physician.user_id):
+			frappe.throw(_("You don't have permission to submit"))
+
+def set_sales_invoice_fields(company, patient):
+	sales_invoice = frappe.new_doc("Sales Invoice")
+	sales_invoice.customer = frappe.get_value("Patient", patient, "customer")
+	# patient is custom field in sales inv.
+	sales_invoice.due_date = getdate()
+	sales_invoice.is_pos = '0'
+	sales_invoice.debit_to = get_receivable_account(company)
+
+	return sales_invoice
+
+def create_sales_invoice_item_lines(item, sales_invoice):
+	sales_invoice_line = sales_invoice.append("items")
+	sales_invoice_line.item_code = item.item_code
+	sales_invoice_line.item_name =  item.item_name
+	sales_invoice_line.qty = 1.0
+	sales_invoice_line.description = item.description
+	return sales_invoice_line
+
+@frappe.whitelist()
+def create_drug_invoice(company, patient, prescriptions):
+	list_ids = json.loads(prescriptions)
+	if not (company or patient or prescriptions):
+		return False
+
+	sales_invoice = set_sales_invoice_fields(company, patient)
+	sales_invoice.update_stock = 1
+
+	for line_id in list_ids:
+		line_obj = frappe.get_doc("Drug Prescription", line_id)
+		if line_obj:
+			if(line_obj.drug_code):
+				item = frappe.get_doc("Item", line_obj.drug_code)
+				sales_invoice_line = create_sales_invoice_item_lines(item, sales_invoice)
+				sales_invoice_line.qty = line_obj.get_quantity()
+	#income_account and cost_center in itemlines - by set_missing_values()
+	sales_invoice.set_missing_values()
+	return sales_invoice.as_dict()
+
+@frappe.whitelist()
+def create_invoice(company, patient, physician, consultation_id):
+	if not consultation_id:
+		return False
+	sales_invoice = frappe.new_doc("Sales Invoice")
+	sales_invoice.customer = frappe.get_value("Patient", patient, "customer")
+	sales_invoice.due_date = getdate()
+	sales_invoice.is_pos = '0'
+	sales_invoice.debit_to = get_receivable_account(company)
+
+	create_invoice_items(physician, sales_invoice, company)
+
+	sales_invoice.save(ignore_permissions=True)
+	frappe.db.sql(_("""update tabConsultation set invoice='{0}' where name='{1}'""").format(sales_invoice.name, consultation_id))
+	appointment = frappe.db.get_value("Consultation", consultation_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):
+	item_line = invoice.append("items")
+	item_line.item_name = "Consulting Charges"
+	item_line.description = "Consulting Charges:  " + physician
+	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")
+	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):
+	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.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))
+	if(medical_record_id[0][0]):
+		subject = set_subject_field(consultation)
+		frappe.db.set_value("Patient Medical Record",medical_record_id[0][0],"subject",subject)
+
+def set_subject_field(consultation):
+	subject = "No Diagnosis "
+	if(consultation.diagnosis):
+		subject = "Diagnosis: \n"+ str(consultation.diagnosis)+". "
+	if(consultation.drug_prescription):
+		subject +="\nDrug(s) Prescribed. "
+	if(consultation.test_prescription):
+		subject += " Test(s) Prescribed."
+
+	return subject
diff --git a/erpnext/healthcare/doctype/consultation/consultation_dashboard.py b/erpnext/healthcare/doctype/consultation/consultation_dashboard.py
new file mode 100644
index 0000000..6170891
--- /dev/null
+++ b/erpnext/healthcare/doctype/consultation/consultation_dashboard.py
@@ -0,0 +1,15 @@
+from frappe import _
+
+def get_data():
+	return {
+		'fieldname': 'consultation',
+		'non_standard_fieldnames': {
+			'Patient Medical Record': 'reference_name'
+		},
+		'transactions': [
+			{
+				'label': _('Records'),
+				'items': ['Vital Signs', 'Patient Medical Record']
+			},
+		]
+	}
diff --git a/erpnext/healthcare/doctype/consultation/consultation_list.js b/erpnext/healthcare/doctype/consultation/consultation_list.js
new file mode 100755
index 0000000..ea3906d
--- /dev/null
+++ b/erpnext/healthcare/doctype/consultation/consultation_list.js
@@ -0,0 +1,7 @@
+/*
+(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
new file mode 100644
index 0000000..803e73c
--- /dev/null
+++ b/erpnext/healthcare/doctype/consultation/test_consultation.js
@@ -0,0 +1,23 @@
+/* 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
new file mode 100644
index 0000000..24dc011
--- /dev/null
+++ b/erpnext/healthcare/doctype/consultation/test_consultation.py
@@ -0,0 +1,10 @@
+# -*- 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/diagnosis/__init__.py b/erpnext/healthcare/doctype/diagnosis/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/diagnosis/__init__.py
diff --git a/erpnext/healthcare/doctype/diagnosis/diagnosis.js b/erpnext/healthcare/doctype/diagnosis/diagnosis.js
new file mode 100644
index 0000000..fb2557f
--- /dev/null
+++ b/erpnext/healthcare/doctype/diagnosis/diagnosis.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Diagnosis', {
+});
diff --git a/erpnext/healthcare/doctype/diagnosis/diagnosis.json b/erpnext/healthcare/doctype/diagnosis/diagnosis.json
new file mode 100644
index 0000000..b14ce94
--- /dev/null
+++ b/erpnext/healthcare/doctype/diagnosis/diagnosis.json
@@ -0,0 +1,116 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:diagnosis", 
+ "beta": 1, 
+ "creation": "2017-02-15 12:23:59.341108", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "diagnosis", 
+   "fieldtype": "Data", 
+   "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": "Diagnosis", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:40:09.731904", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Diagnosis", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "diagnosis", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "diagnosis", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/diagnosis/diagnosis.py b/erpnext/healthcare/doctype/diagnosis/diagnosis.py
new file mode 100644
index 0000000..f56e790
--- /dev/null
+++ b/erpnext/healthcare/doctype/diagnosis/diagnosis.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class Diagnosis(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/diagnosis/test_diagnosis.js b/erpnext/healthcare/doctype/diagnosis/test_diagnosis.js
new file mode 100644
index 0000000..cacfef5
--- /dev/null
+++ b/erpnext/healthcare/doctype/diagnosis/test_diagnosis.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Diagnosis", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Diagnosis
+		() => frappe.tests.make('Diagnosis', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/diagnosis/test_diagnosis.py b/erpnext/healthcare/doctype/diagnosis/test_diagnosis.py
new file mode 100644
index 0000000..c79164d
--- /dev/null
+++ b/erpnext/healthcare/doctype/diagnosis/test_diagnosis.py
@@ -0,0 +1,11 @@
+# -*- 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('Diagnosis')
+
+class TestDiagnosis(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/dosage_form/__init__.py b/erpnext/healthcare/doctype/dosage_form/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_form/__init__.py
diff --git a/erpnext/healthcare/doctype/dosage_form/dosage_form.js b/erpnext/healthcare/doctype/dosage_form/dosage_form.js
new file mode 100644
index 0000000..60e9696
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_form/dosage_form.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2017, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Dosage Form', {
+});
diff --git a/erpnext/healthcare/doctype/dosage_form/dosage_form.json b/erpnext/healthcare/doctype/dosage_form/dosage_form.json
new file mode 100644
index 0000000..1de0e93
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_form/dosage_form.json
@@ -0,0 +1,114 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:dosage_form", 
+ "beta": 1, 
+ "creation": "2017-04-08 12:04:33.987972", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "dosage_form", 
+   "fieldtype": "Data", 
+   "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": "Dosage Form", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:40:19.973532", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Dosage Form", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "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
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/dosage_form/dosage_form.py b/erpnext/healthcare/doctype/dosage_form/dosage_form.py
new file mode 100644
index 0000000..046af08
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_form/dosage_form.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class DosageForm(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/dosage_form/test_dosage_form.js b/erpnext/healthcare/doctype/dosage_form/test_dosage_form.js
new file mode 100644
index 0000000..ba54ab1
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_form/test_dosage_form.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Dosage Form", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Dosage Form
+		() => frappe.tests.make('Dosage Form', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/dosage_form/test_dosage_form.py b/erpnext/healthcare/doctype/dosage_form/test_dosage_form.py
new file mode 100644
index 0000000..81cfcf6
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_form/test_dosage_form.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, ESS LLP and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import unittest
+
+class TestDosageForm(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/dosage_strength/__init__.py b/erpnext/healthcare/doctype/dosage_strength/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_strength/__init__.py
diff --git a/erpnext/healthcare/doctype/dosage_strength/dosage_strength.json b/erpnext/healthcare/doctype/dosage_strength/dosage_strength.json
new file mode 100644
index 0000000..da4f1a7
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_strength/dosage_strength.json
@@ -0,0 +1,102 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2017-02-14 15:40:14.385707", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "strength", 
+   "fieldtype": "Float", 
+   "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": "Strength", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "strength_time", 
+   "fieldtype": "Time", 
+   "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": "Time", 
+   "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
+  }
+ ], 
+ "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-08-31 14:11:59.874645", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Dosage Strength", 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/dosage_strength/dosage_strength.py b/erpnext/healthcare/doctype/dosage_strength/dosage_strength.py
new file mode 100644
index 0000000..e36a016
--- /dev/null
+++ b/erpnext/healthcare/doctype/dosage_strength/dosage_strength.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class DosageStrength(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/drug_prescription/__init__.py b/erpnext/healthcare/doctype/drug_prescription/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/drug_prescription/__init__.py
diff --git a/erpnext/healthcare/doctype/drug_prescription/drug_prescription.json b/erpnext/healthcare/doctype/drug_prescription/drug_prescription.json
new file mode 100644
index 0000000..c96df22
--- /dev/null
+++ b/erpnext/healthcare/doctype/drug_prescription/drug_prescription.json
@@ -0,0 +1,381 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2016-09-16 16:41:45.533374", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "drug_code", 
+   "fieldtype": "Link", 
+   "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": "Drug Code", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Item", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "drug_name", 
+   "fieldtype": "Data", 
+   "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": "Description/Strength", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "dosage", 
+   "fieldtype": "Link", 
+   "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": "Dosage", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Prescription Dosage", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "period", 
+   "fieldtype": "Link", 
+   "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": "Period", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Prescription Duration", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "dosage_form", 
+   "fieldtype": "Link", 
+   "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": "Dosage Form", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Dosage Form", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_7", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "comment", 
+   "fieldtype": "Small Text", 
+   "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": "Comment", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "use_interval", 
+   "fieldtype": "Check", 
+   "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": "Dosage by time interval", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "use_interval", 
+   "fieldname": "interval", 
+   "fieldtype": "Int", 
+   "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": "Interval", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "use_interval", 
+   "fieldname": "in_every", 
+   "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": "Interval UOM", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nHour\nDay", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "1", 
+   "fieldname": "update_schedule", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Update Schedule", 
+   "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
+  }
+ ], 
+ "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-08-31 13:59:48.222282", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Drug Prescription", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "quick_entry": 0, 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/drug_prescription/drug_prescription.py b/erpnext/healthcare/doctype/drug_prescription/drug_prescription.py
new file mode 100755
index 0000000..0d99198
--- /dev/null
+++ b/erpnext/healthcare/doctype/drug_prescription/drug_prescription.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class DrugPrescription(Document):
+	def get_quantity(self):
+		quantity = 0
+		dosage = None
+		period = None
+
+		if(self.dosage):
+			dosage = frappe.get_doc("Prescription Dosage",self.dosage)
+			for item in dosage.dosage_strength:
+				quantity += item.strength
+			if(self.period and self.interval):
+				period = frappe.get_doc("Prescription Duration",self.period)
+				if(self.interval < period.get_days()):
+					quantity = quantity*(period.get_days()/self.interval)
+
+		elif(self.interval and self.in_every and self.period):
+			period = frappe.get_doc("Prescription Duration",self.period)
+			interval_in = self.in_every
+			if(interval_in == 'Day' and (self.interval < period.get_days())):
+				quantity = period.get_days()/self.interval
+			elif(interval_in == 'Hour' and (self.interval < period.get_hours())):
+				quantity = period.get_hours()/self.interval
+		if quantity > 0:
+			return quantity
+		else:
+			return 1
diff --git a/erpnext/healthcare/doctype/fee_validity/__init__.py b/erpnext/healthcare/doctype/fee_validity/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/fee_validity/__init__.py
diff --git a/erpnext/healthcare/doctype/fee_validity/fee_validity.js b/erpnext/healthcare/doctype/fee_validity/fee_validity.js
new file mode 100644
index 0000000..7ea2213
--- /dev/null
+++ b/erpnext/healthcare/doctype/fee_validity/fee_validity.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Fee Validity', {
+});
diff --git a/erpnext/healthcare/doctype/fee_validity/fee_validity.json b/erpnext/healthcare/doctype/fee_validity/fee_validity.json
new file mode 100644
index 0000000..4bbd20b
--- /dev/null
+++ b/erpnext/healthcare/doctype/fee_validity/fee_validity.json
@@ -0,0 +1,248 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2017-01-05 10:56:29.564806", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "physician", 
+   "fieldtype": "Link", 
+   "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": "Physician", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Physician", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "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": "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": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "max_visit", 
+   "fieldtype": "Int", 
+   "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": "Max number of visit", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "visited", 
+   "fieldtype": "Int", 
+   "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": "Visited yet", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "valid_till", 
+   "fieldtype": "Date", 
+   "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": "Valid till", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "ref_invoice", 
+   "fieldtype": "Link", 
+   "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": "Reference Inv", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sales Invoice", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:36:52.108407", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Fee Validity", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "physician,patient", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "physician", 
+ "track_changes": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/fee_validity/fee_validity.py b/erpnext/healthcare/doctype/fee_validity/fee_validity.py
new file mode 100644
index 0000000..53a1741
--- /dev/null
+++ b/erpnext/healthcare/doctype/fee_validity/fee_validity.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class FeeValidity(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/fee_validity/test_fee_validity.js b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.js
new file mode 100644
index 0000000..0ebb974
--- /dev/null
+++ b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Fee Validity", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Fee Validity
+		() => frappe.tests.make('Fee Validity', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
new file mode 100644
index 0000000..2345872
--- /dev/null
+++ b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+from erpnext.healthcare.doctype.patient_appointment.patient_appointment import create_invoice
+from frappe.utils.make_random import get_random
+from frappe.utils import nowdate, add_days
+# test_records = frappe.get_test_records('Fee Validity')
+
+class TestFeeValidity(unittest.TestCase):
+	def test_fee_validity(self):
+		patient = get_random("Patient")
+		physician = get_random("Physician")
+
+		if not patient:
+			patient = frappe.new_doc("Patient")
+			patient.patient_name = "Test Patient"
+			patient.sex = "Male"
+			patient.save(ignore_permissions = True)
+			patient = patient.name
+
+		if not physician:
+			physician = frappe.new_doc("Physician")
+			physician.first_name= "Amit Jain"
+			physician.save(ignore_permissions = True)
+			physician = physician.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())
+		invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
+		self.assertEqual(invoice, None)
+		create_invoice(frappe.defaults.get_global_default("company"), physician, patient, appointment.name, appointment.appointment_date)
+		appointment = create_appointment(patient, physician, add_days(nowdate(), 4))
+		invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
+		self.assertTrue(invoice)
+		appointment = create_appointment(patient, physician, add_days(nowdate(), 5))
+		invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
+		self.assertEqual(invoice, None)
+		appointment = create_appointment(patient, physician, add_days(nowdate(), 10))
+		invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
+		self.assertEqual(invoice, None)
+
+def create_appointment(patient, physician, appointment_date):
+	appointment = frappe.new_doc("Patient Appointment")
+	appointment.patient = patient
+	appointment.physician = physician
+	appointment.appointment_date = appointment_date
+	appointment.save(ignore_permissions = True)
+	return appointment
diff --git a/erpnext/healthcare/doctype/healthcare.py b/erpnext/healthcare/doctype/healthcare.py
new file mode 100644
index 0000000..6fd2015
--- /dev/null
+++ b/erpnext/healthcare/doctype/healthcare.py
@@ -0,0 +1,5 @@
+from __future__ import unicode_literals
+
+def get_data():
+
+	return []
diff --git a/erpnext/healthcare/doctype/healthcare_settings/__init__.py b/erpnext/healthcare/doctype/healthcare_settings/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/healthcare_settings/__init__.py
diff --git a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.js b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.js
new file mode 100644
index 0000000..75b0584
--- /dev/null
+++ b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.js
@@ -0,0 +1,25 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Healthcare Settings', {
+	setup: function(frm) {
+		frm.set_query('account', 'receivable_account', function(doc, cdt, cdn) {
+			var d  = locals[cdt][cdn];
+			return {
+				filters: {
+					'account_type': 'Receivable',
+					'company': d.company,
+				}
+			};
+		});
+		frm.set_query('account', 'income_account', function(doc, cdt, cdn) {
+			var d  = locals[cdt][cdn];
+			return {
+				filters: {
+					'root_type': 'Income',
+					'company': d.company,
+				}
+			};
+		});
+	}
+});
diff --git a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json
new file mode 100644
index 0000000..8681641
--- /dev/null
+++ b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.json
@@ -0,0 +1,1073 @@
+{
+ "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2017-05-09 11:26:22.337760", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_op_settings", 
+   "fieldtype": "Section Break", 
+   "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": "Out Patient Settings", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_master_name", 
+   "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": "Patient Name By", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Patient Name\nNaming Series", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "1", 
+   "description": "If checked, a customer will be created, mapped to Patient.\nPatient Invoices will be created against this Customer. You can also select existing Customer while creating Patient.", 
+   "fieldname": "manage_customer", 
+   "fieldtype": "Check", 
+   "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": "Manage Customer", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "default_medical_code_standard", 
+   "fieldtype": "Link", 
+   "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": "Default Medical Code Standard", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Medical Code Standard", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_9", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "collect_registration_fee", 
+   "fieldtype": "Check", 
+   "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": "Collect Fee for Patient Registration", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "collect_registration_fee", 
+   "fieldname": "registration_fee", 
+   "fieldtype": "Currency", 
+   "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": "Registration Fee", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Currency", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "max_visit", 
+   "fieldtype": "Int", 
+   "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": "Consultations in valid days", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "valid_days", 
+   "fieldtype": "Int", 
+   "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": "Valid number of days", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "out_patient_sms_alerts", 
+   "fieldtype": "Section Break", 
+   "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": "Out Patient SMS Alerts", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "reg_sms", 
+   "fieldtype": "Check", 
+   "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": "Patient Registration", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Hello {{doc.patient}}, Thank you for registering with  {{doc.company}}. Your ID is {{doc.id}} . Please note this ID for future reference. \nThank You, Get well soon!", 
+   "depends_on": "reg_sms", 
+   "fieldname": "reg_msg", 
+   "fieldtype": "Small Text", 
+   "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": "Registration Message", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "app_con", 
+   "fieldtype": "Check", 
+   "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": "Appointment Confirmation", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 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!", 
+   "depends_on": "app_con", 
+   "fieldname": "app_con_msg", 
+   "fieldtype": "Small Text", 
+   "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": "Confirmation Message", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "app_con", 
+   "description": "Do not confirm if appointment is created for the same day", 
+   "fieldname": "no_con", 
+   "fieldtype": "Check", 
+   "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": "Avoid Confirmation", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_16", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "app_rem", 
+   "fieldtype": "Check", 
+   "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": "Appointment Reminder", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 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", 
+   "depends_on": "app_rem", 
+   "fieldname": "app_rem_msg", 
+   "fieldtype": "Small Text", 
+   "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": "Reminder Message", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "app_rem", 
+   "fieldname": "rem_before", 
+   "fieldtype": "Time", 
+   "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": "Remind Before", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 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.", 
+   "fieldname": "sb_in_ac", 
+   "fieldtype": "Section Break", 
+   "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": "Income Account", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "income_account", 
+   "fieldtype": "Table", 
+   "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": "Income Account", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Party Account", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 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.", 
+   "fieldname": "sb_r_ac", 
+   "fieldtype": "Section Break", 
+   "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": "Receivable Account", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "receivable_account", 
+   "fieldtype": "Table", 
+   "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": "Receivable Account", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Party Account", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "sb_lab_settings", 
+   "fieldtype": "Section Break", 
+   "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": "Laboratory Settings", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "Create documents for sample collection", 
+   "fieldname": "require_sample_collection", 
+   "fieldtype": "Check", 
+   "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": "Manage Sample Collection", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "require_test_result_approval", 
+   "fieldtype": "Check", 
+   "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": "Require Lab Test Approval", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_34", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "1", 
+   "fieldname": "employee_name_and_designation_in_print", 
+   "fieldtype": "Check", 
+   "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": "Employee name and designation in print", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.employee_name_and_designation_in_print == '0'\n", 
+   "fieldname": "custom_signature_in_print", 
+   "fieldtype": "Small Text", 
+   "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": "Custom Signature in Print", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "laboratory_sms_alerts", 
+   "fieldtype": "Section Break", 
+   "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": "Laboratory SMS Alerts", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Hello {{doc.patient}}, Your {{doc.test_name}} result is ready with {{doc.company }}. \nThank You, Good day!", 
+   "fieldname": "sms_printed", 
+   "fieldtype": "Small Text", 
+   "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": "Result Printed", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_28", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Hello {{doc.patient}}, Your {{doc.test_name}} result has been emailed to {{doc.email}}. \n{{doc.company }}. \nThank You, Good day!", 
+   "fieldname": "sms_emailed", 
+   "fieldtype": "Small Text", 
+   "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": "Result Emailed", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 1, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:25:48.193218", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Healthcare Settings", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "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
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
new file mode 100644
index 0000000..7206e4b
--- /dev/null
+++ b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+from frappe.core.doctype.sms_settings.sms_settings import send_sms
+import json
+
+class HealthcareSettings(Document):
+	def validate(self):
+		for key in ["collect_registration_fee","manage_customer","patient_master_name",
+		"require_test_result_approval","require_sample_collection", "default_medical_code_standard"]:
+			frappe.db.set_default(key, self.get(key, ""))
+		if(self.collect_registration_fee):
+			if self.registration_fee <= 0 :
+				frappe.throw("Registration fee can not be Zero")
+
+@frappe.whitelist()
+def get_sms_text(doc):
+	sms_text = {}
+	doc = frappe.get_doc("Lab Test",doc)
+	#doc = json.loads(doc)
+	context = {"doc": doc, "alert": doc, "comments": None}
+	emailed = frappe.db.get_value("Healthcare Settings", None, "sms_emailed")
+	sms_text['emailed'] = frappe.render_template(emailed, context)
+ 	printed = frappe.db.get_value("Healthcare Settings", None, "sms_printed")
+	sms_text['printed'] = frappe.render_template(printed, context)
+	return sms_text
+
+def send_registration_sms(doc):
+	if (frappe.db.get_value("Healthcare Settings", None, "reg_sms")=='1'):
+		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.render_template(messages, context)
+			number = [doc.mobile]
+			send_sms(number,messages)
+		else:
+			frappe.msgprint(doc.name + " Has no mobile number to send registration SMS", alert=True)
+
+
+def get_receivable_account(company):
+	receivable_account = get_account(None, "receivable_account", "Healthcare Settings", company)
+	if receivable_account:
+		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)
+		if income_account:
+			return income_account
+	income_account = get_account(None, "income_account", "Healthcare Settings", company)
+	if income_account:
+		return income_account
+	return frappe.db.get_value("Company", company, "default_income_account")
+
+def get_account(parent_type, parent_field, parent, company):
+	if(parent_type):
+		return frappe.db.get_value("Party Account",
+			{"parenttype": parent_type, "parent": parent, "company": company}, "account")
+	if(parent_field):
+		return frappe.db.get_value("Party Account",
+			{"parentfield": parent_field, "parent": parent, "company": company}, "account")
diff --git a/erpnext/healthcare/doctype/healthcare_settings/test_healthcare_settings.js b/erpnext/healthcare/doctype/healthcare_settings/test_healthcare_settings.js
new file mode 100644
index 0000000..ca10925
--- /dev/null
+++ b/erpnext/healthcare/doctype/healthcare_settings/test_healthcare_settings.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Healthcare Settings", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Healthcare Settings
+		() => frappe.tests.make('Healthcare Settings', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/lab_prescription/__init__.py b/erpnext/healthcare/doctype/lab_prescription/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_prescription/__init__.py
diff --git a/erpnext/healthcare/doctype/lab_prescription/lab_prescription.json b/erpnext/healthcare/doctype/lab_prescription/lab_prescription.json
new file mode 100644
index 0000000..2d1a8d6
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_prescription/lab_prescription.json
@@ -0,0 +1,223 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2016-09-16 16:53:06.882970", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 1, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_code", 
+   "fieldtype": "Link", 
+   "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": "Test Code", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test Template", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_name", 
+   "fieldtype": "Data", 
+   "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": "Test", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "test_code.test_name", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "invoice", 
+   "fieldtype": "Link", 
+   "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": "Invoice", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sales Invoice", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_4", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_comment", 
+   "fieldtype": "Small Text", 
+   "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": "Comments", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_created", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Test Created", 
+   "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
+  }
+ ], 
+ "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-08-31 13:47:22.789095", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Lab Prescription", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "quick_entry": 0, 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/lab_prescription/lab_prescription.py b/erpnext/healthcare/doctype/lab_prescription/lab_prescription.py
new file mode 100644
index 0000000..b788a0d
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_prescription/lab_prescription.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class LabPrescription(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/lab_test/__init__.py b/erpnext/healthcare/doctype/lab_test/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test/__init__.py
diff --git a/erpnext/healthcare/doctype/lab_test/lab_test.js b/erpnext/healthcare/doctype/lab_test/lab_test.js
new file mode 100644
index 0000000..2a453cd
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test/lab_test.js
@@ -0,0 +1,323 @@
+// Copyright (c) 2016, ESS and contributors
+// For license information, please see license.txt
+
+cur_frm.cscript.custom_refresh = function(doc) {
+	cur_frm.toggle_display("sb_sensitivity", doc.sensitivity_toggle=="1");
+	cur_frm.toggle_display("sb_special", doc.special_toggle=="1");
+	cur_frm.toggle_display("sb_normal", doc.normal_toggle=="1");
+};
+
+frappe.ui.form.on('Lab Test', {
+	setup: function(frm) {
+		frm.get_field('normal_test_items').grid.editable_fields = [
+			{fieldname: 'test_name', columns: 3},
+			{fieldname: 'test_event', columns: 2},
+			{fieldname: 'result_value', columns: 2},
+			{fieldname: 'test_uom', columns: 1},
+			{fieldname: 'normal_range', columns: 2}
+		];
+		frm.get_field('special_test_items').grid.editable_fields = [
+			{fieldname: 'test_particulars', columns: 3},
+			{fieldname: 'result_value', columns: 7}
+		];
+	},
+	refresh :  function(frm){
+		refresh_field('normal_test_items');
+		refresh_field('special_test_items');
+		if(!frm.doc.__islocal && !frm.doc.invoice && frappe.user.has_role("Accounts User")){
+			frm.add_custom_button(__('Make Invoice'), function() {
+				make_invoice(frm);
+			});
+		}
+		if(frm.doc.__islocal){
+			frm.add_custom_button(__('Get from Consultation'), function () {
+				get_lab_test_prescribed(frm);
+			});
+		}
+		if(frm.doc.docstatus==1	&&	frm.doc.status!='Approved'	&&	frm.doc.status!='Rejected'	&&	frappe.defaults.get_default("require_test_result_approval")	&&	frappe.user.has_role("LabTest Approver")){
+			frm.add_custom_button(__('Approve'), function() {
+				status_update(1,frm);
+			});
+			frm.add_custom_button(__('Reject'), function() {
+				status_update(0,frm);
+			});
+		}
+		if(frm.doc.docstatus==1 && frm.doc.sms_sent==0){
+			frm.add_custom_button(__('Send SMS'), function() {
+				frappe.call({
+					method: "erpnext.healthcare.doctype.healthcare_settings.healthcare_settings.get_sms_text",
+					args:{doc: frm.doc.name},
+					callback: function(r) {
+						if(!r.exc) {
+							var emailed = r.message.emailed;
+							var printed = r.message.printed;
+							make_dialog(frm, emailed, printed);
+						}
+					}
+				});
+			});
+		}
+
+	},
+	onload: function (frm) {
+		frm.add_fetch("physician", "department", "department");
+		if(frm.doc.employee){
+			frappe.call({
+				method: "frappe.client.get",
+				args:{
+					doctype: "Employee",
+					name: frm.doc.employee
+				},
+				callback: function(arg){
+					frappe.model.set_value(frm.doctype,frm.docname,"employee_name", arg.message.employee_name);
+					frappe.model.set_value(frm.doctype,frm.docname,"employee_designation", arg.message.designation);
+				}
+			});
+		}
+	}
+});
+
+frappe.ui.form.on("Lab Test", "patient", function(frm) {
+	if(frm.doc.patient){
+		frappe.call({
+			"method": "erpnext.healthcare.doctype.patient.patient.get_patient_detail",
+			args: {
+				patient: frm.doc.patient
+			},
+			callback: function (data) {
+				var age = null;
+				if(data.message.dob){
+					age = calculate_age(data.message.dob);
+				}
+				frappe.model.set_value(frm.doctype,frm.docname, "patient_age", age);
+				frappe.model.set_value(frm.doctype,frm.docname, "patient_sex", data.message.sex);
+				frappe.model.set_value(frm.doctype,frm.docname, "email", data.message.email);
+				frappe.model.set_value(frm.doctype,frm.docname, "mobile", data.message.mobile);
+				frappe.model.set_value(frm.doctype,frm.docname, "report_preference", data.message.report_preference);
+			}
+		});
+	}
+});
+
+frappe.ui.form.on('Normal Test Items', {
+	normal_test_items_remove: function() {
+		frappe.msgprint("Not permitted, configure Lab Test Template as required");
+		cur_frm.reload_doc();
+	}
+});
+
+frappe.ui.form.on('Special Test Items', {
+	special_test_items_remove: function() {
+		frappe.msgprint("Not permitted, configure Lab Test Template as required");
+		cur_frm.reload_doc();
+	}
+});
+
+var status_update = function(approve,frm){
+	var doc = frm.doc;
+	var status = null;
+	if(approve == 1){
+		status = "Approved";
+	}
+	else {
+		status = "Rejected";
+	}
+	frappe.call({
+		method: "erpnext.healthcare.doctype.lab_test.lab_test.update_status",
+		args: {status: status, name: doc.name},
+		callback: function(){
+			cur_frm.reload_doc();
+		}
+	});
+};
+
+var get_lab_test_prescribed = function(frm){
+	if(frm.doc.patient){
+		frappe.call({
+			method:	"erpnext.healthcare.doctype.lab_test.lab_test.get_lab_test_prescribed",
+			args:	{patient: frm.doc.patient},
+			callback: function(r){
+				show_lab_tests(frm, r.message);
+			}
+		});
+	}
+	else{
+		frappe.msgprint("Please select Patient to get Lab Tests");
+	}
+};
+
+var show_lab_tests = function(frm, result){
+	var d = new frappe.ui.Dialog({
+		title: __("Lab Test Prescriptions"),
+		fields: [
+			{
+				fieldtype: "HTML", fieldname: "lab_test"
+			}
+		]
+	});
+	var html_field = d.fields_dict.lab_test.$wrapper;
+	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-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-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-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);
+		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.set_df_property("template", "read_only", 1);
+			frm.set_df_property("patient", "read_only", 1);
+			frm.set_df_property("physician", "read_only", 1);
+			if($(this).attr("data-invoice") != 'null'){
+				frm.doc.invoice = $(this).attr("data-invoice");
+				refresh_field("invoice");
+			}else {
+				frm.doc.invoice = "";
+				refresh_field("invoice");
+			}
+
+			refresh_field("template");
+			d.hide();
+			return false;
+		});
+	});
+	if(!result){
+		var msg = "There are no Lab Test prescribed for "+frm.doc.patient;
+		$(repl('<div class="col-xs-12" style="padding-top:20px;" >%(msg)s</div></div>', {msg: msg})).appendTo(html_field);
+	}
+	d.show();
+};
+
+var make_invoice = function(frm){
+	var doc = frm.doc;
+	frappe.call({
+		method: "erpnext.healthcare.doctype.lab_test.lab_test.create_invoice",
+		args: {company:doc.company, patient:doc.patient, lab_tests: [doc.name], prescriptions:[]},
+		callback: function(r){
+			if(!r.exc){
+				if(r.message){
+					/*	frappe.show_alert(__('Sales Invoice {0} created',
+					['<a href="#Form/Sales Invoice/'+r.message+'">' + r.message+ '</a>']));	*/
+					frappe.set_route("Form", "Sales Invoice", r.message);
+				}
+				cur_frm.reload_doc();
+			}
+		}
+	});
+};
+
+cur_frm.cscript.custom_before_submit =  function(doc) {
+	if(doc.normal_test_items){
+		for(let result in doc.normal_test_items){
+			if(!doc.normal_test_items[result].result_value	&&	doc.normal_test_items[result].require_result_value == 1){
+				frappe.msgprint("Please input all required Result Value(s)");
+				throw("Error");
+			}
+		}
+	}
+	if(doc.special_test_items){
+		for(let result in doc.special_test_items){
+			if(!doc.special_test_items[result].result_value	&&	doc.special_test_items[result].require_result_value == 1){
+				frappe.msgprint("Please input all required Result Value(s)");
+				throw("Error");
+			}
+		}
+	}
+};
+
+var make_dialog = function(frm, emailed, printed) {
+	var number = frm.doc.mobile;
+
+	var dialog = new frappe.ui.Dialog({
+		title: 'Send SMS',
+		width: 400,
+		fields: [
+			{fieldname:'sms_type', fieldtype:'Select', label:'Type', options:
+			['Emailed','Printed']},
+			{fieldname:'number', fieldtype:'Data', label:'Mobile Number', reqd:1},
+			{fieldname:'messages_label', fieldtype:'HTML'},
+			{fieldname:'messages', fieldtype:'HTML', reqd:1}
+		],
+		primary_action_label: __("Send"),
+		primary_action : function(){
+			var values = dialog.fields_dict;
+			if(!values){
+				return;
+			}
+			send_sms(values,frm);
+			dialog.hide();
+		}
+	});
+	if(frm.doc.report_preference == "Email"){
+		dialog.set_values({
+			'sms_type': "Emailed",
+			'number': number
+		});
+		dialog.fields_dict.messages_label.html("Message".bold());
+		dialog.fields_dict.messages.html(emailed);
+	}else{
+		dialog.set_values({
+			'sms_type': "Printed",
+			'number': number
+		});
+		dialog.fields_dict.messages_label.html("Message".bold());
+		dialog.fields_dict.messages.html(printed);
+	}
+	var fd = dialog.fields_dict;
+	$(fd.sms_type.input).change(function(){
+		if(dialog.get_value('sms_type') == 'Emailed'){
+			dialog.set_values({
+				'number': number
+			});
+			fd.messages_label.html("Message".bold());
+			fd.messages.html(emailed);
+		}else{
+			dialog.set_values({
+				'number': number
+			});
+			fd.messages_label.html("Message".bold());
+			fd.messages.html(printed);
+		}
+	});
+	dialog.show();
+};
+
+var send_sms = function(v,frm){
+	var doc = frm.doc;
+	var number = v.number.last_value;
+	var messages = v.messages.wrapper.innerText;
+	frappe.call({
+		method: "frappe.core.doctype.sms_settings.sms_settings.send_sms",
+		args: {
+			receiver_list: [number],
+			msg: messages
+		},
+		callback: function(r) {
+			if(r.exc) {frappe.msgprint(r.exc); return; }
+			else{
+				frappe.call({
+					method: "erpnext.healthcare.doctype.lab_test.lab_test.update_lab_test_print_sms_email_status",
+					args: {print_sms_email: "sms_sent", name: doc.name},
+					callback: function(){
+						cur_frm.reload_doc();
+					}
+				});
+			}
+		}
+	});
+};
+
+var calculate_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)";
+};
diff --git a/erpnext/healthcare/doctype/lab_test/lab_test.json b/erpnext/healthcare/doctype/lab_test/lab_test.json
new file mode 100644
index 0000000..93e40cc
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test/lab_test.json
@@ -0,0 +1,1470 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "naming_series:", 
+ "beta": 1, 
+ "creation": "2016-03-29 17:34:47.509094", 
+ "custom": 0, 
+ "default_print_format": "", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "naming_series", 
+   "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": "Series", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "LP-", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "invoice", 
+   "fieldtype": "Link", 
+   "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": "Invoice", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sales Invoice", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "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": "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": 1, 
+   "set_only_once": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_name", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Patient Name", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "patient.patient_name", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_age", 
+   "fieldtype": "Data", 
+   "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": "Age", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_sex", 
+   "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": "Gender", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nMale\nFemale", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "physician", 
+   "fieldtype": "Link", 
+   "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": "Doctor", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Physician", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "email", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Email", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "mobile", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Mobile", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Company", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Company", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "c_b", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "department", 
+   "fieldtype": "Link", 
+   "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": "Department", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Medical Department", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "status", 
+   "fieldtype": "Select", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Status", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Draft\nCompleted\nApproved\nRejected\nCancelled", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "submitted_date", 
+   "fieldtype": "Datetime", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Submitted Date", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "approved_date", 
+   "fieldtype": "Datetime", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Approved Date", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample", 
+   "fieldtype": "Link", 
+   "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": "Sample ID", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sample Collection", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "", 
+   "fieldname": "result_date", 
+   "fieldtype": "Date", 
+   "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": "Result Date", 
+   "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": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "", 
+   "fieldname": "employee", 
+   "fieldtype": "Link", 
+   "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": "Lab Technician", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Employee", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "employee_name", 
+   "fieldtype": "Data", 
+   "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": "Technician Name", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "employee.employee_name", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "employee_designation", 
+   "fieldtype": "Data", 
+   "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": "Designation", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "employee.designation", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "user", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "User", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "User", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "report_preference", 
+   "fieldtype": "Data", 
+   "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": "Report Preference", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_first", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_name", 
+   "fieldtype": "Data", 
+   "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": "Test Name", 
+   "length": 0, 
+   "no_copy": 1, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_26", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "template", 
+   "fieldtype": "Link", 
+   "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": "Test Template", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test Template", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_group", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Test Group", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Item Group", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_normal", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "normal_test_items", 
+   "fieldtype": "Table", 
+   "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, 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Normal Test Items", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_special", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "special_test_items", 
+   "fieldtype": "Table", 
+   "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, 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Special Test Items", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_sensitivity", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sensitivity_test_items", 
+   "fieldtype": "Table", 
+   "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, 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sensitivity Test Items", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_comments", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_comment", 
+   "fieldtype": "Text", 
+   "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": "Comments", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "sb_customresult", 
+   "fieldtype": "Section Break", 
+   "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": "Custom Result", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "custom_result", 
+   "fieldtype": "Text Editor", 
+   "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": "Custom Result", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "email_sent", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "sms_sent", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "printed", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "normal_toggle", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "special_toggle", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "sensitivity_toggle", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "amended_from", 
+   "fieldtype": "Link", 
+   "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": "Amended From", 
+   "length": 0, 
+   "no_copy": 1, 
+   "options": "Lab Test", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "prescription", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Prescription", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Prescription", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "icon": "", 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 1, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:52:14.180774", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Lab Test", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 1, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 1, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "LabTest Approver", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "patient,invoice,physician,test_name,sample", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "patient", 
+ "track_changes": 1, 
+ "track_seen": 1
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/lab_test/lab_test.py b/erpnext/healthcare/doctype/lab_test/lab_test.py
new file mode 100644
index 0000000..0daf9cb
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test/lab_test.py
@@ -0,0 +1,295 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+import json
+from frappe.utils import getdate
+from erpnext.healthcare.doctype.healthcare_settings.healthcare_settings import get_receivable_account
+from frappe import _
+
+class LabTest(Document):
+	def on_submit(self):
+		frappe.db.set_value(self.doctype,self.name,"submitted_date", getdate())
+		insert_lab_test_to_medical_record(self)
+		frappe.db.set_value("Lab Test", self.name, "status", "Completed")
+
+	def on_cancel(self):
+		delete_lab_test_from_medical_record(self)
+		frappe.db.set_value("Lab Test", self.name, "status", "Cancelled")
+		self.reload()
+
+	def on_update(self):
+		if(self.sensitivity_test_items):
+			sensitivity = sorted(self.sensitivity_test_items, key=lambda x: x.antibiotic_sensitivity)
+			for i, item in enumerate(sensitivity):
+				item.idx = i+1
+			self.sensitivity_test_items = sensitivity
+
+	def after_insert(self):
+		if(self.prescription):
+			frappe.db.set_value("Lab Prescription", self.prescription, "test_created", 1)
+		if not self.test_name and self.template:
+			self.load_test_from_template()
+			self.reload()
+
+	def load_test_from_template(self):
+		lab_test = self
+		create_test_from_template(lab_test)
+		self.reload()
+
+def create_test_from_template(lab_test):
+	template = frappe.get_doc("Lab Test Template", lab_test.template)
+	patient = frappe.get_doc("Patient", lab_test.patient)
+
+	lab_test.test_name = template.test_name
+	lab_test.result_date = getdate()
+	lab_test.department = template.department
+	lab_test.test_group = template.test_group
+
+	lab_test = create_sample_collection(lab_test, template, patient, None)
+	lab_test = load_result_format(lab_test, template, None, None)
+
+@frappe.whitelist()
+def update_status(status, name):
+	frappe.db.sql("""update `tabLab Test` set status=%s, approved_date=%s where name = %s""", (status, getdate(), name))
+
+@frappe.whitelist()
+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):
+	#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
+	lab_test.patient = patient.name
+	lab_test.patient_age = patient.get_age()
+	lab_test.patient_sex = patient.sex
+	lab_test.email = patient.email
+	lab_test.mobile = patient.mobile
+	lab_test.department = template.department
+	lab_test.test_name = template.test_name
+	lab_test.template = template.name
+	lab_test.test_group = template.test_group
+	lab_test.result_date = getdate()
+	lab_test.report_preference = patient.report_preference
+	return lab_test
+
+def create_normals(template, lab_test):
+	lab_test.normal_toggle = "1"
+	normal = lab_test.append("normal_test_items")
+	normal.test_name = template.test_name
+	normal.test_uom = template.test_uom
+	normal.normal_range = template.test_normal_range
+	normal.require_result_value = 1
+	normal.template = template.name
+
+def create_compounds(template, lab_test, is_group):
+	lab_test.normal_toggle = "1"
+	for normal_test_template in template.normal_test_templates:
+		normal = lab_test.append("normal_test_items")
+		if is_group:
+			normal.test_event = normal_test_template.test_event
+		else:
+			normal.test_name = normal_test_template.test_event
+
+		normal.test_uom = normal_test_template.test_uom
+		normal.normal_range = normal_test_template.normal_range
+		normal.require_result_value = 1
+		normal.template = template.name
+
+def create_specials(template, lab_test):
+	lab_test.special_toggle = "1"
+	if(template.sensitivity):
+		lab_test.sensitivity_toggle = "1"
+	for special_test_template in template.special_test_template:
+		special = lab_test.append("special_test_items")
+		special.test_particulars = special_test_template.particulars
+		special.require_result_value = 1
+		special.template = template.name
+
+def create_sample_doc(template, patient, invoice):
+	if(template.sample):
+		sample_exist = frappe.db.exists({
+			"doctype": "Sample Collection",
+			"patient": patient.name,
+			"docstatus": 0,
+			"sample": template.sample})
+		if sample_exist :
+			#Update Sample Collection by adding quantity
+			sample_collection = frappe.get_doc("Sample Collection",sample_exist[0][0])
+			quantity = int(sample_collection.sample_quantity)+int(template.sample_quantity)
+			if(template.sample_collection_details):
+				sample_collection_details = sample_collection.sample_collection_details+"\n==============\n"+"Test :"+template.test_name+"\n"+"Collection Detials:\n\t"+template.sample_collection_details
+				frappe.db.set_value("Sample Collection", sample_collection.name, "sample_collection_details",sample_collection_details)
+			frappe.db.set_value("Sample Collection", sample_collection.name, "sample_quantity",quantity)
+
+		else:
+			#create Sample Collection for template, copy vals from Invoice
+			sample_collection = frappe.new_doc("Sample Collection")
+			if(invoice):
+				sample_collection.invoice = invoice
+			sample_collection.patient = patient.name
+			sample_collection.patient_age = patient.get_age()
+			sample_collection.patient_sex = patient.sex
+			sample_collection.sample = template.sample
+			sample_collection.sample_uom = template.sample_uom
+			sample_collection.sample_quantity = template.sample_quantity
+			if(template.sample_collection_details):
+				sample_collection.sample_collection_details = "Test :"+template.test_name+"\n"+"Collection Detials:\n\t"+template.sample_collection_details
+			sample_collection.save(ignore_permissions=True)
+
+		return sample_collection
+
+@frappe.whitelist()
+def create_lab_test_from_desk(patient, template, prescription, invoice=None):
+	lab_test_exist = frappe.db.exists({
+		"doctype": "Lab Test",
+		"prescription": prescription
+		})
+	if lab_test_exist:
+		return
+	template = frappe.get_doc("Lab Test Template", template)
+	#skip the loop if there is no test_template for Item
+	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)
+	return lab_test.name
+
+def create_sample_collection(lab_test, template, patient, invoice):
+	if(frappe.db.get_value("Healthcare Settings", None, "require_sample_collection") == "1"):
+		sample_collection = create_sample_doc(template, patient, invoice)
+		if(sample_collection):
+			lab_test.sample = sample_collection.name
+	return lab_test
+
+def load_result_format(lab_test, template, prescription, invoice):
+	if(template.test_template_type == 'Single'):
+		create_normals(template, lab_test)
+	elif(template.test_template_type == 'Compound'):
+		create_compounds(template, lab_test, False)
+	elif(template.test_template_type == 'Descriptive'):
+		create_specials(template, lab_test)
+	elif(template.test_template_type == 'Grouped'):
+		#iterate for each template in the group and create one result for all.
+		for test_group in template.test_groups:
+			#template_in_group = None
+			if(test_group.test_template):
+				template_in_group = frappe.get_doc("Lab Test Template",
+								test_group.test_template)
+				if(template_in_group):
+					if(template_in_group.test_template_type == 'Single'):
+						create_normals(template_in_group, lab_test)
+					elif(template_in_group.test_template_type == 'Compound'):
+						normal_heading = lab_test.append("normal_test_items")
+						normal_heading.test_name = template_in_group.test_name
+						normal_heading.require_result_value = 0
+						normal_heading.template = template_in_group.name
+						create_compounds(template_in_group, lab_test, True)
+					elif(template_in_group.test_template_type == 'Descriptive'):
+						special_heading = lab_test.append("special_test_items")
+						special_heading.test_name = template_in_group.test_name
+						special_heading.require_result_value = 0
+						special_heading.template = template_in_group.name
+						create_specials(template_in_group, lab_test)
+			else:
+				normal = lab_test.append("normal_test_items")
+				normal.test_name = test_group.group_event
+				normal.test_uom = test_group.group_test_uom
+				normal.normal_range = test_group.group_test_normal_range
+				normal.require_result_value = 1
+				normal.template = template.name
+	if(template.test_template_type != 'No Result'):
+		if(prescription):
+			lab_test.prescription = prescription
+			if(invoice):
+				frappe.db.set_value("Lab Prescription", prescription, "invoice", invoice)
+		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)
+	lab_test = create_sample_collection(lab_test, template, patient, invoice)
+	lab_test = load_result_format(lab_test, template, prescription, invoice)
+	return lab_test
+
+@frappe.whitelist()
+def get_employee_by_user_id(user_id):
+	emp_id = frappe.db.get_value("Employee",{"user_id":user_id})
+	employee = frappe.get_doc("Employee",emp_id)
+	return employee
+
+def insert_lab_test_to_medical_record(doc):
+	subject = str(doc.test_name)
+	if(doc.test_comment):
+		subject += ", \n"+str(doc.test_comment)
+	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.result_date
+	medical_record.reference_doctype = "Lab Test"
+	medical_record.reference_name = doc.name
+	medical_record.reference_owner = doc.owner
+	medical_record.save(ignore_permissions=True)
+
+def delete_lab_test_from_medical_record(self):
+	medical_record_id = frappe.db.sql("select name from `tabPatient Medical Record` where reference_name=%s",(self.name))
+
+	if(medical_record_id[0][0]):
+		frappe.delete_doc("Patient Medical Record", medical_record_id[0][0])
+
+def create_item_line(test_code, sales_invoice):
+	if test_code:
+		item = frappe.get_doc("Item", test_code)
+		if item:
+			if not item.disabled:
+				sales_invoice_line = sales_invoice.append("items")
+				sales_invoice_line.item_code = item.item_code
+				sales_invoice_line.item_name =  item.item_name
+				sales_invoice_line.qty = 1.0
+				sales_invoice_line.description = item.description
+
+@frappe.whitelist()
+def create_invoice(company, patient, lab_tests, prescriptions):
+	test_ids = json.loads(lab_tests)
+	line_ids = json.loads(prescriptions)
+	if not test_ids and not line_ids:
+		return
+	sales_invoice = frappe.new_doc("Sales Invoice")
+	sales_invoice.customer = frappe.get_value("Patient", patient, "customer")
+	sales_invoice.due_date = getdate()
+	sales_invoice.is_pos = '0'
+	sales_invoice.debit_to = get_receivable_account(company)
+	for line in line_ids:
+		test_code = frappe.get_value("Lab Prescription", line, "test_code")
+		create_item_line(test_code, sales_invoice)
+	for test in test_ids:
+		template = frappe.get_value("Lab Test", test, "template")
+		test_code = frappe.get_value("Lab Test Template", template, "item")
+		create_item_line(test_code, sales_invoice)
+	sales_invoice.set_missing_values()
+	sales_invoice.save()
+	#set invoice in lab test
+	for test in test_ids:
+		frappe.db.set_value("Lab Test", test, "invoice", sales_invoice.name)
+		prescription = frappe.db.get_value("Lab Test", test, "prescription")
+		if prescription:
+			frappe.db.set_value("Lab Prescription", prescription, "invoice", sales_invoice.name)
+	#set invoice in prescription
+	for line in line_ids:
+		frappe.db.set_value("Lab Prescription", line, "invoice", sales_invoice.name)
+	return sales_invoice.name
+
+@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,
+	`tabLab Prescription` cp where ct.patient='{0}' and cp.parent=ct.name and cp.test_created=0""").format(patient))
diff --git a/erpnext/healthcare/doctype/lab_test/lab_test_list.js b/erpnext/healthcare/doctype/lab_test/lab_test_list.js
new file mode 100644
index 0000000..c36c115
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test/lab_test_list.js
@@ -0,0 +1,15 @@
+/*
+(c) ESS 2015-16
+*/
+frappe.listview_settings['Lab Test'] = {
+	add_fields: ["name", "status", "invoice"],
+	filters:[["docstatus","=","0"]],
+	get_indicator: function(doc) {
+		if(doc.status=="Approved"){
+			return [__("Approved"), "green", "status,=,Approved"];
+		}
+		if(doc.status=="Rejected"){
+			return [__("Rejected"), "yellow", "status,=,Rejected"];
+		}
+	}
+};
diff --git a/erpnext/healthcare/doctype/lab_test/test_lab_test.js b/erpnext/healthcare/doctype/lab_test/test_lab_test.js
new file mode 100644
index 0000000..57cb22b
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test/test_lab_test.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Lab Test", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Lab Test
+		() => frappe.tests.make('Lab Test', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/lab_test/test_lab_test.py b/erpnext/healthcare/doctype/lab_test/test_lab_test.py
new file mode 100644
index 0000000..4131ad9
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test/test_lab_test.py
@@ -0,0 +1,10 @@
+# -*- 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('Lab Test')
+
+class TestLabTest(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/lab_test_groups/__init__.py b/erpnext/healthcare/doctype/lab_test_groups/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_groups/__init__.py
diff --git a/erpnext/healthcare/doctype/lab_test_groups/lab_test_groups.json b/erpnext/healthcare/doctype/lab_test_groups/lab_test_groups.json
new file mode 100644
index 0000000..d5607f0
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_groups/lab_test_groups.json
@@ -0,0 +1,291 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2016-03-29 17:37:29.913583", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Add Test", 
+   "depends_on": "", 
+   "fieldname": "template_or_new_line", 
+   "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": "", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Add Test\nAdd new line", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.template_or_new_line == 'Add Test'", 
+   "fieldname": "test_template", 
+   "fieldtype": "Link", 
+   "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": "Test Name", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test Template", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_rate", 
+   "fieldtype": "Currency", 
+   "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": "Rate", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "test_template.test_rate", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_description", 
+   "fieldtype": "Data", 
+   "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": "Description", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "test_template.test_description", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.template_or_new_line == 'Add new line'", 
+   "fieldname": "group_event", 
+   "fieldtype": "Data", 
+   "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": "Event", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.template_or_new_line =='Add new line'", 
+   "fieldname": "group_test_uom", 
+   "fieldtype": "Link", 
+   "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": "UOM", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test UOM", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.template_or_new_line == 'Add new line'", 
+   "fieldname": "group_test_normal_range", 
+   "fieldtype": "Long Text", 
+   "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": "Normal Range", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_8", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }
+ ], 
+ "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-08-31 14:07:35.188661", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Lab Test Groups", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "quick_entry": 0, 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/lab_test_groups/lab_test_groups.py b/erpnext/healthcare/doctype/lab_test_groups/lab_test_groups.py
new file mode 100644
index 0000000..c67531c
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_groups/lab_test_groups.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class LabTestGroups(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/lab_test_sample/__init__.py b/erpnext/healthcare/doctype/lab_test_sample/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_sample/__init__.py
diff --git a/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.js b/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.js
new file mode 100644
index 0000000..a5f4b4d
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Lab Test Sample', {
+});
diff --git a/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.json b/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.json
new file mode 100644
index 0000000..46c04c6
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.json
@@ -0,0 +1,145 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:sample", 
+ "beta": 1, 
+ "creation": "2016-04-04 17:35:44.823951", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample", 
+   "fieldtype": "Data", 
+   "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": "Sample", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 1, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample_uom", 
+   "fieldtype": "Data", 
+   "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": "UOM", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:46:22.508908", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Lab Test Sample", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 0
+  }
+ ], 
+ "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", 
+ "title_field": "sample", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.py b/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.py
new file mode 100644
index 0000000..4c66b72
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_sample/lab_test_sample.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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 LabTestSample(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/lab_test_sample/test_lab_test_sample.js b/erpnext/healthcare/doctype/lab_test_sample/test_lab_test_sample.js
new file mode 100644
index 0000000..ace60de
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_sample/test_lab_test_sample.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Lab Test Sample", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Lab Test Sample
+		() => frappe.tests.make('Lab Test Sample', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/lab_test_sample/test_lab_test_sample.py b/erpnext/healthcare/doctype/lab_test_sample/test_lab_test_sample.py
new file mode 100644
index 0000000..2bc56bd
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_sample/test_lab_test_sample.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestLabTestSample(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/lab_test_template/__init__.py b/erpnext/healthcare/doctype/lab_test_template/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_template/__init__.py
diff --git a/erpnext/healthcare/doctype/lab_test_template/lab_test_template.js b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.js
new file mode 100644
index 0000000..a820298
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.js
@@ -0,0 +1,132 @@
+// Copyright (c) 2016, ESS
+// License: ESS license.txt
+
+frappe.ui.form.on("Lab Test Template",{
+	test_name: function(frm) {
+		if(!frm.doc.test_code)
+			frm.set_value("test_code", frm.doc.test_name);
+		if(!frm.doc.test_description)
+			frm.set_value("test_description", frm.doc.test_name);
+	},
+	refresh :  function(frm){
+		// Restrict Special, Grouped type templates in Child TestGroups
+		frm.set_query("test_template", "test_groups", function() {
+			return {
+				filters: {
+					test_template_type:['in',['Single','Compound']]
+				}
+			};
+		});
+	}
+});
+
+cur_frm.cscript.custom_refresh = function(doc) {
+	cur_frm.set_df_property("test_code", "read_only", doc.__islocal ? 0 : 1);
+
+	if(!doc.__islocal) {
+		cur_frm.add_custom_button(__('Change Template Code'), function() {
+			change_template_code(cur_frm,doc);
+		} );
+		if(doc.disabled == 1){
+			cur_frm.add_custom_button(__('Enable Template'), function() {
+				enable_template(cur_frm);
+			} );
+		}
+		else{
+			cur_frm.add_custom_button(__('Disable Template'), function() {
+				disable_template(cur_frm);
+			} );
+		}
+	}
+};
+
+var disable_template = function(frm){
+	var doc = frm.doc;
+	frappe.call({
+		method: 		"erpnext.healthcare.doctype.lab_test_template.lab_test_template.disable_enable_test_template",
+		args: {status: 1, name: doc.name, is_billable: doc.is_billable},
+		callback: function(){
+			cur_frm.reload_doc();
+		}
+	});
+};
+
+var enable_template = function(frm){
+	var doc = frm.doc;
+	frappe.call({
+		method: 		"erpnext.healthcare.doctype.lab_test_template.lab_test_template.disable_enable_test_template",
+		args: {status: 0, name: doc.name, is_billable: doc.is_billable},
+		callback: function(){
+			cur_frm.reload_doc();
+		}
+	});
+};
+
+
+var change_template_code = function(frm,doc){
+	var d = new frappe.ui.Dialog({
+		title:__("Change Template Code"),
+		fields:[
+			{
+				"fieldtype": "Data",
+				"label": "Test Template Code",
+				"fieldname": "Test Code",
+				reqd:1
+			},
+			{
+				"fieldtype": "Button",
+				"label": __("Change Code"),
+				click: function() {
+					var values = d.get_values();
+					if(!values)
+						return;
+					change_test_code_from_template(values["Test Code"],doc);
+					d.hide();
+				}
+			}
+		]
+	});
+	d.show();
+	d.set_values({
+		'Test Code': doc.test_code
+	});
+
+	var change_test_code_from_template = function(test_code,doc){
+		frappe.call({
+			"method": "erpnext.healthcare.doctype.lab_test_template.lab_test_template.change_test_code_from_template",
+			"args": {test_code: test_code, doc: doc},
+			callback: function (data) {
+				frappe.set_route("Form", "Lab Test Template", data.message);
+			}
+		});
+	};
+};
+
+frappe.ui.form.on("Lab Test Template", "test_name", function(frm){
+
+	frm.doc.change_in_item = 1;
+
+});
+frappe.ui.form.on("Lab Test Template", "test_rate", function(frm){
+
+	frm.doc.change_in_item = 1;
+
+});
+frappe.ui.form.on("Lab Test Template", "test_group", function(frm){
+
+	frm.doc.change_in_item = 1;
+
+});
+frappe.ui.form.on("Lab Test Template", "test_description", function(frm){
+
+	frm.doc.change_in_item = 1;
+
+});
+
+frappe.ui.form.on("Lab Test Groups", "template_or_new_line", function (frm, cdt, cdn) {
+	var child = locals[cdt][cdn];
+	if(child.template_or_new_line =="Add new line"){
+		frappe.model.set_value(cdt, cdn, 'test_template', "");
+		frappe.model.set_value(cdt, cdn, 'test_description', "");
+	}
+});
diff --git a/erpnext/healthcare/doctype/lab_test_template/lab_test_template.json b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.json
new file mode 100644
index 0000000..9e692d5
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.json
@@ -0,0 +1,978 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:test_code", 
+ "beta": 1, 
+ "creation": "2016-03-29 17:35:36.761223", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_name", 
+   "fieldtype": "Data", 
+   "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": "Test Name", 
+   "length": 0, 
+   "no_copy": 1, 
+   "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": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "item", 
+   "fieldtype": "Link", 
+   "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": "Item", 
+   "length": 0, 
+   "no_copy": 1, 
+   "options": "Item", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_code", 
+   "fieldtype": "Data", 
+   "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": "Item Code", 
+   "length": 0, 
+   "no_copy": 1, 
+   "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": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "", 
+   "fieldname": "test_group", 
+   "fieldtype": "Link", 
+   "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": "Item Group", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Item Group", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "department", 
+   "fieldtype": "Link", 
+   "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": "Department", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Medical Department", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_3", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "", 
+   "description": "Single for results which require only a single input, result UOM and normal value \n<br>\nCompound for results which require multiple input fields with corresponding event names, result UOMs and normal values\n<br>\nDescriptive for tests which have multiple result components and corresponding result entry fields. \n<br>\nGrouped for test templates which are a group of other test templates.\n<br>\nNo Result for tests with no results. Also, no Lab Test is created. e.g.. Sub Tests for Grouped results.", 
+   "fieldname": "test_template_type", 
+   "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": "Result Format", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nSingle\nCompound\nDescriptive\nGrouped\nNo Result", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "1", 
+   "depends_on": "eval:doc.test_template_type != 'Grouped'", 
+   "description": "If unchecked, the item wont be appear in Sales Invoice, but can be used in group test creation. ", 
+   "fieldname": "is_billable", 
+   "fieldtype": "Check", 
+   "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": "Is billable", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.is_billable == 1", 
+   "description": "This value is updated in the Default Sales Price List.", 
+   "fieldname": "test_rate", 
+   "fieldtype": "Currency", 
+   "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": "Standard Selling Rate", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "collapsible_depends_on": "", 
+   "columns": 0, 
+   "depends_on": "eval:doc.test_template_type == 'Single'", 
+   "fieldname": "section_break_normal", 
+   "fieldtype": "Section Break", 
+   "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": "Lab Routine", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_uom", 
+   "fieldtype": "Link", 
+   "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": "UOM", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test UOM", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_normal_range", 
+   "fieldtype": "Long Text", 
+   "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": "Normal Range", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_10", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "collapsible_depends_on": "", 
+   "columns": 0, 
+   "depends_on": "eval:doc.test_template_type == 'Compound'", 
+   "fieldname": "section_break_compound", 
+   "fieldtype": "Section Break", 
+   "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": "Compound", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "normal_test_templates", 
+   "fieldtype": "Table", 
+   "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, 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Normal Test Template", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.test_template_type == 'Descriptive'", 
+   "fieldname": "section_break_special", 
+   "fieldtype": "Section Break", 
+   "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": "Special", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "sensitivity", 
+   "fieldtype": "Check", 
+   "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": "Sensitivity", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "special_test_template", 
+   "fieldtype": "Table", 
+   "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, 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Special Test Template", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.test_template_type == 'Grouped'", 
+   "fieldname": "section_break_group", 
+   "fieldtype": "Section Break", 
+   "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": "Group", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_groups", 
+   "fieldtype": "Table", 
+   "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": "", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test Groups", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_description", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_description", 
+   "fieldtype": "Text", 
+   "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": "Description", 
+   "length": 0, 
+   "no_copy": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_sample_collection", 
+   "fieldtype": "Section Break", 
+   "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": "Sample Collection", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample", 
+   "fieldtype": "Link", 
+   "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": "Sample", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test Sample", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample_uom", 
+   "fieldtype": "Data", 
+   "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": "UOM", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "sample.sample_uom", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "sample_quantity", 
+   "fieldtype": "Float", 
+   "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": "Quantity", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample_collection_details", 
+   "fieldtype": "Text", 
+   "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": "Collection Details", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "change_in_item", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Change In Item", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "disabled", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "disabled", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:45:27.655822", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Lab Test Template", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 0
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "test_code,test_name,test_template_type", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "test_name", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/lab_test_template/lab_test_template.py b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.py
new file mode 100644
index 0000000..bb0ead6
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.py
@@ -0,0 +1,121 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe, json
+from frappe.model.document import Document
+from frappe import _
+
+class LabTestTemplate(Document):
+	def on_update(self):
+		#Item and Price List update --> if (change_in_item)
+		if(self.change_in_item and self.is_billable == 1 and self.item):
+			updating_item(self)
+			if not item_price_exist(self):
+				if(self.test_rate != 0.0):
+					price_list_name = frappe.db.get_value("Price List", {"selling": 1})
+					if(self.test_rate):
+						make_item_price(self.test_code, price_list_name, self.test_rate)
+					else:
+						make_item_price(self.test_code, price_list_name, 0.0)
+
+			frappe.db.set_value(self.doctype,self.name,"change_in_item",0)
+		elif(self.is_billable == 0 and self.item):
+			frappe.db.set_value("Item",self.item,"disabled",1)
+		self.reload()
+
+	def after_insert(self):
+		if not self.item:
+			create_item_from_template(self)
+
+	#Call before delete the template
+	def on_trash(self):
+		# remove template refernce from item and disable item
+		if(self.item):
+			try:
+				frappe.delete_doc("Item",self.item)
+			except Exception:
+				frappe.throw("""Not permitted. Please disable the Test Template""")
+
+def item_price_exist(doc):
+	item_price = frappe.db.exists({
+	"doctype": "Item Price",
+	"item_code": doc.test_code})
+	if(item_price):
+		return True
+	else:
+		return False
+
+def updating_item(self):
+	frappe.db.sql("""update `tabItem` set item_name=%s, item_group=%s, disabled=0, standard_rate=%s,
+		description=%s, modified=NOW() where item_code=%s""",
+		(self.test_name, self.test_group , self.test_rate, self.test_description, self.item))
+
+def create_item_from_template(doc):
+	if(doc.is_billable == 1):
+		disabled = 0
+	else:
+		disabled = 1
+	#insert item
+	item =  frappe.get_doc({
+	"doctype": "Item",
+	"item_code": doc.test_code,
+	"item_name":doc.test_name,
+	"item_group": doc.test_group,
+	"description":doc.test_description,
+	"is_sales_item": 1,
+	"is_service_item": 1,
+	"is_purchase_item": 0,
+	"is_stock_item": 0,
+	"show_in_website": 0,
+	"is_pro_applicable": 0,
+	"disabled": disabled,
+	"stock_uom": "Unit"
+	}).insert(ignore_permissions=True)
+
+	#insert item price
+	#get item price list to insert item price
+	if(doc.test_rate != 0.0):
+		price_list_name = frappe.db.get_value("Price List", {"selling": 1})
+		if(doc.test_rate):
+			make_item_price(item.name, price_list_name, doc.test_rate)
+			item.standard_rate = doc.test_rate
+		else:
+			make_item_price(item.name, price_list_name, 0.0)
+			item.standard_rate = 0.0
+	item.save(ignore_permissions = True)
+	#Set item to the template
+	frappe.db.set_value("Lab Test Template", doc.name, "item", item.name)
+
+	doc.reload() #refresh the doc after insert.
+
+def make_item_price(item, price_list_name, item_price):
+	frappe.get_doc({
+		"doctype": "Item Price",
+		"price_list": price_list_name,
+		"item_code": item,
+		"price_list_rate": item_price
+	}).insert(ignore_permissions=True)
+
+@frappe.whitelist()
+def change_test_code_from_template(test_code, doc):
+	args = json.loads(doc)
+	doc = frappe._dict(args)
+
+	item_exist = frappe.db.exists({
+		"doctype": "Item",
+		"item_code": test_code})
+	if(item_exist):
+		frappe.throw(_("Code {0} already exist").format(test_code))
+	else:
+		frappe.rename_doc("Item", doc.name, test_code, ignore_permissions = True)
+		frappe.db.set_value("Lab Test Template",doc.name,"test_code",test_code)
+		frappe.rename_doc("Lab Test Template", doc.name, test_code, ignore_permissions = True)
+	return test_code
+
+@frappe.whitelist()
+def disable_enable_test_template(status, name,  is_billable):
+	frappe.db.set_value("Lab Test Template",name,"disabled",status)
+	if(is_billable == 1):
+		frappe.db.set_value("Item",name,"disabled",status)
diff --git a/erpnext/healthcare/doctype/lab_test_template/lab_test_template_list.js b/erpnext/healthcare/doctype/lab_test_template/lab_test_template_list.js
new file mode 100644
index 0000000..26f55c3
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_template/lab_test_template_list.js
@@ -0,0 +1,15 @@
+/*
+(c) ESS 2015-16
+*/
+frappe.listview_settings['Lab Test Template'] = {
+	add_fields: ["test_name", "test_code", "test_rate"],
+	filters:[["disabled","=",0]],
+	/*	get_indicator: function(doc) {
+		if(doc.disabled==1){
+        		return [__("Disabled"), "red", "disabled,=,Disabled"];
+        	}
+		if(doc.disabled==0){
+        		return [__("Enabled"), "green", "disabled,=,0"];
+        	}
+	}		*/
+};
diff --git a/erpnext/healthcare/doctype/lab_test_template/test_lab_test_template.js b/erpnext/healthcare/doctype/lab_test_template/test_lab_test_template.js
new file mode 100644
index 0000000..7c2ec8c
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_template/test_lab_test_template.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Lab Test Template", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Lab Test Template
+		() => frappe.tests.make('Lab Test Template', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/lab_test_template/test_lab_test_template.py b/erpnext/healthcare/doctype/lab_test_template/test_lab_test_template.py
new file mode 100644
index 0000000..4c9f55a
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_template/test_lab_test_template.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+# test_records = frappe.get_test_records('Lab Test Template')
+
+class TestLabTestTemplate(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/lab_test_uom/__init__.py b/erpnext/healthcare/doctype/lab_test_uom/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_uom/__init__.py
diff --git a/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.js b/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.js
new file mode 100644
index 0000000..2107e79
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2016, ESS and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Lab Test UOM', {
+});
diff --git a/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.json b/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.json
new file mode 100644
index 0000000..daa533d
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.json
@@ -0,0 +1,145 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:test_uom", 
+ "beta": 1, 
+ "creation": "2016-03-29 17:28:08.630148", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_uom", 
+   "fieldtype": "Data", 
+   "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": "Test UOM", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "uom_description", 
+   "fieldtype": "Data", 
+   "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": "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:41:40.186676", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Lab Test UOM", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 0
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "test_uom", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "test_uom", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.py b/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.py
new file mode 100644
index 0000000..7ce8d2d
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_uom/lab_test_uom.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class LabTestUOM(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/lab_test_uom/test_lab_test_uom.js b/erpnext/healthcare/doctype/lab_test_uom/test_lab_test_uom.js
new file mode 100644
index 0000000..1328dda
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_uom/test_lab_test_uom.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Lab Test UOM", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Lab Test UOM
+		() => frappe.tests.make('Lab Test UOM', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/lab_test_uom/test_lab_test_uom.py b/erpnext/healthcare/doctype/lab_test_uom/test_lab_test_uom.py
new file mode 100644
index 0000000..0b3f516
--- /dev/null
+++ b/erpnext/healthcare/doctype/lab_test_uom/test_lab_test_uom.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+# test_records = frappe.get_test_records('Lab Test UOM')
+
+class TestLabTestUOM(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/medical_code/__init__.py b/erpnext/healthcare/doctype/medical_code/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code/__init__.py
diff --git a/erpnext/healthcare/doctype/medical_code/medical_code.js b/erpnext/healthcare/doctype/medical_code/medical_code.js
new file mode 100644
index 0000000..0422d77
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code/medical_code.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Medical Code', {
+});
diff --git a/erpnext/healthcare/doctype/medical_code/medical_code.json b/erpnext/healthcare/doctype/medical_code/medical_code.json
new file mode 100644
index 0000000..71a2278
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code/medical_code.json
@@ -0,0 +1,156 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "beta": 1, 
+ "creation": "2017-06-21 13:02:56.122897", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "medical_code_standard", 
+   "fieldtype": "Link", 
+   "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": "Medical Code Standard", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Medical Code Standard", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "code", 
+   "fieldtype": "Data", 
+   "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": "Code", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 1, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "description", 
+   "fieldtype": "Small Text", 
+   "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": "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 14:01:18.817484", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Medical Code", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "code, description", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/medical_code/medical_code.py b/erpnext/healthcare/doctype/medical_code/medical_code.py
new file mode 100644
index 0000000..0deaac3
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code/medical_code.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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 MedicalCode(Document):
+	def autoname(self):
+		self.name = self.medical_code_standard+" "+self.code
diff --git a/erpnext/healthcare/doctype/medical_code/test_medical_code.js b/erpnext/healthcare/doctype/medical_code/test_medical_code.js
new file mode 100644
index 0000000..8cc7c40
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code/test_medical_code.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Medical Code", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Medical Code
+		() => frappe.tests.make('Medical Code', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/medical_code/test_medical_code.py b/erpnext/healthcare/doctype/medical_code/test_medical_code.py
new file mode 100644
index 0000000..b1e0402
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code/test_medical_code.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestMedicalCode(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/medical_code_standard/__init__.py b/erpnext/healthcare/doctype/medical_code_standard/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code_standard/__init__.py
diff --git a/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.js b/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.js
new file mode 100644
index 0000000..4bf6d3e
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Medical Code Standard', {
+});
diff --git a/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.json b/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.json
new file mode 100644
index 0000000..886938d
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.json
@@ -0,0 +1,94 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:medical_code", 
+ "beta": 1, 
+ "creation": "2017-06-21 13:07:00.463176", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "medical_code", 
+   "fieldtype": "Data", 
+   "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": "Medical Code", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 14:15:40.820693", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Medical Code Standard", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "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
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.py b/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.py
new file mode 100644
index 0000000..7b2731c
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code_standard/medical_code_standard.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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 MedicalCodeStandard(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/medical_code_standard/test_medical_code_standard.js b/erpnext/healthcare/doctype/medical_code_standard/test_medical_code_standard.js
new file mode 100644
index 0000000..6ab6d53
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code_standard/test_medical_code_standard.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Medical Code Standard", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Medical Code Standard
+		() => frappe.tests.make('Medical Code Standard', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/medical_code_standard/test_medical_code_standard.py b/erpnext/healthcare/doctype/medical_code_standard/test_medical_code_standard.py
new file mode 100644
index 0000000..fde095d
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_code_standard/test_medical_code_standard.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestMedicalCodeStandard(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/medical_department/__init__.py b/erpnext/healthcare/doctype/medical_department/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_department/__init__.py
diff --git a/erpnext/healthcare/doctype/medical_department/medical_department.js b/erpnext/healthcare/doctype/medical_department/medical_department.js
new file mode 100644
index 0000000..25aeeb8
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_department/medical_department.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Medical Department', {
+});
diff --git a/erpnext/healthcare/doctype/medical_department/medical_department.json b/erpnext/healthcare/doctype/medical_department/medical_department.json
new file mode 100644
index 0000000..40f14ca
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_department/medical_department.json
@@ -0,0 +1,156 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:department", 
+ "beta": 1, 
+ "creation": "2017-02-27 13:38:30.806362", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "department", 
+   "fieldtype": "Data", 
+   "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": "Department", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:41:59.611698", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Medical Department", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Nursing User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "department", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "department", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/medical_department/medical_department.py b/erpnext/healthcare/doctype/medical_department/medical_department.py
new file mode 100644
index 0000000..0f2d4fc
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_department/medical_department.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class MedicalDepartment(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/medical_department/test_medical_department.js b/erpnext/healthcare/doctype/medical_department/test_medical_department.js
new file mode 100644
index 0000000..fdf4971
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_department/test_medical_department.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Medical Department", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Medical Department
+		() => frappe.tests.make('Medical Department', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/medical_department/test_medical_department.py b/erpnext/healthcare/doctype/medical_department/test_medical_department.py
new file mode 100644
index 0000000..543750a
--- /dev/null
+++ b/erpnext/healthcare/doctype/medical_department/test_medical_department.py
@@ -0,0 +1,10 @@
+# -*- 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('Medical Department')
+
+class TestMedicalDepartment(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/normal_test_items/__init__.py b/erpnext/healthcare/doctype/normal_test_items/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/normal_test_items/__init__.py
diff --git a/erpnext/healthcare/doctype/normal_test_items/normal_test_items.js b/erpnext/healthcare/doctype/normal_test_items/normal_test_items.js
new file mode 100644
index 0000000..0371ddd
--- /dev/null
+++ b/erpnext/healthcare/doctype/normal_test_items/normal_test_items.js
@@ -0,0 +1,4 @@
+// Copyright (c) 2016, ESS
+// License: ESS license.txt
+
+
diff --git a/erpnext/healthcare/doctype/normal_test_items/normal_test_items.json b/erpnext/healthcare/doctype/normal_test_items/normal_test_items.json
new file mode 100644
index 0000000..9e754a7
--- /dev/null
+++ b/erpnext/healthcare/doctype/normal_test_items/normal_test_items.json
@@ -0,0 +1,284 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2016-02-22 15:06:08.295224", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 1, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_name", 
+   "fieldtype": "Data", 
+   "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": "Test Name", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_event", 
+   "fieldtype": "Data", 
+   "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": "Event", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.require_result_value == 1 ", 
+   "fieldname": "result_value", 
+   "fieldtype": "Data", 
+   "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": "Result Value", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_uom", 
+   "fieldtype": "Data", 
+   "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": "UOM", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "normal_range", 
+   "fieldtype": "Long Text", 
+   "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": "Normal Range", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_comment", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 1, 
+   "in_standard_filter": 0, 
+   "label": "Comment", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "require_result_value", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Require Result Value", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "template", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Template", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test Template", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }
+ ], 
+ "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-08-31 13:59:33.202695", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Normal Test Items", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "quick_entry": 0, 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/normal_test_items/normal_test_items.py b/erpnext/healthcare/doctype/normal_test_items/normal_test_items.py
new file mode 100644
index 0000000..a0069d7
--- /dev/null
+++ b/erpnext/healthcare/doctype/normal_test_items/normal_test_items.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class NormalTestItems(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/normal_test_template/__init__.py b/erpnext/healthcare/doctype/normal_test_template/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/normal_test_template/__init__.py
diff --git a/erpnext/healthcare/doctype/normal_test_template/normal_test_template.json b/erpnext/healthcare/doctype/normal_test_template/normal_test_template.json
new file mode 100644
index 0000000..ef5abd5
--- /dev/null
+++ b/erpnext/healthcare/doctype/normal_test_template/normal_test_template.json
@@ -0,0 +1,191 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2016-02-22 16:09:54.310628", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 1, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "heading_text", 
+   "fieldtype": "Heading", 
+   "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": "Test", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_event", 
+   "fieldtype": "Data", 
+   "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": "Event", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_uom", 
+   "fieldtype": "Link", 
+   "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": "UOM", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test UOM", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "normal_range", 
+   "fieldtype": "Long Text", 
+   "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": "Normal Range", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_5", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }
+ ], 
+ "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-08-31 14:07:11.277187", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Normal Test Template", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "quick_entry": 0, 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/normal_test_template/normal_test_template.py b/erpnext/healthcare/doctype/normal_test_template/normal_test_template.py
new file mode 100644
index 0000000..bc2c991
--- /dev/null
+++ b/erpnext/healthcare/doctype/normal_test_template/normal_test_template.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class NormalTestTemplate(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/patient/__init__.py b/erpnext/healthcare/doctype/patient/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient/__init__.py
diff --git a/erpnext/healthcare/doctype/patient/patient.js b/erpnext/healthcare/doctype/patient/patient.js
new file mode 100644
index 0000000..57e5eef
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient/patient.js
@@ -0,0 +1,119 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Patient', {
+	refresh: function (frm) {
+		frm.set_query("patient", "patient_relation", function () {
+			return {
+				filters: [
+					["Patient", "name", "!=", frm.doc.name]
+				]
+			};
+		});
+		if (frappe.defaults.get_default("patient_master_name") != "Naming Series") {
+			frm.toggle_display("naming_series", false);
+		} else {
+			erpnext.toggle_naming_series();
+		}
+		if (frappe.defaults.get_default("collect_registration_fee") && frm.doc.disabled == 1) {
+			frm.add_custom_button(__('Invoice Patient Registration'), function () {
+				btn_invoice_registration(frm);
+			});
+		}
+		if (frm.doc.patient_name && frappe.user.has_role("Physician")) {
+			frm.add_custom_button(__('Medical Record'), function () {
+				frappe.route_options = { "patient": frm.doc.name };
+				frappe.set_route("medical_record");
+			},"View");
+		}
+		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");
+			frm.add_custom_button(__('Medical Record'), function () {
+				create_medical_record(frm);
+			}, "Create");
+			frm.add_custom_button(__('Consultation'), function () {
+				btn_create_consultation(frm);
+			}, "Create");
+		}
+	},
+	onload: function (frm) {
+		if(!frm.doc.dob){
+			$(frm.fields_dict['age_html'].wrapper).html("Age not specified");
+		}
+		if(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", "");
+		}
+		else{
+			var age_str = get_age(frm.doc.dob);
+			$(frm.fields_dict['age_html'].wrapper).html("AGE : " + age_str);
+		}
+	}
+});
+
+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_consultation = function (frm) {
+	if (!frm.doc.name) {
+		frappe.throw("Please save the patient first");
+	}
+	frappe.route_options = {
+		"patient": frm.doc.name,
+	};
+	frappe.new_doc("Consultation");
+};
+
+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();
+			}
+		}
+	});
+};
diff --git a/erpnext/healthcare/doctype/patient/patient.json b/erpnext/healthcare/doctype/patient/patient.json
new file mode 100644
index 0000000..f5ce458
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient/patient.json
@@ -0,0 +1,1356 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "naming_series:", 
+ "beta": 1, 
+ "creation": "2017-01-23 14:03:49.084370", 
+ "custom": 0, 
+ "description": "Patient", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 0, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "basic_info", 
+   "fieldtype": "Section Break", 
+   "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": "Patient Demographics", 
+   "length": 0, 
+   "no_copy": 0, 
+   "oldfieldtype": "Section Break", 
+   "options": "fa fa-user", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "naming_series", 
+   "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": "Patient ID", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "PID-", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 1, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_name", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 1, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Full Name", 
+   "length": 0, 
+   "no_copy": 1, 
+   "oldfieldtype": "Data", 
+   "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": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sex", 
+   "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": "Gender", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nMale\nFemale", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "blood_group", 
+   "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": "Blood Group", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nA Positive\nA Negative\nAB Positive\nAB Negative\nB Positive\nB Negative\nO Positive\nO Negative", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "dob", 
+   "fieldtype": "Date", 
+   "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": "DOB", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "age_html", 
+   "fieldtype": "HTML", 
+   "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": "Age", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Active", 
+   "fieldname": "status", 
+   "fieldtype": "Select", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Status", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Active\nDormant\nOpen", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "image", 
+   "fieldtype": "Attach Image", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Image", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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, 
+   "width": "50%"
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_14", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "customer", 
+   "fieldtype": "Link", 
+   "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": "Customer", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Customer", 
+   "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": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Company", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Company", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "report_preference", 
+   "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": "Report Preference", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nEmail\nPrint", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "mobile", 
+   "fieldtype": "Data", 
+   "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": "Mobile", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "email", 
+   "fieldtype": "Data", 
+   "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": "Email", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Email", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "phone", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 1, 
+   "in_global_search": 0, 
+   "in_list_view": 1, 
+   "in_standard_filter": 0, 
+   "label": "Phone", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "disabled", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Disabled", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "sb_relation", 
+   "fieldtype": "Section Break", 
+   "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": "Patient Relation", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_relation", 
+   "fieldtype": "Table", 
+   "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": "Patient Relation", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Patient Relation", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "allergy_medical_and_surgical_history", 
+   "fieldtype": "Section Break", 
+   "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": "Allergies, Medical and Surgical History", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "allergies", 
+   "fieldtype": "Small Text", 
+   "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": "Allergies", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "medication", 
+   "fieldtype": "Small Text", 
+   "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": "Medication", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_20", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "medical_history", 
+   "fieldtype": "Small Text", 
+   "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": "Medical History", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "surgical_history", 
+   "fieldtype": "Small Text", 
+   "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": "Surgical History", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "personal_and_social_history", 
+   "fieldtype": "Section Break", 
+   "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": "Personal and Social History", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "occupation", 
+   "fieldtype": "Data", 
+   "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": "Occupation", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_25", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "marital_status", 
+   "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": "Marital Status", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Single\nMarried\nDivorced\nWidow", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "risk_factors", 
+   "fieldtype": "Section Break", 
+   "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": "Risk Factors", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "tobacco_past_use", 
+   "fieldtype": "Data", 
+   "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": "Tobacco Past Use", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "tobacco_current_use", 
+   "fieldtype": "Data", 
+   "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": "Tobacco Current Use", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "alcohol_past_use", 
+   "fieldtype": "Data", 
+   "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": "Alcohol Past Use", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "alcohol_current_use", 
+   "fieldtype": "Data", 
+   "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": "Alcohol Current Use", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_32", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "surrounding_factors", 
+   "fieldtype": "Small Text", 
+   "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": "Occupational Hazards and Environmental Factors", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "other_risk_factors", 
+   "fieldtype": "Small Text", 
+   "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": "Other Risk Factors", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "collapsible_depends_on": "patient_details", 
+   "columns": 0, 
+   "fieldname": "more_info", 
+   "fieldtype": "Section Break", 
+   "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": "More Information", 
+   "length": 0, 
+   "no_copy": 0, 
+   "oldfieldtype": "Section Break", 
+   "options": "fa fa-file-text", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "Additional information regarding the patient", 
+   "fieldname": "patient_details", 
+   "fieldtype": "Text", 
+   "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": "Patient Details", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "ac_sb", 
+   "fieldtype": "Section Break", 
+   "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": "Account Details", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "default_currency", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Default Currency", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Currency", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "icon": "fa fa-user", 
+ "idx": 0, 
+ "image_field": "image", 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 50, 
+ "modified": "2017-08-31 13:50:25.474398", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Patient", 
+ "name_case": "Title Case", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Nursing User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "patient_name,mobile,email,phone", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "ASC", 
+ "title_field": "patient_name", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/patient/patient.py b/erpnext/healthcare/doctype/patient/patient.py
new file mode 100644
index 0000000..98526cc
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient/patient.py
@@ -0,0 +1,122 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+from frappe.model.document import Document
+from frappe.utils import cint, cstr, getdate
+import dateutil
+from frappe.model.naming import make_autoname
+from erpnext.healthcare.doctype.healthcare_settings.healthcare_settings import get_receivable_account,get_income_account,send_registration_sms
+
+class Patient(Document):
+	def after_insert(self):
+		if(frappe.db.get_value("Healthcare Settings", None, "manage_customer") == '1' and not self.customer):
+			create_customer(self)
+		if(frappe.db.get_value("Healthcare Settings", None, "collect_registration_fee") == '1'):
+			frappe.db.set_value("Patient", self.name, "disabled", 1)
+		else:
+			send_registration_sms(self)
+		self.reload()
+
+	def on_update(self):
+		self.add_as_website_user()
+
+	def add_as_website_user(self):
+		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"
+				})
+				user.flags.no_welcome_email = True
+				user.flags.ignore_permissions = True
+				user.add_roles("Patient")
+
+	def autoname(self):
+		patient_master_name = frappe.defaults.get_global_default('patient_master_name')
+		if patient_master_name == 'Patient Name':
+			self.name = self.get_patient_name()
+		else:
+			if not self.naming_series:
+				frappe.throw(_("Series is mandatory"), frappe.MandatoryError)
+
+			self.name = make_autoname(self.naming_series+'.#####')
+
+	def get_patient_name(self):
+		name = self.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
+			return "{0} - {1}".format(name, cstr(count))
+
+		return name
+
+	def get_age(self):
+		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)"
+		return age_str
+
+	def invoice_patient_registration(self):
+		frappe.db.set_value("Patient", self.name, "disabled", 0)
+		send_registration_sms(self)
+		if(frappe.get_value("Healthcare Settings", None, "registration_fee")>0):
+			sales_invoice = make_invoice(self.name, self.company)
+			sales_invoice.save(ignore_permissions=True)
+			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")
+	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.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)
+
+def make_invoice(patient, company):
+	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.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.qty = 1
+	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.amount = item_line.rate
+	sales_invoice.set_missing_values()
+	return sales_invoice
+
+@frappe.whitelist()
+def get_patient_detail(patient, company=None):
+	patient_dict = frappe.db.sql(_("""select * from tabPatient where name='{0}'""").format(patient), as_dict=1)
+	if not patient_dict:
+		frappe.throw("Patient not found")
+	vital_sign = frappe.db.sql(_("""select * from `tabVital Signs` where patient='{0}' order by signs_date desc limit 1""").format(patient), as_dict=1)
+
+	details = patient_dict[0]
+	if vital_sign:
+		details.update(vital_sign[0])
+	return details
diff --git a/erpnext/healthcare/doctype/patient/patient_dashboard.py b/erpnext/healthcare/doctype/patient/patient_dashboard.py
new file mode 100644
index 0000000..cb98f0d
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient/patient_dashboard.py
@@ -0,0 +1,18 @@
+from frappe import _
+
+def get_data():
+	return {
+		'heatmap': True,
+		'heatmap_message': _('This is based on transactions against this Patient. See timeline below for details'),
+		'fieldname': 'patient',
+		'transactions': [
+			{
+				'label': _('Appointments and Consultations'),
+				'items': ['Patient Appointment', 'Consultation']
+			},
+			{
+				'label': _('Lab Tests'),
+				'items': ['Lab Test']
+			}
+		]
+	}
diff --git a/erpnext/healthcare/doctype/patient/test_patient.js b/erpnext/healthcare/doctype/patient/test_patient.js
new file mode 100644
index 0000000..e1d9ecb
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient/test_patient.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Patient", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially('Patient', [
+		// insert a new Patient
+		() => frappe.tests.make([
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/patient/test_patient.py b/erpnext/healthcare/doctype/patient/test_patient.py
new file mode 100644
index 0000000..aebaa6b
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient/test_patient.py
@@ -0,0 +1,11 @@
+# -*- 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('Patient')
+
+class TestPatient(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/patient_appointment/__init__.py b/erpnext/healthcare/doctype/patient_appointment/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/__init__.py
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
new file mode 100644
index 0000000..86b1884
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
@@ -0,0 +1,256 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+frappe.provide("erpnext.queries");
+frappe.ui.form.on('Patient Appointment', {
+	setup: function(frm) {
+		frm.custom_make_buttons = {
+			'Sales Invoice': 'Invoice',
+			'Vital Signs': 'Vital Signs',
+			'Consultation': 'Consultation'
+		};
+	},
+	refresh: function(frm) {
+		frm.set_query("patient", function () {
+			return {
+				filters: {"disabled": 0}
+			};
+		});
+		if(frm.doc.patient){
+			frm.add_custom_button(__('Medical Record'), function() {
+				frappe.route_options = {"patient": frm.doc.patient};
+				frappe.set_route("medical_record");
+			},__("View"));
+		}
+		if(frm.doc.status == "Open"){
+			frm.add_custom_button(__('Cancel'), function() {
+				btn_update_status(frm, "Cancelled");
+			});
+		}
+		if(frm.doc.status == "Scheduled" && !frm.doc.__islocal){
+			frm.add_custom_button(__('Cancel'), function() {
+				btn_update_status(frm, "Cancelled");
+			});
+		}
+		if(frm.doc.status == "Pending"){
+			frm.add_custom_button(__('Set Open'), function() {
+				btn_update_status(frm, "Open");
+			});
+			frm.add_custom_button(__('Cancel'), function() {
+				btn_update_status(frm, "Cancelled");
+			});
+		}
+
+		frm.add_custom_button(__("Consultation"),function(){
+			btn_create_consultation(frm);
+		},"Create");
+
+		frm.add_custom_button(__('Vital Signs'), function() {
+			btn_create_vital_signs(frm);
+		},"Create");
+
+		if(!frm.doc.__islocal){
+			if(frm.doc.sales_invoice && frappe.user.has_role("Accounts User")){
+				frm.add_custom_button(__('Invoice'), function() {
+					frappe.set_route("Form", "Sales Invoice", frm.doc.sales_invoice);
+				},__("View") );
+			}
+			else if(frm.doc.status != "Cancelled" && frappe.user.has_role("Accounts User")){
+				frm.add_custom_button(__('Invoice'), function() {
+					btn_invoice_consultation(frm);
+				},__("Create"));
+			}
+		}
+	},
+	check_availability: function(frm) {
+		var { physician, appointment_date } = frm.doc;
+		if(!(physician && appointment_date)) {
+			frappe.throw(__("Please select Physician and Date"));
+		}
+
+		// show booking modal
+		frm.call({
+			method: 'get_availability_data',
+			args: {
+				physician: physician,
+				date: appointment_date
+			},
+			callback: (r) => {
+				// console.log(r);
+				var data = r.message;
+				if(data.available_slots.length > 0) {
+					show_availability(data);
+				} else {
+					show_empty_state();
+				}
+			}
+		});
+
+		function show_empty_state() {
+			frappe.msgprint({
+				title: __('Not Available'),
+				message: __("Physician {0} not available on {1}", [physician.bold(), appointment_date.bold()]),
+				indicator: 'red'
+			});
+		}
+
+		function show_availability(data) {
+			var d = new frappe.ui.Dialog({
+				title: __("Available slots"),
+				fields: [{ fieldtype: 'HTML', fieldname: 'available_slots'}],
+				primary_action_label: __("Book"),
+				primary_action: function() {
+					// book slot
+					frm.set_value('appointment_time', selected_slot);
+					frm.set_value('duration', data.time_per_appointment);
+					d.hide();
+					frm.save();
+				}
+			});
+			var $wrapper = d.fields_dict.available_slots.$wrapper;
+			var selected_slot = null;
+
+			// disable dialog action initially
+			d.get_primary_btn().attr('disabled', true);
+
+			// make buttons for each slot
+			var slot_html = data.available_slots.map(slot => {
+				return `<button class="btn btn-default"
+					data-name=${slot.from_time}
+					style="margin: 0 10px 10px 0; width: 72px">
+					${slot.from_time.substring(0, slot.from_time.length - 3)}
+				</button>`;
+			}).join("");
+
+			$wrapper
+				.css('margin-bottom', 0)
+				.addClass('text-center')
+				.html(slot_html);
+
+			// disable buttons for which appointments are booked
+			data.appointments.map(slot => {
+				if(slot.status == "Scheduled" || slot.status == "Open" || slot.status == "Closed"){
+					$wrapper
+						.find(`button[data-name="${slot.appointment_time}"]`)
+						.attr('disabled', true);
+				}
+			});
+
+			// blue button when clicked
+			$wrapper.on('click', 'button', function() {
+				var $btn = $(this);
+				$wrapper.find('button').removeClass('btn-primary');
+				$btn.addClass('btn-primary');
+				selected_slot = $btn.attr('data-name');
+
+				// enable dialog action
+				d.get_primary_btn().attr('disabled', null);
+			});
+
+			d.show();
+		}
+	},
+	onload:function(frm){
+		if(frm.is_new()) {
+			frm.set_value("appointment_time", null);
+			frm.disable_save();
+		}
+	},
+});
+
+var btn_create_consultation = function(frm){
+	var doc = frm.doc;
+	frappe.call({
+		method:"erpnext.healthcare.doctype.patient_appointment.patient_appointment.create_consultation",
+		args: {appointment: doc.name},
+		callback: function(data){
+			if(!data.exc){
+				var doclist = frappe.model.sync(data.message);
+				frappe.set_route("Form", doclist[0].doctype, doclist[0].name);
+			}
+		}
+	});
+};
+
+var btn_create_vital_signs = function (frm) {
+	if(!frm.doc.patient){
+		frappe.throw("Please select patient");
+	}
+	frappe.route_options = {
+		"patient": frm.doc.patient,
+	};
+	frappe.new_doc("Vital Signs");
+};
+
+var btn_update_status = function(frm, status){
+	var doc = frm.doc;
+	frappe.call({
+		method:
+		"erpnext.healthcare.doctype.patient_appointment.patient_appointment.update_status",
+		args: {appointmentId: doc.name, status:status},
+		callback: function(data){
+			if(!data.exc){
+				cur_frm.reload_doc();
+			}
+		}
+	});
+};
+
+var btn_invoice_consultation = function(frm){
+	var doc = frm.doc;
+	frappe.call({
+		method:
+		"erpnext.healthcare.doctype.patient_appointment.patient_appointment.create_invoice",
+		args: {company: doc.company, physician:doc.physician, patient: doc.patient,
+			appointment_id: doc.name, appointment_date:doc.appointment_date },
+		callback: function(data){
+			if(!data.exc){
+				if(data.message){
+					frappe.set_route("Form", "Sales Invoice", data.message);
+				}
+				cur_frm.reload_doc();
+			}
+		}
+	});
+};
+
+frappe.ui.form.on("Patient Appointment", "physician", function(frm) {
+	if(frm.doc.physician){
+		frappe.call({
+			"method": "frappe.client.get",
+			args: {
+				doctype: "Physician",
+				name: frm.doc.physician
+			},
+			callback: function (data) {
+				frappe.model.set_value(frm.doctype,frm.docname, "department",data.message.department);
+			}
+		});
+	}
+});
+
+frappe.ui.form.on("Patient Appointment", "patient", function(frm) {
+	if(frm.doc.patient){
+		frappe.call({
+			"method": "frappe.client.get",
+			args: {
+				doctype: "Patient",
+				name: frm.doc.patient
+			},
+			callback: function (data) {
+				var age = null;
+				if(data.message.dob){
+					age = calculate_age(data.message.dob);
+				}
+				frappe.model.set_value(frm.doctype,frm.docname, "patient_age", age);
+			}
+		});
+	}
+});
+
+var calculate_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)";
+};
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json
new file mode 100644
index 0000000..9520e77
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json
@@ -0,0 +1,817 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "OP-.######", 
+ "beta": 1, 
+ "creation": "2017-05-04 11:52:40.941507", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 0, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "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": "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": 1, 
+   "set_only_once": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "physician", 
+   "fieldtype": "Link", 
+   "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": "Physician", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Physician", 
+   "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": 1, 
+   "set_only_once": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "appointment_date", 
+   "fieldtype": "Date", 
+   "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": "Date", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.__islocal", 
+   "fieldname": "check_availability", 
+   "fieldtype": "Button", 
+   "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": "Check availability", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_1", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Scheduled", 
+   "fieldname": "status", 
+   "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": "Status", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nScheduled\nOpen\nClosed\nPending\nCancelled", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "appointment_type", 
+   "fieldtype": "Link", 
+   "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": "Type", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Appointment Type", 
+   "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": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_1", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "appointment_time", 
+   "fieldtype": "Time", 
+   "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": "Time", 
+   "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": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "In Minutes", 
+   "fieldname": "duration", 
+   "fieldtype": "Int", 
+   "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": "Duration", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "appointment_datetime", 
+   "fieldtype": "Datetime", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Date TIme", 
+   "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": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_2", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "department", 
+   "fieldtype": "Link", 
+   "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": "Department", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Medical Department", 
+   "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": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sales_invoice", 
+   "fieldtype": "Link", 
+   "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": "Sales Invoice", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sales Invoice", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_2", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_details", 
+   "fieldtype": "Section Break", 
+   "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": "Patient Details", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "patient", 
+   "fieldname": "patient_name", 
+   "fieldtype": "Data", 
+   "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": "Patient Name", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_sex", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Gender", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "patient.sex", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_age", 
+   "fieldtype": "Data", 
+   "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": "Patient Age", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Company", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Company", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 1, 
+   "columns": 0, 
+   "fieldname": "section_break_3", 
+   "fieldtype": "Section Break", 
+   "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": "More Info", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "notes", 
+   "fieldtype": "Small Text", 
+   "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": "Notes", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "referring_physician", 
+   "fieldtype": "Link", 
+   "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": "Referring Physician", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Physician", 
+   "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": 1, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "reminded", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Reminded", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:27:39.208298", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Patient Appointment", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "patient, physician, appointment_datetime,department", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "patient", 
+ "track_changes": 1, 
+ "track_seen": 1
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
new file mode 100755
index 0000000..eab2f2d
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
@@ -0,0 +1,244 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+import json
+from frappe.utils import getdate
+from frappe import _
+import datetime
+from frappe.core.doctype.sms_settings.sms_settings import send_sms
+from erpnext.healthcare.doctype.healthcare_settings.healthcare_settings import get_receivable_account,get_income_account
+
+class PatientAppointment(Document):
+	def on_update(self):
+		today = datetime.date.today()
+		appointment_date = getdate(self.appointment_date)
+		#If appointment created for today set as open
+		if(today == appointment_date):
+			frappe.db.set_value("Patient Appointment",self.name,"status","Open")
+			self.reload()
+
+	def after_insert(self):
+		#Check fee validity exists
+		appointment = self
+		validity_exist = validity_exists(appointment.physician, appointment.patient)
+		if validity_exist :
+			fee_validity = frappe.get_doc("Fee Validity",validity_exist[0][0])
+			#Check if the validity is valid
+			appointment_date = getdate(appointment.appointment_date)
+			if((fee_validity.valid_till >= appointment_date) and (fee_validity.visited < fee_validity.max_visit)):
+				visited = fee_validity.visited + 1
+				frappe.db.set_value("Fee Validity",fee_validity.name,"visited",visited)
+				if(fee_validity.ref_invoice):
+					frappe.db.set_value("Patient Appointment",appointment.name,"sales_invoice",fee_validity.ref_invoice)
+				frappe.msgprint(_("{0} has fee validity till {1}").format(appointment.patient, fee_validity.valid_till))
+		confirm_sms(self)
+
+def appointment_cancel(appointmentId):
+	appointment = frappe.get_doc("Patient Appointment",appointmentId)
+	#If invoice --> fee_validity update with -1 visit
+	if (appointment.sales_invoice):
+ 		validity = frappe.db.exists({"doctype": "Fee Validity","ref_invoice": appointment.sales_invoice})
+ 		if(validity):
+ 			fee_validity = frappe.get_doc("Fee Validity",validity[0][0])
+ 			visited = fee_validity.visited - 1
+ 			frappe.db.set_value("Fee Validity",fee_validity.name,"visited",visited)
+ 			if visited <= 0:
+ 				frappe.msgprint(_("Appointment cancelled, Please review and cancel the invoice {0}".format(appointment.sales_invoice)))
+ 			else:
+ 				frappe.msgprint(_("Appointment cancelled"))
+
+@frappe.whitelist()
+def get_availability_data(date, physician):
+	# get availability data of 'physician' on 'date'
+	date = getdate(date)
+	weekday = date.strftime("%A")
+
+	available_slots = []
+	# get physicians schedule
+	physician_schedule_name = frappe.db.get_value("Physician", physician, "physician_schedule")
+	physician_schedule = frappe.get_doc("Physician Schedule", physician_schedule_name)
+	time_per_appointment = frappe.db.get_value("Physician", physician, "time_per_appointment")
+
+	for t in physician_schedule.time_slots:
+		if weekday == t.day:
+			available_slots.append(t)
+
+	# if physician not available return
+	if not available_slots:
+		# TODO: return available slots in nearby dates
+		frappe.throw(_("Physician not available on {0}").format(weekday))
+
+	# if physician on leave return
+
+	# if holiday return
+	# if is_holiday(weekday):
+
+	# get appointments on that day for physician
+	appointments = frappe.get_all(
+		"Patient Appointment",
+		filters={"physician": physician, "appointment_date": date},
+		fields=["name", "appointment_time", "duration", "status"])
+
+	return {
+		"available_slots": available_slots,
+		"appointments": appointments,
+		"time_per_appointment": time_per_appointment
+	}
+
+@frappe.whitelist()
+def update_status(appointmentId, status):
+	frappe.db.set_value("Patient Appointment",appointmentId,"status",status)
+	if(status=="Cancelled"):
+		appointment_cancel(appointmentId)
+
+@frappe.whitelist()
+def set_open_appointments():
+	today = getdate()
+	frappe.db.sql("""update `tabPatient Appointment` set status='Open' where status = 'Scheduled' and appointment_date = %s""",(today))
+
+@frappe.whitelist()
+def set_pending_appointments():
+	today = getdate()
+	frappe.db.sql("""update `tabPatient Appointment` set status='Pending' where status in ('Scheduled','Open') and appointment_date < %s""",(today))
+
+def confirm_sms(doc):
+	if (frappe.db.get_value("Healthcare Settings", None, "app_con")=='1'):
+		message = frappe.db.get_value("Healthcare Settings", None, "app_con_msg")
+		send_message(doc, message)
+
+@frappe.whitelist()
+def create_invoice(company, physician, patient, appointment_id, appointment_date):
+	if not appointment_id:
+		return False
+	sales_invoice = frappe.new_doc("Sales Invoice")
+	sales_invoice.customer = frappe.get_value("Patient", patient, "customer")
+	sales_invoice.appointment = appointment_id
+	sales_invoice.due_date = getdate()
+	sales_invoice.is_pos = '0'
+	sales_invoice.debit_to = get_receivable_account(company)
+
+	fee_validity = get_fee_validity(physician, patient, appointment_date)
+	create_invoice_items(appointment_id, physician, company, sales_invoice)
+
+	sales_invoice.save(ignore_permissions=True)
+	frappe.db.sql(_("""update `tabPatient Appointment` set sales_invoice='{0}' where name='{1}'""").format(sales_invoice.name, appointment_id))
+	frappe.db.set_value("Fee Validity", fee_validity.name, "ref_invoice", sales_invoice.name)
+	consultation = frappe.db.exists({
+			"doctype": "Consultation",
+			"appointment": appointment_id})
+	if consultation:
+		frappe.db.set_value("Consultation", consultation[0][0], "invoice", sales_invoice.name)
+	return sales_invoice.name
+
+def get_fee_validity(physician, patient, date):
+	validity_exist = validity_exists(physician, 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)
+	return fee_validity
+
+def validity_exists(physician, patient):
+	return frappe.db.exists({
+			"doctype": "Fee Validity",
+			"physician": physician,
+			"patient": patient})
+
+def update_fee_validity(fee_validity, date):
+	max_visit = frappe.db.get_value("Healthcare Settings", None, "max_visit")
+	valid_days = frappe.db.get_value("Healthcare Settings", None, "valid_days")
+	if not valid_days:
+		valid_days = 1
+	if not max_visit:
+		max_visit = 1
+	date = getdate(date)
+	valid_till = date + datetime.timedelta(days=int(valid_days))
+	fee_validity.max_visit = max_visit
+	fee_validity.visited = 1
+	fee_validity.valid_till = valid_till
+	fee_validity.save(ignore_permissions=True)
+	return fee_validity
+
+def create_fee_validity(physician, patient, date):
+	fee_validity = frappe.new_doc("Fee Validity")
+	fee_validity.physician = physician
+	fee_validity.patient = patient
+	fee_validity = update_fee_validity(fee_validity, date)
+	return fee_validity
+
+def create_invoice_items(appointment_id, physician, company, invoice):
+	item_line = invoice.append("items")
+	item_line.item_name = "Consulting Charges"
+	item_line.description = "Consulting Charges:  " + physician
+	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.db.get_value("Physician", physician, "op_consulting_charge")
+	if op_consulting_charge:
+		item_line.rate = op_consulting_charge
+		item_line.amount = op_consulting_charge
+	return invoice
+
+@frappe.whitelist()
+def create_consultation(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
+	if appointment.sales_invoice:
+		consultation.invoice = appointment.sales_invoice
+	return consultation.as_dict()
+
+def remind_appointment():
+	if (frappe.db.get_value("Healthcare Settings", None, "app_rem")=='1'):
+		rem_before = datetime.datetime.strptime(frappe.get_value("Healthcare Settings", None, "rem_before"), "%H:%M:%S")
+		rem_dt = datetime.datetime.now() + datetime.timedelta(hours = rem_before.hour, minutes=rem_before.minute, seconds= rem_before.second)
+
+		appointment_list = frappe.db.sql("select name from `tabPatient Appointment` where start_dt between %s and %s and reminded = 0 ", (datetime.datetime.now(), rem_dt))
+
+		for i in range (0,len(appointment_list)):
+			doc = frappe.get_doc("Patient Appointment", appointment_list[i][0])
+			message = frappe.db.get_value("Healthcare Settings", None, "app_rem_msg")
+			send_message(doc, message)
+			frappe.db.set_value("Patient Appointment",doc.name,"reminded",1)
+
+def send_message(doc, message):
+	patient = frappe.get_doc("Patient",doc.patient)
+	if(patient.mobile):
+		context = {"doc": doc, "alert": doc, "comments": None}
+		if doc.get("_comments"):
+			context["comments"] = json.loads(doc.get("_comments"))
+		#jinja to string convertion happens here
+		message = frappe.render_template(message, context)
+		number = [patient.mobile]
+		send_sms(number,message)
+
+@frappe.whitelist()
+def get_events(start, end, filters=None):
+	"""Returns events for Gantt / Calendar view rendering.
+
+	:param start: Start date-time.
+	:param end: End date-time.
+	:param filters: Filters (JSON).
+	"""
+	from frappe.desk.calendar import get_event_conditions
+	conditions = get_event_conditions("Patient Appointment", filters)
+	data = frappe.db.sql("""select name, patient, physician, status,
+		duration, timestamp(appointment_date, appointment_time) as
+		'start' from `tabPatient Appointment` where
+		(appointment_date between %(start)s and %(end)s)
+		and docstatus < 2 {conditions}""".format(conditions=conditions),
+		{"start": start, "end": end}, as_dict=True, update={"allDay": 0})
+	for item in data:
+		item.end = item.start + datetime.timedelta(minutes = item.duration)
+	return data
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment_calendar.js b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_calendar.js
new file mode 100644
index 0000000..bfb53b8
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_calendar.js
@@ -0,0 +1,44 @@
+
+frappe.views.calendar["Patient Appointment"] = {
+	field_map: {
+		"start": "start",
+		"end": "end",
+		"id": "name",
+		"title": "patient",
+		"allDay": "allDay"
+	},
+	gantt: true,
+	get_events_method: "erpnext.healthcare.doctype.patient_appointment.patient_appointment.get_events",
+	filters: [
+		{
+			'fieldtype': 'Link',
+			'fieldname': 'physician',
+			'options': 'Physician',
+			'label': __('Physician')
+		},
+		{
+			'fieldtype': 'Link',
+			'fieldname': 'patient',
+			'options': 'Patient',
+			'label': __('Patient')
+		},
+		{
+			'fieldtype': 'Link',
+			'fieldname': 'appointment_type',
+			'options': 'Appointment Type',
+			'label': __('Appointment Type')
+		},
+		{
+			'fieldtype': 'Link',
+			'fieldname': 'department',
+			'options': 'Medical Department',
+			'label': __('Department')
+		},
+		{
+			'fieldtype': 'Select',
+			'fieldname': 'status',
+			'options': 'Scheduled\nOpen\nClosed\nPending',
+			'label': __('Status')
+		}
+	]
+};
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment_dashboard.py b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_dashboard.py
new file mode 100644
index 0000000..1862915
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_dashboard.py
@@ -0,0 +1,19 @@
+from frappe import _
+
+def get_data():
+	return {
+		'fieldname': 'appointment',
+		'non_standard_fieldnames': {
+			'Patient Medical Record': 'reference_name'
+		},
+		'transactions': [
+			{
+				'label': _('Consultations'),
+				'items': ['Consultation', 'Vital Signs', 'Patient Medical Record']
+			},
+			{
+				'label': _('Billing'),
+				'items': ['Sales Invoice']
+			}
+		]
+	}
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment_list.js b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_list.js
new file mode 100644
index 0000000..701cb69
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment_list.js
@@ -0,0 +1,6 @@
+/*
+(c) ESS 2015-16
+*/
+frappe.listview_settings['Patient Appointment'] = {
+	filters: [["status", "=", "Open"]],
+};
diff --git a/erpnext/healthcare/doctype/patient_appointment/test_patient_appointment.js b/erpnext/healthcare/doctype/patient_appointment/test_patient_appointment.js
new file mode 100644
index 0000000..71fc177
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/test_patient_appointment.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Patient Appointment", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Patient Appointment
+		() => frappe.tests.make('Patient Appointment', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/patient_appointment/test_patient_appointment.py b/erpnext/healthcare/doctype/patient_appointment/test_patient_appointment.py
new file mode 100644
index 0000000..3536a5f
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_appointment/test_patient_appointment.py
@@ -0,0 +1,10 @@
+# -*- 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('Patient Appointment')
+
+class TestPatientAppointment(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/patient_medical_record/__init__.py b/erpnext/healthcare/doctype/patient_medical_record/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_medical_record/__init__.py
diff --git a/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.js b/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.js
new file mode 100644
index 0000000..93ff70e
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Patient Medical Record', {
+});
diff --git a/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.json b/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.json
new file mode 100644
index 0000000..0614923
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.json
@@ -0,0 +1,430 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "naming_series:", 
+ "beta": 1, 
+ "creation": "2016-06-09 11:30:44.972056", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "naming_series", 
+   "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": "Series", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "PMR-", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "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": "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": 0, 
+   "search_index": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_2", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "attach", 
+   "fieldtype": "Attach", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_4", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "subject", 
+   "fieldtype": "Small Text", 
+   "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": "Subject", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "status", 
+   "fieldtype": "Select", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Status", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Open\nClose", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Today", 
+   "fieldname": "communication_date", 
+   "fieldtype": "Date", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Datetime", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "reference_doctype", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Reference DocType", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "DocType", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "reference_name", 
+   "fieldtype": "Dynamic Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Reference Name", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "reference_doctype", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "reference_owner", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Reference Owner", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "reference_name.owner", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "__user", 
+   "fieldname": "user", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 1, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "User", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "User", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 1, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-09-04 14:29:48.679751", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Patient Medical Record", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "patient, subject, communication_date, reference_doctype, reference_name", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "track_changes": 1, 
+ "track_seen": 1
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.py b/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.py
new file mode 100644
index 0000000..35e42bd
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_medical_record/patient_medical_record.py
@@ -0,0 +1,12 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class PatientMedicalRecord(Document):
+	def after_insert(self):
+		if self.reference_doctype == "Patient Medical Record" :
+			frappe.db.set_value("Patient Medical Record", self.name, "reference_name", self.name)
diff --git a/erpnext/healthcare/doctype/patient_medical_record/test_patient_medical_record.js b/erpnext/healthcare/doctype/patient_medical_record/test_patient_medical_record.js
new file mode 100644
index 0000000..66dda09
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_medical_record/test_patient_medical_record.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Patient Medical Record", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Patient Medical Record
+		() => frappe.tests.make('Patient Medical Record', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/patient_medical_record/test_patient_medical_record.py b/erpnext/healthcare/doctype/patient_medical_record/test_patient_medical_record.py
new file mode 100644
index 0000000..460774a
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_medical_record/test_patient_medical_record.py
@@ -0,0 +1,10 @@
+# -*- 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('Patient Medical Record')
+
+class TestPatientMedicalRecord(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/patient_relation/__init__.py b/erpnext/healthcare/doctype/patient_relation/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_relation/__init__.py
diff --git a/erpnext/healthcare/doctype/patient_relation/patient_relation.json b/erpnext/healthcare/doctype/patient_relation/patient_relation.json
new file mode 100644
index 0000000..e97e1b2
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_relation/patient_relation.json
@@ -0,0 +1,134 @@
+{
+ "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", 
+ "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": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "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": "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
+  }, 
+  {
+   "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": 0, 
+   "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
+  }
+ ], 
+ "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-08-31 14:13:37.497114", 
+ "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
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/patient_relation/patient_relation.py b/erpnext/healthcare/doctype/patient_relation/patient_relation.py
new file mode 100644
index 0000000..150b962
--- /dev/null
+++ b/erpnext/healthcare/doctype/patient_relation/patient_relation.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class PatientRelation(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/physician/__init__.py b/erpnext/healthcare/doctype/physician/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician/__init__.py
diff --git a/erpnext/healthcare/doctype/physician/physician.js b/erpnext/healthcare/doctype/physician/physician.js
new file mode 100755
index 0000000..37389fe
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician/physician.js
@@ -0,0 +1,73 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Physician', {
+	setup: function(frm) {
+		frm.set_query('account', 'accounts', function(doc, cdt, cdn) {
+			var d	= locals[cdt][cdn];
+			return {
+				filters: {
+					'root_type': 'Income',
+					'company': d.company,
+				}
+			};
+		});
+	},
+	refresh: function(frm) {
+		frappe.dynamic_link = {doc: frm.doc, fieldname: 'name', doctype: 'Physician'};
+		if(!frm.is_new()) {
+			frappe.contacts.render_address_and_contact(frm);
+		}
+	}
+});
+
+frappe.ui.form.on("Physician", "user_id",function(frm) {
+	if(frm.doc.user_id){
+		frappe.call({
+			"method": "frappe.client.get",
+			args: {
+				doctype: "User",
+				name: frm.doc.user_id
+			},
+			callback: function (data) {
+				if(!frm.doc.employee){
+					frappe.model.get_value('Employee', {'user_id': frm.doc.user_id}, 'name',
+						function(data) {
+							if(data)
+								frappe.model.set_value(frm.doctype,frm.docname, "employee", data.name);
+						});
+				}
+				if(!frm.doc.first_name)
+					frappe.model.set_value(frm.doctype,frm.docname, "first_name", data.message.first_name);
+				if(!frm.doc.middle_name)
+					frappe.model.set_value(frm.doctype,frm.docname, "middle_name", data.message.middle_name);
+				if(!frm.doc.last_name)
+					frappe.model.set_value(frm.doctype,frm.docname, "last_name", data.message.last_name);
+				if(!frm.doc.mobile_phone)
+					frappe.model.set_value(frm.doctype,frm.docname, "mobile_phone", data.message.phone);
+			}
+		});
+	}
+});
+
+frappe.ui.form.on("Physician", "employee", function(frm) {
+	if(frm.doc.employee){
+		frappe.call({
+			"method": "frappe.client.get",
+			args: {
+				doctype: "Employee",
+				name: frm.doc.employee
+			},
+			callback: function (data) {
+				if(!frm.doc.designation)
+					frappe.model.set_value(frm.doctype,frm.docname, "designation", data.message.designation);
+				if(!frm.doc.first_name)
+					frappe.model.set_value(frm.doctype,frm.docname, "first_name", data.message.employee_name);
+				if(!frm.doc.mobile_phone)
+					frappe.model.set_value(frm.doctype,frm.docname, "mobile_phone", data.message.cell_number);
+				if(!frm.doc.address)
+					frappe.model.set_value(frm.doctype,frm.docname, "address", data.message.current_address);
+			}
+		});
+	}
+});
diff --git a/erpnext/healthcare/doctype/physician/physician.json b/erpnext/healthcare/doctype/physician/physician.json
new file mode 100644
index 0000000..565653b
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician/physician.json
@@ -0,0 +1,891 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "", 
+ "beta": 1, 
+ "creation": "2016-02-23 11:20:53.565119", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "first_name", 
+   "fieldtype": "Data", 
+   "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": "First Name", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "middle_name", 
+   "fieldtype": "Data", 
+   "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": "Middle Name (Optional)", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "last_name", 
+   "fieldtype": "Data", 
+   "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": "Last Name", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "image", 
+   "fieldtype": "Attach Image", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Image", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "employee", 
+   "fieldtype": "Link", 
+   "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": "Employee", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Employee", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "user_id", 
+   "fieldtype": "Link", 
+   "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": "User", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "User", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "designation", 
+   "fieldtype": "Link", 
+   "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": "Designation", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Designation", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "department", 
+   "fieldtype": "Link", 
+   "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": "Department", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Medical Department", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_7", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "hospital", 
+   "fieldtype": "Data", 
+   "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": "Hospital", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "mobile_phone", 
+   "fieldtype": "Data", 
+   "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": "Mobile", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "residence_phone", 
+   "fieldtype": "Data", 
+   "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": "Phone (R)", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "office_phone", 
+   "fieldtype": "Data", 
+   "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": "Phone (Office)", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "appointments", 
+   "fieldtype": "Section Break", 
+   "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": "Appointments", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 1, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "physician_schedule", 
+   "fieldtype": "Link", 
+   "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": "Physician Schedule", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Physician Schedule", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_17", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "time_per_appointment", 
+   "fieldtype": "Data", 
+   "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": "Time per Appointment", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "charges", 
+   "fieldtype": "Section Break", 
+   "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": "Charges", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "op_consulting_charge", 
+   "fieldtype": "Currency", 
+   "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": "OP Consulting Charge", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Currency", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "contacts_and_address", 
+   "fieldtype": "Section Break", 
+   "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": "Contacts and Address", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "address_html", 
+   "fieldtype": "HTML", 
+   "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": "Address HTML", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_19", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "contact_html", 
+   "fieldtype": "HTML", 
+   "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": "Contact HTML", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "account_details", 
+   "fieldtype": "Section Break", 
+   "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": "Account Details", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "accounts", 
+   "fieldtype": "Table", 
+   "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": "Income Account", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Party Account", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "default_currency", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Default Currency", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Currency", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_field": "image", 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:51:28.975120", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Physician", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Nursing User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "first_name,mobile_phone,office_phone", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "first_name", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/physician/physician.py b/erpnext/healthcare/doctype/physician/physician.py
new file mode 100644
index 0000000..8680d5d
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician/physician.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+from frappe import throw, _
+from frappe.utils import cstr
+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):
+	def onload(self):
+		load_address_and_contact(self)
+
+	def autoname(self):
+		# physician first_name and last_name
+		self.name = " ".join(filter(None,
+			[cstr(self.get(f)).strip() for f in ["first_name","middle_name","last_name"]]))
+
+	def validate(self):
+		validate_party_accounts(self)
+		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")
+			if(self.user_id != existing_user_id):
+				frappe.permissions.remove_user_permission(
+					"Physician", self.name, existing_user_id)
+
+
+		else:
+			existing_user_id = frappe.db.get_value("Physician", self.name, "user_id")
+			if existing_user_id:
+				frappe.permissions.remove_user_permission(
+					"Physician", self.name, existing_user_id)
+
+	def on_update(self):
+		if self.user_id:
+			frappe.permissions.add_user_permission("Physician", self.name, self.user_id)
+
+
+	def validate_for_enabled_user_id(self):
+		enabled = frappe.db.get_value("User", self.user_id, "enabled")
+		if enabled is None:
+			frappe.throw(_("User {0} does not exist").format(self.user_id))
+		if enabled == 0:
+			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
+			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)
+
+	def on_trash(self):
+		delete_contact_and_address('Physician', self.name)
diff --git a/erpnext/healthcare/doctype/physician/test_physician.js b/erpnext/healthcare/doctype/physician/test_physician.js
new file mode 100644
index 0000000..43750ac
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician/test_physician.js
@@ -0,0 +1,23 @@
+/* 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
new file mode 100644
index 0000000..b6ea92c
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician/test_physician.py
@@ -0,0 +1,10 @@
+# -*- 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('Physician')
+
+class TestPhysician(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/physician_schedule/__init__.py b/erpnext/healthcare/doctype/physician_schedule/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule/__init__.py
diff --git a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.js b/erpnext/healthcare/doctype/physician_schedule/physician_schedule.js
new file mode 100644
index 0000000..e198d35
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule/physician_schedule.js
@@ -0,0 +1,59 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Physician Schedule', {
+	refresh: function(frm) {
+		frm.add_custom_button(__('Add Time Slots'), () => {
+			var d = new frappe.ui.Dialog({
+				fields: [
+					{fieldname: 'day', label: __('Day'), fieldtype:'Select',
+						options:[
+							{value:'Sunday', label:__('Sunday')},
+							{value:'Monday', label:__('Monday')},
+							{value:'Tuesday', label:__('Tuesday')},
+							{value:'Wednesday', label:__('Wednesday')},
+							{value:'Thursday', label:__('Thursday')},
+							{value:'Friday', label:__('Friday')},
+							{value:'Saturday', label:__('Saturday')},
+						], reqd: 1, 'default': 'Monday'},
+					{fieldname: 'from_time', label:__('From'), fieldtype:'Time',
+						'default': '09:00:00', reqd: 1},
+					{fieldname: 'to_time', label:__('To'), fieldtype:'Time',
+						'default': '12:00:00', reqd: 1},
+					{fieldname: 'duration', label:__('Appointment Duration (mins)'),
+						fieldtype:'Int', 'default': 15, reqd: 1},
+				],
+				primary_action_label: __('Add Timeslots'),
+				primary_action: () => {
+					var values = d.get_values();
+					if(values) {
+						let cur_time = moment(values.from_time, 'HH:mm:ss');
+						let end_time = moment(values.to_time, 'HH:mm:ss');
+
+
+						while(cur_time < end_time) {
+							let to_time = cur_time.clone().add(values.duration, 'minutes');
+							if(to_time < end_time) {
+
+								// add a new timeslot
+								frm.add_child('time_slots', {
+									from_time: cur_time.format('HH:mm:ss'),
+									to_time: to_time.format('HH:mm:ss'),
+									day: values.day
+								});
+							}
+							cur_time = to_time;
+						}
+
+						frm.refresh_field('time_slots');
+						frappe.show_alert({
+							message:__('Time slots added'),
+							indicator:'green'
+						});
+					}
+				},
+			});
+			d.show();
+		});
+	}
+});
diff --git a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.json b/erpnext/healthcare/doctype/physician_schedule/physician_schedule.json
new file mode 100644
index 0000000..bd8e539
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule/physician_schedule.json
@@ -0,0 +1,155 @@
+{
+ "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:schedule_name", 
+ "beta": 1, 
+ "creation": "2017-05-03 17:28:03.926787", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "schedule_name", 
+   "fieldtype": "Data", 
+   "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": "Schedule Name", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "time_slots", 
+   "fieldtype": "Table", 
+   "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": "Time Slots", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Physician Schedule Time Slot", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "disabled", 
+   "fieldtype": "Check", 
+   "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": "Disabled", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:42:26.713507", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Physician Schedule", 
+ "name_case": "", 
+ "owner": "rmehta@gmail.com", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/physician_schedule/physician_schedule.py b/erpnext/healthcare/doctype/physician_schedule/physician_schedule.py
new file mode 100644
index 0000000..5cbdd12
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule/physician_schedule.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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):
+	pass
diff --git a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js b/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js
new file mode 100644
index 0000000..c397f18
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Physician 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', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.py b/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.py
new file mode 100644
index 0000000..ece3578
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule/test_physician_schedule.py
@@ -0,0 +1,8 @@
+# -*- 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_time_slot/__init__.py b/erpnext/healthcare/doctype/physician_schedule_time_slot/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule_time_slot/__init__.py
diff --git a/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.json b/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.json
new file mode 100644
index 0000000..8aece2b
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.json
@@ -0,0 +1,133 @@
+{
+ "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2017-05-03 17:27:07.466088", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "day", 
+   "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": "Day", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sunday\nMonday\nTuesday\nWednesday\nThursday\nFriday\nSaturday", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "from_time", 
+   "fieldtype": "Time", 
+   "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": "From Time", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "to_time", 
+   "fieldtype": "Time", 
+   "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": "To Time", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "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-07-12 14:28:01.985998", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Physician Schedule Time Slot", 
+ "name_case": "", 
+ "owner": "rmehta@gmail.com", 
+ "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
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.py b/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.py
new file mode 100644
index 0000000..abdce51
--- /dev/null
+++ b/erpnext/healthcare/doctype/physician_schedule_time_slot/physician_schedule_time_slot.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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):
+	pass
diff --git a/erpnext/healthcare/doctype/prescription_dosage/__init__.py b/erpnext/healthcare/doctype/prescription_dosage/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_dosage/__init__.py
diff --git a/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.js b/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.js
new file mode 100644
index 0000000..94b444c
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Prescription Dosage', {
+});
diff --git a/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.json b/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.json
new file mode 100644
index 0000000..9c09506
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.json
@@ -0,0 +1,145 @@
+{
+ "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:dosage", 
+ "beta": 1, 
+ "creation": "2016-09-16 15:49:25.327610", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "dosage", 
+   "fieldtype": "Data", 
+   "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": "Dosage", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "dosage_strength", 
+   "fieldtype": "Table", 
+   "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, 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Dosage Strength", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:42:40.305284", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Prescription Dosage", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "dosage", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.py b/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.py
new file mode 100644
index 0000000..dea263d
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_dosage/prescription_dosage.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, 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 PrescriptionDosage(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/prescription_dosage/test_prescription_dosage.js b/erpnext/healthcare/doctype/prescription_dosage/test_prescription_dosage.js
new file mode 100644
index 0000000..009614f
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_dosage/test_prescription_dosage.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Prescription Dosage", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Prescription Dosage
+		() => frappe.tests.make('Prescription Dosage', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/prescription_dosage/test_prescription_dosage.py b/erpnext/healthcare/doctype/prescription_dosage/test_prescription_dosage.py
new file mode 100644
index 0000000..e61a418
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_dosage/test_prescription_dosage.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestPrescriptionDosage(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/prescription_duration/__init__.py b/erpnext/healthcare/doctype/prescription_duration/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_duration/__init__.py
diff --git a/erpnext/healthcare/doctype/prescription_duration/prescription_duration.js b/erpnext/healthcare/doctype/prescription_duration/prescription_duration.js
new file mode 100644
index 0000000..dd5887c
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_duration/prescription_duration.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Prescription Duration', {
+});
diff --git a/erpnext/healthcare/doctype/prescription_duration/prescription_duration.json b/erpnext/healthcare/doctype/prescription_duration/prescription_duration.json
new file mode 100644
index 0000000..c4f6c5f
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_duration/prescription_duration.json
@@ -0,0 +1,145 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "", 
+ "beta": 1, 
+ "creation": "2016-09-16 15:50:28.895789", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "number", 
+   "fieldtype": "Int", 
+   "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": "Number", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "period", 
+   "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": "Period", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Hour\nDay\nWeek\nMonth", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:42:51.325725", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Prescription Duration", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "", 
+ "sort_order": "ASC", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/prescription_duration/prescription_duration.py b/erpnext/healthcare/doctype/prescription_duration/prescription_duration.py
new file mode 100644
index 0000000..96ddf8d
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_duration/prescription_duration.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+from frappe.utils import cstr
+
+class PrescriptionDuration(Document):
+	def autoname(self):
+		self.name = " ".join(filter(None,
+			[cstr(self.get(f)).strip() for f in ["number", "period"]]))
+	def get_days(self):
+		days = 0
+		duration = self
+		if(duration.period == 'Day'):
+			days = duration.number
+		if(duration.period == 'Hour'):
+			days = (duration.number)/24
+		if(duration.period == 'Week'):
+			days = (duration.number*7)
+		if(duration.period == 'Month'):
+			days = (duration.number*30)
+		return days
+	def get_weeks(self):
+		weeks = 0
+		duration = self
+		if(duration.period == 'Day'):
+			weeks = (duration.number)/7
+		#if(duration.period == 'Hour'):
+		#	weeks = (duration.number)/x
+		if(duration.period == 'Week'):
+			weeks = duration.number
+		if(duration.period == 'Month'):
+			weeks = duration.number*4
+		return weeks
+	def get_months(self):
+		months = 0
+		duration = self
+		if(duration.period == 'Day'):
+			months = (duration.number)/30
+		#if(duration.period == 'Hour'):
+		#	months = (duration.number)/x
+		if(duration.period == 'Week'):
+			months = (duration.number)/4
+		if(duration.period == 'Month'):
+			months = duration.number
+		return months
+	def get_hours(self):
+		hours = 0
+		duration = self
+		if(duration.period == 'Day'):
+			hours = (duration.number*24)
+		if(duration.period == 'Hour'):
+			hours = duration.number
+		if(duration.period == 'Week'):
+			hours = (duration.number*24)*7
+		if(duration.period == 'Month'):
+			hours = (duration.number*24)*30
+		return hours
+	def get_minutes(self):
+		minutes = 0
+		duration = self
+		if(duration.period == 'Day'):
+			minutes = (duration.number*1440)
+		if(duration.period == 'Hour'):
+			minutes = (duration.number*60)
+		if(duration.period == 'Week'):
+			minutes = (duration.number*10080)
+		if(duration.period == 'Month'):
+			minutes = (duration.number*43800)
+		return minutes
diff --git a/erpnext/healthcare/doctype/prescription_duration/test_prescription_duration.js b/erpnext/healthcare/doctype/prescription_duration/test_prescription_duration.js
new file mode 100644
index 0000000..4971e79
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_duration/test_prescription_duration.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Prescription Duration", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Prescription Duration
+		() => frappe.tests.make('Prescription Duration', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/prescription_duration/test_prescription_duration.py b/erpnext/healthcare/doctype/prescription_duration/test_prescription_duration.py
new file mode 100644
index 0000000..fe5524c
--- /dev/null
+++ b/erpnext/healthcare/doctype/prescription_duration/test_prescription_duration.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+class TestPrescriptionDuration(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/sample_collection/__init__.py b/erpnext/healthcare/doctype/sample_collection/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/sample_collection/__init__.py
diff --git a/erpnext/healthcare/doctype/sample_collection/sample_collection.js b/erpnext/healthcare/doctype/sample_collection/sample_collection.js
new file mode 100644
index 0000000..9934ce4
--- /dev/null
+++ b/erpnext/healthcare/doctype/sample_collection/sample_collection.js
@@ -0,0 +1,40 @@
+// Copyright (c) 2016, ESS and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Sample Collection', {
+	refresh: function(frm) {
+		if(frappe.defaults.get_default("require_sample_collection")){
+			frm.add_custom_button(__("View Lab Tests"), function() {
+				frappe.route_options = {"sample": frm.doc.name};
+				frappe.set_route("List", "Lab Test");
+			});
+		}
+	}
+});
+
+frappe.ui.form.on("Sample Collection", "patient", function(frm) {
+	if(frm.doc.patient){
+		frappe.call({
+			"method": "erpnext.healthcare.doctype.patient.patient.get_patient_detail",
+			args: {
+				patient: frm.doc.patient
+			},
+			callback: function (data) {
+				var age = null;
+				if(data.message.dob){
+					age = calculate_age(data.message.dob);
+				}
+				frappe.model.set_value(frm.doctype,frm.docname, "patient_age", age);
+				frappe.model.set_value(frm.doctype,frm.docname, "patient_sex", data.message.sex);
+			}
+		});
+	}
+});
+
+var calculate_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)";
+};
diff --git a/erpnext/healthcare/doctype/sample_collection/sample_collection.json b/erpnext/healthcare/doctype/sample_collection/sample_collection.json
new file mode 100644
index 0000000..ee2f83f
--- /dev/null
+++ b/erpnext/healthcare/doctype/sample_collection/sample_collection.json
@@ -0,0 +1,614 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "naming_series:", 
+ "beta": 1, 
+ "creation": "2016-04-05 15:58:18.076977", 
+ "custom": 0, 
+ "default_print_format": "", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 1, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "", 
+   "fieldname": "naming_series", 
+   "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": "Series", 
+   "length": 0, 
+   "no_copy": 1, 
+   "options": "SMPL-", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "invoice", 
+   "fieldtype": "Link", 
+   "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": "Invoice", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sales Invoice", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "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": "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": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_4", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_age", 
+   "fieldtype": "Data", 
+   "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": "Age", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient_sex", 
+   "fieldtype": "Data", 
+   "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": "Gender", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "patient.sex", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Company", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Company", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_6", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample", 
+   "fieldtype": "Link", 
+   "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": "Sample", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test Sample", 
+   "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": 1, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample_uom", 
+   "fieldtype": "Data", 
+   "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": "UOM", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "sample.sample_uom", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0", 
+   "fieldname": "sample_quantity", 
+   "fieldtype": "Float", 
+   "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": "Quantity", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_10", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "collected_by", 
+   "fieldtype": "Link", 
+   "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": "Collected By", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "User", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "collected_time", 
+   "fieldtype": "Datetime", 
+   "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": "Collected Time", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 1, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "1", 
+   "fieldname": "num_print", 
+   "fieldtype": "Int", 
+   "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": "No. of print", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "amended_from", 
+   "fieldtype": "Link", 
+   "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": "Amended From", 
+   "length": 0, 
+   "no_copy": 1, 
+   "options": "Sample Collection", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_15", 
+   "fieldtype": "Section Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sample_collection_details", 
+   "fieldtype": "Long Text", 
+   "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": "Collection Details", 
+   "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
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 1, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:30:29.303026", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Sample Collection", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 1, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 1, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "patient, sample", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "patient", 
+ "track_changes": 1, 
+ "track_seen": 1
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/sample_collection/sample_collection.py b/erpnext/healthcare/doctype/sample_collection/sample_collection.py
new file mode 100644
index 0000000..2c64320
--- /dev/null
+++ b/erpnext/healthcare/doctype/sample_collection/sample_collection.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class SampleCollection(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/sample_collection/test_sample_collection.js b/erpnext/healthcare/doctype/sample_collection/test_sample_collection.js
new file mode 100644
index 0000000..2b4aed7
--- /dev/null
+++ b/erpnext/healthcare/doctype/sample_collection/test_sample_collection.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Sample Collection", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Sample Collection
+		() => frappe.tests.make('Sample Collection', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/sample_collection/test_sample_collection.py b/erpnext/healthcare/doctype/sample_collection/test_sample_collection.py
new file mode 100644
index 0000000..0b16173
--- /dev/null
+++ b/erpnext/healthcare/doctype/sample_collection/test_sample_collection.py
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import unittest
+
+# test_records = frappe.get_test_records('Sample Collection')
+
+class TestSampleCollection(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/sensitivity/__init__.py b/erpnext/healthcare/doctype/sensitivity/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity/__init__.py
diff --git a/erpnext/healthcare/doctype/sensitivity/sensitivity.js b/erpnext/healthcare/doctype/sensitivity/sensitivity.js
new file mode 100644
index 0000000..f9c9002
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity/sensitivity.js
@@ -0,0 +1,5 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Sensitivity', {
+});
diff --git a/erpnext/healthcare/doctype/sensitivity/sensitivity.json b/erpnext/healthcare/doctype/sensitivity/sensitivity.json
new file mode 100644
index 0000000..620f37a
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity/sensitivity.json
@@ -0,0 +1,115 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:sensitivity", 
+ "beta": 1, 
+ "creation": "2016-02-23 11:12:54.623249", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 0, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sensitivity", 
+   "fieldtype": "Data", 
+   "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": "Sensitivity", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-08-31 13:44:07.147326", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Sensitivity", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Laboratory User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 0
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Healthcare Administrator", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "sensitivity", 
+ "show_name_in_global_search": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "sensitivity", 
+ "track_changes": 1, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/sensitivity/sensitivity.py b/erpnext/healthcare/doctype/sensitivity/sensitivity.py
new file mode 100644
index 0000000..bf7c36b
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity/sensitivity.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class Sensitivity(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/sensitivity/test_sensitivity.js b/erpnext/healthcare/doctype/sensitivity/test_sensitivity.js
new file mode 100644
index 0000000..c2cf406
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity/test_sensitivity.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Sensitivity", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Sensitivity
+		() => frappe.tests.make('Sensitivity', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/sensitivity/test_sensitivity.py b/erpnext/healthcare/doctype/sensitivity/test_sensitivity.py
new file mode 100644
index 0000000..1616d2d
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity/test_sensitivity.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+# test_records = frappe.get_test_records('Sensitivity')
+
+class TestSensitivity(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/sensitivity_test_items/__init__.py b/erpnext/healthcare/doctype/sensitivity_test_items/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity_test_items/__init__.py
diff --git a/erpnext/healthcare/doctype/sensitivity_test_items/sensitivity_test_items.json b/erpnext/healthcare/doctype/sensitivity_test_items/sensitivity_test_items.json
new file mode 100644
index 0000000..e656b51
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity_test_items/sensitivity_test_items.json
@@ -0,0 +1,103 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2016-02-22 15:18:01.769903", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 1, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "antibiotic", 
+   "fieldtype": "Link", 
+   "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": "Antibiotic", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Antibiotic", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "antibiotic_sensitivity", 
+   "fieldtype": "Link", 
+   "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": "Sensitivity", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Sensitivity", 
+   "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
+  }
+ ], 
+ "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-08-31 13:46:40.609983", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Sensitivity Test Items", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "quick_entry": 0, 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/sensitivity_test_items/sensitivity_test_items.py b/erpnext/healthcare/doctype/sensitivity_test_items/sensitivity_test_items.py
new file mode 100644
index 0000000..35c8efd
--- /dev/null
+++ b/erpnext/healthcare/doctype/sensitivity_test_items/sensitivity_test_items.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class SensitivityTestItems(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/special_test_items/__init__.py b/erpnext/healthcare/doctype/special_test_items/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/special_test_items/__init__.py
diff --git a/erpnext/healthcare/doctype/special_test_items/special_test_items.json b/erpnext/healthcare/doctype/special_test_items/special_test_items.json
new file mode 100644
index 0000000..89545e9
--- /dev/null
+++ b/erpnext/healthcare/doctype/special_test_items/special_test_items.json
@@ -0,0 +1,166 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2016-02-22 15:12:36.202380", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Document", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "test_particulars", 
+   "fieldtype": "Data", 
+   "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": "Particulars", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:doc.require_result_value == 1", 
+   "fieldname": "result_value", 
+   "fieldtype": "Small Text", 
+   "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": "Value", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "print_width": "", 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0, 
+   "width": ""
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "require_result_value", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Require Result Value", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "template", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Template", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Lab Test Template", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 1, 
+   "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
+  }
+ ], 
+ "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-08-31 14:12:12.623714", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Special Test Items", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "quick_entry": 0, 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/special_test_items/special_test_items.py b/erpnext/healthcare/doctype/special_test_items/special_test_items.py
new file mode 100644
index 0000000..17080b7
--- /dev/null
+++ b/erpnext/healthcare/doctype/special_test_items/special_test_items.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class SpecialTestItems(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/special_test_template/__init__.py b/erpnext/healthcare/doctype/special_test_template/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/special_test_template/__init__.py
diff --git a/erpnext/healthcare/doctype/special_test_template/special_test_template.json b/erpnext/healthcare/doctype/special_test_template/special_test_template.json
new file mode 100644
index 0000000..83f3cb6
--- /dev/null
+++ b/erpnext/healthcare/doctype/special_test_template/special_test_template.json
@@ -0,0 +1,72 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2016-02-22 16:12:12.394200", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 1, 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "particulars", 
+   "fieldtype": "Data", 
+   "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": "Result Component", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "", 
+   "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
+  }
+ ], 
+ "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-08-31 14:08:18.833796", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Special Test Template", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "quick_entry": 0, 
+ "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": 0, 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/special_test_template/special_test_template.py b/erpnext/healthcare/doctype/special_test_template/special_test_template.py
new file mode 100644
index 0000000..e4e0d5b
--- /dev/null
+++ b/erpnext/healthcare/doctype/special_test_template/special_test_template.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+class SpecialTestTemplate(Document):
+	pass
diff --git a/erpnext/healthcare/doctype/vital_signs/__init__.py b/erpnext/healthcare/doctype/vital_signs/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/doctype/vital_signs/__init__.py
diff --git a/erpnext/healthcare/doctype/vital_signs/test_vital_signs.js b/erpnext/healthcare/doctype/vital_signs/test_vital_signs.js
new file mode 100644
index 0000000..f4ab446
--- /dev/null
+++ b/erpnext/healthcare/doctype/vital_signs/test_vital_signs.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Vital Signs", function (assert) {
+	let done = assert.async();
+
+	// number of asserts
+	assert.expect(1);
+
+	frappe.run_serially([
+		// insert a new Vital Signs
+		() => frappe.tests.make('Vital Signs', [
+			// values to be set
+			{key: 'value'}
+		]),
+		() => {
+			assert.equal(cur_frm.doc.key, 'value');
+		},
+		() => done()
+	]);
+
+});
diff --git a/erpnext/healthcare/doctype/vital_signs/test_vital_signs.py b/erpnext/healthcare/doctype/vital_signs/test_vital_signs.py
new file mode 100644
index 0000000..5d3e007
--- /dev/null
+++ b/erpnext/healthcare/doctype/vital_signs/test_vital_signs.py
@@ -0,0 +1,10 @@
+# -*- 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('Vital Signs')
+
+class TestVitalSigns(unittest.TestCase):
+	pass
diff --git a/erpnext/healthcare/doctype/vital_signs/vital_signs.js b/erpnext/healthcare/doctype/vital_signs/vital_signs.js
new file mode 100644
index 0000000..a5f9d61
--- /dev/null
+++ b/erpnext/healthcare/doctype/vital_signs/vital_signs.js
@@ -0,0 +1,49 @@
+// Copyright (c) 2016, ESS LLP and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on("Vital Signs", "height", function(frm) {
+	if(frm.doc.height && frm.doc.weight){
+		calculate_bmi(frm);
+	}
+});
+
+frappe.ui.form.on("Vital Signs", "weight", function(frm) {
+	if(frm.doc.height && frm.doc.weight){
+		calculate_bmi(frm);
+	}
+});
+
+var calculate_bmi = function(frm){
+	// Reference https://en.wikipedia.org/wiki/Body_mass_index
+	// bmi = weight (in Kg) / height * height (in Meter)
+	var bmi = (frm.doc.weight/(frm.doc.height*frm.doc.height)).toFixed(2);
+	var bmi_note = null;
+	if(bmi<18.5){
+		bmi_note = "Underweight";
+	}else if(bmi>=18.5 && bmi<25){
+		bmi_note = "Normal";
+	}else if(bmi>=25 && bmi<30){
+		bmi_note = "Overweight";
+	}else if(bmi>=30){
+		bmi_note = "Obese";
+	}
+	frappe.model.set_value(frm.doctype,frm.docname, "bmi", bmi);
+	frappe.model.set_value(frm.doctype,frm.docname, "nutrition_note", bmi_note);
+};
+
+frappe.ui.form.on("Vital Signs", "bp_systolic", function(frm) {
+	if(frm.doc.bp_systolic && frm.doc.bp_diastolic){
+		set_bp(frm);
+	}
+});
+
+frappe.ui.form.on("Vital Signs", "bp_diastolic", function(frm) {
+	if(frm.doc.bp_systolic && frm.doc.bp_diastolic){
+		set_bp(frm);
+	}
+});
+
+var set_bp = function(frm){
+	var bp = frm.doc.bp_systolic+"/"+frm.doc.bp_diastolic+" mmHg";
+	frappe.model.set_value(frm.doctype,frm.docname, "bp", bp);
+};
diff --git a/erpnext/healthcare/doctype/vital_signs/vital_signs.json b/erpnext/healthcare/doctype/vital_signs/vital_signs.json
new file mode 100644
index 0000000..e44af28
--- /dev/null
+++ b/erpnext/healthcare/doctype/vital_signs/vital_signs.json
@@ -0,0 +1,813 @@
+{
+ "allow_copy": 1, 
+ "allow_guest_to_view": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "beta": 1, 
+ "creation": "2017-02-02 11:00:24.853005", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "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": "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "appointment", 
+   "fieldtype": "Link", 
+   "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": "Appointment", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Patient Appointment", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "consultation", 
+   "fieldtype": "Link", 
+   "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": "Consultation", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Consultation", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_2", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "Today", 
+   "fieldname": "signs_date", 
+   "fieldtype": "Date", 
+   "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": "Date", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_4", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "", 
+   "fieldname": "signs_time", 
+   "fieldtype": "Time", 
+   "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": "Time", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_vs", 
+   "fieldtype": "Section Break", 
+   "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": "Vital Signs", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "Presence of a fever (temp &gt; 38.5 \u00b0C/101.3 \u00b0F or sustained temp &gt; 38 \u00b0C/100.4 \u00b0F)", 
+   "fieldname": "temperature", 
+   "fieldtype": "Data", 
+   "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": "Body Temperature", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "Adults' pulse rate is anywhere between 50 and 80 beats per minute.", 
+   "fieldname": "pulse", 
+   "fieldtype": "Data", 
+   "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": "Heart Rate / Pulse", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "Normal reference range for an adult is 16\u201320 breaths/minute (RCP 2012)", 
+   "fieldname": "respiratory_rate", 
+   "fieldtype": "Data", 
+   "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": "Respiratory rate", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_8", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "bp_systolic", 
+   "fieldtype": "Data", 
+   "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": "Blood Pressure (systolic)", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "", 
+   "fieldname": "bp_diastolic", 
+   "fieldtype": "Data", 
+   "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": "Blood Pressure (diastolic)", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "description": "Normal resting blood pressure in an adult is approximately 120 mmHg systolic, and 80 mmHg diastolic, abbreviated \"120/80 mmHg\"", 
+   "fieldname": "bp", 
+   "fieldtype": "Data", 
+   "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": "Blood Pressure", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "vital_signs_note", 
+   "fieldtype": "Small Text", 
+   "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": "Notes", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "sb_nutrition_values", 
+   "fieldtype": "Section Break", 
+   "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": "Nutrition Values", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "height", 
+   "fieldtype": "Float", 
+   "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": "Height (In Meter)", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "weight", 
+   "fieldtype": "Float", 
+   "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": "Weight (In Kilogram)", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "default": "0.00", 
+   "fieldname": "bmi", 
+   "fieldtype": "Float", 
+   "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": "BMI", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "column_break_14", 
+   "fieldtype": "Column Break", 
+   "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, 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "nutrition_note", 
+   "fieldtype": "Small Text", 
+   "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": "Notes", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Company", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Company", 
+   "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
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "amended_from", 
+   "fieldtype": "Link", 
+   "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": "Amended From", 
+   "length": 0, 
+   "no_copy": 1, 
+   "options": "Vital Signs", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }
+ ], 
+ "has_web_view": 0, 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "is_submittable": 1, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2017-09-04 14:31:57.851546", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Vital Signs", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Physician", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 1, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Nursing User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 1, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "restrict_to_domain": "Healthcare", 
+ "search_fields": "patient, signs_date", 
+ "show_name_in_global_search": 1, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "patient", 
+ "track_changes": 1, 
+ "track_seen": 1
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/vital_signs/vital_signs.py b/erpnext/healthcare/doctype/vital_signs/vital_signs.py
new file mode 100644
index 0000000..436f79f
--- /dev/null
+++ b/erpnext/healthcare/doctype/vital_signs/vital_signs.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class VitalSigns(Document):
+	def on_submit(self):
+		insert_vital_signs_to_medical_record(self)
+
+	def on_cancel(self):
+		delete_vital_signs_from_medical_record(self)
+
+def insert_vital_signs_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.signs_date
+	medical_record.reference_doctype = "Vital Signs"
+	medical_record.reference_name = doc.name
+	medical_record.reference_owner = doc.owner
+	medical_record.save(ignore_permissions=True)
+
+def delete_vital_signs_from_medical_record(doc):
+	medical_record_id = frappe.db.sql("select name from `tabPatient Medical Record` where reference_name=%s",(doc.name))
+	if(medical_record_id[0][0]):
+		frappe.delete_doc("Patient Medical Record", medical_record_id[0][0])
+
+def set_subject_field(doc):
+	subject = " "
+	if(doc.temperature):
+		subject += "Temperature: \n"+ str(doc.temperature)+". "
+	if(doc.pulse):
+		subject += "Pulse: \n"+ str(doc.pulse)+". "
+	if(doc.respiratory_rate):
+		subject += "Respiratory Rate: \n"+ str(doc.respiratory_rate)+". "
+	if(doc.bp):
+		subject += "BP: \n"+ str(doc.bp)+". "
+	if(doc.bmi):
+		subject += "BMI: \n"+ str(doc.bmi)+". "
+	if(doc.nutrition_note):
+		subject += "Note: \n"+ str(doc.nutrition_note)+". "
+
+	return subject
diff --git a/erpnext/healthcare/page/__init__.py b/erpnext/healthcare/page/__init__.py
new file mode 100644
index 0000000..baffc48
--- /dev/null
+++ b/erpnext/healthcare/page/__init__.py
@@ -0,0 +1 @@
+from __future__ import unicode_literals
diff --git a/erpnext/healthcare/page/appointment_analytic/__init__.py b/erpnext/healthcare/page/appointment_analytic/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/page/appointment_analytic/__init__.py
diff --git a/erpnext/healthcare/page/appointment_analytic/appointment_analytic.js b/erpnext/healthcare/page/appointment_analytic/appointment_analytic.js
new file mode 100644
index 0000000..971d810
--- /dev/null
+++ b/erpnext/healthcare/page/appointment_analytic/appointment_analytic.js
@@ -0,0 +1,209 @@
+frappe.pages['appointment-analytic'].on_page_load = function(wrapper) {
+	frappe.ui.make_app_page({
+		parent: wrapper,
+		title: 'Appointment Analytics',
+		single_column: true
+	});
+	new erpnext.AppointmentAnalytics(wrapper);
+	frappe.breadcrumbs.add("Medical");
+};
+
+erpnext.AppointmentAnalytics = frappe.views.TreeGridReport.extend({
+	init: function(wrapper) {
+		this._super({
+			title: __("Appointment Analytics"),
+			parent: $(wrapper).find('.layout-main'),
+			page: wrapper.page,
+			doctypes: ["Patient Appointment", "Physician", "Medical Department", "Appointment Type", "Patient"],
+			tree_grid: { show: true }
+		});
+
+		this.tree_grids = {
+			"Medical Department": {
+				label: __("Department"),
+				show: true,
+				item_key: "physician",
+				parent_field: "department",
+				formatter: function(item) {
+					return item.name;
+				}
+			},
+			"Physician": {
+				label: __("Physician"),
+				show: true,
+				item_key: "physician",
+				formatter: function(item) {
+					return item.name;
+				}
+			},
+		};
+	},
+	setup_columns: function() {
+		this.tree_grid = this.tree_grids[this.tree_type];
+
+		var std_columns = [
+			{id: "_check", name: __("Plot"), field: "_check", width: 40,
+				formatter: this.check_formatter},
+			{id: "name", name: this.tree_grid.label, field: "name", width: 300,
+				formatter: this.tree_formatter},
+			{id: "total", name: "Total", field: "total", plot: false,
+				formatter: this.currency_formatter}
+		];
+
+		this.make_date_range_columns();
+		this.columns = std_columns.concat(this.columns);
+	},
+	filters: [
+		{fieldtype:"Select", label: __("Tree Type"), fieldname: "tree_type",
+			options:["Physician", "Medical Department"], filter: function(val, item, opts, me) {
+				return me.apply_zero_filter(val, item, opts, me);}},
+		{fieldtype:"Select", label: __("Status"), fieldname: "status",
+			options:[
+				{label: __("Select Status"), value: "Select Status..."},
+				{label: __("Open"), value: "Open"},
+				{label: __("Closed"), value: "Closed"},
+				{label: __("Pending"), value: "Pending"},
+				{label: __("Scheduled"), value: "Scheduled"},
+				{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) {
+				return val == opts.default_value || item.name == val || item._show;
+			}, link_formatter: {filter_input: "physician"}},
+		{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;
+			}, link_formatter: {filter_input: "department"}},
+		{fieldtype:"Date", label: __("From Date"), fieldname: "from_date"},
+		{fieldtype:"Date", label: __("To Date"), fieldname: "to_date"},
+		{fieldtype:"Select", label: __("Range"), fieldname: "range",
+			options:[{label: __("Daily"), value: "Daily"}, {label: __("Weekly"), value: "Weekly"},
+				{label: __("Monthly"), value: "Monthly"}, {label: __("Quarterly"), value: "Quarterly"},
+				{label: __("Yearly"), value: "Yearly"}]}
+	],
+	setup_filters: function() {
+		this._super();
+		this.trigger_refresh_on_change(["tree_type", "physician", "department", "status", "type"]);
+
+		//	this.show_zero_check()
+		this.setup_chart_check();
+	},
+	init_filter_values: function() {
+		this._super();
+		this.filter_inputs.range.val('Quarterly');
+	},
+	prepare_data: function() {
+		var me = this;
+		if (!this.tl) {
+			this.tl = frappe.report_dump.data["Patient Appointment"];
+		}
+		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=='Medical Department') {
+				items = this.prepare_tree("Physician", "Medical Department");
+			}
+			me.item_type = me.tree_type;
+			me.parent_map = {};
+			me.item_by_name = {};
+			me.data = [];
+
+			$.each(items, function(i, v) {
+				var d = copy_dict(v);
+
+				me.data.push(d);
+				me.item_by_name[d.name] = d;
+				if(d[me.tree_grid.parent_field]) {
+					me.parent_map[d.name] = d[me.tree_grid.parent_field];
+				}
+				me.reset_item_values(d);
+			});
+
+			this.set_indent();
+
+
+		} else {
+			// otherwise, only reset values
+			$.each(this.data, function(i, d) {
+				me.reset_item_values(d);
+			});
+		}
+		this.prepare_balances();
+		if(me.tree_grid.show) {
+			this.set_totals(false);
+			this.update_groups();
+		} else {
+			this.set_totals(true);
+		}
+
+
+	},
+	prepare_balances: function() {
+		var me = this;
+		var from_date = frappe.datetime.str_to_obj(this.from_date);
+		var status = this.status;
+		var type = this.type;
+		var to_date = frappe.datetime.str_to_obj(this.to_date);
+		$.each(this.tl, function(i, tl) {
+			if (me.is_default('company') ? true : tl.company === me.company) {
+
+				var date = frappe.datetime.str_to_obj(tl.appointment_date);
+				if (date >= from_date && date <= to_date) {
+					var item = me.item_by_name[tl[me.tree_grid.item_key]] ||
+						me.item_by_name['Not Set'];
+
+					var d = tl.appointment_date.split(" ")[0];
+					if(status == "Select Status..." && type=="Select Type...")
+					{
+						item[me.column_map[d].field] += 1;
+
+					}else if (status !== "Select Status..." && type == "Select Type..."){
+						if(status === tl.status){item[me.column_map[d].field] += 1;}
+					}else if (status == "Select Status..." && type !== "Select Type..."){
+						if(type === tl.appointment_type){item[me.column_map[d].field] += 1;}
+					}else {
+						if(type === tl.appointment_type && status === tl.status){item[me.column_map[d].field] += 1;}
+					}
+				}
+			}
+		});
+	},
+	update_groups: function() {
+		var me = this;
+
+		$.each(this.data, function(i, item) {
+			var parent = me.parent_map[item.name];
+			while(parent) {
+				var parent_group = me.item_by_name[parent];
+
+				$.each(me.columns, function(c, col) {
+					if (col.formatter == me.currency_formatter) {
+						parent_group[col.field] =
+							flt(parent_group[col.field])
+							+ flt(item[col.field]);
+					}
+				});
+				parent = me.parent_map[parent];
+			}
+		});
+	},
+	set_totals: function(sort) {
+		var me = this;
+		$.each(this.data, function(i, d) {
+			d.total = 0.0;
+			$.each(me.columns, function(i, col) {
+				if(col.formatter==me.currency_formatter && !col.hidden && col.field!="total")
+					d.total += d[col.field];
+			});
+		});
+
+		if(sort)this.data = this.data.sort(function(a, b) { return b.total - a.total; });
+
+		if(!this.checked) {
+			this.data[0].checked = true;
+		}
+	}
+
+});
diff --git a/erpnext/healthcare/page/appointment_analytic/appointment_analytic.json b/erpnext/healthcare/page/appointment_analytic/appointment_analytic.json
new file mode 100644
index 0000000..4deff80
--- /dev/null
+++ b/erpnext/healthcare/page/appointment_analytic/appointment_analytic.json
@@ -0,0 +1,22 @@
+{
+ "content": null,
+ "creation": "2016-08-18 12:29:52.497819",
+ "docstatus": 0,
+ "doctype": "Page",
+ "idx": 0,
+ "modified": "2016-08-18 12:29:52.497819",
+ "modified_by": "Administrator",
+ "module": "Healthcare",
+ "name": "appointment-analytic",
+ "owner": "Administrator",
+ "page_name": "Appointment Analytics",
+ "roles": [
+  {
+   "role": "Physician"
+  }
+ ],
+ "script": null,
+ "standard": "Yes",
+ "style": null,
+ "title": "Appointment Analytics"
+}
diff --git a/erpnext/healthcare/page/medical_record/__init__.py b/erpnext/healthcare/page/medical_record/__init__.py
new file mode 100644
index 0000000..baffc48
--- /dev/null
+++ b/erpnext/healthcare/page/medical_record/__init__.py
@@ -0,0 +1 @@
+from __future__ import unicode_literals
diff --git a/erpnext/healthcare/page/medical_record/medical_record.css b/erpnext/healthcare/page/medical_record/medical_record.css
new file mode 100644
index 0000000..e76df0f
--- /dev/null
+++ b/erpnext/healthcare/page/medical_record/medical_record.css
@@ -0,0 +1,73 @@
+#page-medical_record .label {
+	display: inline-block;
+	margin-right: 7px;
+}
+
+#page-medical_record .list-row {
+	border: none;
+	padding: 0px;
+	cursor: pointer;
+}
+
+.medical_record-label {
+	max-width: 100px;
+	margin-bottom: -4px;
+}
+
+.date-indicator {
+    background:none;
+    font-size:12px;
+    vertical-align:middle;
+    font-weight:bold;
+    color:#6c7680;
+}
+.date-indicator::after {
+    margin:0 -4px 0 12px;
+    content:'';
+    display:inline-block;
+    height:8px;
+    width:8px;
+    border-radius:8px;
+	background: #d1d8dd;
+}
+
+.date-indicator.blue {
+	color: #5e64ff;
+}
+
+.date-indicator.blue::after {
+	background: #5e64ff;
+}
+
+.medical_record-message {
+	border-left: 1px solid #d1d8dd;
+	padding: 15px;
+	padding-right: 30px;
+}
+
+.medical_record-date {
+	padding: 15px;
+	padding-right: 0px;
+	z-index: 1;
+}
+
+#page-medical_record .plot-wrapper {
+	padding: 20px 15px;
+	border-bottom: 1px solid #d1d8dd;
+	text-align: center;
+}
+
+#page-medical_record .plot {
+	height: 140px ;
+	width: 97% ;
+	margin: auto;
+}
+
+#page-medical_record .list-filters {
+	display: none ;
+}
+
+#page-medical_record .octicon-heart {
+	color: #ff5858;
+	margin: 0px 5px;
+}
diff --git a/erpnext/healthcare/page/medical_record/medical_record.js b/erpnext/healthcare/page/medical_record/medical_record.js
new file mode 100644
index 0000000..df19d8f
--- /dev/null
+++ b/erpnext/healthcare/page/medical_record/medical_record.js
@@ -0,0 +1,182 @@
+frappe.provide("frappe.medical_record");
+frappe.pages['medical_record'].on_page_load = function(wrapper) {
+	var me = this;
+	var page = frappe.ui.make_app_page({
+		parent: wrapper,
+		title: 'Medical Record',
+	});
+
+	frappe.breadcrumbs.add("Medical");
+
+	page.main.html(frappe.render_template("patient_select", {}));
+	var patient = frappe.ui.form.make_control({
+		parent: page.main.find(".patient"),
+		df: {
+			fieldtype: "Link",
+			options: "Patient",
+			fieldname: "patient",
+			change: function(){
+				page.main.find(".frappe-list").html("");
+				draw_page(patient.get_value(), me);
+			}
+		},
+		only_input: true,
+	});
+	patient.refresh();
+
+
+	this.page.main.on("click", ".medical_record-message", function() {
+		var	doctype = $(this).attr("data-doctype"),
+			docname = $(this).attr("data-docname");
+
+		if (doctype && docname) {
+			frappe.route_options = {
+				scroll_to: { "doctype": doctype, "name": docname }
+			};
+			frappe.set_route(["Form", doctype, docname]);
+		}
+	});
+
+	this.page.sidebar.on("click", ".edit-details", function() {
+		patient = patient.get_value();
+		if (patient) {
+			frappe.set_route(["Form", "Patient", patient]);
+		}
+	});
+
+};
+
+frappe.pages['medical_record'].refresh = function() {
+	var me = this;
+
+	if(frappe.route_options) {
+		if(frappe.route_options.patient){
+			me.page.main.find(".frappe-list").html("");
+			var patient = frappe.route_options.patient;
+			draw_page(patient,me);
+			me.page.main.find("[data-fieldname='patient']").val(patient);
+			frappe.route_options = null;
+		}
+	}
+};
+var show_patient_info = function(patient, me){
+	frappe.call({
+		"method": "erpnext.healthcare.doctype.patient.patient.get_patient_detail",
+		args: {
+			patient: patient
+		},
+		callback: function (r) {
+			var data = r.message;
+			var details = "";
+			if(data.email) details += "<br><b>Email :</b> " + data.email;
+			if(data.mobile) details += "<br><b>Mobile :</b> " + data.mobile;
+			if(data.occupation) details += "<br><b>Occupation :</b> " + data.occupation;
+			if(data.blood_group) details += "<br><b>Blood group : </b> " + data.blood_group;
+			if(data.allergies) details +=  "<br><br><b>Allergies : </b> "+  data.allergies;
+			if(data.medication) details +=  "<br><b>Medication : </b> "+  data.medication;
+			if(data.alcohol_current_use) details +=  "<br><br><b>Alcohol use : </b> "+  data.alcohol_current_use;
+			if(data.alcohol_past_use) details +=  "<br><b>Alcohol past use : </b> "+  data.alcohol_past_use;
+			if(data.tobacco_current_use) details +=  "<br><b>Tobacco use : </b> "+  data.tobacco_current_use;
+			if(data.tobacco_past_use) details +=  "<br><b>Tobacco past use : </b> "+  data.tobacco_past_use;
+			if(data.medical_history) details +=  "<br><br><b>Medical history : </b> "+  data.medical_history;
+			if(data.surgical_history) details +=  "<br><b>Surgical history : </b> "+  data.surgical_history;
+			if(data.surrounding_factors) details +=  "<br><br><b>Occupational hazards : </b> "+  data.surrounding_factors;
+			if(data.other_risk_factors) details += "<br><b>Other risk factors : </b> " + data.other_risk_factors;
+			if(data.patient_details) details += "<br><br><b>More info : </b> " + data.patient_details;
+
+			if(details){
+				details = "<div style='padding-left:10px; font-size:13px;' align='center'></br><b class='text-muted'>Patient Details</b>" + details + "</div>";
+			}
+
+			var vitals = "";
+			if(data.temperature) vitals += "<br><b>Temperature :</b> " + data.temperature;
+			if(data.pulse) vitals += "<br><b>Pulse :</b> " + data.pulse;
+			if(data.respiratory_rate) vitals += "<br><b>Respiratory Rate :</b> " + data.respiratory_rate;
+			if(data.bp) vitals += "<br><b>BP :</b> " + data.bp;
+			if(data.bmi) vitals += "<br><b>BMI :</b> " + data.bmi;
+			if(data.height) vitals += "<br><b>Height :</b> " + data.height;
+			if(data.weight) vitals += "<br><b>Weight :</b> " + data.weight;
+			if(data.signs_date) vitals += "<br><b>Date :</b> " + data.signs_date;
+
+			if(vitals){
+				vitals = "<div style='padding-left:10px; font-size:13px;' align='center'></br><b class='text-muted'>Vital Signs</b>" + vitals + "<br></div>";
+				details = vitals + details;
+			}
+			if(details) details += "<div align='center'><br><a class='btn btn-default btn-sm edit-details'>Edit Details</a></b> </div>";
+
+			me.page.sidebar.addClass("col-sm-3");
+			me.page.sidebar.html(details);
+			me.page.wrapper.find(".layout-main-section-wrapper").addClass("col-sm-9");
+		}
+	});
+};
+var draw_page = function(patient, me){
+	frappe.model.with_doctype("Patient Medical Record", function() {
+		me.page.list = new frappe.ui.BaseList({
+			hide_refresh: true,
+			page: me.page,
+			method: 'erpnext.healthcare.page.medical_record.medical_record.get_feed',
+			args: {name: patient},
+			parent: $("<div></div>").appendTo(me.page.main),
+			render_view: function(values) {
+				var me = this;
+				var wrapper = me.page.main.find(".result-list").get(0);
+				values.map(function (value) {
+					var row = $('<div class="list-row">').data("data", value).appendTo($(wrapper)).get(0);
+					new frappe.medical_record.Feed(row, value);
+				});
+			},
+			show_filters: true,
+			doctype: "Patient Medical Record",
+		});
+		show_patient_info(patient, me);
+		me.page.list.run();
+	});
+};
+
+frappe.medical_record.last_feed_date = false;
+frappe.medical_record.Feed = Class.extend({
+	init: function(row, data) {
+		this.scrub_data(data);
+		this.add_date_separator(row, data);
+		if(!data.add_class)
+			data.add_class = "label-default";
+
+		data.link = "";
+		if (data.reference_doctype && data.reference_name) {
+			data.link = frappe.format(data.reference_name, {fieldtype: "Link", options: data.reference_doctype},
+				{label: __(data.reference_doctype)});
+		}
+
+		$(row)
+			.append(frappe.render_template("medical_record_row", data))
+			.find("a").addClass("grey");
+	},
+	scrub_data: function(data) {
+		data.by = frappe.user.full_name(data.owner);
+		data.imgsrc = frappe.utils.get_file_link(frappe.user_info(data.owner).image);
+
+		data.icon = "icon-flag";
+	},
+	add_date_separator: function(row, data) {
+		var date = frappe.datetime.str_to_obj(data.creation);
+		var last = frappe.medical_record.last_feed_date;
+
+		if((last && frappe.datetime.obj_to_str(last) != frappe.datetime.obj_to_str(date)) || (!last)) {
+			var diff = frappe.datetime.get_day_diff(frappe.datetime.get_today(), frappe.datetime.obj_to_str(date));
+			if(diff < 1) {
+				var pdate = 'Today';
+			} else if(diff < 2) {
+				pdate = 'Yesterday';
+			} else {
+				pdate = frappe.datetime.global_date_format(date);
+			}
+			data.date_sep = pdate;
+			data.date_class = pdate=='Today' ? "date-indicator blue" : "date-indicator";
+		} else {
+			data.date_sep = null;
+			data.date_class = "";
+		}
+		frappe.medical_record.last_feed_date = date;
+	}
+});
diff --git a/erpnext/healthcare/page/medical_record/medical_record.json b/erpnext/healthcare/page/medical_record/medical_record.json
new file mode 100644
index 0000000..7c786ca
--- /dev/null
+++ b/erpnext/healthcare/page/medical_record/medical_record.json
@@ -0,0 +1,23 @@
+{
+ "content": null,
+ "creation": "2016-06-09 11:33:14.025787",
+ "docstatus": 0,
+ "doctype": "Page",
+ "icon": "icon-play",
+ "idx": 0,
+ "modified": "2017-03-06 11:20:40.174661",
+ "modified_by": "Administrator",
+ "module": "Healthcare",
+ "name": "medical_record",
+ "owner": "Administrator",
+ "page_name": "medical_record",
+ "roles": [
+  {
+   "role": "Physician"
+  }
+ ],
+ "script": null,
+ "standard": "Yes",
+ "style": null,
+ "title": "Medical Record"
+}
diff --git a/erpnext/healthcare/page/medical_record/medical_record.py b/erpnext/healthcare/page/medical_record/medical_record.py
new file mode 100644
index 0000000..22c5852
--- /dev/null
+++ b/erpnext/healthcare/page/medical_record/medical_record.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, ESS LLP and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.utils import cint
+
+@frappe.whitelist()
+def get_feed(start, page_length, name):
+	"""get feed"""
+	result = frappe.db.sql("""select name, owner, modified, creation,
+			reference_doctype, reference_name, subject
+		from `tabPatient Medical Record`
+		where patient=%(patient)s
+		order by creation desc
+		limit %(start)s, %(page_length)s""",
+		{
+			"start": cint(start),
+			"page_length": cint(page_length),
+			"patient": name
+		}, as_dict=True)
+
+	return result
diff --git a/erpnext/healthcare/page/medical_record/medical_record_row.html b/erpnext/healthcare/page/medical_record/medical_record_row.html
new file mode 100644
index 0000000..6b79146
--- /dev/null
+++ b/erpnext/healthcare/page/medical_record/medical_record_row.html
@@ -0,0 +1,21 @@
+<div class="row medical_record-row" data-creation="{%= creation.split(" ")[0] + " 00:00:00" %}">
+	<div class="col-xs-3 text-right medical_record-date"><span class="{%= date_class %}">
+		{%= date_sep || "" %}</span>
+	</div>
+	<div class="col-xs-9 medical_record-message"
+		data-doctype="{%= reference_doctype %}"
+		data-docname="{%= reference_name %}"
+		title="{%= by %} / {%= dateutil.str_to_user(creation) %}">
+		<span class="avatar avatar-small">
+			<div class="avatar-frame" style="background-image: url({{ imgsrc }});"></div>
+			<!-- <img src="{%= imgsrc %}"> -->
+		</span>
+		<span class="small">
+		{% if (reference_doctype && reference_name) { %}
+			{%= __("{0}: {1}", [link, "<strong>" + subject + "</strong>"]) %}
+		{% } else { %}
+			{%= subject %}
+		{% } %}
+	</span>
+	</div>
+</div>
diff --git a/erpnext/healthcare/page/medical_record/patient_select.html b/erpnext/healthcare/page/medical_record/patient_select.html
new file mode 100644
index 0000000..321baf7
--- /dev/null
+++ b/erpnext/healthcare/page/medical_record/patient_select.html
@@ -0,0 +1,5 @@
+<div class="text-center col-sm-9" style="padding: 40px;">
+
+    	<p>{%= __("Select Patient") %}</p>
+	<p class="patient" style="margin: auto; max-width: 300px; margin-bottom: 20px;"></p>
+</div>
diff --git a/erpnext/healthcare/print_format/__init__.py b/erpnext/healthcare/print_format/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/print_format/__init__.py
diff --git a/erpnext/healthcare/print_format/consultation_print/__init__.py b/erpnext/healthcare/print_format/consultation_print/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/print_format/consultation_print/__init__.py
diff --git a/erpnext/healthcare/print_format/consultation_print/consultation_print.json b/erpnext/healthcare/print_format/consultation_print/consultation_print.json
new file mode 100644
index 0000000..05b8b43
--- /dev/null
+++ b/erpnext/healthcare/print_format/consultation_print/consultation_print.json
@@ -0,0 +1,22 @@
+{
+ "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/lab_test_print/__init__.py b/erpnext/healthcare/print_format/lab_test_print/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/print_format/lab_test_print/__init__.py
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
new file mode 100644
index 0000000..e3e21a7
--- /dev/null
+++ b/erpnext/healthcare/print_format/lab_test_print/lab_test_print.json
@@ -0,0 +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 %}&emsp;&emsp;{%- endif -%}\n          {%- if row.test_name -%}<b>{{ row.test_name }}</b>\n          {%- else -%}&emsp;&emsp;&emsp;{%- endif -%}\n          {%- if row.test_event -%} &emsp;&emsp;{{ 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 -%}&emsp;\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;\"> &emsp;&emsp;{{ 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,
+ "standard": "Yes"
+}
diff --git a/erpnext/healthcare/print_format/sample_id_print/__init__.py b/erpnext/healthcare/print_format/sample_id_print/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/print_format/sample_id_print/__init__.py
diff --git a/erpnext/healthcare/print_format/sample_id_print/sample_id_print.json b/erpnext/healthcare/print_format/sample_id_print/sample_id_print.json
new file mode 100644
index 0000000..e99ce70
--- /dev/null
+++ b/erpnext/healthcare/print_format/sample_id_print/sample_id_print.json
@@ -0,0 +1,22 @@
+{
+ "align_labels_left": 0,
+ "creation": "2017-02-17 17:40:52.967840",
+ "custom_format": 1,
+ "disabled": 0,
+ "doc_type": "Sample Collection",
+ "docstatus": 0,
+ "doctype": "Print Format",
+ "font": "Default",
+ "html": "<style>\n\t.print-format table, .print-format tr, \n\t.print-format td, .print-format div, .print-format p {\n\t\tfont-family: Monospace;\n\t\tline-height: 170%;\n\t\tvertical-align: middle;\n\t}\n\t@media screen {\n\t\t.print-format {\n\t\t\twidth: 6in;\n\t\t\tpadding: 0.25in;\n\t\t\tmin-height: 2in;\n\t\t}\n\t}\n</style>\n{% set column = 0 %}\n<table>\n{% for _ in range(0, doc.num_print) %}\n{% if column == 0 -%}<tr>{% endif %}\n\t<td style=\"width: 2in; height: 1.8in;\">{{doc.name}}<br>{{doc.patient}}<br>\n{% if doc.patient_age %}{{doc.patient_age}}, {% endif %} {% if doc.patient_sex %}{{doc.patient_sex}}{% endif %}<br> {% if doc.collected_time %}{{doc.collected_time}} {% endif %}<br>{% if doc.collected_by %} {{doc.collected_by}} {% endif %}</td>\n{% if column == 0 %}{% set column = column+1 %}\n{% elif column == 2%} </tr>{%- set column = 0 %}\n{% else %}{%- set column = column+1 -%}{%- endif %}\n\t\n{% endfor %}\n</table>",
+ "idx": 0,
+ "line_breaks": 0,
+ "modified": "2017-03-30 18:09:39.537609",
+ "modified_by": "Administrator",
+ "module": "Healthcare",
+ "name": "Sample ID Print", 
+ "owner": "Administrator",
+ "print_format_builder": 0,
+ "print_format_type": "Server",
+ "show_section_headings": 0,
+ "standard": "Yes"
+}
diff --git a/erpnext/healthcare/report/__init__.py b/erpnext/healthcare/report/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/report/__init__.py
diff --git a/erpnext/healthcare/report/lab_test_report/__init__.py b/erpnext/healthcare/report/lab_test_report/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/report/lab_test_report/__init__.py
diff --git a/erpnext/healthcare/report/lab_test_report/lab_test_report.js b/erpnext/healthcare/report/lab_test_report/lab_test_report.js
new file mode 100644
index 0000000..3128f81
--- /dev/null
+++ b/erpnext/healthcare/report/lab_test_report/lab_test_report.js
@@ -0,0 +1,32 @@
+// Copyright (c) 2016, ESS
+// License: See license.txt
+
+frappe.query_reports["Lab Test Report"] = {
+	"filters": [
+		{
+			"fieldname":"from_date",
+			"label": __("From Date"),
+			"fieldtype": "Date",
+			"default": frappe.datetime.now_date(),
+			"width": "80"
+		},
+		{
+			"fieldname":"to_date",
+			"label": __("To Date"),
+			"fieldtype": "Date",
+			"default": frappe.datetime.now_date()
+		},
+		{
+			"fieldname":"patient",
+			"label": __("Patient"),
+			"fieldtype": "Link",
+			"options": "Patient"
+		},
+		{
+			"fieldname":"department",
+			"label": __("Medical Department"),
+			"fieldtype": "Link",
+			"options": "Medical Department"
+		}
+	]
+};
diff --git a/erpnext/healthcare/report/lab_test_report/lab_test_report.json b/erpnext/healthcare/report/lab_test_report/lab_test_report.json
new file mode 100644
index 0000000..f133a8e
--- /dev/null
+++ b/erpnext/healthcare/report/lab_test_report/lab_test_report.json
@@ -0,0 +1,26 @@
+{
+ "add_total_row": 1, 
+ "apply_user_permissions": 1, 
+ "creation": "2013-04-23 18:15:29", 
+ "disabled": 0, 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "idx": 1, 
+ "is_standard": "Yes", 
+ "modified": "2017-08-23 14:54:12.593140", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "Lab Test Report", 
+ "owner": "Administrator", 
+ "ref_doctype": "Lab Test", 
+ "report_name": "Lab Test Report", 
+ "report_type": "Script Report", 
+ "roles": [
+  {
+   "role": "Laboratory User"
+  }, 
+  {
+   "role": "System Manager"
+  }
+ ]
+}
\ 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
new file mode 100644
index 0000000..61769f8
--- /dev/null
+++ b/erpnext/healthcare/report/lab_test_report/lab_test_report.py
@@ -0,0 +1,58 @@
+# Copyright (c) 2016, ESS
+# License: See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import msgprint, _
+
+def execute(filters=None):
+	if not filters: filters = {}
+
+	lab_test_list = get_lab_test(filters)
+	columns = get_columns()
+
+	if not lab_test_list:
+		msgprint(_("No record found"))
+		return columns, lab_test_list
+
+	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]
+		data.append(row)
+
+	return columns, data
+
+
+def get_columns():
+	columns = [
+		_("Test") + ":Data:120",
+		_("Patient") + ":Link/Patient:180",
+		_("Doctor") + ":Link/Physician:120",
+		_("Invoice") + ":Link/Sales Invoice:120",
+		_("Status") + ":Data:120",
+		_("Result Date") + ":Date:120",
+		_("Department") + ":Data:120",
+	]
+
+	return columns
+
+def get_conditions(filters):
+	conditions = ""
+
+	if filters.get("patient"):
+		conditions += "and patient = %(patient)s"
+	if filters.get("from_date"):
+		conditions += "and result_date >= %(from_date)s"
+	if filters.get("to_date"):
+		conditions += " and result_date <= %(to_date)s"
+	if filters.get("department"):
+		conditions += " and department = %(department)s"
+
+	return conditions
+
+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
+		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/__init__.py b/erpnext/healthcare/web_form/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/web_form/__init__.py
diff --git a/erpnext/healthcare/web_form/lab_test/__init__.py b/erpnext/healthcare/web_form/lab_test/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/web_form/lab_test/__init__.py
diff --git a/erpnext/healthcare/web_form/lab_test/lab_test.js b/erpnext/healthcare/web_form/lab_test/lab_test.js
new file mode 100644
index 0000000..efcd8ab
--- /dev/null
+++ b/erpnext/healthcare/web_form/lab_test/lab_test.js
@@ -0,0 +1,34 @@
+frappe.ready(function() {
+	//	bind events here
+	var normal_test_items = $('div[data-fieldname = "normal_test_items"]');
+	var normal_test_items_add_btn = $('button[data-fieldname = "normal_test_items"]');
+	var special_test_items = $('div[data-fieldname = "special_test_items"]');
+	var special_test_items_add_btn = $('button[data-fieldname = "special_test_items"]');
+	var sensitivity_test_items = $('div[data-fieldname = "sensitivity_test_items"]');
+	var sensitivity_test_items_add_btn = $('button[data-fieldname = "sensitivity_test_items"]');
+	var sensitivity_toggle = $('input[name = "sensitivity_toggle"]');
+	var special_toggle = $('input[name = "special_toggle"]');
+	var normal_toggle = $('input[name = "normal_toggle"]');
+	if(normal_toggle.val() == 1){
+		//	normal_test_items[0].style.display = "none";
+		//	normal_test_items[0].setAttribute("hidden", true);
+		//	normal_test_items_add_btn[0].style.visibility = "hidden";
+		special_test_items[0].style.display = "none";
+		special_test_items_add_btn[0].style.display = "none";
+		sensitivity_test_items[0].style.display = "none";
+		sensitivity_test_items_add_btn[0].style.display = "none";
+		normal_test_items_add_btn[0].style.display = "none";
+	}else if(sensitivity_toggle.val() == 1){
+		special_test_items[0].style.display = "none";
+		special_test_items_add_btn[0].style.display = "none";
+		normal_test_items[0].style.display = "none";
+		normal_test_items_add_btn[0].style.display = "none";
+		sensitivity_test_items_add_btn[0].style.display = "none";
+	}else if(special_toggle.val() == 1){
+		normal_test_items[0].style.display = "none";
+		normal_test_items_add_btn[0].style.display = "none";
+		sensitivity_test_items[0].style.display = "none";
+		sensitivity_test_items_add_btn[0].style.display = "none";
+		special_test_items_add_btn[0].style.display = "none";
+	}
+});
diff --git a/erpnext/healthcare/web_form/lab_test/lab_test.json b/erpnext/healthcare/web_form/lab_test/lab_test.json
new file mode 100644
index 0000000..fec34b6
--- /dev/null
+++ b/erpnext/healthcare/web_form/lab_test/lab_test.json
@@ -0,0 +1,235 @@
+{
+ "accept_payment": 0, 
+ "allow_comments": 0, 
+ "allow_delete": 0, 
+ "allow_edit": 1, 
+ "allow_incomplete": 0, 
+ "allow_multiple": 1, 
+ "allow_print": 1, 
+ "amount": 0.0, 
+ "amount_based_on_field": 0, 
+ "creation": "2017-06-06 16:12:33.052258", 
+ "currency": "INR", 
+ "doc_type": "Lab Test", 
+ "docstatus": 0, 
+ "doctype": "Web Form", 
+ "idx": 0, 
+ "introduction_text": "Lab Test", 
+ "is_standard": 1, 
+ "login_required": 1, 
+ "max_attachment_size": 0, 
+ "modified": "2017-06-07 16:03:06.781364", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "lab-test", 
+ "owner": "Administrator", 
+ "payment_button_label": "Buy Now", 
+ "print_format": "Lab Test Print", 
+ "published": 1, 
+ "route": "lab-test", 
+ "show_sidebar": 1, 
+ "sidebar_items": [], 
+ "success_url": "/lab-test", 
+ "title": "Lab Test", 
+ "web_form_fields": [
+  {
+   "fieldname": "naming_series", 
+   "fieldtype": "Select", 
+   "hidden": 0, 
+   "label": "Series", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "LP-", 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "invoice", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Invoice", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Sales Invoice", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Patient", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Patient", 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "patient_name", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "label": "Patient Name", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "patient.patient_name", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "physician", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Doctor", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Physician", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "status", 
+   "fieldtype": "Select", 
+   "hidden": 0, 
+   "label": "Status", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Draft\nCompleted\nApproved\nRejected\nCancelled", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "department", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Department", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Medical Department", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "sample", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Sample ID", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Sample Collection", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "default": "", 
+   "fieldname": "result_date", 
+   "fieldtype": "Date", 
+   "hidden": 0, 
+   "label": "Result Date", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "report_preference", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "label": "Report Preference", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "test_name", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "label": "Test Name", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "normal_test_items", 
+   "fieldtype": "Table", 
+   "hidden": 0, 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Normal Test Items", 
+   "read_only": 1, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "special_test_items", 
+   "fieldtype": "Table", 
+   "hidden": 0, 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Special Test Items", 
+   "read_only": 1, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "sensitivity_test_items", 
+   "fieldtype": "Table", 
+   "hidden": 0, 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Sensitivity Test Items", 
+   "read_only": 1, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "test_comment", 
+   "fieldtype": "Text", 
+   "hidden": 0, 
+   "label": "Comments", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 1, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "custom_result", 
+   "fieldtype": "Text Editor", 
+   "hidden": 0, 
+   "label": "Custom Result", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 1, 
+   "reqd": 0
+  }, 
+  {
+   "default": "0", 
+   "fieldname": "sensitivity_toggle", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "default": "0", 
+   "fieldname": "special_toggle", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "default": "0", 
+   "fieldname": "normal_toggle", 
+   "fieldtype": "Check", 
+   "hidden": 1, 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 0
+  }
+ ]
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/web_form/lab_test/lab_test.py b/erpnext/healthcare/web_form/lab_test/lab_test.py
new file mode 100644
index 0000000..5a8c8a4
--- /dev/null
+++ b/erpnext/healthcare/web_form/lab_test/lab_test.py
@@ -0,0 +1,25 @@
+from __future__ import unicode_literals
+
+import frappe
+
+def get_context(context):
+	context.read_only = 1
+
+def get_list_context(context):
+	context.row_template = "erpnext/templates/includes/healthcare/lab_test_row_template.html"
+	context.get_list = get_lab_test_list
+
+def get_lab_test_list(doctype, txt, filters, limit_start, limit_page_length = 20, order_by='modified desc'):
+	patient = get_patient()
+	lab_tests = frappe.db.sql("""select * from `tabLab Test`
+		where patient = %s order by result_date""", patient, as_dict = True)
+	return lab_tests
+
+def get_patient():
+	return frappe.get_value("Patient",{"email": frappe.session.user}, "name")
+
+def has_website_permission(doc, ptype, user, verbose=False):
+	if doc.patient == get_patient():
+		return True
+	else:
+		return False
diff --git a/erpnext/healthcare/web_form/patient_appointments/__init__.py b/erpnext/healthcare/web_form/patient_appointments/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/web_form/patient_appointments/__init__.py
diff --git a/erpnext/healthcare/web_form/patient_appointments/patient_appointments.js b/erpnext/healthcare/web_form/patient_appointments/patient_appointments.js
new file mode 100644
index 0000000..f09e540
--- /dev/null
+++ b/erpnext/healthcare/web_form/patient_appointments/patient_appointments.js
@@ -0,0 +1,3 @@
+frappe.ready(function() {
+	// bind events here
+});
diff --git a/erpnext/healthcare/web_form/patient_appointments/patient_appointments.json b/erpnext/healthcare/web_form/patient_appointments/patient_appointments.json
new file mode 100644
index 0000000..613e367
--- /dev/null
+++ b/erpnext/healthcare/web_form/patient_appointments/patient_appointments.json
@@ -0,0 +1,111 @@
+{
+ "accept_payment": 0, 
+ "allow_comments": 0, 
+ "allow_delete": 0, 
+ "allow_edit": 1, 
+ "allow_incomplete": 0, 
+ "allow_multiple": 1, 
+ "allow_print": 1, 
+ "amount": 0.0, 
+ "amount_based_on_field": 0, 
+ "creation": "2017-06-07 15:30:44.984832", 
+ "currency": "INR", 
+ "doc_type": "Patient Appointment", 
+ "docstatus": 0, 
+ "doctype": "Web Form", 
+ "idx": 0, 
+ "introduction_text": "Patient Appointments", 
+ "is_standard": 1, 
+ "login_required": 1, 
+ "max_attachment_size": 0, 
+ "modified": "2017-06-07 15:57:27.196428", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "patient-appointments", 
+ "owner": "Administrator", 
+ "payment_button_label": "Buy Now", 
+ "published": 1, 
+ "route": "patient-appointments", 
+ "show_sidebar": 1, 
+ "sidebar_items": [], 
+ "success_url": "/patient-appointments", 
+ "title": "Patient Appointments", 
+ "web_form_fields": [
+  {
+   "fieldname": "patient", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Patient", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Patient", 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "physician", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Physician", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Physician", 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "appointment_date", 
+   "fieldtype": "Date", 
+   "hidden": 0, 
+   "label": "Date", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "appointment_time", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "label": "Time", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "department", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Department", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Medical Department", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "appointment_type", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Type", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Appointment Type", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "default": "Scheduled", 
+   "fieldname": "status", 
+   "fieldtype": "Select", 
+   "hidden": 0, 
+   "label": "Status", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "\nScheduled\nOpen\nClosed\nPending\nCancelled", 
+   "read_only": 1, 
+   "reqd": 0
+  }
+ ]
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/web_form/patient_appointments/patient_appointments.py b/erpnext/healthcare/web_form/patient_appointments/patient_appointments.py
new file mode 100644
index 0000000..09bcb42
--- /dev/null
+++ b/erpnext/healthcare/web_form/patient_appointments/patient_appointments.py
@@ -0,0 +1,25 @@
+from __future__ import unicode_literals
+
+import frappe
+
+def get_context(context):
+	context.read_only = 1
+
+def get_list_context(context):
+	context.row_template = "erpnext/templates/includes/healthcare/appointment_row_template.html"
+	context.get_list = get_appointment_list
+
+def get_appointment_list(doctype, txt, filters, limit_start, limit_page_length = 20, order_by='modified desc'):
+	patient = get_patient()
+	lab_tests = frappe.db.sql("""select * from `tabPatient Appointment`
+		where patient = %s and (status = 'Open' or status = 'Scheduled') order by appointment_date""", patient, as_dict = True)
+	return lab_tests
+
+def get_patient():
+	return frappe.get_value("Patient",{"email": frappe.session.user}, "name")
+
+def has_website_permission(doc, ptype, user, verbose=False):
+	if doc.patient == get_patient():
+		return True
+	else:
+		return False
diff --git a/erpnext/healthcare/web_form/prescription/__init__.py b/erpnext/healthcare/web_form/prescription/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/healthcare/web_form/prescription/__init__.py
diff --git a/erpnext/healthcare/web_form/prescription/prescription.js b/erpnext/healthcare/web_form/prescription/prescription.js
new file mode 100644
index 0000000..f09e540
--- /dev/null
+++ b/erpnext/healthcare/web_form/prescription/prescription.js
@@ -0,0 +1,3 @@
+frappe.ready(function() {
+	// bind events here
+});
diff --git a/erpnext/healthcare/web_form/prescription/prescription.json b/erpnext/healthcare/web_form/prescription/prescription.json
new file mode 100644
index 0000000..5f251a3
--- /dev/null
+++ b/erpnext/healthcare/web_form/prescription/prescription.json
@@ -0,0 +1,112 @@
+{
+ "accept_payment": 0, 
+ "allow_comments": 0, 
+ "allow_delete": 0, 
+ "allow_edit": 1, 
+ "allow_incomplete": 0, 
+ "allow_multiple": 1, 
+ "allow_print": 1, 
+ "amount": 0.0, 
+ "amount_based_on_field": 0, 
+ "creation": "2017-06-06 17:13:19.101374", 
+ "currency": "INR", 
+ "doc_type": "Consultation", 
+ "docstatus": 0, 
+ "doctype": "Web Form", 
+ "idx": 0, 
+ "introduction_text": "Patient Prescriptions", 
+ "is_standard": 1, 
+ "login_required": 1, 
+ "max_attachment_size": 0, 
+ "modified": "2017-06-20 11:56:05.132154", 
+ "modified_by": "Administrator", 
+ "module": "Healthcare", 
+ "name": "prescription", 
+ "owner": "Administrator", 
+ "payment_button_label": "Buy Now", 
+ "print_format": "Consultation Print", 
+ "published": 1, 
+ "route": "prescription", 
+ "show_sidebar": 1, 
+ "sidebar_items": [], 
+ "success_url": "/prescription", 
+ "title": "Prescription", 
+ "web_form_fields": [
+  {
+   "fieldname": "physician", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Doctor", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Physician", 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "visit_department", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Department", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Medical Department", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "default": "Today", 
+   "fieldname": "consultation_date", 
+   "fieldtype": "Date", 
+   "hidden": 0, 
+   "label": "Consultation Date", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "default": "", 
+   "fieldname": "consultation_time", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "label": "Consultation Time", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "drug_prescription", 
+   "fieldtype": "Table", 
+   "hidden": 0, 
+   "label": "Drug Prescription", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Drug Prescription", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "test_prescription", 
+   "fieldtype": "Table", 
+   "hidden": 0, 
+   "label": "Investigations", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "options": "Lab Prescription", 
+   "read_only": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "consultation_comment", 
+   "fieldtype": "Small Text", 
+   "hidden": 0, 
+   "label": "Review Details", 
+   "max_length": 0, 
+   "max_value": 0, 
+   "read_only": 0, 
+   "reqd": 0
+  }
+ ]
+}
\ No newline at end of file
diff --git a/erpnext/healthcare/web_form/prescription/prescription.py b/erpnext/healthcare/web_form/prescription/prescription.py
new file mode 100644
index 0000000..73b0350
--- /dev/null
+++ b/erpnext/healthcare/web_form/prescription/prescription.py
@@ -0,0 +1,25 @@
+from __future__ import unicode_literals
+
+import frappe
+
+def get_context(context):
+	context.read_only = 1
+
+def get_list_context(context):
+	context.row_template = "erpnext/templates/includes/healthcare/prescription_row_template.html"
+	context.get_list = get_consultation_list
+
+def get_consultation_list(doctype, txt, filters, limit_start, limit_page_length = 20, order_by='modified desc'):
+	patient = get_patient()
+	consultations = frappe.db.sql("""select * from `tabConsultation`
+		where patient = %s order by creation desc""", patient, as_dict = True)
+	return consultations
+
+def get_patient():
+	return frappe.get_value("Patient",{"email": frappe.session.user}, "name")
+
+def has_website_permission(doc, ptype, user, verbose=False):
+	if doc.patient == get_patient():
+		return True
+	else:
+		return False
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 0e3aa79..88f719a 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -129,7 +129,10 @@
 	{"title": _("Issues"), "route": "/issues", "reference_doctype": "Issue", "role":"Customer"},
 	{"title": _("Addresses"), "route": "/addresses", "reference_doctype": "Address"},
 	{"title": _("Fees"), "route": "/fees", "reference_doctype": "Fees", "role":"Student"},
-	{"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": _("Patient Appointment"), "route": "/patient-appointments", "reference_doctype": "Patient Appointment", "role":"Patient"}
 ]
 
 default_roles = [
@@ -145,7 +148,10 @@
 	"Supplier Quotation": "erpnext.controllers.website_list_for_contact.has_website_permission",
 	"Delivery Note": "erpnext.controllers.website_list_for_contact.has_website_permission",
 	"Issue": "erpnext.support.doctype.issue.issue.has_website_permission",
-	"Timesheet": "erpnext.controllers.website_list_for_contact.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"
 }
 
 dump_report_map = "erpnext.startup.report_data_map.data_map"
diff --git a/erpnext/modules.txt b/erpnext/modules.txt
index 0579cc2..6f4a5b7 100644
--- a/erpnext/modules.txt
+++ b/erpnext/modules.txt
@@ -15,4 +15,5 @@
 Maintenance
 Schools
 Regional
+Healthcare
 Subscription
\ No newline at end of file
diff --git a/erpnext/public/js/setup_wizard.js b/erpnext/public/js/setup_wizard.js
index 320d871..88178f4 100644
--- a/erpnext/public/js/setup_wizard.js
+++ b/erpnext/public/js/setup_wizard.js
@@ -25,7 +25,8 @@
 					{ "label": __("Manufacturing"), "value": "Manufacturing" },
 					{ "label": __("Retail"), "value": "Retail" },
 					{ "label": __("Services"), "value": "Services" },
-					{ "label": __("Education"), "value": "Education" }
+					{ "label": __("Education (beta)"), "value": "Education" },
+					{"label": __("Healthcare (beta)"), "value": "Healthcare"}
 				], reqd: 1
 			},
 		],
@@ -134,12 +135,10 @@
 				frappe.msgprint(__("Please enter valid Financial Year Start and End Dates"));
 				return false;
 			}
-
 			if ((this.values.company_name || "").toLowerCase() == "company") {
 				frappe.msgprint(__("Company Name cannot be Company"));
 				return false;
 			}
-
 			return true;
 		},
 
@@ -163,7 +162,6 @@
 				slide.get_field("fy_start_date").set_value(current_year + '-' + fy[0]);
 				slide.get_field("fy_end_date").set_value(next_year + '-' + fy[1]);
 			}
-
 		},
 
 
diff --git a/erpnext/regional/india/setup.py b/erpnext/regional/india/setup.py
index 466c778..106a3d5 100644
--- a/erpnext/regional/india/setup.py
+++ b/erpnext/regional/india/setup.py
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 
 import frappe, os, json
-from frappe.custom.doctype.custom_field.custom_field import create_custom_field
+from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
 from frappe.permissions import add_permission
 from erpnext.regional.india import states
 
@@ -148,15 +148,7 @@
 		'Purchase Invoice Item': [hsn_sac_field]
 	}
 
-	for doctype, fields in custom_fields.items():
-		for df in fields:
-			field = frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": df["fieldname"]})
-			if not field:
-				create_custom_field(doctype, df)
-			else:
-				custom_field = frappe.get_doc("Custom Field", field)
-				custom_field.update(df)
-				custom_field.save()
+	create_custom_fields(custom_fields)
 
 def make_fixtures():
 	docs = [
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index 52dcb73..64cd190 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -18,7 +18,7 @@
 
 	def onload(self):
 		"""Load address and contacts in `__onload`"""
-		load_address_and_contact(self, "customer")
+		load_address_and_contact(self)
 		self.load_dashboard_info()
 
 	def load_dashboard_info(self):
diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json
index 15e6b4b..ec83705 100644
--- a/erpnext/setup/doctype/company/company.json
+++ b/erpnext/setup/doctype/company/company.json
@@ -1,198 +1,198 @@
 {
- "allow_copy": 0, 
- "allow_guest_to_view": 0, 
- "allow_import": 1, 
- "allow_rename": 1, 
- "autoname": "field:company_name", 
- "beta": 0, 
- "creation": "2013-04-10 08:35:39", 
- "custom": 0, 
- "description": "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Setup", 
- "editable_grid": 0, 
- "engine": "InnoDB", 
+ "allow_copy": 0,
+ "allow_guest_to_view": 0,
+ "allow_import": 1,
+ "allow_rename": 1,
+ "autoname": "field:company_name",
+ "beta": 0,
+ "creation": "2013-04-10 08:35:39",
+ "custom": 0,
+ "description": "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Setup",
+ "editable_grid": 0,
+ "engine": "InnoDB",
  "fields": [
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "details", 
-   "fieldtype": "Section Break", 
-   "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": "", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldtype": "Section Break", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "details",
+   "fieldtype": "Section Break",
+   "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": "",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldtype": "Section Break",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "company_name", 
-   "fieldtype": "Data", 
-   "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": "Company", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "company_name", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "company_name",
+   "fieldtype": "Data",
+   "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": "Company",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "company_name",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "description": "", 
-   "fieldname": "abbr", 
-   "fieldtype": "Data", 
-   "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": "Abbr", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "abbr", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "description": "",
+   "fieldname": "abbr",
+   "fieldtype": "Data",
+   "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": "Abbr",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "abbr",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal && in_list(frappe.user_roles, \"System Manager\")", 
-   "fieldname": "change_abbr", 
-   "fieldtype": "Button", 
-   "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": "Change Abbreviation", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal && in_list(frappe.user_roles, \"System Manager\")",
+   "fieldname": "change_abbr",
+   "fieldtype": "Button",
+   "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": "Change Abbreviation",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "cb0", 
-   "fieldtype": "Column Break", 
-   "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, 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "cb0",
+   "fieldtype": "Column Break",
+   "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,
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "domain", 
-   "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": "Domain", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Distribution\nManufacturing\nRetail\nServices\nEducation\nOther", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "domain",
+   "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": "Domain",
+   "length": 0,
+   "no_copy": 0,
+   "options": "Distribution\nManufacturing\nRetail\nServices\nEducation\nHealthcare\nOther",
+   "permlevel": 0,
+   "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
   }, 
   {
@@ -650,1332 +650,1332 @@
    "search_index": 0, 
    "set_only_once": 0, 
    "unique": 0
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "default_settings", 
-   "fieldtype": "Section Break", 
-   "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": "Accounts Settings", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldtype": "Section Break", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "default_settings",
+   "fieldtype": "Section Break",
+   "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": "Accounts Settings",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldtype": "Section Break",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "default_bank_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Default Bank Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "oldfieldname": "default_bank_account", 
-   "oldfieldtype": "Link", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "default_bank_account",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Default Bank Account",
+   "length": 0,
+   "no_copy": 1,
+   "oldfieldname": "default_bank_account",
+   "oldfieldtype": "Link",
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "default_cash_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Default Cash Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "default_cash_account",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Default Cash Account",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "default_receivable_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Default Receivable Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "oldfieldname": "receivables_group", 
-   "oldfieldtype": "Link", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "default_receivable_account",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Default Receivable Account",
+   "length": 0,
+   "no_copy": 1,
+   "oldfieldname": "receivables_group",
+   "oldfieldtype": "Link",
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "round_off_account", 
-   "fieldtype": "Link", 
-   "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": "Round Off Account", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Account", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "round_off_account",
+   "fieldtype": "Link",
+   "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": "Round Off Account",
+   "length": 0,
+   "no_copy": 0,
+   "options": "Account",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "write_off_account", 
-   "fieldtype": "Link", 
-   "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": "Write Off Account", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Account", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "write_off_account",
+   "fieldtype": "Link",
+   "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": "Write Off Account",
+   "length": 0,
+   "no_copy": 0,
+   "options": "Account",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "exchange_gain_loss_account", 
-   "fieldtype": "Link", 
-   "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": "Exchange Gain / Loss Account", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Account", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "exchange_gain_loss_account",
+   "fieldtype": "Link",
+   "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": "Exchange Gain / Loss Account",
+   "length": 0,
+   "no_copy": 0,
+   "options": "Account",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break0", 
-   "fieldtype": "Column Break", 
-   "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, 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "column_break0",
+   "fieldtype": "Column Break",
+   "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,
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "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,
    "width": "50%"
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "default_payable_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Default Payable Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "oldfieldname": "payables_group", 
-   "oldfieldtype": "Link", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "default_payable_account",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Default Payable Account",
+   "length": 0,
+   "no_copy": 1,
+   "oldfieldname": "payables_group",
+   "oldfieldtype": "Link",
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "default_expense_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Default Cost of Goods Sold Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "default_expense_account",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Default Cost of Goods Sold Account",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "default_income_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Default Income Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "default_income_account",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Default Income Account",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "default_payroll_payable_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Default Payroll Payable Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "default_payroll_payable_account",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Default Payroll Payable Account",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "round_off_cost_center", 
-   "fieldtype": "Link", 
-   "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": "Round Off Cost Center", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Cost Center", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "round_off_cost_center",
+   "fieldtype": "Link",
+   "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": "Round Off Cost Center",
+   "length": 0,
+   "no_copy": 0,
+   "options": "Cost Center",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "section_break_22", 
-   "fieldtype": "Section Break", 
-   "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, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "section_break_22",
+   "fieldtype": "Section Break",
+   "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,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "cost_center", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Default Cost Center", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Cost Center", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "cost_center",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Default Cost Center",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Cost Center",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "credit_limit", 
-   "fieldtype": "Currency", 
-   "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": "Credit Limit", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "credit_limit", 
-   "oldfieldtype": "Currency", 
-   "options": "default_currency", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "credit_limit",
+   "fieldtype": "Currency",
+   "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": "Credit Limit",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "credit_limit",
+   "oldfieldtype": "Currency",
+   "options": "default_currency",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break_26", 
-   "fieldtype": "Column Break", 
-   "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, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "column_break_26",
+   "fieldtype": "Column Break",
+   "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,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "credit_days_based_on", 
-   "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": "Credit Days Based On", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "\nFixed Days\nLast Day of the Next Month", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "credit_days_based_on",
+   "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": "Credit Days Based On",
+   "length": 0,
+   "no_copy": 0,
+   "options": "\nFixed Days\nLast Day of the Next Month",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:(!doc.__islocal && doc.credit_days_based_on=='Fixed Days')", 
-   "fieldname": "credit_days", 
-   "fieldtype": "Int", 
-   "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": "Credit Days", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "credit_days", 
-   "oldfieldtype": "Int", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:(!doc.__islocal && doc.credit_days_based_on=='Fixed Days')",
+   "fieldname": "credit_days",
+   "fieldtype": "Int",
+   "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": "Credit Days",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "credit_days",
+   "oldfieldtype": "Int",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "auto_accounting_for_stock_settings", 
-   "fieldtype": "Section Break", 
-   "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": "Stock Settings", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "auto_accounting_for_stock_settings",
+   "fieldtype": "Section Break",
+   "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": "Stock Settings",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "default": "1", 
-   "fieldname": "enable_perpetual_inventory", 
-   "fieldtype": "Check", 
-   "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": "Enable Perpetual Inventory", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "default": "1",
+   "fieldname": "enable_perpetual_inventory",
+   "fieldtype": "Check",
+   "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": "Enable Perpetual Inventory",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "default_inventory_account", 
-   "fieldtype": "Link", 
-   "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": "Default Inventory Account", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Account", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "default_inventory_account",
+   "fieldtype": "Link",
+   "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": "Default Inventory Account",
+   "length": 0,
+   "no_copy": 0,
+   "options": "Account",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "stock_adjustment_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Stock Adjustment Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "stock_adjustment_account",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Stock Adjustment Account",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break_32", 
-   "fieldtype": "Column Break", 
-   "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, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "column_break_32",
+   "fieldtype": "Column Break",
+   "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,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "stock_received_but_not_billed", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Stock Received But Not Billed", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "stock_received_but_not_billed",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Stock Received But Not Billed",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "expenses_included_in_valuation", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Expenses Included In Valuation", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "expenses_included_in_valuation",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Expenses Included In Valuation",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "fixed_asset_depreciation_settings", 
-   "fieldtype": "Section Break", 
-   "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": "Fixed Asset Depreciation Settings", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "fixed_asset_depreciation_settings",
+   "fieldtype": "Section Break",
+   "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": "Fixed Asset Depreciation Settings",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "accumulated_depreciation_account", 
-   "fieldtype": "Link", 
-   "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": "Accumulated Depreciation Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "accumulated_depreciation_account",
+   "fieldtype": "Link",
+   "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": "Accumulated Depreciation Account",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "depreciation_expense_account", 
-   "fieldtype": "Link", 
-   "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": "Depreciation Expense Account", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "depreciation_expense_account",
+   "fieldtype": "Link",
+   "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": "Depreciation Expense Account",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "series_for_depreciation_entry", 
-   "fieldtype": "Data", 
-   "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": "Series for Asset Depreciation Entry (Journal Entry)", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "series_for_depreciation_entry",
+   "fieldtype": "Data",
+   "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": "Series for Asset Depreciation Entry (Journal Entry)",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break_40", 
-   "fieldtype": "Column Break", 
-   "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, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "column_break_40",
+   "fieldtype": "Column Break",
+   "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,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "disposal_account", 
-   "fieldtype": "Link", 
-   "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": "Gain/Loss Account on Asset Disposal", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Account", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "disposal_account",
+   "fieldtype": "Link",
+   "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": "Gain/Loss Account on Asset Disposal",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Account",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "depreciation_cost_center", 
-   "fieldtype": "Link", 
-   "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": "Asset Depreciation Cost Center", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Cost Center", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "depreciation_cost_center",
+   "fieldtype": "Link",
+   "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": "Asset Depreciation Cost Center",
+   "length": 0,
+   "no_copy": 1,
+   "options": "Cost Center",
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "description": "For reference only.", 
-   "fieldname": "company_info", 
-   "fieldtype": "Section Break", 
-   "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": "Company Info", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "description": "For reference only.",
+   "fieldname": "company_info",
+   "fieldtype": "Section Break",
+   "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": "Company Info",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "address_html", 
-   "fieldtype": "HTML", 
-   "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, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "address_html",
+   "fieldtype": "HTML",
+   "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,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break1", 
-   "fieldtype": "Column Break", 
-   "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, 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "column_break1",
+   "fieldtype": "Column Break",
+   "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,
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "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,
    "width": "50%"
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "phone_no", 
-   "fieldtype": "Data", 
-   "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": "Phone No", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "phone_no", 
-   "oldfieldtype": "Data", 
-   "options": "Phone", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "phone_no",
+   "fieldtype": "Data",
+   "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": "Phone No",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "phone_no",
+   "oldfieldtype": "Data",
+   "options": "Phone",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "fax", 
-   "fieldtype": "Data", 
-   "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": "Fax", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "fax", 
-   "oldfieldtype": "Data", 
-   "options": "Phone", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "fax",
+   "fieldtype": "Data",
+   "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": "Fax",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "fax",
+   "oldfieldtype": "Data",
+   "options": "Phone",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "email", 
-   "fieldtype": "Data", 
-   "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": "Email", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "email", 
-   "oldfieldtype": "Data", 
-   "options": "Email", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "email",
+   "fieldtype": "Data",
+   "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": "Email",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "email",
+   "oldfieldtype": "Data",
+   "options": "Email",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "website", 
-   "fieldtype": "Data", 
-   "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": "Website", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "website", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "website",
+   "fieldtype": "Data",
+   "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": "Website",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "website",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "description": "", 
-   "fieldname": "registration_info", 
-   "fieldtype": "Section Break", 
-   "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": "", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldtype": "Section Break", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "description": "",
+   "fieldname": "registration_info",
+   "fieldtype": "Section Break",
+   "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": "",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldtype": "Section Break",
+   "permlevel": 0,
+   "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,
    "width": "50%"
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "description": "Company registration numbers for your reference. Tax numbers etc.", 
-   "fieldname": "registration_details", 
-   "fieldtype": "Code", 
-   "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": "Registration Details", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "registration_details", 
-   "oldfieldtype": "Code", 
-   "permlevel": 0, 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "description": "Company registration numbers for your reference. Tax numbers etc.",
+   "fieldname": "registration_details",
+   "fieldtype": "Code",
+   "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": "Registration Details",
+   "length": 0,
+   "no_copy": 0,
+   "oldfieldname": "registration_details",
+   "oldfieldtype": "Code",
+   "permlevel": 0,
+   "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
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "delete_company_transactions", 
-   "fieldtype": "Button", 
-   "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": "Delete Company Transactions", 
-   "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, 
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "delete_company_transactions",
+   "fieldtype": "Button",
+   "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": "Delete Company Transactions",
+   "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
   }
  ], 
@@ -1998,151 +1998,151 @@
  "owner": "Administrator", 
  "permissions": [
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "System Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
+   "amend": 0,
+   "apply_user_permissions": 0,
+   "cancel": 0,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 0,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "System Manager",
+   "set_user_permissions": 0,
+   "share": 1,
+   "submit": 0,
    "write": 1
-  }, 
+  },
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 1, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 0, 
-   "role": "Accounts User", 
-   "set_user_permissions": 0, 
-   "share": 0, 
-   "submit": 0, 
+   "amend": 0,
+   "apply_user_permissions": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "email": 1,
+   "export": 0,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 0,
+   "role": "Accounts User",
+   "set_user_permissions": 0,
+   "share": 0,
+   "submit": 0,
    "write": 0
-  }, 
+  },
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 0, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 0, 
-   "read": 1, 
-   "report": 0, 
-   "role": "Employee", 
-   "set_user_permissions": 0, 
-   "share": 0, 
-   "submit": 0, 
+   "amend": 0,
+   "apply_user_permissions": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "email": 0,
+   "export": 0,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 0,
+   "read": 1,
+   "report": 0,
+   "role": "Employee",
+   "set_user_permissions": 0,
+   "share": 0,
+   "submit": 0,
    "write": 0
-  }, 
+  },
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 0, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 0, 
-   "read": 1, 
-   "report": 0, 
-   "role": "Sales User", 
-   "set_user_permissions": 0, 
-   "share": 0, 
-   "submit": 0, 
+   "amend": 0,
+   "apply_user_permissions": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "email": 0,
+   "export": 0,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 0,
+   "read": 1,
+   "report": 0,
+   "role": "Sales User",
+   "set_user_permissions": 0,
+   "share": 0,
+   "submit": 0,
    "write": 0
-  }, 
+  },
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 0, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 0, 
-   "read": 1, 
-   "report": 0, 
-   "role": "Purchase User", 
-   "set_user_permissions": 0, 
-   "share": 0, 
-   "submit": 0, 
+   "amend": 0,
+   "apply_user_permissions": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "email": 0,
+   "export": 0,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 0,
+   "read": 1,
+   "report": 0,
+   "role": "Purchase User",
+   "set_user_permissions": 0,
+   "share": 0,
+   "submit": 0,
    "write": 0
-  }, 
+  },
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 0, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 0, 
-   "read": 1, 
-   "report": 0, 
-   "role": "Stock User", 
-   "set_user_permissions": 0, 
-   "share": 0, 
-   "submit": 0, 
+   "amend": 0,
+   "apply_user_permissions": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "email": 0,
+   "export": 0,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 0,
+   "read": 1,
+   "report": 0,
+   "role": "Stock User",
+   "set_user_permissions": 0,
+   "share": 0,
+   "submit": 0,
    "write": 0
-  }, 
+  },
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 0, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 0, 
-   "read": 1, 
-   "report": 0, 
-   "role": "Projects User", 
-   "set_user_permissions": 0, 
-   "share": 0, 
-   "submit": 0, 
+   "amend": 0,
+   "apply_user_permissions": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "email": 0,
+   "export": 0,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 0,
+   "read": 1,
+   "report": 0,
+   "role": "Projects User",
+   "set_user_permissions": 0,
+   "share": 0,
+   "submit": 0,
    "write": 0
   }
- ], 
- "quick_entry": 0, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "show_name_in_global_search": 1, 
- "sort_order": "ASC", 
- "track_changes": 1, 
+ ],
+ "quick_entry": 0,
+ "read_only": 0,
+ "read_only_onload": 0,
+ "show_name_in_global_search": 1,
+ "sort_order": "ASC",
+ "track_changes": 1,
  "track_seen": 0
-}
\ No newline at end of file
+}
diff --git a/erpnext/setup/doctype/sales_partner/sales_partner.py b/erpnext/setup/doctype/sales_partner/sales_partner.py
index e6b26ee..675f9ca 100644
--- a/erpnext/setup/doctype/sales_partner/sales_partner.py
+++ b/erpnext/setup/doctype/sales_partner/sales_partner.py
@@ -16,7 +16,7 @@
 
 	def onload(self):
 		"""Load address and contacts in `__onload`"""
-		load_address_and_contact(self, "sales_partner")
+		load_address_and_contact(self)
 
 	def autoname(self):
 		self.name = self.partner_name
diff --git a/erpnext/setup/setup_wizard/domainify.py b/erpnext/setup/setup_wizard/domainify.py
index 7f333cc..ddb2a80 100644
--- a/erpnext/setup/setup_wizard/domainify.py
+++ b/erpnext/setup/setup_wizard/domainify.py
@@ -12,7 +12,8 @@
 			'desktop_icons': ['Item', 'BOM', 'Customer', 'Supplier', 'Sales Order',
 				'Production Order',  'Stock Entry', 'Purchase Order', 'Task', 'Buying', 'Selling',
 				 'Accounts', 'HR', 'ToDo'],
-			'remove_roles': ['Academics User', 'Instructor'],
+			'remove_roles': ['Academics User', 'Instructor', 'Physician', 'Nursing User',
+				'Laboratory user', 'LabTest Approver', 'Healthcare Administrator'],
 			'properties': [
 				{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'collapsible_depends_on', 'value': 'is_stock_item'},
 			],
@@ -25,7 +26,9 @@
 		'Retail': {
 			'desktop_icons': ['POS', 'Item', 'Customer', 'Sales Invoice',  'Purchase Order',
 			'Warranty Claim', 'Accounts', 'Task', 'Buying', 'ToDo'],
-			'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Academics User', 'Instructor'],
+			'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Academics User', 'Instructor',
+				'Physician', 'Nursing User', 'Laboratory user',
+				'LabTest Approver', 'Healthcare Administrator'],
 			'properties': [
 				{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'hidden', 'value': 1},
 				{'doctype': 'Customer', 'fieldname': 'credit_limit_section', 'property': 'hidden', 'value': 1},
@@ -39,7 +42,9 @@
 		'Distribution': {
 			'desktop_icons': ['Item', 'Customer', 'Supplier', 'Lead', 'Sales Order', 'Task',
 				 'Sales Invoice', 'CRM', 'Selling', 'Buying', 'Stock', 'Accounts', 'HR', 'ToDo'],
-			'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Academics User', 'Instructor'],
+			'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Academics User', 'Instructor',
+				'Physician', 'Nursing User', 'Laboratory user',
+				'LabTest Approver', 'Healthcare Administrator'],
 			'set_value': [
 				['Stock Settings', None, 'show_barcode_field', 1]
 			],
@@ -49,7 +54,9 @@
 		'Services': {
 			'desktop_icons': ['Project', 'Timesheet', 'Customer', 'Sales Order', 'Sales Invoice',
 				'Lead', 'Opportunity', 'Task', 'Expense Claim', 'Employee', 'HR', 'ToDo'],
-			'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Academics User', 'Instructor'],
+			'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Academics User', 'Instructor',
+				'Physician', 'Nursing User', 'Laboratory user',
+				'LabTest Approver', 'Healthcare Administrator'],
 			'properties': [
 				{'doctype': 'Item', 'fieldname': 'is_stock_item', 'property': 'default', 'value': 0},
 			],
@@ -66,6 +73,13 @@
 				'Student', 'Projects User', 'Instructor'],
 			'default_portal_role': 'Student'
 		},
+		'Healthcare': {
+			'desktop_icons': ['Patient', 'Patient Appointment', 'Consultation', 'Lab Test', 'Healthcare',
+				'Accounts',  'Buying', 'Stock', 'HR', 'ToDo'],
+			'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Projects User', 'Projects Manager',
+				'Academics User', 'Instructor'],
+			'default_portal_role': 'Patient'
+		},
 	}
 	if not domain in data:
 		raise 'Invalid Domain {0}'.format(domain)
diff --git a/erpnext/setup/setup_wizard/healthcare.py b/erpnext/setup/setup_wizard/healthcare.py
new file mode 100644
index 0000000..ebc644e
--- /dev/null
+++ b/erpnext/setup/setup_wizard/healthcare.py
@@ -0,0 +1,281 @@
+from __future__ import unicode_literals
+import frappe
+from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
+
+from frappe import _
+
+def setup_healthcare():
+	create_medical_departments()
+	create_antibiotics()
+	create_test_uom()
+	create_duration()
+	create_dosage()
+	create_healthcare_item_groups()
+	create_lab_test_items()
+	create_lab_test_template()
+	create_sensitivity()
+	make_custom_fields()
+
+def make_custom_fields():
+	custom_fields = {
+		'Sales Invoice': [
+			dict(fieldname='appointment', label='Patient Appointment',
+				fieldtype='Link', options='Patient Appointment',
+				insert_after='customer')
+		]
+	}
+
+	create_custom_fields(custom_fields)
+
+
+def create_medical_departments():
+	depts = ["Accident and emergency care" ,"Anaesthetics", "Biochemistry", "Cardiology", "Dermatology",
+				"Diagnostic imaging", "ENT", "Gastroenterology", "General Surgery", "Gynaecology",
+				"Haematology", "Maternity", "Microbiology", "Nephrology", "Neurology", "Oncology",
+				 "Orthopaedics", "Pathology", "Physiotherapy", "Rheumatology", "Serology", "Urology"]
+	for d in depts:
+		mediacal_department = frappe.new_doc("Medical Department")
+		mediacal_department.department = d
+		try:
+			mediacal_department.save()
+		except frappe.DuplicateEntryError:
+			pass
+
+def create_antibiotics():
+	abt = ["Amoxicillin", "Ampicillin", "Bacampicillin", "Carbenicillin", "Cloxacillin", "Dicloxacillin",
+	 "Flucloxacillin", "Mezlocillin", "Nafcillin", "Oxacillin", "Penicillin G", "Penicillin V",
+	 "Piperacillin", "Pivampicillin", "Pivmecillinam", "Ticarcillin", "Cefacetrile (cephacetrile)",
+	 "Cefadroxil (cefadroxyl)", "Cefalexin (cephalexin)", "Cefaloglycin (cephaloglycin)",
+	 "Cefalonium (cephalonium)", "Cefaloridine (cephaloradine)", "Cefalotin (cephalothin)",
+	 "Cefapirin (cephapirin)", "Cefatrizine", "Cefazaflur", "Cefazedone", "Cefazolin (cephazolin)",
+	 "Cefradine (cephradine)", "Cefroxadine", "Ceftezole", "Cefaclor", "Cefamandole", "Cefmetazole",
+	 "Cefonicid", "Cefotetan", "Cefoxitin", "Cefprozil (cefproxil)", "Cefuroxime", "Cefuzonam",
+	 "Cefcapene", "Cefdaloxime", "Cefdinir", "Cefditoren", "Cefetamet", "Cefixime", "Cefmenoxime",
+	 "Cefodizime", "Cefotaxime", "Cefpimizole", "Cefpodoxime", "Cefteram", "Ceftibuten", "Ceftiofur",
+	 "Ceftiolene", "Ceftizoxime", "Ceftriaxone", "Cefoperazone", "Ceftazidime", "Cefclidine", "Cefepime",
+	 "Cefluprenam", "Cefoselis", "Cefozopran", "Cefpirome", "Cefquinome", "Ceftobiprole", "Ceftaroline",
+	 "Cefaclomezine","Cefaloram", "Cefaparole", "Cefcanel", "Cefedrolor", "Cefempidone", "Cefetrizole",
+	 "Cefivitril", "Cefmatilen", "Cefmepidium", "Cefovecin", "Cefoxazole", "Cefrotil", "Cefsumide",
+	 "Cefuracetime", "Ceftioxide", "Ceftazidime/Avibactam", "Ceftolozane/Tazobactam", "Aztreonam",
+	 "Imipenem", "Imipenem/cilastatin", "Doripenem", "Meropenem", "Ertapenem", "Azithromycin",
+	 "Erythromycin", "Clarithromycin", "Dirithromycin", "Roxithromycin", "Telithromycin", "Clindamycin",
+	 "Lincomycin", "Pristinamycin", "Quinupristin/dalfopristin", "Amikacin", "Gentamicin", "Kanamycin",
+	 "Neomycin", "Netilmicin", "Paromomycin", "Streptomycin", "Tobramycin", "Flumequine", "Nalidixic acid",
+	 "Oxolinic acid", "Piromidic acid", "Pipemidic acid", "Rosoxacin", "Ciprofloxacin", "Enoxacin",
+	 "Lomefloxacin", "Nadifloxacin", "Norfloxacin", "Ofloxacin", "Pefloxacin", "Rufloxacin", "Balofloxacin",
+	 "Gatifloxacin", "Grepafloxacin", "Levofloxacin", "Moxifloxacin", "Pazufloxacin", "Sparfloxacin",
+	 "Temafloxacin", "Tosufloxacin", "Besifloxacin", "Clinafloxacin", "Gemifloxacin",
+	 "Sitafloxacin", "Trovafloxacin", "Prulifloxacin", "Sulfamethizole", "Sulfamethoxazole",
+	 "Sulfisoxazole", "Trimethoprim-Sulfamethoxazole", "Demeclocycline", "Doxycycline", "Minocycline",
+	 "Oxytetracycline", "Tetracycline", "Tigecycline", "Chloramphenicol", "Metronidazole",
+	 "Tinidazole", "Nitrofurantoin", "Vancomycin", "Teicoplanin", "Telavancin", "Linezolid",
+	 "Cycloserine 2", "Rifampin", "Rifabutin", "Rifapentine", "Rifalazil", "Bacitracin", "Polymyxin B",
+	 "Viomycin", "Capreomycin"]
+	for a in abt:
+		antibiotic = frappe.new_doc("Antibiotic")
+		antibiotic.antibiotic_name = a
+		try:
+			antibiotic.save()
+		except frappe.DuplicateEntryError:
+			pass
+
+def create_test_uom():
+	records = [
+		{"doctype": "Lab Test UOM", "name": "umol/L", "test_uom": "umol/L", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "mg/L", "test_uom": "mg/L", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "mg / dl", "test_uom": "mg / dl", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "pg / ml", "test_uom": "pg / ml", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "U/ml", "test_uom": "U/ml", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "/HPF", "test_uom": "/HPF", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "Million Cells / cumm", "test_uom": "Million Cells / cumm", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "Lakhs Cells / cumm", "test_uom": "Lakhs Cells / cumm", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "U / L", "test_uom": "U / L", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "g / L", "test_uom": "g / L", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "IU / ml", "test_uom": "IU / ml", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "gm %", "test_uom": "gm %", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "Microgram", "test_uom": "Microgram", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "Micron", "test_uom": "Micron", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "Cells / cumm", "test_uom": "Cells / cumm", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "%", "test_uom": "%", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "mm / dl", "test_uom": "mm / dl", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "mm / hr", "test_uom": "mm / hr", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "ulU / ml", "test_uom": "ulU / ml", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "ng / ml", "test_uom": "ng / ml", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "ng / dl", "test_uom": "ng / dl", "uom_description": None },
+		{"doctype": "Lab Test UOM", "name": "ug / dl", "test_uom": "ug / dl", "uom_description": None }
+	]
+
+	insert_record(records)
+
+def create_duration():
+	records = [
+		{"doctype": "Prescription Duration", "name": "3 Month", "number": "3", "period": "Month" },
+		{"doctype": "Prescription Duration", "name": "2 Month", "number": "2", "period": "Month" },
+		{"doctype": "Prescription Duration", "name": "1 Month", "number": "1", "period": "Month" },
+		{"doctype": "Prescription Duration", "name": "12 Hour", "number": "12", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "11 Hour", "number": "11", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "10 Hour", "number": "10", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "9 Hour", "number": "9", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "8 Hour", "number": "8", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "7 Hour", "number": "7", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "6 Hour", "number": "6", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "5 Hour", "number": "5", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "4 Hour", "number": "4", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "3 Hour", "number": "3", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "2 Hour", "number": "2", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "1 Hour", "number": "1", "period": "Hour" },
+		{"doctype": "Prescription Duration", "name": "5 Week", "number": "5", "period": "Week" },
+		{"doctype": "Prescription Duration", "name": "4 Week", "number": "4", "period": "Week" },
+		{"doctype": "Prescription Duration", "name": "3 Week", "number": "3", "period": "Week" },
+		{"doctype": "Prescription Duration", "name": "2 Week", "number": "2", "period": "Week" },
+		{"doctype": "Prescription Duration", "name": "1 Week", "number": "1", "period": "Week" },
+		{"doctype": "Prescription Duration", "name": "6 Day", "number": "6", "period": "Day" },
+		{"doctype": "Prescription Duration", "name": "5 Day", "number": "5", "period": "Day" },
+		{"doctype": "Prescription Duration", "name": "4 Day", "number": "4", "period": "Day" },
+		{"doctype": "Prescription Duration", "name": "3 Day", "number": "3", "period": "Day" },
+		{"doctype": "Prescription Duration", "name": "2 Day", "number": "2", "period": "Day" },
+		{"doctype": "Prescription Duration", "name": "1 Day", "number": "1", "period": "Day" }
+	]
+	insert_record(records)
+
+def create_dosage():
+	records = [
+		{"doctype": "Prescription Dosage", "name": "1-1-1-1", "dosage": "1-1-1-1","dosage_strength":
+		[{"strength": "1.0","strength_time": "9:00:00"}, {"strength": "1.0","strength_time": "13:00:00"},{"strength": "1.0","strength_time": "17:00:00"},{"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "0-0-1", "dosage": "0-0-1","dosage_strength":
+		[{"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "1-0-0", "dosage": "1-0-0","dosage_strength":
+		[{"strength": "1.0","strength_time": "9:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "0-1-0", "dosage": "0-1-0","dosage_strength":
+		[{"strength": "1.0","strength_time": "14:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "1-1-1", "dosage": "1-1-1","dosage_strength":
+		[{"strength": "1.0","strength_time": "9:00:00"}, {"strength": "1.0","strength_time": "14:00:00"},{"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "1-0-1", "dosage": "1-0-1","dosage_strength":
+		[{"strength": "1.0","strength_time": "9:00:00"}, {"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "Once Bedtime", "dosage": "Once Bedtime","dosage_strength":
+		[{"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "5 times a day", "dosage": "5 times a day","dosage_strength":
+		[{"strength": "1.0","strength_time": "5:00:00"}, {"strength": "1.0","strength_time": "9:00:00"}, {"strength": "1.0","strength_time": "13:00:00"},{"strength": "1.0","strength_time": "17:00:00"},{"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "QID", "dosage": "QID","dosage_strength":
+		[{"strength": "1.0","strength_time": "9:00:00"}, {"strength": "1.0","strength_time": "13:00:00"},{"strength": "1.0","strength_time": "17:00:00"},{"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "TID", "dosage": "TID","dosage_strength":
+		[{"strength": "1.0","strength_time": "9:00:00"}, {"strength": "1.0","strength_time": "14:00:00"},{"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "BID", "dosage": "BID","dosage_strength":
+		[{"strength": "1.0","strength_time": "9:00:00"}, {"strength": "1.0","strength_time": "21:00:00"}]
+		},
+		{"doctype": "Prescription Dosage", "name": "Once Daily", "dosage": "Once Daily","dosage_strength":
+		[{"strength": "1.0","strength_time": "9:00:00"}]
+		}
+	]
+	insert_record(records)
+
+def create_healthcare_item_groups():
+	records = [
+		{'doctype': 'Item Group', 'item_group_name': _('Laboratory'),
+			'is_group': 0, 'parent_item_group': _('All Item Groups') },
+		{'doctype': 'Item Group', 'item_group_name': _('Drug'),
+			'is_group': 0, 'parent_item_group': _('All Item Groups') }
+	]
+	insert_record(records)
+
+def create_lab_test_items():
+	records = [
+		{"doctype": "Item", "item_code": "MCH", "item_name": "MCH", "item_group": "Laboratory",
+			"stock_uom": "Unit", "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+		{"doctype": "Item", "item_code": "LDL", "item_name": "LDL", "item_group": "Laboratory",
+			"stock_uom": "Unit", "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+		{"doctype": "Item", "item_code": "GTT", "item_name": "GTT", "item_group": "Laboratory",
+			"stock_uom": "Unit", "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+		{"doctype": "Item", "item_code": "HDL", "item_name": "HDL", "item_group": "Laboratory",
+			"stock_uom": "Unit", "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+		{"doctype": "Item", "item_code": "BILT", "item_name": "BILT", "item_group": "Laboratory",
+			"stock_uom": "Unit", "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+		{"doctype": "Item", "item_code": "BILD", "item_name": "BILD", "item_group": "Laboratory",
+			"stock_uom": "Unit", "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+		{"doctype": "Item", "item_code": "BP", "item_name": "BP", "item_group": "Laboratory",
+			"stock_uom": "Unit", "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+		{"doctype": "Item", "item_code": "BS", "item_name": "BS", "item_group": "Laboratory",
+			"stock_uom": "Unit", "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}
+	]
+	insert_record(records)
+
+def create_lab_test_template():
+	records = [
+		{"doctype": "Lab Test Template", "name": "MCH","test_name": "MCH","test_code": "MCH",
+		"test_group": "Laboratory","department": "Haematology","item": "MCH",
+		"test_template_type": "Single","is_billable": 1,"test_rate": 0.0,"test_uom": "Microgram",
+		"test_normal_range": "27 - 32 Microgram",
+		"sensitivity": 0,"test_description": "Mean Corpuscular Hemoglobin"},
+		{"doctype": "Lab Test Template", "name": "LDL","test_name": "LDL (Serum)","test_code": "LDL",
+		"test_group": "Laboratory","department": "Biochemistry",
+		"item": "LDL","test_template_type": "Single",
+		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "70 - 160 mg/dlLow-density Lipoprotein (LDL)",
+		"sensitivity": 0,"test_description": "Low-density Lipoprotein (LDL)"},
+		{"doctype": "Lab Test Template", "name": "GTT","test_name": "GTT","test_code": "GTT",
+		"test_group": "Laboratory","department": "Haematology",
+		"item": "GTT","test_template_type": "Single",
+		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "Less than 85 mg/dl",
+		"sensitivity": 0,"test_description": "Glucose Tolerance Test"},
+		{"doctype": "Lab Test Template", "name": "HDL","test_name": "HDL (Serum)","test_code": "HDL",
+		"test_group": "Laboratory","department": "Biochemistry",
+		"item": "HDL","test_template_type": "Single",
+		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "35 - 65 mg/dl",
+		"sensitivity": 0,"test_description": "High-density Lipoprotein (HDL)"},
+		{"doctype": "Lab Test Template", "name": "BILT","test_name": "Bilirubin Total","test_code": "BILT",
+		"test_group": "Laboratory","department": "Biochemistry",
+		"item": "BILT","test_template_type": "Single",
+		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "0.2 - 1.2 mg / dl",
+		"sensitivity": 0,"test_description": "Bilirubin Total"},
+		{"doctype": "Lab Test Template", "name": "BILD","test_name": "Bilirubin Direct","test_code": "BILD",
+		"test_group": "Laboratory","department": "Biochemistry",
+		"item": "BILD","test_template_type": "Single",
+		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "0.4 mg / dl",
+		"sensitivity": 0,"test_description": "Bilirubin Direct"},
+
+		{"doctype": "Lab Test Template", "name": "BP","test_name": "Bile Pigment","test_code": "BP",
+		"test_group": "Laboratory","department": "Pathology",
+		"item": "BP","test_template_type": "Single",
+		"is_billable": 1,"test_rate": 0.0,"test_uom": "","test_normal_range": "",
+		"sensitivity": 0,"test_description": "Bile Pigment"},
+		{"doctype": "Lab Test Template", "name": "BS","test_name": "Bile Salt","test_code": "BS",
+		"test_group": "Laboratory","department": "Pathology",
+		"item": "BS","test_template_type": "Single",
+		"is_billable": 1,"test_rate": 0.0,"test_uom": "","test_normal_range": "",
+		"sensitivity": 0,"test_description": "Bile Salt"}
+	]
+	insert_record(records)
+
+def create_sensitivity():
+	records = [
+		{"doctype": "Sensitivity", "sensitivity": "Low Sensitivity"},
+		{"doctype": "Sensitivity", "sensitivity": "High Sensitivity"},
+		{"doctype": "Sensitivity", "sensitivity": "Moderate Sensitivity"},
+		{"doctype": "Sensitivity", "sensitivity": "Susceptible"},
+		{"doctype": "Sensitivity", "sensitivity": "Resistant"},
+		{"doctype": "Sensitivity", "sensitivity": "Intermediate"}
+	]
+	insert_record(records)
+
+def insert_record(records):
+	for r in records:
+		doc = frappe.new_doc(r.get("doctype"))
+		doc.update(r)
+		try:
+			doc.insert(ignore_permissions=True)
+		except frappe.DuplicateEntryError, e:
+			# pass DuplicateEntryError and continue
+			if e.args and e.args[0]==doc.doctype and e.args[1]==doc.name:
+				# make sure DuplicateEntryError is for the exact same doc and not a related doc
+				pass
+			else:
+				raise
diff --git a/erpnext/setup/setup_wizard/install_fixtures.py b/erpnext/setup/setup_wizard/install_fixtures.py
index 53e58a1..8e0973d 100644
--- a/erpnext/setup/setup_wizard/install_fixtures.py
+++ b/erpnext/setup/setup_wizard/install_fixtures.py
@@ -19,6 +19,7 @@
 		{ 'doctype': 'Domain', 'domain': _('Retail')},
 		{ 'doctype': 'Domain', 'domain': _('Services')},
 		{ 'doctype': 'Domain', 'domain': _('Education')},
+		{ 'doctype': 'Domain', 'domain': _('Healthcare')},
 
 		# Setup Progress
 		{'doctype': "Setup Progress", "actions": [
diff --git a/erpnext/setup/setup_wizard/setup_wizard.py b/erpnext/setup/setup_wizard/setup_wizard.py
index 40d11e5..20f8b85 100644
--- a/erpnext/setup/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/setup_wizard/setup_wizard.py
@@ -10,6 +10,7 @@
 from frappe import _
 from frappe.utils.file_manager import save_file
 from .default_website import website_maker
+from .healthcare import setup_healthcare
 import install_fixtures
 from .sample_data import make_sample_data
 from erpnext.accounts.doctype.account.account import RootNotEditable
@@ -37,6 +38,9 @@
 		create_academic_year()
 		create_academic_term()
 
+	if args.domain.lower() == 'healthcare':
+		setup_healthcare()
+
 	if args.get('setup_website'):
 		website_maker(args)
 
@@ -414,3 +418,4 @@
 			academic_year.save()
 		except frappe.DuplicateEntryError:
 			pass
+
diff --git a/erpnext/startup/notifications.py b/erpnext/startup/notifications.py
index b32f41e..eb06f27 100644
--- a/erpnext/startup/notifications.py
+++ b/erpnext/startup/notifications.py
@@ -55,7 +55,13 @@
 			},
 			"Production Order": { "status": ("in", ("Draft", "Not Started", "In Process")) },
 			"BOM": {"docstatus": 0},
-			"Timesheet": {"status": "Draft"}
+
+			"Timesheet": {"status": "Draft"},
+
+			"Lab Test": {"docstatus": 0},
+			"Sample Collection": {"docstatus": 0},
+			"Patient Appointment": {"status": "Open"},
+			"Consultation": {"docstatus": 0}
 		},
 
 		"targets": {
diff --git a/erpnext/startup/report_data_map.py b/erpnext/startup/report_data_map.py
index e4bbd87..3d5a674 100644
--- a/erpnext/startup/report_data_map.py
+++ b/erpnext/startup/report_data_map.py
@@ -269,7 +269,7 @@
 	},
 	"Purchase Receipt": {
 		"columns": ["name", "supplier", "posting_date", "company"],
-		"conditions": ["docstatus=1"], 
+		"conditions": ["docstatus=1"],
 		"order_by": "posting_date",
 		"links": {
 			"supplier": ["Supplier", "name"],
@@ -278,7 +278,7 @@
 	},
 	"Purchase Receipt Item[Purchase Analytics]": {
 		"columns": ["name", "parent", "item_code", "stock_qty as qty", "base_net_amount"],
-		"conditions": ["docstatus=1", "ifnull(parent, '')!=''"], 
+		"conditions": ["docstatus=1", "ifnull(parent, '')!=''"],
 		"order_by": "parent",
 		"links": {
 			"parent": ["Purchase Receipt", "name"],
@@ -297,5 +297,39 @@
 		"columns": ["name","status","creation","planned_start_date","planned_end_date","status","actual_start_date","actual_end_date", "modified"],
 		"conditions": ["docstatus = 1"],
 		"order_by": "creation"
+	},
+
+	#Medical
+	"Patient": {
+		"columns": ["name", "creation", "owner", "if(patient_name=name, '', patient_name) as patient_name"],
+		"conditions": ["docstatus < 2"],
+		"order_by": "name",
+		"links": {
+			"owner" : ["User", "name"]
+		}
+	},
+	"Patient Appointment": {
+		"columns": ["name", "appointment_type", "patient", "physician", "appointment_date", "department", "status", "company"],
+		"order_by": "name",
+		"links": {
+			"physician": ["Physician", "name"],
+			"appointment_type": ["Appointment Type", "name"]
+		}
+	},
+	"Physician": {
+		"columns": ["name", "department"],
+		"order_by": "name",
+		"links": {
+			"department": ["Department", "name"],
+		}
+
+	},
+	"Appointment Type": {
+		"columns": ["name"],
+		"order_by": "name"
+	},
+	"Medical Department": {
+		"columns": ["name"],
+		"order_by": "name"
 	}
 }
diff --git a/erpnext/templates/includes/healthcare/appointment_row_template.html b/erpnext/templates/includes/healthcare/appointment_row_template.html
new file mode 100644
index 0000000..53be5e6
--- /dev/null
+++ b/erpnext/templates/includes/healthcare/appointment_row_template.html
@@ -0,0 +1,23 @@
+<div class="web-list-item transaction-list-item">
+  <a href="/patient-appointments?name={{ doc.name }}">
+    <div class="row">
+        <div class="col-xs-3">
+            <span class="indicator {{ "green" if doc.status=="Open" else "red"}}">
+                {{ doc.name }}
+            </span>
+        </div>
+        <div class="col-xs-3">
+          {{ doc.physician }}
+        </div>
+        <div class="col-xs-2">
+          {% if doc.department %}{{ doc.department }}{% endif %}
+        </div>
+        <div class="col-xs-2 text-right small text-muted">
+          {{ doc.appointment_time }}
+        </div>
+        <div class="col-xs-2 text-right small text-muted">
+          {{ frappe.format_date(doc.appointment_date) }}
+        </div>
+    </div>
+  </a>
+</div>
diff --git a/erpnext/templates/includes/healthcare/lab_test_row_template.html b/erpnext/templates/includes/healthcare/lab_test_row_template.html
new file mode 100644
index 0000000..d6c9b54
--- /dev/null
+++ b/erpnext/templates/includes/healthcare/lab_test_row_template.html
@@ -0,0 +1,20 @@
+<div class="web-list-item transaction-list-item">
+  <a href="/lab-test?name={{ doc.name }}">
+    <div class="row">
+        <div class="col-xs-3">
+            <span class="indicator {{ "green" if doc.status=="Completed" else "red"}}">
+                {{ doc.name }}
+            </span>
+        </div>
+        <div class="col-xs-3">
+          {{ doc.test_name }}
+        </div>
+        <div class="col-xs-3">
+          {{ doc.physician }}
+        </div>
+        <div class="col-xs-3 text-right small text-muted">
+          {{ frappe.format_date(doc.result_date) }}
+        </div>
+    </div>
+  </a>
+</div>
diff --git a/erpnext/templates/includes/healthcare/prescription_row_template.html b/erpnext/templates/includes/healthcare/prescription_row_template.html
new file mode 100644
index 0000000..13ce3bc
--- /dev/null
+++ b/erpnext/templates/includes/healthcare/prescription_row_template.html
@@ -0,0 +1,15 @@
+<div class="web-list-item transaction-list-item">
+  <a href="/prescription?name={{ doc.name }}">
+    <div class="row">
+        <div class="col-xs-4">
+            {{ doc.name }}
+        </div>
+        <div class="col-xs-4">
+          {{ doc.physician }}
+        </div>
+        <div class="col-xs-4 text-right small text-muted">
+          {{ frappe.format_date(doc.consultation_date) }}
+        </div>
+    </div>
+  </a>
+</div>