- Add login wallpaper upload, preview, and deletion in Hospital Profile settings
- Redesign login page with right-docked form and left hospital branding hero
- Implement clean blank neutral fallback when no wallpaper is configured
- Add automated unit tests for wallpaper rendering and fallback behavior
- Populate generic salt name in MedicationRequest medicationCodeableConcept.coding[0] to prevent PHR apps displaying 'NA' subtitle
- Retain brand name in medicationCodeableConcept.text and secondary coding
- Extract med_salt from prescription records with automatic resolution from medicine masters and formulation heuristics
- Update discharge PDF and narrative to render generic salt names
- Add unit tests verifying generic salt mapping and dual coding in FHIR bundle
- Auto-resolve missing name, gender, year_of_birth, abha_address, and abha_number in hipLinkToken and hipLinkCareContext endpoints using patient_master lookup
- Calculate birth year with fallback to age (current_year - age) when DOB is 0000-00-00, empty, or invalid
- Support resolving ABHA identifier whether saved in abha_address or legacy abha_id column
- Pass patient_id from client link modal and views (opd_prescription_basic, Patient_Profile_Opd_V, Person_profile_V)
- Fix demographic resolution in AbdmTaskBoardSyncService for background OPD and work task publishing
- Add comprehensive PHPUnit test suite in tests/unit/Abdm/TestHipDemographicsCareContext.php
- Fix Undefined variable \ 500 error in Person_Edit_V.php
- Safeguard auth()->user() and variable access in Person_Edit_V.php and Person_profile_V.php
- Enhance getPrescriptionMedicines with fallback dosing, remarks, and SNOMED lookup for OP Consultation FHIR
- Add deep-link SMS notify and link verification in ABDM gateway and task board
- Add PatientEditViewTest covering profile and edit view rendering
- Support hospital, patient, doctor, and date placeholders matching template variables
- Convert local logo and signature paths to base64 Data URIs for mPDF
- Apply token replacement to report body in single and compiled prints
- Add interactive placeholder toolbar in diagnosis template settings view
- Add unit tests in tests/unit/DiagnosisTemplateTokenTest.php
- Add getTasks() method with status filtering (all, open, completed, failed) to AbdmWorkTaskService
- Enhance AbdmTaskBoard to enrich all task types with health_records, invoice_code, and care contexts
- Add status toggle filter buttons (All, Open, Completed) with dynamic count badges to Task Board UI
- Add real-time fuzzy/keyword search input for instant filtering by invoice ID, patient name, ABHA, or task code
- Render completed/linked tasks with green LINKED badge, gateway reference, and FHIR Preview button
- Add unit tests in AbdmTaskBoardBackfillTest
- Fix empty string fallback in validateAbha and EAtriaBridgeConnector to properly extract healthIdNumber and real fullName from data payload
- Skip generic bridge envelope messages in extractBridgeErrorText to surface specific field rejections like loginHint
- Translate non-existent ABHA address errors to 'ABHA Address does not exist or was not found in the ABDM registry'
- Support both 14-digit ABHA numbers and ABHA addresses in Diagnosis publish and ABDM Task Board
- Prevent completed task duplication in lab/radiology backfill
- Add unit tests in AbhaOtpErrorHandlingTest and AbdmTaskBoardBackfillTest
- Align care context reference format (RAD- prefix for radiology, clean Ymd date) between discovery, shareDiagnosisReportBundle, and AbdmTaskBoardSyncService
- Automatically push FHIR document bundle to Bridge (POST /api/v3/records/push) on care context linking or already-linked confirmation in abdm_hip_link_modal
- Provide clear instructions to user regarding PHR app 'Fetch Records' pull flow
- Add unit test testShareDiagnosisReportBundleFormatsRadiologyCareContext
- Add multi-type care context discovery in AbdmGateway (DiagnosticReport, DischargeSummary, Immunization, OPConsult) with target task prioritization
- Implement automated retry backoff in EAtriaBridgeConnector for asynchronous ABDM link token callback delivery
- Handle already-linked contexts gracefully and synchronize Task Board row status on link completion
- Resolve modal backdrop freeze and inactive main screen on radiology report template update in PathLab_Report and welcome_message
- Add unit tests CareContextDiscoveryTest and EAtriaBridgeConnectorLinkTest
- Fix mPDF single-threaded server deadlock by replacing HTTP logo URL fallbacks with inline base64 data URIs
- Add fast path in DoctorDocument to read scanned NABH PDFs directly from disk without mPDF re-rendering
- Support doctor_document and patient_document entity types in task board health document preview
- Enhance task board preview form with in-modal PDF preview, image thumbnail, and download actions
- Populate Composition.encounter with AMB encounter and set Wellness Record display code
- Dynamically resolve and generate PDF using designated Online/ABDM template (is_abdm=1) from ipd_discharge_templates
- Unify mPDF rendering logic between show_discharge and generateDischargeSummaryPdfBinary for exact byte-for-byte consistency
- Attach generated PDF as DocumentReference under SNOMED 373942005 (Discharge summary) in NRCES FHIR DocumentBundle
- Add quick-set actions and AJAX endpoints for Default and ABDM template selection in discharge template list UI
- Update unit tests covering DocumentReference generation and template resolution
Use mandatory SNOMED discharge composition and section codings, model completed investigations as DiagnosticReportLab resources, and restore local M3 attachment/value-string rendering.
Generate standardized Digital Share PDFs for invoice and diagnostic records, strengthen FHIR document validation and sync handling, and keep task-board submissions AJAX-only.