diff --git a/changemakers/frappe_changemakers/doctype/care_centre/__init__.py b/changemakers/frappe_changemakers/doctype/care_centre/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/changemakers/frappe_changemakers/doctype/care_centre/care_centre.js b/changemakers/frappe_changemakers/doctype/care_centre/care_centre.js new file mode 100644 index 0000000..1250093 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre/care_centre.js @@ -0,0 +1,8 @@ +// Copyright (c) 2023, hussain@frappe.io and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Care Centre", { +// refresh(frm) { + +// }, +// }); diff --git a/changemakers/frappe_changemakers/doctype/care_centre/care_centre.json b/changemakers/frappe_changemakers/doctype/care_centre/care_centre.json new file mode 100644 index 0000000..2db9db1 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre/care_centre.json @@ -0,0 +1,172 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:facility_name", + "creation": "2023-10-25 10:50:17.900084", + "default_view": "List", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "facility_name", + "capacity", + "location", + "column_break_zkks", + "organisation", + "vacant_beds" + ], + "fields": [ + { + "fieldname": "facility_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Facility Name", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "capacity", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Capacity", + "non_negative": 1, + "reqd": 1 + }, + { + "fieldname": "location", + "fieldtype": "Small Text", + "label": "Location" + }, + { + "fieldname": "organisation", + "fieldtype": "Link", + "label": "Organisation", + "options": "Organisation" + }, + { + "fieldname": "vacant_beds", + "fieldtype": "Data", + "is_virtual": 1, + "label": "Vacant Beds" + }, + { + "fieldname": "column_break_zkks", + "fieldtype": "Column Break" + } + ], + "index_web_pages_for_search": 1, + "links": [ + { + "link_doctype": "Care Centre Admission", + "link_fieldname": "facility_name" + } + ], + "modified": "2023-10-27 17:41:48.472208", + "modified_by": "Administrator", + "module": "Frappe Changemakers", + "name": "Care Centre", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Admin (Partner)", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Partner SMT", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Social Worker", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Program Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Healthcare Team Member", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "SMT(NGO)-Field Co-ordinator", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Medical Co-ordinator", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/changemakers/frappe_changemakers/doctype/care_centre/care_centre.py b/changemakers/frappe_changemakers/doctype/care_centre/care_centre.py new file mode 100644 index 0000000..7c85be0 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre/care_centre.py @@ -0,0 +1,25 @@ +# Copyright (c) 2023, hussain@frappe.io and contributors +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document + + +class CareCentre(Document): + @property + def vacant_beds(self): + """ + Calculating vacant beds in a care centre facility. + :return: int or str if count is 0 + """ + filters = { + "facility_name": self.facility_name, + "status": ("in", ("Admitted", "Hospitalised")), + "docstatus": 0, + } + occupants = frappe.get_all( + "Care Centre Admission", filters=filters, fields=["name"], pluck="name" + ) + + vacant_beds = self.capacity - len(occupants) + return vacant_beds if vacant_beds > 0 else str(0) diff --git a/changemakers/frappe_changemakers/doctype/care_centre/test_care_centre.py b/changemakers/frappe_changemakers/doctype/care_centre/test_care_centre.py new file mode 100644 index 0000000..17ad5e5 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre/test_care_centre.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, hussain@frappe.io and Contributors +# See license.txt + +# import frappe +from frappe.tests.utils import FrappeTestCase + + +class TestCareCentre(FrappeTestCase): + pass diff --git a/changemakers/frappe_changemakers/doctype/care_centre_admission/__init__.py b/changemakers/frappe_changemakers/doctype/care_centre_admission/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.js b/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.js new file mode 100644 index 0000000..1f85eee --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.js @@ -0,0 +1,8 @@ +// Copyright (c) 2023, hussain@frappe.io and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Care Centre Admission", { +// refresh(frm) { + +// }, +// }); diff --git a/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.json b/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.json new file mode 100644 index 0000000..7ecd717 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.json @@ -0,0 +1,308 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "naming_series:", + "creation": "2023-10-25 11:06:54.099690", + "default_view": "List", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "column_break_vnwn", + "column_break_xedh", + "amended_from", + "section_break_oktc", + "facility_name", + "column_break_qkbc", + "naming_series", + "column_break_aala", + "status", + "section_break_getk", + "beneficiary", + "admission_date", + "column_break_xcyq", + "doctor_name", + "discharge_date", + "column_break_msuj", + "file_number", + "exit_pathway", + "section_break_tgsq", + "column_break_mjah", + "est_duration_days", + "actual_duration_days", + "column_break_sqpn", + "column_break_gsff", + "admission_type", + "referred_by", + "section_break_pumi", + "medical_conditions", + "doctors_assessment", + "section_break_cjtk", + "work_performed" + ], + "fields": [ + { + "fieldname": "facility_name", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Facility Name", + "options": "Care Centre", + "reqd": 1, + "search_index": 1 + }, + { + "fieldname": "doctor_name", + "fieldtype": "Data", + "label": "Doctor's Name" + }, + { + "fieldname": "beneficiary", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Beneficiary", + "options": "Beneficiary", + "reqd": 1 + }, + { + "fieldname": "file_number", + "fieldtype": "Data", + "label": "File Number" + }, + { + "fieldname": "admission_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date of Admission", + "reqd": 1 + }, + { + "fieldname": "section_break_tgsq", + "fieldtype": "Section Break" + }, + { + "default": "Voluntary", + "fieldname": "admission_type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Type of Admission", + "options": "\nVoluntary\nInvoluntary", + "reqd": 1 + }, + { + "fieldname": "column_break_sqpn", + "fieldtype": "Column Break" + }, + { + "fieldname": "referred_by", + "fieldtype": "Select", + "label": "Referred By", + "options": "\nPolice\nPS - Partners\nSelf" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Care Centre Admission", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_vnwn", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_xedh", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_getk", + "fieldtype": "Section Break" + }, + { + "fieldname": "section_break_oktc", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_qkbc", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_msuj", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_pumi", + "fieldtype": "Section Break" + }, + { + "fieldname": "medical_conditions", + "fieldtype": "Table MultiSelect", + "label": "Medical Conditions", + "options": "Medical Conditions Multiselect" + }, + { + "fieldname": "doctors_assessment", + "fieldtype": "Text", + "label": "Doctor's Assessment", + "max_height": "15rem" + }, + { + "fieldname": "est_duration_days", + "fieldtype": "Int", + "label": "Estimated Duration (Days)" + }, + { + "depends_on": "eval: doc.status == 'Discharged';", + "fieldname": "actual_duration_days", + "fieldtype": "Int", + "label": "Actual Duration (Days)", + "non_negative": 1, + "read_only": 1 + }, + { + "depends_on": "eval: doc.status == 'Discharged';", + "fieldname": "discharge_date", + "fieldtype": "Date", + "label": "Date of Discharge", + "mandatory_depends_on": "eval: doc.status == 'Discharged';" + }, + { + "depends_on": "eval: doc.status == 'Discharged';", + "fieldname": "exit_pathway", + "fieldtype": "Select", + "label": "Exit Pathway", + "mandatory_depends_on": "eval: doc.discharge_date && doc.status == 'Discharged';", + "options": "\nFamily Reintegration\nDeath\nShelter Home" + }, + { + "fieldname": "column_break_aala", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_xcyq", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_cjtk", + "fieldtype": "Section Break" + }, + { + "fieldname": "work_performed", + "fieldtype": "Table", + "label": "Work Performed", + "options": "Care Centre Admission Detail" + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "\nAdmitted\nHospitalised\nDischarged", + "reqd": 1 + }, + { + "fieldname": "column_break_mjah", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_gsff", + "fieldtype": "Column Break" + }, + { + "default": "CC-ADM-", + "fieldname": "naming_series", + "fieldtype": "Select", + "hidden": 1, + "label": "Series", + "options": "CC-ADM-" + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2023-11-05 14:36:09.303010", + "modified_by": "Administrator", + "module": "Frappe Changemakers", + "name": "Care Centre Admission", + "naming_rule": "By \"Naming Series\" field", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Admin (Partner)", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Partner SMT", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Social Worker", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Program Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "SMT(NGO)-Field Co-ordinator", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.py b/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.py new file mode 100644 index 0000000..dd1c524 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre_admission/care_centre_admission.py @@ -0,0 +1,80 @@ +# Copyright (c) 2023, hussain@frappe.io and contributors +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document +from frappe.utils import getdate + + +class CareCentreAdmission(Document): + actual_duration_days: int + + def validate(self): + self.validate_duplication() + self.validate_work_performed() + self.validate_capacity() + + def before_save(self): + if self.discharge_date: + duration = getdate(self.discharge_date) - getdate(self.admission_date) + self.actual_duration_days = duration.days + + def before_submit(self): + self.validate_discharge_date() + + def validate_duplication(self): + """ + Checking DB for existing admission record for same beneficiary and facility. + :return: None + """ + exists = frappe.db.exists( + "Care Centre Admission", + { + "beneficiary": self.beneficiary, + "facility_name": self.facility_name, + "docstatus": 0, + "status": ("in", ("", "Admitted", "Hospitalised")), + }, + ) + + if exists and (self.name != exists): + frappe.throw( + f"There is an active admission record for Beneficiary: {self.beneficiary} in Care Centre: {self.facility_name}" + ) + + def validate_work_performed(self): + """ + Checking if work performed date is before admission date. + :return: None + """ + for idx, item in enumerate(self.work_performed): + if getdate(item.date) < getdate(self.admission_date): + frappe.throw( + f"Work performed at Sr #. {idx} for Category {item.category} cannot be before admission date" + ) + + def validate_discharge_date(self): + """ + Checking if discharge date is before admission date. + :return: None + """ + if not self.discharge_date or (self.discharge_date < self.admission_date): + frappe.throw( + f"Date of discharge is mandatory for submission and has to be greater than or equal to admission date {self.admission_date}" + ) + + if self.status.lower() != "discharged": + frappe.throw( + f"Beneficiary {self.beneficiary} has to be discharged before this document can be submitted" + ) + + def validate_capacity(self): + """ + Checking if facility has enough capacity to admit beneficiary. + :return: None + """ + facility = frappe.get_doc("Care Centre", self.facility_name) + if not facility.vacant_beds: + frappe.throw( + f"Care Centre {self.facility_name} does not have any vacant beds left, please select a different facility." + ) diff --git a/changemakers/frappe_changemakers/doctype/care_centre_admission/test_care_centre_admission.py b/changemakers/frappe_changemakers/doctype/care_centre_admission/test_care_centre_admission.py new file mode 100644 index 0000000..b9892cb --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre_admission/test_care_centre_admission.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, hussain@frappe.io and Contributors +# See license.txt + +# import frappe +from frappe.tests.utils import FrappeTestCase + + +class TestCareCentreAdmission(FrappeTestCase): + pass diff --git a/changemakers/frappe_changemakers/doctype/care_centre_admission_detail/__init__.py b/changemakers/frappe_changemakers/doctype/care_centre_admission_detail/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/changemakers/frappe_changemakers/doctype/care_centre_admission_detail/care_centre_admission_detail.json b/changemakers/frappe_changemakers/doctype/care_centre_admission_detail/care_centre_admission_detail.json new file mode 100644 index 0000000..89c43d3 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre_admission_detail/care_centre_admission_detail.json @@ -0,0 +1,80 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2023-10-25 11:40:09.332361", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "column_break_cnwn", + "date", + "column_break_enyy", + "time", + "column_break_gbfc", + "category", + "column_break_xiza", + "description" + ], + "fields": [ + { + "columns": 1, + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Date", + "reqd": 1 + }, + { + "fieldname": "column_break_enyy", + "fieldtype": "Column Break" + }, + { + "columns": 1, + "fieldname": "time", + "fieldtype": "Time", + "in_list_view": 1, + "label": "Time", + "reqd": 1 + }, + { + "fieldname": "column_break_gbfc", + "fieldtype": "Column Break" + }, + { + "columns": 2, + "fieldname": "category", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Category", + "options": "\nTest\nMedication" + }, + { + "fieldname": "column_break_xiza", + "fieldtype": "Column Break" + }, + { + "columns": 6, + "fieldname": "description", + "fieldtype": "Text", + "in_list_view": 1, + "label": "Description", + "width": "6" + }, + { + "fieldname": "column_break_cnwn", + "fieldtype": "Column Break" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2023-10-27 12:34:40.538519", + "modified_by": "Administrator", + "module": "Frappe Changemakers", + "name": "Care Centre Admission Detail", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/changemakers/frappe_changemakers/doctype/care_centre_admission_detail/care_centre_admission_detail.py b/changemakers/frappe_changemakers/doctype/care_centre_admission_detail/care_centre_admission_detail.py new file mode 100644 index 0000000..f09edb8 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/care_centre_admission_detail/care_centre_admission_detail.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, hussain@frappe.io and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class CareCentreAdmissionDetail(Document): + pass diff --git a/changemakers/frappe_changemakers/doctype/health_condition/__init__.py b/changemakers/frappe_changemakers/doctype/health_condition/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/changemakers/frappe_changemakers/doctype/health_condition/health_condition.js b/changemakers/frappe_changemakers/doctype/health_condition/health_condition.js new file mode 100644 index 0000000..b7f7983 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/health_condition/health_condition.js @@ -0,0 +1,8 @@ +// Copyright (c) 2023, hussain@frappe.io and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Health Condition", { +// refresh(frm) { + +// }, +// }); diff --git a/changemakers/frappe_changemakers/doctype/health_condition/health_condition.json b/changemakers/frappe_changemakers/doctype/health_condition/health_condition.json new file mode 100644 index 0000000..cbb8b87 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/health_condition/health_condition.json @@ -0,0 +1,98 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:health_condition", + "creation": "2023-10-25 11:29:17.715700", + "default_view": "List", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "health_condition" + ], + "fields": [ + { + "fieldname": "health_condition", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Health Condition", + "reqd": 1, + "unique": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2023-10-27 11:33:53.748804", + "modified_by": "Administrator", + "module": "Frappe Changemakers", + "name": "Health Condition", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Admin (Partner)", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Partner SMT", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Social Worker", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Program Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/changemakers/frappe_changemakers/doctype/health_condition/health_condition.py b/changemakers/frappe_changemakers/doctype/health_condition/health_condition.py new file mode 100644 index 0000000..5253b4b --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/health_condition/health_condition.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, hussain@frappe.io and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class HealthCondition(Document): + pass diff --git a/changemakers/frappe_changemakers/doctype/health_condition/test_health_condition.py b/changemakers/frappe_changemakers/doctype/health_condition/test_health_condition.py new file mode 100644 index 0000000..eb5d3e8 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/health_condition/test_health_condition.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, hussain@frappe.io and Contributors +# See license.txt + +# import frappe +from frappe.tests.utils import FrappeTestCase + + +class TestHealthCondition(FrappeTestCase): + pass diff --git a/changemakers/frappe_changemakers/doctype/medical_conditions_multiselect/__init__.py b/changemakers/frappe_changemakers/doctype/medical_conditions_multiselect/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/changemakers/frappe_changemakers/doctype/medical_conditions_multiselect/medical_conditions_multiselect.json b/changemakers/frappe_changemakers/doctype/medical_conditions_multiselect/medical_conditions_multiselect.json new file mode 100644 index 0000000..f141d09 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/medical_conditions_multiselect/medical_conditions_multiselect.json @@ -0,0 +1,33 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2023-10-25 11:26:26.480898", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "medical_condition" + ], + "fields": [ + { + "fieldname": "medical_condition", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Medical Condition", + "options": "Health Condition", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2023-10-25 11:33:31.206136", + "modified_by": "Administrator", + "module": "Frappe Changemakers", + "name": "Medical Conditions Multiselect", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/changemakers/frappe_changemakers/doctype/medical_conditions_multiselect/medical_conditions_multiselect.py b/changemakers/frappe_changemakers/doctype/medical_conditions_multiselect/medical_conditions_multiselect.py new file mode 100644 index 0000000..caca069 --- /dev/null +++ b/changemakers/frappe_changemakers/doctype/medical_conditions_multiselect/medical_conditions_multiselect.py @@ -0,0 +1,9 @@ +# Copyright (c) 2023, hussain@frappe.io and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class MedicalConditionsMultiselect(Document): + pass diff --git a/changemakers/frappe_changemakers/workspace/changemakers/changemakers.json b/changemakers/frappe_changemakers/workspace/changemakers/changemakers.json index 215e9ec..2be9c4c 100644 --- a/changemakers/frappe_changemakers/workspace/changemakers/changemakers.json +++ b/changemakers/frappe_changemakers/workspace/changemakers/changemakers.json @@ -1,6 +1,6 @@ { "charts": [], - "content": "[{\"id\":\"CecwNbV5Aq\",\"type\":\"header\",\"data\":{\"text\":\"Frappe Changemakers\",\"col\":12}},{\"id\":\"I9e4OurK7Y\",\"type\":\"paragraph\",\"data\":{\"text\":\" Manage Beneficiaries\",\"col\":12}},{\"id\":\"JhoJIvxYwo\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Beneficiary\",\"col\":3}},{\"id\":\"PMA7sL0zHl\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"All Beneficiaries\",\"col\":3}},{\"id\":\"j_2-NL3927\",\"type\":\"paragraph\",\"data\":{\"text\":\"Daily Visit Update\",\"col\":12}},{\"id\":\"arnB4anEZl\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Daily Visit Update\",\"col\":3}},{\"id\":\"lB7YAlkP4m\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"All Daily Visit Update List\",\"col\":3}},{\"id\":\"K20J6BDf9I\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Daily Visit Report View\",\"col\":3}},{\"id\":\"GlS-4ygjkT\",\"type\":\"paragraph\",\"data\":{\"text\":\"Rescues\",\"col\":12}},{\"id\":\"W7ZBgFg0CJ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Rescue\",\"col\":3}},{\"id\":\"TEcaVdnIhr\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"All Rescues\",\"col\":3}},{\"id\":\"g2frCR54Gw\",\"type\":\"paragraph\",\"data\":{\"text\":\"Cases\",\"col\":12}},{\"id\":\"YY4UpDO22w\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"My Cases\",\"col\":3}},{\"id\":\"o-NQxJOqB9\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Case\",\"col\":3}},{\"id\":\"1X_H_JUulh\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Open Cases\",\"col\":3}},{\"id\":\"2faOuV0vIj\",\"type\":\"paragraph\",\"data\":{\"text\":\"Entitlements\",\"col\":12}},{\"id\":\"xllISW0jRt\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Entitlements\",\"col\":3}},{\"id\":\"wjYeZ-C3Yj\",\"type\":\"paragraph\",\"data\":{\"text\":\"Food\",\"col\":12}},{\"id\":\"mB90BbrugG\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Distribution\",\"col\":3}},{\"id\":\"2Dxn3AA-OY\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"All Distributions\",\"col\":3}},{\"id\":\"2qZW9NgrCQ\",\"type\":\"paragraph\",\"data\":{\"text\":\"Healthcare\",\"col\":12}},{\"id\":\"JYx1hK5EYf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Hospitalisation Record\",\"col\":3}},{\"id\":\"aGZflLrU8F\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Healthcare Providers\",\"col\":3}},{\"id\":\"SMiDbH7oHO\",\"type\":\"paragraph\",\"data\":{\"text\":\"Shelter Services\",\"col\":12}},{\"id\":\"_zTFcA698A\",\"type\":\"quick_list\",\"data\":{\"quick_list_name\":\"Shelter Homes\",\"col\":4}},{\"id\":\"ZMLz_em53Q\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Create Entry Record\",\"col\":3}},{\"id\":\"j51o5hQMDV\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Create Exit Record\",\"col\":3}},{\"id\":\"hIEZu5hDaF\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"2QJ1oA29Tv\",\"type\":\"paragraph\",\"data\":{\"text\":\"Others\",\"col\":12}},{\"id\":\"a3oRewN8WJ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Family Reintegrations\",\"col\":3}},{\"id\":\"AtcrGpwYkn\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Awareness Camps\",\"col\":3}},{\"id\":\"vOv18I4R0A\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Health Camps\",\"col\":3}}]", + "content": "[{\"id\":\"CecwNbV5Aq\",\"type\":\"header\",\"data\":{\"text\":\"Frappe Changemakers\",\"col\":12}},{\"id\":\"I9e4OurK7Y\",\"type\":\"paragraph\",\"data\":{\"text\":\" Manage Beneficiaries\",\"col\":12}},{\"id\":\"JhoJIvxYwo\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Beneficiary\",\"col\":3}},{\"id\":\"PMA7sL0zHl\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"All Beneficiaries\",\"col\":3}},{\"id\":\"j_2-NL3927\",\"type\":\"paragraph\",\"data\":{\"text\":\"Daily Visit Update\",\"col\":12}},{\"id\":\"arnB4anEZl\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Daily Visit Update\",\"col\":3}},{\"id\":\"lB7YAlkP4m\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"All Daily Visit Update List\",\"col\":3}},{\"id\":\"K20J6BDf9I\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Daily Visit Report View\",\"col\":3}},{\"id\":\"GlS-4ygjkT\",\"type\":\"paragraph\",\"data\":{\"text\":\"Rescues\",\"col\":12}},{\"id\":\"W7ZBgFg0CJ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Rescue\",\"col\":3}},{\"id\":\"TEcaVdnIhr\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"All Rescues\",\"col\":3}},{\"id\":\"g2frCR54Gw\",\"type\":\"paragraph\",\"data\":{\"text\":\"Cases\",\"col\":12}},{\"id\":\"YY4UpDO22w\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"My Cases\",\"col\":3}},{\"id\":\"o-NQxJOqB9\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Case\",\"col\":3}},{\"id\":\"1X_H_JUulh\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Open Cases\",\"col\":3}},{\"id\":\"2faOuV0vIj\",\"type\":\"paragraph\",\"data\":{\"text\":\"Entitlements\",\"col\":12}},{\"id\":\"xllISW0jRt\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Entitlements\",\"col\":3}},{\"id\":\"wjYeZ-C3Yj\",\"type\":\"paragraph\",\"data\":{\"text\":\"Food\",\"col\":12}},{\"id\":\"mB90BbrugG\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"New Distribution\",\"col\":3}},{\"id\":\"2Dxn3AA-OY\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"All Distributions\",\"col\":3}},{\"id\":\"2qZW9NgrCQ\",\"type\":\"paragraph\",\"data\":{\"text\":\"Healthcare\",\"col\":12}},{\"id\":\"JYx1hK5EYf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Hospitalisation Record\",\"col\":3}},{\"id\":\"aGZflLrU8F\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Healthcare Providers\",\"col\":3}},{\"id\":\"cAplmOLdjf\",\"type\":\"paragraph\",\"data\":{\"text\":\"Care Centre\",\"col\":12}},{\"id\":\"ObebyzwyH1\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Care Centre\",\"col\":3}},{\"id\":\"scHLTq6_3v\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Care Centre Admission\",\"col\":3}},{\"id\":\"SMiDbH7oHO\",\"type\":\"paragraph\",\"data\":{\"text\":\"Shelter Services\",\"col\":12}},{\"id\":\"_zTFcA698A\",\"type\":\"quick_list\",\"data\":{\"quick_list_name\":\"Shelter Homes\",\"col\":4}},{\"id\":\"ZMLz_em53Q\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Create Entry Record\",\"col\":3}},{\"id\":\"j51o5hQMDV\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Create Exit Record\",\"col\":3}},{\"id\":\"hIEZu5hDaF\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"2QJ1oA29Tv\",\"type\":\"paragraph\",\"data\":{\"text\":\"Others\",\"col\":12}},{\"id\":\"a3oRewN8WJ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Family Reintegrations\",\"col\":3}},{\"id\":\"AtcrGpwYkn\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Awareness Camps\",\"col\":3}},{\"id\":\"vOv18I4R0A\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Health Camps\",\"col\":3}}]", "creation": "2022-10-13 13:51:43.725589", "custom_blocks": [], "docstatus": 0, @@ -12,7 +12,7 @@ "is_hidden": 0, "label": "Changemakers", "links": [], - "modified": "2023-07-16 16:18:10.088671", + "modified": "2023-10-27 19:23:52.631875", "modified_by": "Administrator", "module": "Frappe Changemakers", "name": "Changemakers", @@ -36,6 +36,22 @@ "link_to": "Daily Visit Update", "type": "DocType" }, + { + "color": "Grey", + "doc_view": "List", + "label": "Care Centre", + "link_to": "Care Centre", + "stats_filter": "[]", + "type": "DocType" + }, + { + "color": "Grey", + "doc_view": "List", + "label": "Care Centre Admission", + "link_to": "Care Centre Admission", + "stats_filter": "[]", + "type": "DocType" + }, { "color": "Grey", "doc_view": "New",