chore: Removed healthcare demo, patch files
diff --git a/erpnext/demo/setup/healthcare.py b/erpnext/demo/setup/healthcare.py
deleted file mode 100644
index 5d5707f..0000000
--- a/erpnext/demo/setup/healthcare.py
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-from __future__ import unicode_literals
-
-import datetime
-import json
-
-import frappe
-from frappe.utils import getdate
-from frappe.utils.make_random import get_random
-
-from erpnext.demo.setup.setup_data import import_json
-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_encounter()
-	frappe.db.commit()
-	frappe.clear_cache()
-
-def make_masters():
-	import_json("Healthcare Practitioner")
-	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:
-		practitioner = get_random("Healthcare Practitioner")
-		department = frappe.get_value("Healthcare Practitioner", practitioner, "department")
-		patient = get_random("Patient")
-		patient_sex = frappe.get_value("Patient", patient, "sex")
-		appointment = frappe.new_doc("Patient Appointment")
-		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.practitioner = practitioner
-		appointment.department = department
-		appointment.save(ignore_permissions = True)
-		i += 1
-
-def make_consulation():
-	for i in range(3):
-		practitioner = get_random("Healthcare Practitioner")
-		department = frappe.get_value("Healthcare Practitioner", practitioner, "department")
-		patient = get_random("Patient")
-		patient_sex = frappe.get_value("Patient", patient, "sex")
-		encounter = set_encounter(patient, patient_sex, practitioner, department, getdate(), i)
-		encounter.save(ignore_permissions=True)
-
-def consulation_on_appointment():
-	for i in range(3):
-		appointment = get_random("Patient Appointment")
-		appointment = frappe.get_doc("Patient Appointment",appointment)
-		encounter = set_encounter(appointment.patient, appointment.patient_sex, appointment.practitioner, appointment.department, appointment.appointment_date, i)
-		encounter.appointment = appointment.name
-		encounter.save(ignore_permissions=True)
-
-def set_encounter(patient, patient_sex, practitioner, department, encounter_date, i):
-	encounter = frappe.new_doc("Patient Encounter")
-	encounter.patient = patient
-	encounter.patient_sex = patient_sex
-	encounter.practitioner = practitioner
-	encounter.visit_department = department
-	encounter.encounter_date = encounter_date
-	if i > 2 and patient_sex=='Female':
-		encounter.symptoms = "Having chest pains for the last week."
-		encounter.diagnosis = """This patient's description of dull, aching,
-		exertion related substernal chest pain is suggestive of ischemic
-		cardiac origin. Her findings of a FH of early ASCVD, hypertension,
-		and early surgical menopause are pertinent risk factors for development
-		of coronary artery disease. """
-	else:
-		encounter = append_drug_rx(encounter)
-		encounter = append_test_rx(encounter)
-	return encounter
-
-def make_lab_test():
-	practitioner = get_random("Healthcare Practitioner")
-	patient = get_random("Patient")
-	patient_sex = frappe.get_value("Patient", patient, "sex")
-	template = get_random("Lab Test Template")
-	set_lab_test(patient, patient_sex, practitioner, template)
-
-def lab_test_on_encounter():
-	i = 1
-	while i <= 2:
-		test_rx = get_random("Lab Prescription", filters={'test_created': 0})
-		test_rx = frappe.get_doc("Lab Prescription", test_rx)
-		encounter = frappe.get_doc("Patient Encounter", test_rx.parent)
-		set_lab_test(encounter.patient, encounter.patient_sex, encounter.practitioner, test_rx.test_code, test_rx.name)
-		i += 1
-
-def set_lab_test(patient, patient_sex, practitioner, template, rx=None):
-	lab_test = frappe.new_doc("Lab Test")
-	lab_test.practitioner = practitioner
-	lab_test.patient = patient
-	lab_test.patient_sex = patient_sex
-	lab_test.template = template
-	lab_test.prescription = rx
-	create_test_from_template(lab_test)
-
-def append_test_rx(encounter):
-	i = 1
-	while i <= 2:
-		test_rx = encounter.append("test_prescription")
-		test_rx.test_code = get_random("Lab Test Template")
-		i += 1
-	return encounter
-
-def append_drug_rx(encounter):
-	i = 1
-	while i <= 3:
-		drug = get_random("Item", filters={"item_group":"Drug"})
-		drug = frappe.get_doc("Item", drug)
-		drug_rx = encounter.append("drug_prescription")
-		drug_rx.drug_code = drug.item_code
-		drug_rx.drug_name = drug.item_name
-		drug_rx.dosage = get_random("Prescription Dosage")
-		drug_rx.period = get_random("Prescription Duration")
-		i += 1
-	return encounter
-
-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/domains/healthcare.py b/erpnext/domains/healthcare.py
deleted file mode 100644
index bbeb2c6..0000000
--- a/erpnext/domains/healthcare.py
+++ /dev/null
@@ -1,71 +0,0 @@
-from __future__ import unicode_literals
-
-data = {
-	'desktop_icons': [
-		'Patient',
-		'Patient Appointment',
-		'Patient Encounter',
-		'Lab Test',
-		'Healthcare',
-		'Vital Signs',
-		'Clinical Procedure',
-		'Inpatient Record',
-		'Accounts',
-		'Buying',
-		'Stock',
-		'HR',
-		'ToDo'
-	],
-	'default_portal_role': 'Patient',
-	'restricted_roles': [
-		'Healthcare Administrator',
-		'LabTest Approver',
-		'Laboratory User',
-		'Nursing User',
-		'Physician',
-		'Patient'
-	],
-	'custom_fields': {
-		'Sales Invoice': [
-			{
-				'fieldname': 'patient', 'label': 'Patient', 'fieldtype': 'Link', 'options': 'Patient',
-				'insert_after': 'naming_series'
-			},
-			{
-				'fieldname': 'patient_name', 'label': 'Patient Name', 'fieldtype': 'Data', 'fetch_from': 'patient.patient_name',
-				'insert_after': 'patient', 'read_only': True
-			},
-			{
-				'fieldname': 'ref_practitioner', 'label': 'Referring Practitioner', 'fieldtype': 'Link', 'options': 'Healthcare Practitioner',
-				'insert_after': 'customer'
-			}
-		],
-		'Sales Invoice Item': [
-			{
-				'fieldname': 'reference_dt', 'label': 'Reference DocType', 'fieldtype': 'Link', 'options': 'DocType',
-				'insert_after': 'edit_references'
-			},
-			{
-				'fieldname': 'reference_dn', 'label': 'Reference Name', 'fieldtype': 'Dynamic Link', 'options': 'reference_dt',
-				'insert_after': 'reference_dt'
-			}
-		],
-		'Stock Entry': [
-			{
-				'fieldname': 'inpatient_medication_entry', 'label': 'Inpatient Medication Entry', 'fieldtype': 'Link', 'options': 'Inpatient Medication Entry',
-				'insert_after': 'credit_note', 'read_only': True
-			}
-		],
-		'Stock Entry Detail': [
-			{
-				'fieldname': 'patient', 'label': 'Patient', 'fieldtype': 'Link', 'options': 'Patient',
-				'insert_after': 'po_detail', 'read_only': True
-			},
-			{
-				'fieldname': 'inpatient_medication_entry_child', 'label': 'Inpatient Medication Entry Child', 'fieldtype': 'Data',
-				'insert_after': 'patient', 'read_only': True
-			}
-		]
-	},
-	'on_setup': 'erpnext.healthcare.setup.setup_healthcare'
-}
diff --git a/erpnext/patches/v11_0/add_healthcare_service_unit_tree_root.py b/erpnext/patches/v11_0/add_healthcare_service_unit_tree_root.py
deleted file mode 100644
index 9bb91dc..0000000
--- a/erpnext/patches/v11_0/add_healthcare_service_unit_tree_root.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-from frappe import _
-
-
-def execute():
-	""" assign lft and rgt appropriately """
-	if "Healthcare" not in frappe.get_active_domains():
-		return
-
-	frappe.reload_doc("healthcare", "doctype", "healthcare_service_unit")
-	frappe.reload_doc("healthcare", "doctype", "healthcare_service_unit_type")
-	company = frappe.get_value("Company", {"domain": "Healthcare"}, "name")
-
-	if company:
-		frappe.get_doc({
-			'doctype': 'Healthcare Service Unit',
-			'healthcare_service_unit_name': _('All Healthcare Service Units'),
-			'is_group': 1,
-			'company': company
-		}).insert(ignore_permissions=True)
diff --git a/erpnext/patches/v11_0/redesign_healthcare_billing_work_flow.py b/erpnext/patches/v11_0/redesign_healthcare_billing_work_flow.py
deleted file mode 100644
index b1ed0f5..0000000
--- a/erpnext/patches/v11_0/redesign_healthcare_billing_work_flow.py
+++ /dev/null
@@ -1,69 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-from frappe.modules import get_doctype_module, scrub
-
-from erpnext.domains.healthcare import data
-
-sales_invoice_referenced_doc = {
-	"Patient Appointment": "sales_invoice",
-	"Patient Encounter": "invoice",
-	"Lab Test": "invoice",
-	"Lab Prescription": "invoice",
-	"Sample Collection": "invoice"
-}
-
-def execute():
-	frappe.reload_doc('accounts', 'doctype', 'loyalty_program')
-	frappe.reload_doc('accounts', 'doctype', 'sales_invoice_item')
-
-	if "Healthcare" not in frappe.get_active_domains():
-		return
-
-	healthcare_custom_field_in_sales_invoice()
-	for si_ref_doc in sales_invoice_referenced_doc:
-		if frappe.db.exists('DocType', si_ref_doc):
-			frappe.reload_doc(get_doctype_module(si_ref_doc), 'doctype', scrub(si_ref_doc))
-
-			if frappe.db.has_column(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]) \
-			and frappe.db.has_column(si_ref_doc, 'invoiced'):
-				# Set Reference DocType and Reference Docname
-				doc_list = frappe.db.sql("""
-							select name from `tab{0}`
-							where {1} is not null
-						""".format(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]))
-				if doc_list:
-					frappe.reload_doc(get_doctype_module("Sales Invoice"), 'doctype', 'sales_invoice')
-					for doc_id in doc_list:
-						invoice_id = frappe.db.get_value(si_ref_doc, doc_id[0], sales_invoice_referenced_doc[si_ref_doc])
-						if frappe.db.exists("Sales Invoice", invoice_id):
-							if si_ref_doc == "Lab Test":
-								template = frappe.db.get_value("Lab Test", doc_id[0], "template")
-								if template:
-									item = frappe.db.get_value("Lab Test Template", template, "item")
-									if item:
-										frappe.db.sql("""update `tabSales Invoice Item` set reference_dt = '{0}',
-										reference_dn = '{1}' where parent = '{2}' and item_code='{3}'""".format\
-										(si_ref_doc, doc_id[0], invoice_id, item))
-							else:
-								invoice = frappe.get_doc("Sales Invoice", invoice_id)
-								for item_line in invoice.items:
-									if not item_line.reference_dn:
-										item_line.db_set({"reference_dt":si_ref_doc, "reference_dn": doc_id[0]})
-										break
-				# Documents mark invoiced for submitted sales invoice
-				frappe.db.sql("""update `tab{0}` doc, `tabSales Invoice` si
-					set doc.invoiced = 1 where si.docstatus = 1 and doc.{1} = si.name
-					""".format(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]))
-
-def healthcare_custom_field_in_sales_invoice():
-	frappe.reload_doc('healthcare', 'doctype', 'patient')
-	frappe.reload_doc('healthcare', 'doctype', 'healthcare_practitioner')
-	if data['custom_fields']:
-		create_custom_fields(data['custom_fields'])
-
-	frappe.db.sql("""
-				delete from `tabCustom Field`
-				where fieldname = 'appointment' and options = 'Patient Appointment'
-			""")
diff --git a/erpnext/patches/v11_0/rename_health_insurance.py b/erpnext/patches/v11_0/rename_health_insurance.py
deleted file mode 100644
index a4f53b0..0000000
--- a/erpnext/patches/v11_0/rename_health_insurance.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright (c) 2018, Frappe and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-
-import frappe
-
-
-def execute():
-	frappe.rename_doc('DocType', 'Health Insurance', 'Employee Health Insurance', force=True)
-	frappe.reload_doc('hr', 'doctype', 'employee_health_insurance')
diff --git a/erpnext/patches/v11_0/rename_healthcare_doctype_and_fields.py b/erpnext/patches/v11_0/rename_healthcare_doctype_and_fields.py
deleted file mode 100644
index 7a8c52f..0000000
--- a/erpnext/patches/v11_0/rename_healthcare_doctype_and_fields.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-from frappe.model.utils.rename_field import rename_field
-from frappe.modules import get_doctype_module, scrub
-
-field_rename_map = {
-	"Patient Encounter": [
-		["consultation_time", "encounter_time"],
-		["consultation_date", "encounter_date"],
-		["consultation_comment", "encounter_comment"],
-		["physician", "practitioner"]
-	],
-	"Fee Validity": [
-		["physician", "practitioner"]
-	],
-	"Lab Test": [
-		["physician", "practitioner"]
-	],
-	"Patient Appointment": [
-		["physician", "practitioner"],
-		["referring_physician", "referring_practitioner"]
-	],
-	"Procedure Prescription": [
-		["physician", "practitioner"]
-	]
-}
-
-doc_rename_map = {
-	"Physician Schedule Time Slot": "Healthcare Schedule Time Slot",
-	"Physician Schedule": "Practitioner Schedule",
-	"Physician Service Unit Schedule": "Practitioner Service Unit Schedule",
-	"Consultation": "Patient Encounter",
-	"Physician": "Healthcare Practitioner"
-}
-
-def execute():
-	for dt in doc_rename_map:
-		if frappe.db.exists('DocType', dt):
-			frappe.rename_doc('DocType', dt, doc_rename_map[dt], force=True)
-
-	for dn in field_rename_map:
-		if frappe.db.exists('DocType', dn):
-			frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))
-
-	for dt, field_list in field_rename_map.items():
-		if frappe.db.exists('DocType', dt):
-			for field in field_list:
-				if frappe.db.has_column(dt, field[0]):
-					rename_field(dt, field[0], field[1])
-
-	if frappe.db.exists('DocType', 'Practitioner Service Unit Schedule'):
-		if frappe.db.has_column('Practitioner Service Unit Schedule', 'parentfield'):
-			frappe.db.sql("""
-				update `tabPractitioner Service Unit Schedule` set parentfield = 'practitioner_schedules'
-				where parentfield = 'physician_schedules' and parenttype = 'Healthcare Practitioner'
-			""")
-
-	if frappe.db.exists("DocType", "Healthcare Practitioner"):
-		frappe.reload_doc("healthcare", "doctype", "healthcare_practitioner")
-		frappe.reload_doc("healthcare", "doctype", "practitioner_service_unit_schedule")
-		if frappe.db.has_column('Healthcare Practitioner', 'physician_schedule'):
-			for doc in frappe.get_all('Healthcare Practitioner'):
-				_doc = frappe.get_doc('Healthcare Practitioner', doc.name)
-				if _doc.physician_schedule:
-					_doc.append('practitioner_schedules', {'schedule': _doc.physician_schedule})
-					_doc.save()
diff --git a/erpnext/patches/v11_0/rename_healthcare_fields.py b/erpnext/patches/v11_0/rename_healthcare_fields.py
deleted file mode 100644
index 5c96367..0000000
--- a/erpnext/patches/v11_0/rename_healthcare_fields.py
+++ /dev/null
@@ -1,54 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-from frappe.model.utils.rename_field import rename_field
-from frappe.modules import get_doctype_module, scrub
-
-lab_test_name = ["test_name", "lab_test_name"]
-lab_test_code = ["test_code", "lab_test_code"]
-lab_test_comment = ["test_comment", "lab_test_comment"]
-lab_test_created = ["test_created", "lab_test_created"]
-lab_test_template = ["test_template", "lab_test_template"]
-lab_test_rate = ["test_rate", "lab_test_rate"]
-lab_test_description = ["test_description", "lab_test_description"]
-lab_test_group = ["test_group", "lab_test_group"]
-lab_test_template_type = ["test_template_type", "lab_test_template_type"]
-lab_test_uom = ["test_uom", "lab_test_uom"]
-lab_test_normal_range = ["test_normal_range", "lab_test_normal_range"]
-lab_test_event = ["test_event", "lab_test_event"]
-lab_test_particulars = ["test_particulars", "lab_test_particulars"]
-
-field_rename_map = {
-	"Lab Test Template": [lab_test_name, lab_test_code, lab_test_rate, lab_test_description,
-		lab_test_group, lab_test_template_type, lab_test_uom, lab_test_normal_range],
-	"Normal Test Items": [lab_test_name, lab_test_comment, lab_test_uom, lab_test_event],
-	"Lab Test": [lab_test_name, lab_test_comment, lab_test_group],
-	"Lab Prescription": [lab_test_name, lab_test_code, lab_test_comment, lab_test_created],
-	"Lab Test Groups": [lab_test_template, lab_test_rate, lab_test_description],
-	"Lab Test UOM": [lab_test_uom],
-	"Normal Test Template": [lab_test_uom, lab_test_event],
-	"Special Test Items": [lab_test_particulars]
-}
-
-
-def execute():
-	for dt, field_list in field_rename_map.items():
-		if frappe.db.exists('DocType', dt):
-			frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
-			for field in field_list:
-				if frappe.db.has_column(dt, field[0]):
-					rename_field(dt, field[0], field[1])
-
-	if frappe.db.exists('DocType', 'Lab Prescription'):
-		if frappe.db.has_column('Lab Prescription', 'parentfield'):
-			frappe.db.sql("""
-				update `tabLab Prescription` set parentfield = 'lab_test_prescription'
-				where parentfield = 'test_prescription'
-			""")
-
-	if frappe.db.exists('DocType', 'Lab Test Groups'):
-		if frappe.db.has_column('Lab Test Groups', 'parentfield'):
-			frappe.db.sql("""
-				update `tabLab Test Groups` set parentfield = 'lab_test_groups'
-				where parentfield = 'test_groups'
-			""")
diff --git a/erpnext/patches/v12_0/update_appointment_reminder_scheduler_entry.py b/erpnext/patches/v12_0/update_appointment_reminder_scheduler_entry.py
deleted file mode 100644
index 024cb2b..0000000
--- a/erpnext/patches/v12_0/update_appointment_reminder_scheduler_entry.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import frappe
-
-
-def execute():
-	job = frappe.db.exists('Scheduled Job Type', 'patient_appointment.send_appointment_reminder')
-	if job:
-		method = 'erpnext.healthcare.doctype.patient_appointment.patient_appointment.send_appointment_reminder'
-		frappe.db.set_value('Scheduled Job Type', job, 'method', method)
diff --git a/erpnext/patches/v13_0/create_healthcare_custom_fields_in_stock_entry_detail.py b/erpnext/patches/v13_0/create_healthcare_custom_fields_in_stock_entry_detail.py
deleted file mode 100644
index 543faeb..0000000
--- a/erpnext/patches/v13_0/create_healthcare_custom_fields_in_stock_entry_detail.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-from erpnext.domains.healthcare import data
-
-
-def execute():
-	if 'Healthcare' not in frappe.get_active_domains():
-		return
-
-	if data['custom_fields']:
-		create_custom_fields(data['custom_fields'])
diff --git a/erpnext/patches/v13_0/setup_patient_history_settings_for_standard_doctypes.py b/erpnext/patches/v13_0/setup_patient_history_settings_for_standard_doctypes.py
deleted file mode 100644
index 80622d4..0000000
--- a/erpnext/patches/v13_0/setup_patient_history_settings_for_standard_doctypes.py
+++ /dev/null
@@ -1,19 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-
-from erpnext.healthcare.setup import setup_patient_history_settings
-
-
-def execute():
-	if "Healthcare" not in frappe.get_active_domains():
-		return
-
-	frappe.reload_doc("healthcare", "doctype", "Inpatient Medication Order")
-	frappe.reload_doc("healthcare", "doctype", "Therapy Session")
-	frappe.reload_doc("healthcare", "doctype", "Clinical Procedure")
-	frappe.reload_doc("healthcare", "doctype", "Patient History Settings")
-	frappe.reload_doc("healthcare", "doctype", "Patient History Standard Document Type")
-	frappe.reload_doc("healthcare", "doctype", "Patient History Custom Document Type")
-
-	setup_patient_history_settings()