🚀 Marley Healthcare Version 16
🚀 Features
- feat: Healthcare Insurance by @Sajinsr in #672
- feat: Patient Portal by @Sajinsr in #756
- feat: practitioner availability to block appointments by @akurungadam in #750
- feat: Patient Referral Management by @Sajinsr in #630
- feat: Make user-prompt for services and prescriptions wider. Closes #645 by @johnwslongland in #646
- feat: get orders in Patient Appointment to replace get prescriptions by @Sajinsr in #711
- feat(Practitioner Availability): enable availability for practitioners by @Sajinsr in #784
- feat: allow autoname for Patient by @akurungadam in #627
- feat: new workspaces, number cards and charts by @Sajinsr in #763
🐛 Fixes
- fix(Sample Collection): hide/show sample details section based on child table length by @aibelshajan in #417
- fix(patient): translation of field age by @riandrys in #418
- fix: patient null error in Sales Invoice by @akashkrishna619 in #430
- fix(Diagnostic Report): default print format - get labels from Diagnostic Report Doc by @akashkrishna619 in #434
- fix(Observation Template): rename field label for observation_reference_range by @Rijisharijisha in #485
- fix: Inpatient Record Changes with Treatment Counseling by @Sajinsr in #461
- fix(Payment Entry): patch to add missing custom field by @Sajinsr in #492
- fix(Sales Invoice): fetch billable items from inpatient occupancy by @Gokul1407 in #498
- fix(minor): add app hooks by @kalungia in #504
- fix(test): apply refactored test utils in frappe by @akurungadam in #508
- fix: ci fixes by @akurungadam in #510
- fix(Treatment Counselling): Add payment entry on_cancel and paid amount calculation by @Sajinsr in #514
- fix(ci): add missing codecov config by @akurungadam in #516
- fix(Sample Collection): set sales invoice reference conditionally by @Sajinsr in #555
- fix(Service Request): fetch therapy type no of sessions and status updation by @Sajinsr in #564
- fix(minor): update links in readme by @akurungadam in #596
- fix: fix incorrect split char in docs checker by @akurungadam in #634
- fix: status display in Service / Medication Request list as well as form by @akurungadam in #636
- fix: Therapy Session naming by @johnwslongland in #640
- fix: quick entry not loading by @akurungadam in #654
- fix(Patient History Settings): include Discharge Summary to Patient History Settings by @Sajinsr in #656
- fix: cannot cancel appointment if booked for department with fee validity on by @akurungadam in #659
- fix: interval field in Therapy Plan, appointment dialog style by @akurungadam in #660
- fix(Inpatient Record): validate selection of vacant service unit by @Sajinsr in #653
- fix(Fee Validity): enable practitioner level fee validity by @Sajinsr in #661
- fix: make payment button not shown if fee validity disabled by @akurungadam in #670
- fix(Discharge Summary): check existence of Patient Encounter before fetching last doc by @Sajinsr in #673
- fix(Patient Encounter): include missing LOC for Google Meet link display on dashboard by @Sajinsr in #675
- fix: Add source reference to Therapy Plan and populate missing session & proceedure data by @Sajinsr in #676
- fix: check develop branch compatibility with frappe branch by @Sajinsr in #679
- fix(Diagnostic Report): Enable bulk approve/reject for parent observation by @Sajinsr in #686
- fix(Patient): Handle None mobile number in duplicate user check by @Sajinsr in #688
- fix(test): failing tests because incorrect link values and filters by @Sajinsr in #695
- fix: encounter doesn't update medical codes on diagnosis change by @akurungadam in #697
- fix(Inpatient Record): fix billing calculation for inpatient occupancy by @Sajinsr in #698
- fix: pass get_doc result to get_appointment_billing_item_and_rate for doctype check by @Sajinsr in #722
- fix: exclude Appointment Type from billable service request appointments check by @Sajinsr in #723
- fix(patient): move links in dashboard.py to doctype 'document links' by @akurungadam in #747
- fix: set fields in appointment type listview, reorder fields by @akurungadam in #751
- fix: Update README.md by @akurungadam in #752
- fix: patient history vitals charts by @akurungadam in #753
- fix: date format from system defaults, separate checks for pulse and respiratory rate by @akurungadam in #754
- fix(insurance): active contract validation, listview and list filter fields by @akurungadam in #762
- fix: orders html and status buttons in patient encounter by @akurungadam in #764
- fix(Patient Portal): prevent users without a linked patient from logging into the Patient Portal by @Sajinsr in #772
- fix(Sales Invoice): fetch item rate using invoice selling_price_list and currency by @Sajinsr in #777
- fix: add missing field comment in Service Request and Medication Request by @Sajinsr in #779
- fix(Clinical Procedure): allow creation of recurring clinical procedures from Service Request by @Sajinsr in #780
- fix(Clinical Procedure): apply filter to field warehouse by @Sajinsr in #781
- fix(Patient Appointment): prevent flickering while fetching slots by @Sajinsr in #782
- fix: doctype links moved to frontend for customisability by @akurungadam in #785
- fix(Inpatient Record): prevent adding billables without a valid pricelist or item price by @Sajinsr in #825
- fix: frappe-ui imports by @ssuda in #837
- fix: adjust list view fields and set default session count by @Sajinsr in #841
- fix: workspace shortcut filters by @akurungadam in #849
- fix: update get_children() query handling by @Sajinsr in #850
- fix: set default sort field to 'creation' by @akurungadam in #852
- fix(Medication Request): ensure medication quantities are calculated during validation by @Sajinsr in #853
- fix: add custom fields creation in setup by @Sajinsr in #861
- fix: align schedule_discharge payload with discharge_order by @Sajinsr in #867
- fix: use query builder consistently in get_healthcare_service_units by @Sajinsr in #876
- fix: handle None sample_details in get_child_observations by @Sajinsr in #878
🔧 Other Changes
- chore: fix weekly release workflow config by @akurungadam in #533
- chore: fix documentation check url by @akurungadam in #633
- chore: remove mandatory for source field by @Sajinsr in #702
- chore: fix failing setup by adding missing create_customer_groups by @Sajinsr in #806
- chore(patches): move add_discharge_summary_to_patient_history patch to post_model_sync by @Sajinsr in #822
- refactor: correct filters_json formatting in Dashboard Chart and Number Card by @Sajinsr in #829
- refactor: correct filters_json formatting in Dashboard Chart by @Sajinsr in #830
- refactor: workspace sidebars and desktop icons for Healthcare modules by @Sajinsr in #831
- build(ci): use mariadb 11.8, python 3.14 and node 24 by @Sajinsr in #848
- chore: add crowdin config by @akurungadam in #847
- chore: replace black and isort with ruff, add prettier by @Sajinsr in #854
- refactor(Inpatient Record): Move Discharge Summary check to server side by @Sajinsr in #690
- refactor(Patient Encounter): remove unused fields and section breaks by @Sajinsr in #788
- Updating medication naming by @ssuda in #860
- refactor: centralize js include and fix patient age calculation by @Sajinsr in #865
- chore: bump dev version by @Sajinsr in #873
- chore: update hooks by @Sajinsr in #872
- chore: update link_type for desktop icon by @Sajinsr in #875
✅ Already Backported
- fix(Diagnostic Report): update sales_invoice_status on Sales Invoice Payment by @akashkrishna619 in #399
- fix: Healthcare Dashboard loading issue by @akashkrishna619 in #401
- fix: change 'invoiced' flag to 'billing_status' from get_prescribed query of Lab Test and Clinical Procedure by @aibelshajan in #403
- fix(Clinical Procedure): consumables table not loading on template change by @akashkrishna619 in #405
- fix(Vital Signs): remove no_copy from appointment field by @Sajinsr in #407
- fix(Diagnostic Report): remove doc from is_new() by @aibelshajan in #419
- fix(patient): error in age calculation by @YamirHaidar in #421
- fix: observation result calculation based on formula and condition by @akashkrishna619 in #428
- fix(Healthcare Service Unit Type): move item creation from after_insert to validate by @Sajinsr in #435
- fix(Nursing Task): unknown column duration error in Healthcare Activity by @Sajinsr in #440
- fix(Patient History Settings): retrieve right medical_record_id in up… by @tamburro92 in #455
- fix: remove unused call to get_timeline_data by @akurungadam in #456
- fix(Sales Invoice): get user confirmation to link customer with patient by @Sajinsr in #462
- fix(Observation): local variable reference error in Diagnostic Report by @Sajinsr in #465
- fix(Medication): remove unnecessary mandatory option for docfields by @Sajinsr in #466
- fix(Patient Appointment): remove redundant save command by @Gokul1407 in #479
- fix(healthcare service unit): Tree view add_node and related fixes by @Gokul1407 in #495
- fix(Medication Request): Update default value for status field by @abel911gb in #442
- fix(Patient Encounter): show items actual qty in drug prescription by @Sajinsr in #499
- fix(Medication): enable tree view by @Sajinsr in #505
- fix: create_patient_medical_records_for_observations patch failing by @Sajinsr in #560
- fix: Property changes of the fields by @viralkansodiya in #566
- fix(ci): use the latest mariadb-client version by @Sajinsr in #570
- fix: Remove invalid license key from pyproject.toml by @balamurali27 in #590
- fix(Therapy Session): add missing function calculate_age by @Sajinsr in #592
- fix: removed extra space in service units name and label by @kalungia in #602
- fix(Medication Linked Item): Update properties of the is_billable field by @Sajinsr in #608
- fix: Add missing Description field to Patient Care Type by @Sajinsr in #610
- fix(Patient Encounter): prevent empty therapy sessions count by @Sajinsr in #617
- fix: include Healthcare Service Unit in doctypes_to_be_ignored by @Sajinsr in #621
- fix(Medication): add price_list field in Medication by @Sajinsr in #625
- fix: html status codes to use code value display by @akurungadam in #637
- fix: services and medications cannot be on one invoice by @johnwslongland in #642
- fix: required positional argument, closes #647 by @johnwslongland in #667
- fix(Code Value Set): use value_set instead of code_value in autoname by @Sajinsr in #680
- fix(Patient Appointment): allow check-in and rescheduling for Department and Service Unit appointments by @Sajinsr in #684
- fix: exclude observations linked to sales invoice and child observations in Sales Invoice by @Sajinsr in #691
- fix(Diagnostic Report): handle status update properly by @Sajinsr in #694
- fix(Patient Appointment): allow event cancellation with ignore_permissions by @Sajinsr in #703
- fix: handle HSN/SAC update in healthcare templates that are linked to item by @Sajinsr in #713
- fix(Healthcare Service Unit Type): update linked item update logic on field changes by @Sajinsr in #717
- fix(Diagnostic Report): correct unexpected behavior in Diagnostic Report by @Sajinsr in #748
- fix(Observation): render result and interpretation from templates by @Sajinsr in #767
- fix(Patient Appointment): apply user permission checks in get_events query by @Sajinsr in #775
- fix(Diagnostic Report): replace jinja placeholders for observation and specimen links by @Sajinsr in #799
- fix: Remove unique property from system_uri field by @johnwslongland in #815
- fix(Patient): add configurable registration item and improve patient registration invoicing by @Sajinsr in #821
- fix(Sample Collection): set invoice only for sales invoice reference by @Sajinsr in #827
- fix(Healthcare Practitioner): remove invalid space character in Patient Encounter link_fieldname by @Sajinsr in #834
- fix: prevent selecting past dates in service request dialog by @Sajinsr in #839
- Add: Middle Name in Full Name by @kalungia in #391
- fix(ci): update node version by @akurungadam in #443
- chore: update code owners by @akurungadam in #444
- fix: typo in workspace by @akurungadam in #451
- fix(ci): update auto release config for v15 by @Sajinsr in #472
- refactor: update readme.md by @Sajinsr in #480
- refactor: replace Frappe Health references with Marley Health by @Sajinsr in #486
- test: fix failing sales invoice override test by @akurungadam in #511
- fix(Patient Appointment): add Confirmed status to Patient Appointment by @Sajinsr in #523
- fix(sales invoice): add patient to registration fee sales invoice by @aynugek in #524
- fix: docs check url by @akurungadam in #527
- fix(minor): consider stock qty 0 if get_latest_stock_qty returns None by @akurungadam in #528
- fix(minor): use db.set_single_value on single doctype by @akurungadam in #529
- fix: nursing tasks and related tests by @akurungadam in #530
- chore: update code owners by @akurungadam in #531
- chore: update issue templates and code of conduct by @akurungadam in #532
- chore: fix Auto Release and mergify config by @akurungadam in #534
- chore: fix typo in bug_report.yaml by @akurungadam in #535
- fix(Patient History): include observation details to Patient History by @Sajinsr in #525
- chore(setup): remove nested duplicate setup.py by @akurungadam in #730
- fix: doctype links moved to frontend by @akurungadam in #786
Full Changelog: v15.1.15...v16.0.0