- discharge_create.php (JS): Fixed AJAX done handler to JSON.parse the
raw string response (jQuery with dataType:'html' does not auto-parse
JSON), then re-render #discharge_medicine_tbody from result.drugRows.
Also fixed Remove All (#btn_discharge_med_reset) to send AJAX POST
with action=remove_all_drugs so records are deleted from DB, not just
cleared from the DOM.
- Ipd_discharge.php (Controller): In the AJAX JSON response block,
resolve dosage/dosage_when/dosage_freq IDs to human-readable labels
using getDoseMasterRows() before returning drugRows, so the table
displays 'BD / After Food' instead of raw numeric IDs. Added new
remove_all_drugs action that deletes all medicine rows for the IPD
from both legacy (ipd_discharge_prescrption_prescribed) and classic
(ipd_discharge_drug) tables. Added remove_all_drugs to both
lightweight-action whitelists to skip the expensive getIpdPanelInfo()
join.
Split official and hospital ABHA cards, preserve profile/photo updates, improve existing-patient matching, require and forward communication mobile data, and show accurate Bridge OTP status and errors.
Integrate Final Diagnosis with canonical disease master data and add reusable My/Master template CRUD for discharge narrative sections, including summary investigations, course, other advice, and discharge summary.
Restore surgery and procedure bindings after SPA updates, validate procedure dates without SQL errors, and prevent medicine autocomplete Enter from submitting while preserving layout and autofill.
Load referral master data into patient registration/edit screens, persist patient referby, expose searchable referral inputs in patient and IPD forms, and make referral title editable as free text in referral master CRUD.
- Fix groupWorkflowRowsIntoSessions() to correlate workflow rows by stable
request_id/abdm_consent_request_id instead of chronological proximity to
the newest CONSENT_REQUEST row. Background polling reconciles all
historical sessions in one batch, so older sessions' rows previously got
silently merged into the newest session, causing 'Show Data' to display
an unrelated older session's single facility instead of all consented
facilities.
- Skip synthetic orphan sessions (stray rows with no owning CONSENT_REQUEST)
in getAbdmConsentRequestsList()/getAbdmConsentArtifactDetail() so they
don't show as phantom history rows or get picked as 'most recent'.
- Fix abdm_documents() consent_request_id filter to match all known sibling
artifact IDs for a session (via abdm_hiu_consent_artifacts), not just an
exact single artifact id, so all facilities under one consent request
appear together.
- Fix CreateAbdmHiuConsentArtifacts migration: reduce VARCHAR(180) to
VARCHAR(100) on consent_request_id/artifact_id to satisfy MySQL's
1000-byte composite key length limit (was silently failing to migrate).
- Add fetchAllArtifactsAfterGrant() cascade in M3HiuWorkflowService to fetch
every known artifact under a granted consent, used by both the cron poll
and a new abdm_check_live_status() endpoint/button.
- getLatestAbdmSyncSnapshot() session-scoping fix to avoid an older granted
session masking a newer in-progress one.
- Relabel Dr. Joshi Clinic documents (previously mislabeled 'Test Hospital'
from the HIP's own FHIR bundle Organization name).