import frappe
from frappe import _
from erpnext.setup.utils import insert_record


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": "healthcare.setup.setup_healthcare",
}


def setup_healthcare():
	if frappe.db.exists("Medical Department", "Cardiology"):
		# already setup
		return
	create_custom_records()
	create_default_root_service_units()


def create_default_root_service_units():
	from healthcare.healthcare.utils import create_healthcare_service_unit_tree_root

	companies = frappe.get_all("Company")
	for company in companies:
		create_healthcare_service_unit_tree_root(company)


def create_custom_records():
	create_medical_departments()
	create_antibiotics()
	create_lab_test_uom()
	create_duration()
	create_dosage()
	create_dosage_form()
	create_healthcare_item_groups()
	create_sensitivity()
	setup_patient_history_settings()

	has_domain = frappe.get_doc(
		{
			"doctype": "Has Domain",
			"parent": "Domain Settings",
			"parentfield": "active_domains",
			"parenttype": "Domain Settings",
			"domain": "Healthcare",
		}
	)
	has_domain.save()

	domain = frappe.get_doc("Domain", "Healthcare")
	domain.setup_domain()

	domain_settings = frappe.get_single("Domain Settings")
	domain_settings.append("active_domains", dict(domain=domain))
	frappe.clear_cache()


def create_medical_departments():
	departments = [
		"Accident And Emergency Care",
		"Anaesthetics",
		"Biochemistry",
		"Cardiology",
		"Diabetology",
		"Dermatology",
		"Diagnostic Imaging",
		"ENT",
		"Gastroenterology",
		"General Surgery",
		"Gynaecology",
		"Haematology",
		"Maternity",
		"Microbiology",
		"Nephrology",
		"Neurology",
		"Oncology",
		"Orthopaedics",
		"Pathology",
		"Physiotherapy",
		"Rheumatology",
		"Serology",
		"Urology",
	]
	for department in departments:
		mediacal_department = frappe.new_doc("Medical Department")
		mediacal_department.department = _(department)
		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_lab_test_uom():
	records = [
		{"doctype": "Lab Test UOM", "name": "umol/L", "lab_test_uom": "umol/L", "uom_description": None},
		{"doctype": "Lab Test UOM", "name": "mg/L", "lab_test_uom": "mg/L", "uom_description": None},
		{
			"doctype": "Lab Test UOM",
			"name": "mg / dl",
			"lab_test_uom": "mg / dl",
			"uom_description": None,
		},
		{
			"doctype": "Lab Test UOM",
			"name": "pg / ml",
			"lab_test_uom": "pg / ml",
			"uom_description": None,
		},
		{"doctype": "Lab Test UOM", "name": "U/ml", "lab_test_uom": "U/ml", "uom_description": None},
		{"doctype": "Lab Test UOM", "name": "/HPF", "lab_test_uom": "/HPF", "uom_description": None},
		{
			"doctype": "Lab Test UOM",
			"name": "Million Cells / cumm",
			"lab_test_uom": "Million Cells / cumm",
			"uom_description": None,
		},
		{
			"doctype": "Lab Test UOM",
			"name": "Lakhs Cells / cumm",
			"lab_test_uom": "Lakhs Cells / cumm",
			"uom_description": None,
		},
		{"doctype": "Lab Test UOM", "name": "U / L", "lab_test_uom": "U / L", "uom_description": None},
		{"doctype": "Lab Test UOM", "name": "g / L", "lab_test_uom": "g / L", "uom_description": None},
		{
			"doctype": "Lab Test UOM",
			"name": "IU / ml",
			"lab_test_uom": "IU / ml",
			"uom_description": None,
		},
		{"doctype": "Lab Test UOM", "name": "gm %", "lab_test_uom": "gm %", "uom_description": None},
		{
			"doctype": "Lab Test UOM",
			"name": "Microgram",
			"lab_test_uom": "Microgram",
			"uom_description": None,
		},
		{"doctype": "Lab Test UOM", "name": "Micron", "lab_test_uom": "Micron", "uom_description": None},
		{
			"doctype": "Lab Test UOM",
			"name": "Cells / cumm",
			"lab_test_uom": "Cells / cumm",
			"uom_description": None,
		},
		{"doctype": "Lab Test UOM", "name": "%", "lab_test_uom": "%", "uom_description": None},
		{
			"doctype": "Lab Test UOM",
			"name": "mm / dl",
			"lab_test_uom": "mm / dl",
			"uom_description": None,
		},
		{
			"doctype": "Lab Test UOM",
			"name": "mm / hr",
			"lab_test_uom": "mm / hr",
			"uom_description": None,
		},
		{
			"doctype": "Lab Test UOM",
			"name": "ulU / ml",
			"lab_test_uom": "ulU / ml",
			"uom_description": None,
		},
		{
			"doctype": "Lab Test UOM",
			"name": "ng / ml",
			"lab_test_uom": "ng / ml",
			"uom_description": None,
		},
		{
			"doctype": "Lab Test UOM",
			"name": "ng / dl",
			"lab_test_uom": "ng / dl",
			"uom_description": None,
		},
		{
			"doctype": "Lab Test UOM",
			"name": "ug / dl",
			"lab_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_dosage_form():
	records = [
		{
			"doctype": "Dosage Form",
			"dosage_form": "Tablet",
		},
		{
			"doctype": "Dosage Form",
			"dosage_form": "Syrup",
		},
		{
			"doctype": "Dosage Form",
			"dosage_form": "Injection",
		},
		{
			"doctype": "Dosage Form",
			"dosage_form": "Capsule",
		},
		{
			"doctype": "Dosage Form",
			"dosage_form": "Cream",
		},
	]
	insert_record(records)


def create_healthcare_item_groups():
	item_group = {
		"doctype": "Item Group",
		"item_group_name": _("All Item Groups"),
		"is_group": 0,
		"parent_item_group": "",
	}
	if not frappe.db.exists(item_group["doctype"], item_group["item_group_name"]):
		insert_record([item_group])

	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_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 setup_patient_history_settings():
	import json

	settings = frappe.get_single("Patient History Settings")
	configuration = get_patient_history_config()
	for dt, config in configuration.items():
		settings.append(
			"standard_doctypes",
			{"document_type": dt, "date_fieldname": config[0], "selected_fields": json.dumps(config[1])},
		)
	settings.save()


def get_patient_history_config():
	return {
		"Patient Encounter": (
			"encounter_date",
			[
				{"label": "Healthcare Practitioner", "fieldname": "practitioner", "fieldtype": "Link"},
				{"label": "Symptoms", "fieldname": "symptoms", "fieldtype": "Table Multiselect"},
				{"label": "Diagnosis", "fieldname": "diagnosis", "fieldtype": "Table Multiselect"},
				{"label": "Drug Prescription", "fieldname": "drug_prescription", "fieldtype": "Table"},
				{"label": "Lab Tests", "fieldname": "lab_test_prescription", "fieldtype": "Table"},
				{"label": "Clinical Procedures", "fieldname": "procedure_prescription", "fieldtype": "Table"},
				{"label": "Therapies", "fieldname": "therapies", "fieldtype": "Table"},
				{"label": "Review Details", "fieldname": "encounter_comment", "fieldtype": "Small Text"},
			],
		),
		"Clinical Procedure": (
			"start_date",
			[
				{"label": "Procedure Template", "fieldname": "procedure_template", "fieldtype": "Link"},
				{"label": "Healthcare Practitioner", "fieldname": "practitioner", "fieldtype": "Link"},
				{"label": "Notes", "fieldname": "notes", "fieldtype": "Small Text"},
				{"label": "Service Unit", "fieldname": "service_unit", "fieldtype": "Healthcare Service Unit"},
				{"label": "Start Time", "fieldname": "start_time", "fieldtype": "Time"},
				{"label": "Sample", "fieldname": "sample", "fieldtype": "Link"},
			],
		),
		"Lab Test": (
			"result_date",
			[
				{"label": "Test Template", "fieldname": "template", "fieldtype": "Link"},
				{"label": "Healthcare Practitioner", "fieldname": "practitioner", "fieldtype": "Link"},
				{"label": "Test Name", "fieldname": "lab_test_name", "fieldtype": "Data"},
				{"label": "Lab Technician Name", "fieldname": "employee_name", "fieldtype": "Data"},
				{"label": "Sample ID", "fieldname": "sample", "fieldtype": "Link"},
				{"label": "Normal Test Result", "fieldname": "normal_test_items", "fieldtype": "Table"},
				{
					"label": "Descriptive Test Result",
					"fieldname": "descriptive_test_items",
					"fieldtype": "Table",
				},
				{"label": "Organism Test Result", "fieldname": "organism_test_items", "fieldtype": "Table"},
				{
					"label": "Sensitivity Test Result",
					"fieldname": "sensitivity_test_items",
					"fieldtype": "Table",
				},
				{"label": "Comments", "fieldname": "lab_test_comment", "fieldtype": "Table"},
			],
		),
		"Therapy Session": (
			"start_date",
			[
				{"label": "Therapy Type", "fieldname": "therapy_type", "fieldtype": "Link"},
				{"label": "Healthcare Practitioner", "fieldname": "practitioner", "fieldtype": "Link"},
				{"label": "Therapy Plan", "fieldname": "therapy_plan", "fieldtype": "Link"},
				{"label": "Duration", "fieldname": "duration", "fieldtype": "Int"},
				{"label": "Location", "fieldname": "location", "fieldtype": "Link"},
				{"label": "Healthcare Service Unit", "fieldname": "service_unit", "fieldtype": "Link"},
				{"label": "Start Time", "fieldname": "start_time", "fieldtype": "Time"},
				{"label": "Exercises", "fieldname": "exercises", "fieldtype": "Table"},
				{"label": "Total Counts Targeted", "fieldname": "total_counts_targeted", "fieldtype": "Int"},
				{"label": "Total Counts Completed", "fieldname": "total_counts_completed", "fieldtype": "Int"},
			],
		),
		"Vital Signs": (
			"signs_date",
			[
				{"label": "Body Temperature", "fieldname": "temperature", "fieldtype": "Data"},
				{"label": "Heart Rate / Pulse", "fieldname": "pulse", "fieldtype": "Data"},
				{"label": "Respiratory rate", "fieldname": "respiratory_rate", "fieldtype": "Data"},
				{"label": "Tongue", "fieldname": "tongue", "fieldtype": "Select"},
				{"label": "Abdomen", "fieldname": "abdomen", "fieldtype": "Select"},
				{"label": "Reflexes", "fieldname": "reflexes", "fieldtype": "Select"},
				{"label": "Blood Pressure", "fieldname": "bp", "fieldtype": "Data"},
				{"label": "Notes", "fieldname": "vital_signs_note", "fieldtype": "Small Text"},
				{"label": "Height (In Meter)", "fieldname": "height", "fieldtype": "Float"},
				{"label": "Weight (In Kilogram)", "fieldname": "weight", "fieldtype": "Float"},
				{"label": "BMI", "fieldname": "bmi", "fieldtype": "Float"},
			],
		),
		"Inpatient Medication Order": (
			"start_date",
			[
				{"label": "Healthcare Practitioner", "fieldname": "practitioner", "fieldtype": "Link"},
				{"label": "Start Date", "fieldname": "start_date", "fieldtype": "Date"},
				{"label": "End Date", "fieldname": "end_date", "fieldtype": "Date"},
				{"label": "Medication Orders", "fieldname": "medication_orders", "fieldtype": "Table"},
				{"label": "Total Orders", "fieldname": "total_orders", "fieldtype": "Float"},
			],
		),
	}
