@ampath/esm-dha-workflow-app 4.0.0-next.34 → 4.0.0-next.340
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/1149.js +1 -0
- package/dist/1149.js.map +1 -0
- package/dist/1197.js +1 -0
- package/dist/1277.js +1 -0
- package/dist/1277.js.map +1 -0
- package/dist/1362.js +1 -0
- package/dist/1362.js.map +1 -0
- package/dist/1551.js +1 -0
- package/dist/1551.js.map +1 -0
- package/dist/1556.js +1 -0
- package/dist/1556.js.map +1 -0
- package/dist/1925.js +1 -0
- package/dist/1925.js.map +1 -0
- package/dist/1927.js +1 -0
- package/dist/1927.js.map +1 -0
- package/dist/203.js +1 -0
- package/dist/203.js.map +1 -0
- package/dist/2054.js +1 -0
- package/dist/2054.js.map +1 -0
- package/dist/2093.js +1 -0
- package/dist/2093.js.map +1 -0
- package/dist/2177.js +2 -0
- package/dist/2177.js.map +1 -0
- package/dist/2200.js +1 -0
- package/dist/2200.js.map +1 -0
- package/dist/2230.js +1 -0
- package/dist/2230.js.map +1 -0
- package/dist/2493.js +1 -0
- package/dist/2493.js.map +1 -0
- package/dist/2914.js +1 -0
- package/dist/2914.js.map +1 -0
- package/dist/2936.js +1 -0
- package/dist/2936.js.map +1 -0
- package/dist/2988.js +1 -0
- package/dist/2988.js.map +1 -0
- package/dist/3041.js +1 -0
- package/dist/3041.js.map +1 -0
- package/dist/307.js +1 -0
- package/dist/307.js.map +1 -0
- package/dist/3099.js +1 -0
- package/dist/3184.js +2 -0
- package/dist/3184.js.map +1 -0
- package/dist/3202.js +1 -0
- package/dist/3202.js.map +1 -0
- package/dist/3222.js +1 -0
- package/dist/3222.js.map +1 -0
- package/dist/347.js +1 -0
- package/dist/347.js.map +1 -0
- package/dist/4003.js +1 -0
- package/dist/4003.js.map +1 -0
- package/dist/4008.js +1 -0
- package/dist/4008.js.map +1 -0
- package/dist/4055.js +1 -0
- package/dist/4205.js +1 -0
- package/dist/4205.js.map +1 -0
- package/dist/4225.js +1 -0
- package/dist/4225.js.map +1 -0
- package/dist/4231.js +1 -0
- package/dist/4231.js.map +1 -0
- package/dist/4300.js +1 -0
- package/dist/4335.js +1 -0
- package/dist/4353.js +1 -0
- package/dist/4353.js.map +1 -0
- package/dist/4431.js +1 -0
- package/dist/4431.js.map +1 -0
- package/dist/4454.js +1 -0
- package/dist/4454.js.map +1 -0
- package/dist/4457.js +2 -0
- package/dist/4457.js.LICENSE.txt +282 -0
- package/dist/4457.js.map +1 -0
- package/dist/446.js +1 -0
- package/dist/446.js.map +1 -0
- package/dist/4605.js +1 -0
- package/dist/4605.js.map +1 -0
- package/dist/4611.js +1 -0
- package/dist/4611.js.map +1 -0
- package/dist/4652.js +1 -0
- package/dist/4674.js +1 -0
- package/dist/4674.js.map +1 -0
- package/dist/4755.js +1 -0
- package/dist/4755.js.map +1 -0
- package/dist/4986.js +1 -0
- package/dist/4986.js.map +1 -0
- package/dist/5097.js +1 -0
- package/dist/5097.js.map +1 -0
- package/dist/5119.js +1 -0
- package/dist/5119.js.map +1 -0
- package/dist/5167.js +1 -0
- package/dist/5167.js.map +1 -0
- package/dist/5380.js +1 -0
- package/dist/5380.js.map +1 -0
- package/dist/5422.js +1 -0
- package/dist/5422.js.map +1 -0
- package/dist/5576.js +1 -0
- package/dist/5576.js.map +1 -0
- package/dist/5851.js +1 -0
- package/dist/5851.js.map +1 -0
- package/dist/5961.js +1 -0
- package/dist/5961.js.map +1 -0
- package/dist/6177.js +1 -0
- package/dist/6177.js.map +1 -0
- package/dist/6264.js +1 -0
- package/dist/6264.js.map +1 -0
- package/dist/6540.js +2 -0
- package/dist/6540.js.map +1 -0
- package/dist/6606.js +1 -0
- package/dist/6606.js.map +1 -0
- package/dist/6720.js +1 -0
- package/dist/6720.js.map +1 -0
- package/dist/6824.js +1 -0
- package/dist/6824.js.map +1 -0
- package/dist/6942.js +1 -0
- package/dist/6942.js.map +1 -0
- package/dist/71.js +1 -0
- package/dist/71.js.map +1 -0
- package/dist/7207.js +1 -0
- package/dist/7207.js.map +1 -0
- package/dist/7240.js +1 -0
- package/dist/7240.js.map +1 -0
- package/dist/7255.js +1 -0
- package/dist/7255.js.map +1 -0
- package/dist/7420.js +1 -0
- package/dist/7420.js.map +1 -0
- package/dist/7521.js +1 -0
- package/dist/7521.js.map +1 -0
- package/dist/7557.js +1 -0
- package/dist/7557.js.map +1 -0
- package/dist/7717.js +1 -0
- package/dist/7717.js.map +1 -0
- package/dist/7830.js +2 -0
- package/dist/7830.js.map +1 -0
- package/dist/7941.js +1 -0
- package/dist/7941.js.map +1 -0
- package/dist/8091.js +1 -0
- package/dist/8091.js.map +1 -0
- package/dist/810.js +1 -2
- package/dist/810.js.map +1 -1
- package/dist/8558.js +1 -0
- package/dist/8558.js.map +1 -0
- package/dist/8733.js +1 -0
- package/dist/8733.js.map +1 -0
- package/dist/874.js +1 -0
- package/dist/874.js.map +1 -0
- package/dist/8895.js +1 -0
- package/dist/8895.js.map +1 -0
- package/dist/9070.js +1 -0
- package/dist/9070.js.map +1 -0
- package/dist/9091.js +1 -0
- package/dist/9091.js.map +1 -0
- package/dist/9093.js +1 -0
- package/dist/9093.js.map +1 -0
- package/dist/9338.js +1 -0
- package/dist/9338.js.map +1 -0
- package/dist/9418.js +2 -0
- package/dist/9418.js.LICENSE.txt +1 -0
- package/dist/9418.js.map +1 -0
- package/dist/9428.js +1 -0
- package/dist/9428.js.map +1 -0
- package/dist/9583.js +2 -0
- package/dist/9583.js.map +1 -0
- package/dist/esm-dha-workflow-app.js +1 -1
- package/dist/esm-dha-workflow-app.js.buildmanifest.json +1627 -214
- package/dist/esm-dha-workflow-app.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/local-config.json +5 -0
- package/package.json +16 -6
- package/src/admissions/admission-request-list/admission-request-list.scss +0 -0
- package/src/admissions/admission-request-list/admission-request-list.tsx +263 -0
- package/src/admissions/admissions-dashboard.component.scss +15 -0
- package/src/admissions/admissions-dashboard.component.tsx +277 -0
- package/src/admissions/admissions.resource.ts +233 -0
- package/src/admissions/admitted-list/admitted-patients-list.tsx +206 -0
- package/src/admissions/awaiting-discharge-list/awaiting-discharge-list.tsx +197 -0
- package/src/admissions/bed-assigment-request/bed-assignment-request-list.tsx +134 -0
- package/src/admissions/constants/index.ts +33 -0
- package/src/admissions/discharged-list/discharged-list.scss +0 -0
- package/src/admissions/discharged-list/discharged-list.tsx +67 -0
- package/src/admissions/form-entry-workspace/form-entry-workspace.tsx +62 -0
- package/src/admissions/inpatient/admission-history/patient-admission-history.tsx +76 -0
- package/src/admissions/inpatient/admission-requests/patient-admission-requests.scss +19 -0
- package/src/admissions/inpatient/admission-requests/patient-admission-requests.tsx +72 -0
- package/src/admissions/inpatient/inpatient-admissions.component.scss +7 -0
- package/src/admissions/inpatient/inpatient-admissions.component.tsx +46 -0
- package/src/admissions/modal/add-bill-items/add-bill-items.modal.scss +17 -0
- package/src/admissions/modal/add-bill-items/add-bill-items.modal.tsx +233 -0
- package/src/admissions/modal/admit-elsewhere/admit-elsewhere.modal.scss +23 -0
- package/src/admissions/modal/admit-elsewhere/admit-elsewhere.modal.tsx +156 -0
- package/src/admissions/modal/admit-patient/admit-patient.modal.scss +0 -0
- package/src/admissions/modal/admit-patient/admit-patient.modal.tsx +111 -0
- package/src/admissions/modal/bed-swap/bed-swap.modal.scss +0 -0
- package/src/admissions/modal/bed-swap/bed-swap.modal.tsx +102 -0
- package/src/admissions/modal/cancel-admission-request/cancel-admission-request.scss +11 -0
- package/src/admissions/modal/cancel-admission-request/cancel-admission-request.tsx +105 -0
- package/src/admissions/modal/discharge/discharge-patient.modal.scss +13 -0
- package/src/admissions/modal/discharge/discharge-patient.modal.tsx +86 -0
- package/src/admissions/types/index.ts +263 -0
- package/src/appointments/appointments.component.scss +6 -0
- package/src/appointments/appointments.component.tsx +8 -1
- package/src/billing/api/billing.api.ts +139 -0
- package/src/billing/billing-claims.resource.ts +900 -0
- package/src/billing/billing-dashboard-link.component.tsx +31 -0
- package/src/billing/billing-dashboard-reset.ts +27 -0
- package/src/billing/billing-root.tsx +42 -0
- package/src/billing/dashboard/billingDashboard.component.scss +0 -0
- package/src/billing/dashboard/billingDashboard.component.tsx +25 -0
- package/src/billing/dashboard/v2/active-visits/active-visits.component.tsx +257 -0
- package/src/billing/dashboard/v2/active-visits/active-visits.resource.ts +85 -0
- package/src/billing/dashboard/v2/active-visits/active-visits.scss +15 -0
- package/src/billing/dashboard/v2/active-visits.component.tsx +102 -0
- package/src/billing/dashboard/v2/admissions/admission-requests-tab.component.tsx +79 -0
- package/src/billing/dashboard/v2/billing-claims-dashboard.component.scss +209 -0
- package/src/billing/dashboard/v2/billing-claims-dashboard.component.tsx +347 -0
- package/src/billing/dashboard/v2/cash-checklist/bill-document.component.scss +90 -0
- package/src/billing/dashboard/v2/cash-checklist/bill-document.component.tsx +101 -0
- package/src/billing/dashboard/v2/cash-checklist/cash-checklist.component.scss +199 -0
- package/src/billing/dashboard/v2/cash-checklist/cash-checklist.component.tsx +361 -0
- package/src/billing/dashboard/v2/cash-checklist/cash-checklist.resource.ts +239 -0
- package/src/billing/dashboard/v2/cash-checklist/payment-drawer.component.scss +246 -0
- package/src/billing/dashboard/v2/cash-checklist/payment-drawer.component.tsx +182 -0
- package/src/billing/dashboard/v2/claim-statuses.ts +143 -0
- package/src/billing/dashboard/v2/claim-visits/claim-diagnosis-details/claim-diagnosis-details.component.scss +0 -0
- package/src/billing/dashboard/v2/claim-visits/claim-diagnosis-details/claim-diagnosis-details.component.tsx +35 -0
- package/src/billing/dashboard/v2/claim-visits/claim-diagnosis-details/claim-diagnosis-panel.component.scss +67 -0
- package/src/billing/dashboard/v2/claim-visits/claim-diagnosis-details/claim-diagnosis-panel.component.tsx +90 -0
- package/src/billing/dashboard/v2/claim-visits/claim-doctors/claim-doctors.scss +28 -0
- package/src/billing/dashboard/v2/claim-visits/claim-doctors/claim-doctors.tsx +36 -0
- package/src/billing/dashboard/v2/claim-visits/claim-history/claim-history.component.scss +119 -0
- package/src/billing/dashboard/v2/claim-visits/claim-history/claim-history.component.tsx +198 -0
- package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/claim-intervention-details.component.scss +5 -0
- package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/claim-intervention-details.component.tsx +160 -0
- package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/claim-intervention-panel.component.scss +105 -0
- package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/claim-intervention-panel.component.tsx +184 -0
- package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/intervention-attachments.component.scss +161 -0
- package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/intervention-attachments.component.tsx +328 -0
- package/src/billing/dashboard/v2/claim-visits/claim-invoice-details/claim-invoice-details.component.tsx +96 -0
- package/src/billing/dashboard/v2/claim-visits/claim-invoice-details/claim-invoice-document.component.tsx +236 -0
- package/src/billing/dashboard/v2/claim-visits/claim-invoice-details/claim-invoice-panel.component.scss +98 -0
- package/src/billing/dashboard/v2/claim-visits/claim-invoice-details/claim-invoice-panel.component.tsx +292 -0
- package/src/billing/dashboard/v2/claim-visits/claim-invoice-line-details/claim-invoice-line-details.component.scss +133 -0
- package/src/billing/dashboard/v2/claim-visits/claim-invoice-line-details/claim-invoice-line-details.component.tsx +217 -0
- package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-details-by-token.component.tsx +150 -0
- package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-details-page.component.scss +13 -0
- package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-details-page.component.tsx +116 -0
- package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-visit-details.component.scss +338 -0
- package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-visit-details.component.tsx +616 -0
- package/src/billing/dashboard/v2/claim-visits/claim-visits.component.scss +5 -0
- package/src/billing/dashboard/v2/claim-visits/claim-visits.component.tsx +133 -0
- package/src/billing/dashboard/v2/claim-visits/modal/claim-doctors/add-claim-doctor/add-claim-doctor.modal.scss +5 -0
- package/src/billing/dashboard/v2/claim-visits/modal/claim-doctors/add-claim-doctor/add-claim-doctor.modal.tsx +49 -0
- package/src/billing/dashboard/v2/claim-visits/modal/claim-visit-details/claim-visit-details.modal.scss +17 -0
- package/src/billing/dashboard/v2/claim-visits/modal/claim-visit-details/claim-visit-details.modal.tsx +56 -0
- package/src/billing/dashboard/v2/claim-visits/modal/close-claim/close-claim.modal.scss +0 -0
- package/src/billing/dashboard/v2/claim-visits/modal/close-claim/close-claim.modal.tsx +129 -0
- package/src/billing/dashboard/v2/claim-visits/modal/submit-claim/submit-claim.modal.tsx +204 -0
- package/src/billing/dashboard/v2/claim-visits/shared/_empty-state.scss +28 -0
- package/src/billing/dashboard/v2/claim-visits/shared/record-cards.component.scss +298 -0
- package/src/billing/dashboard/v2/claim-visits/shared/record-cards.component.tsx +252 -0
- package/src/billing/dashboard/v2/claim-visits/shared/record-details.workspace.scss +42 -0
- package/src/billing/dashboard/v2/claim-visits/shared/record-details.workspace.tsx +54 -0
- package/src/billing/dashboard/v2/claim-visits/shared/record-table.component.scss +61 -0
- package/src/billing/dashboard/v2/claim-visits/shared/record-table.component.tsx +150 -0
- package/src/billing/dashboard/v2/claim-visits/switch-intervention/switch-intervention.resource.ts +51 -0
- package/src/billing/dashboard/v2/claim-visits/switch-intervention/switch-intervention.workspace.scss +191 -0
- package/src/billing/dashboard/v2/claim-visits/switch-intervention/switch-intervention.workspace.tsx +648 -0
- package/src/billing/dashboard/v2/claim-workspace/claim-workspace.component.scss +595 -0
- package/src/billing/dashboard/v2/claim-workspace/claim-workspace.component.tsx +810 -0
- package/src/billing/dashboard/v2/claim-workspace/claim-workspace.resource.ts +282 -0
- package/src/billing/dashboard/v2/claims-accounting/bill-utils.ts +134 -0
- package/src/billing/dashboard/v2/claims-accounting/claim-detail.component.tsx +346 -0
- package/src/billing/dashboard/v2/claims-accounting/claims-accounting.component.scss +546 -0
- package/src/billing/dashboard/v2/claims-accounting/claims-accounting.component.tsx +206 -0
- package/src/billing/dashboard/v2/claims-accounting/claims-accounting.resource.ts +337 -0
- package/src/billing/dashboard/v2/claims-accounting/invoice-document.component.scss +90 -0
- package/src/billing/dashboard/v2/claims-accounting/invoice-document.component.tsx +90 -0
- package/src/billing/dashboard/v2/claims-accounting/remittances.component.tsx +169 -0
- package/src/billing/dashboard/v2/claims-accounting/remittances.resource.ts +46 -0
- package/src/billing/dashboard/v2/claims-accounting/status-meta.ts +25 -0
- package/src/billing/dashboard/v2/clearance/cash-patients.scss +18 -0
- package/src/billing/dashboard/v2/clearance/cash.component.tsx +149 -0
- package/src/billing/dashboard/v2/clearance/clearance.component.scss +84 -0
- package/src/billing/dashboard/v2/clearance/clearance.component.tsx +225 -0
- package/src/billing/dashboard/v2/clearance/pay-cash.component.tsx +176 -0
- package/src/billing/dashboard/v2/clearance/pay-cash.scss +28 -0
- package/src/billing/dashboard/v2/clearance/prepaid-services.component.tsx +112 -0
- package/src/billing/dashboard/v2/facility-bills/claim-status.ts +249 -0
- package/src/billing/dashboard/v2/facility-bills/facility-bills.component.scss +140 -0
- package/src/billing/dashboard/v2/facility-bills/facility-bills.component.tsx +687 -0
- package/src/billing/dashboard/v2/facility-bills/preauths-datatables/pending-preauths.component.tsx +132 -0
- package/src/billing/dashboard/v2/facility-bills/preauths-datatables/preauth-preview-table.component.tsx +267 -0
- package/src/billing/dashboard/v2/facility-bills/preauths.component.tsx +124 -0
- package/src/billing/dashboard/v2/inpatient-requests/inpatient-requests.component.scss +22 -0
- package/src/billing/dashboard/v2/inpatient-requests/inpatient-requests.component.tsx +389 -0
- package/src/billing/dashboard/v2/inpatient-requests/modal/start-inpatient-claim/start-inpatient-claim.component.scss +0 -0
- package/src/billing/dashboard/v2/inpatient-requests/modal/start-inpatient-claim/start-inpatient-claim.component.tsx +0 -0
- package/src/billing/dashboard/v2/new-facility-bills/bills-table.component.tsx +78 -0
- package/src/billing/dashboard/v2/new-facility-bills/bills-table.scss +18 -0
- package/src/billing/dashboard/v2/new-facility-bills/new-facility-bills.component.tsx +64 -0
- package/src/billing/dashboard/v2/new-facility-bills/new-facility-bills.scss +146 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/add-attachments.component.tsx +223 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/attachment.component.tsx +157 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/attachments.scss +92 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/case-summary/case-summary.scss +295 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/case-summary/case-summary.tsx +326 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/dialysis/dialysis-chart.scss +238 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/dialysis/dialysis-chart.tsx +269 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/discharge-summary/discharge-summary.scss +96 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/discharge-summary/discharge-summary.tsx +124 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/final-bill.component.tsx +152 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/final-bill.scss +225 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.scss +182 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.tsx +173 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/generate-attachments.component.tsx +360 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/invoice.component.tsx +151 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/invoice.scss +225 -0
- package/src/billing/dashboard/v2/patient-bill-details/attachments/type.ts +44 -0
- package/src/billing/dashboard/v2/patient-bill-details/bill-details/bill-details.scss +107 -0
- package/src/billing/dashboard/v2/patient-bill-details/bill-details/bill-details.tsx +508 -0
- package/src/billing/dashboard/v2/patient-bill-details/bill-details-page.component.scss +30 -0
- package/src/billing/dashboard/v2/patient-bill-details/bill-details-page.component.tsx +94 -0
- package/src/billing/dashboard/v2/patient-bill-details/claim-details/claim-details-skeleton.component.scss +89 -0
- package/src/billing/dashboard/v2/patient-bill-details/claim-details/claim-details-skeleton.component.tsx +53 -0
- package/src/billing/dashboard/v2/patient-bill-details/claim-details/patient-claim-details.component.scss +32 -0
- package/src/billing/dashboard/v2/patient-bill-details/claim-details/patient-claim-details.component.tsx +215 -0
- package/src/billing/dashboard/v2/patient-bill-details/modals/add-claim-diagnosis/add-claim-diagnosis.modal.scss +0 -0
- package/src/billing/dashboard/v2/patient-bill-details/modals/add-claim-diagnosis/add-claim-diagnosis.modal.tsx +99 -0
- package/src/billing/dashboard/v2/patient-bill-details/modals/add-claim-line/add-claim-line.modal.tsx +186 -0
- package/src/billing/dashboard/v2/patient-bill-details/patient-bill-details.scss +153 -0
- package/src/billing/dashboard/v2/patient-bill-details/patient-bill-details.tsx +458 -0
- package/src/billing/dashboard/v2/patient-bill-details/payment-mode.ts +124 -0
- package/src/billing/dashboard/v2/patient-bill-details/workspaces/add-claim-line/add-claim-line.workspace.scss +27 -0
- package/src/billing/dashboard/v2/patient-bill-details/workspaces/add-claim-line/add-claim-line.workspace.tsx +222 -0
- package/src/billing/dashboard/v2/patient-bill-details/workspaces/bill-item-payment/bill-item-payment.workspace.scss +27 -0
- package/src/billing/dashboard/v2/patient-bill-details/workspaces/bill-item-payment/bill-item-payment.workspace.tsx +109 -0
- package/src/billing/dashboard/v2/preauth/preauth-attachments.component.tsx +389 -0
- package/src/billing/dashboard/v2/preauth/preauth-list.component.scss +38 -0
- package/src/billing/dashboard/v2/preauth/preauth-list.component.tsx +226 -0
- package/src/billing/dashboard/v2/preauth/preauth-status-tag.component.tsx +75 -0
- package/src/billing/dashboard/v2/preauth/preauth-typed-fields.md +125 -0
- package/src/billing/dashboard/v2/preauth/preauth.resource.ts +1067 -0
- package/src/billing/dashboard/v2/preauth/preauth.workspace.scss +91 -0
- package/src/billing/dashboard/v2/preauth/preauth.workspace.tsx +1802 -0
- package/src/billing/dashboard/v2/preauth/preauthorizations-tab.component.tsx +45 -0
- package/src/billing/dashboard/v2/sha-claims/sha-claims-table.component.tsx +36 -0
- package/src/billing/dashboard/v2/sha-claims/sha-claims.component.tsx +60 -0
- package/src/billing/dashboard/v2/sha-claims/sha-claims.scss +8 -0
- package/src/billing/dashboard/v2/shared/dash-board-card/dash-board-card.component.scss +17 -0
- package/src/billing/dashboard/v2/shared/dash-board-card/dash-board-card.component.tsx +15 -0
- package/src/billing/dashboard/v2/shared/empty-state.component.scss +24 -0
- package/src/billing/dashboard/v2/shared/empty-state.component.tsx +13 -0
- package/src/billing/dashboard/v2/shared/scroll-to-top.component.scss +54 -0
- package/src/billing/dashboard/v2/shared/scroll-to-top.component.tsx +54 -0
- package/src/billing/dashboard/v2/shared/table-toolbar.component.scss +77 -0
- package/src/billing/dashboard/v2/shared/table-toolbar.component.tsx +48 -0
- package/src/billing/dashboard/v2/types/index.ts +507 -0
- package/src/billing/dashboard/v3/active-visits/active-visits.component.tsx +256 -0
- package/src/billing/dashboard/v3/active-visits/active-visits.resource.ts +57 -0
- package/src/billing/dashboard/v3/active-visits/active-visits.scss +15 -0
- package/src/billing/dashboard/v3/cash-checklist/bill-document.component.scss +90 -0
- package/src/billing/dashboard/v3/cash-checklist/bill-document.component.tsx +101 -0
- package/src/billing/dashboard/v3/cash-checklist/cash-checklist.component.scss +199 -0
- package/src/billing/dashboard/v3/cash-checklist/cash-checklist.component.tsx +361 -0
- package/src/billing/dashboard/v3/cash-checklist/cash-checklist.resource.ts +240 -0
- package/src/billing/dashboard/v3/cash-checklist/payment-drawer.component.scss +246 -0
- package/src/billing/dashboard/v3/cash-checklist/payment-drawer.component.tsx +182 -0
- package/src/billing/dashboard/v3/claim-visits/claim-diagnosis-details/claim-diagnosis-details.component.scss +0 -0
- package/src/billing/dashboard/v3/claim-visits/claim-diagnosis-details/claim-diagnosis-details.component.tsx +44 -0
- package/src/billing/dashboard/v3/claim-visits/claim-doctors/claim-doctors.scss +5 -0
- package/src/billing/dashboard/v3/claim-visits/claim-doctors/claim-doctors.tsx +42 -0
- package/src/billing/dashboard/v3/claim-visits/claim-documents/claim-documents.scss +10 -0
- package/src/billing/dashboard/v3/claim-visits/claim-documents/claim-documents.tsx +25 -0
- package/src/billing/dashboard/v3/claim-visits/claim-intervention-details/claim-intervention-details.component.tsx +223 -0
- package/src/billing/dashboard/v3/claim-visits/claim-invoice-details/claim-invoice-details.component.scss +6 -0
- package/src/billing/dashboard/v3/claim-visits/claim-invoice-details/claim-invoice-details.component.tsx +85 -0
- package/src/billing/dashboard/v3/claim-visits/claim-invoice-line-details/claim-invoice-line-details.component.scss +0 -0
- package/src/billing/dashboard/v3/claim-visits/claim-invoice-line-details/claim-invoice-line-details.component.tsx +109 -0
- package/src/billing/dashboard/v3/claim-visits/claim-visit-details/claim-visit-details.component.scss +97 -0
- package/src/billing/dashboard/v3/claim-visits/claim-visit-details/claim-visit-details.component.tsx +346 -0
- package/src/billing/dashboard/v3/claim-visits/claim-visits.component.scss +5 -0
- package/src/billing/dashboard/v3/claim-visits/claim-visits.component.tsx +139 -0
- package/src/billing/dashboard/v3/claim-visits/modal/claim-doctors/add-claim-doctor/add-claim-doctor.modal.scss +5 -0
- package/src/billing/dashboard/v3/claim-visits/modal/claim-doctors/add-claim-doctor/add-claim-doctor.modal.tsx +49 -0
- package/src/billing/dashboard/v3/claim-visits/modal/claim-invoice-lines/claim-invoice-lines.modal.scss +7 -0
- package/src/billing/dashboard/v3/claim-visits/modal/claim-invoice-lines/claim-invoice-lines.modal.tsx +35 -0
- package/src/billing/dashboard/v3/claim-visits/modal/claim-visit-details/claim-visit-details.modal.scss +6 -0
- package/src/billing/dashboard/v3/claim-visits/modal/claim-visit-details/claim-visit-details.modal.tsx +33 -0
- package/src/billing/dashboard/v3/claim-visits/modal/close-claim/close-claim.modal.scss +0 -0
- package/src/billing/dashboard/v3/claim-visits/modal/close-claim/close-claim.modal.tsx +129 -0
- package/src/billing/dashboard/v3/claim-visits/modal/submit-claim/submit-claim.modal.tsx +204 -0
- package/src/billing/dashboard/v3/claim-visits/payer-preview/index.scss +140 -0
- package/src/billing/dashboard/v3/claim-visits/payer-preview/payer-preview-tile.component.tsx +55 -0
- package/src/billing/dashboard/v3/claim-visits/payer-preview/payer-preview-workspace.component.tsx +157 -0
- package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-claim-doctors.component.tsx +54 -0
- package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-claim-lines.component.tsx +48 -0
- package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-claim-notes.component.tsx +47 -0
- package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-diagnoses.component.tsx +44 -0
- package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-interventions.component.tsx +44 -0
- package/src/billing/dashboard/v3/claim-visits/switch-intervention/switch-intervention.resource.ts +51 -0
- package/src/billing/dashboard/v3/claim-visits/switch-intervention/switch-intervention.workspace.scss +191 -0
- package/src/billing/dashboard/v3/claim-visits/switch-intervention/switch-intervention.workspace.tsx +648 -0
- package/src/billing/dashboard/v3/claim-workspace/claim-workspace.component.scss +595 -0
- package/src/billing/dashboard/v3/claim-workspace/claim-workspace.component.tsx +810 -0
- package/src/billing/dashboard/v3/claim-workspace/claim-workspace.resource.ts +282 -0
- package/src/billing/dashboard/v3/claims-accounting/bill-utils.ts +134 -0
- package/src/billing/dashboard/v3/claims-accounting/claim-detail.component.tsx +346 -0
- package/src/billing/dashboard/v3/claims-accounting/claims-accounting.component.scss +546 -0
- package/src/billing/dashboard/v3/claims-accounting/claims-accounting.component.tsx +206 -0
- package/src/billing/dashboard/v3/claims-accounting/claims-accounting.resource.ts +337 -0
- package/src/billing/dashboard/v3/claims-accounting/invoice-document.component.scss +90 -0
- package/src/billing/dashboard/v3/claims-accounting/invoice-document.component.tsx +90 -0
- package/src/billing/dashboard/v3/claims-accounting/remittances.component.tsx +169 -0
- package/src/billing/dashboard/v3/claims-accounting/remittances.resource.ts +46 -0
- package/src/billing/dashboard/v3/claims-accounting/status-meta.ts +25 -0
- package/src/billing/dashboard/v3/clearance/clearance.component.scss +100 -0
- package/src/billing/dashboard/v3/clearance/clearance.component.tsx +0 -0
- package/src/billing/dashboard/v3/clearance/prepaid-services.component.tsx +112 -0
- package/src/billing/dashboard/v3/facility-bills/claim-status.ts +243 -0
- package/src/billing/dashboard/v3/facility-bills/facility-bills.component.scss +9 -0
- package/src/billing/dashboard/v3/facility-bills/facility-bills.component.tsx +172 -0
- package/src/billing/dashboard/v3/facility-bills/preauths-datatables/pending-preauths.component.tsx +132 -0
- package/src/billing/dashboard/v3/facility-bills/preauths-datatables/preauth-preview-table.component.tsx +232 -0
- package/src/billing/dashboard/v3/facility-bills/preauths.component.tsx +124 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/add-attachments.component.tsx +223 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/attachment.component.tsx +157 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/attachments.scss +92 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/case-summary/case-summary-helper.ts +58 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/case-summary/case-summary.scss +295 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/case-summary/case-summary.tsx +273 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/dialysis/dialysis-chart.scss +238 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/dialysis/dialysis-chart.tsx +314 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/discharge-summary/discharge-summary.scss +96 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/discharge-summary/discharge-summary.tsx +126 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/final-bill.component.tsx +75 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.scss +182 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.tsx +253 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/generate-attachments.component.tsx +343 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/invoice.component.tsx +150 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/invoice.scss +225 -0
- package/src/billing/dashboard/v3/patient-bill-details/attachments/type.ts +259 -0
- package/src/billing/dashboard/v3/patient-bill-details/bill-details/bill-details.scss +13 -0
- package/src/billing/dashboard/v3/patient-bill-details/bill-details/bill-details.tsx +235 -0
- package/src/billing/dashboard/v3/patient-bill-details/claim-details/patient-claim-details.component.scss +0 -0
- package/src/billing/dashboard/v3/patient-bill-details/claim-details/patient-claim-details.component.tsx +69 -0
- package/src/billing/dashboard/v3/patient-bill-details/modals/add-claim-diagnosis/add-claim-diagnosis.modal.scss +0 -0
- package/src/billing/dashboard/v3/patient-bill-details/modals/add-claim-diagnosis/add-claim-diagnosis.modal.tsx +99 -0
- package/src/billing/dashboard/v3/patient-bill-details/modals/add-claim-line/add-claim-line.modal.scss +14 -0
- package/src/billing/dashboard/v3/patient-bill-details/modals/add-claim-line/add-claim-line.modal.tsx +111 -0
- package/src/billing/dashboard/v3/patient-bill-details/modals/bill-item-payment/bill-item-payment.modal.scss +6 -0
- package/src/billing/dashboard/v3/patient-bill-details/modals/bill-item-payment/bill-item-payment.modal.tsx +139 -0
- package/src/billing/dashboard/v3/patient-bill-details/patient-bill-details.scss +85 -0
- package/src/billing/dashboard/v3/patient-bill-details/patient-bill-details.tsx +342 -0
- package/src/billing/dashboard/v3/patient-bill-details/visit-diagnosis-details/visit-diagnosis-details.component.scss +0 -0
- package/src/billing/dashboard/v3/patient-bill-details/visit-diagnosis-details/visit-diagnosis-details.component.tsx +92 -0
- package/src/billing/dashboard/v3/preauth/preauth-attachments.component.tsx +389 -0
- package/src/billing/dashboard/v3/preauth/preauth-list.component.scss +34 -0
- package/src/billing/dashboard/v3/preauth/preauth-list.component.tsx +281 -0
- package/src/billing/dashboard/v3/preauth/preauth-status-tag.component.tsx +75 -0
- package/src/billing/dashboard/v3/preauth/preauth-typed-fields.md +125 -0
- package/src/billing/dashboard/v3/preauth/preauth.resource.ts +1072 -0
- package/src/billing/dashboard/v3/preauth/preauth.workspace.scss +91 -0
- package/src/billing/dashboard/v3/preauth/preauth.workspace.tsx +1806 -0
- package/src/billing/dashboard/v3/preauth/preauthorizations-tab.component.tsx +45 -0
- package/src/billing/dashboard/v3/shared/empty-state.component.scss +25 -0
- package/src/billing/dashboard/v3/shared/empty-state.component.tsx +13 -0
- package/src/billing/dashboard/v3/shared/table-toolbar.component.scss +64 -0
- package/src/billing/dashboard/v3/shared/table-toolbar.component.tsx +48 -0
- package/src/billing/dashboard/v3/types/index.ts +381 -0
- package/src/billing/extensions/generate-order-bill-button/generate-order-bill-button.extension.tsx +55 -0
- package/src/billing/extensions/generate-order-bill-button/generate-order-bill-button.scss +16 -0
- package/src/billing/extensions/visit-billing/visit-billing.extension.scss +0 -0
- package/src/billing/extensions/visit-billing/visit-billing.extension.tsx +509 -0
- package/src/billing/invoice/bill.resource.ts +47 -0
- package/src/billing/invoice/invoice-header/header-card/header-card.scss +17 -0
- package/src/billing/invoice/invoice-header/header-card/header-card.tsx +21 -0
- package/src/billing/invoice/invoice.scss +113 -0
- package/src/billing/invoice/invoice.tsx +1441 -0
- package/src/billing/invoice/line-items/line-items.scss +0 -0
- package/src/billing/invoice/line-items/line-items.tsx +120 -0
- package/src/billing/invoice/modal/delete-bill-item/delete-bill-item.modal.scss +23 -0
- package/src/billing/invoice/modal/delete-bill-item/delete-bill-item.modal.tsx +114 -0
- package/src/billing/invoice/modal/edit-bill-item/edit-bill-item.modal.scss +0 -0
- package/src/billing/invoice/modal/edit-bill-item/edit-bill-item.modal.tsx +122 -0
- package/src/billing/invoice/payment-details/payment-details.scss +0 -0
- package/src/billing/invoice/payment-details/payment-details.tsx +43 -0
- package/src/billing/invoice/print-invoice/print-receipt.component.tsx +44 -0
- package/src/billing/invoice/print-invoice/print-receipt.scss +14 -0
- package/src/billing/maternity-discharge.resource.ts +21 -0
- package/src/billing/types/index.ts +354 -0
- package/src/billing/utils/index.ts +17 -0
- package/src/billing/widgets/billingTotalsRow.component.scss +0 -0
- package/src/billing/widgets/billingTotalsRow.component.tsx +712 -0
- package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.resource.ts +130 -0
- package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.scss +58 -0
- package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.workspace.tsx +645 -0
- package/src/billing/workspaces/create-order-bill-form-workspace/schema.ts +12 -0
- package/src/bookings/bookings.component.scss +7 -0
- package/src/bookings/bookings.component.tsx +35 -0
- package/src/bookings/daily/daily-bookings.resource.ts +2 -1
- package/src/case-summary/case-summary.extension.scss +13 -0
- package/src/case-summary/case-summary.extension.tsx +40 -0
- package/src/case-summary/case-summary.resource.test.ts +69 -0
- package/src/case-summary/case-summary.resource.ts +52 -0
- package/src/case-summary/components/case-summary-printable.component.scss +174 -0
- package/src/case-summary/components/case-summary-printable.component.tsx +288 -0
- package/src/case-summary/components/case-summary-printable.utils.ts +51 -0
- package/src/case-summary/types/case-summary.types.ts +152 -0
- package/src/claims/claims.component.scss +70 -0
- package/src/claims/claims.component.tsx +713 -0
- package/src/claims/claims.resource.ts +1274 -0
- package/src/claims/index.ts +340 -0
- package/src/claims/interventions.resource.ts +131 -0
- package/src/claims/utils.ts +64 -0
- package/src/config-schema.ts +119 -1
- package/src/context/patient-context.tsx +27 -0
- package/src/createDashboardLink.tsx +9 -0
- package/src/dashboard/charts/chart.component.scss +24 -0
- package/src/dashboard/charts/chart.component.tsx +56 -0
- package/src/dashboard/dashboard.component.scss +48 -3
- package/src/dashboard/dashboard.component.tsx +26 -36
- package/src/dashboard/overview/overview.component.scss +40 -59
- package/src/dashboard/overview/overview.component.tsx +53 -41
- package/src/dashboard-meta/accounting-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/admissions-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/billing-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/bookings-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/case-summary.meta.ts +6 -0
- package/src/dashboard-meta/consultation-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/dha-workflow-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/inpatient-admissions.meta.ts +6 -0
- package/src/dashboard-meta/maternity-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/mch-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/pharmacy-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/queue-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/registers-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/registry-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/service-queue-admin.meta.ts +6 -0
- package/src/dashboard-meta/specialized-clinics-dashboard.meta.ts +6 -0
- package/src/dashboard-meta/triage-dashboard.meta.ts +6 -0
- package/src/index.ts +177 -6
- package/src/mnch/maternity/maternity-queues.component.scss +7 -0
- package/src/mnch/maternity/maternity-queues.component.tsx +32 -0
- package/src/mnch/maternity/queues/triage/maternity-triage.tsx +15 -0
- package/src/mnch/mch/mch-queues.component.scss +10 -0
- package/src/mnch/mch/mch-queues.component.tsx +36 -0
- package/src/mnch/mch/queues/consultation/mch-consultation.tsx +18 -0
- package/src/mnch/mch/queues/triage/mch-triage.tsx +15 -0
- package/src/mnch/mnch-root.tsx +17 -0
- package/src/mortuary/mortuary.component.tsx +13 -0
- package/src/pharmacy/pharmacy.component.scss +16 -0
- package/src/pharmacy/pharmacy.component.tsx +11 -6
- package/src/registers/registers.component.tsx +8 -0
- package/src/registry/drawer/emr-compare.component.scss +263 -0
- package/src/registry/drawer/emr-compare.component.tsx +302 -0
- package/src/registry/drawer/emr-compare.resource.ts +181 -0
- package/src/registry/drawer/emr-create-preview.component.tsx +123 -0
- package/src/registry/drawer/otp-verification-step.component.tsx +398 -0
- package/src/registry/drawer/pomsf-balance.util.test.ts +177 -0
- package/src/registry/drawer/pomsf-balance.util.ts +79 -0
- package/src/registry/drawer/verification.resource.ts +60 -0
- package/src/registry/drawer/workflow-drawer.component.scss +1242 -0
- package/src/registry/drawer/workflow-drawer.component.tsx +1476 -0
- package/src/registry/eligibility/eligibility-details/eligibility-details.scss +38 -0
- package/src/registry/eligibility/eligibility-details/eligibility-details.tsx +101 -0
- package/src/registry/eligibility/eliigibility-tags/eligibility-tags.scss +16 -0
- package/src/registry/eligibility/eliigibility-tags/eligibility-tags.tsx +120 -0
- package/src/registry/eligibility/modal/eligibility-details.modal.scss +0 -0
- package/src/registry/eligibility/modal/eligibility-details.modal.tsx +45 -0
- package/src/registry/hie.resource.ts +408 -0
- package/src/registry/hie.types.ts +57 -0
- package/src/registry/modal/biometrics-verification-modal/biometrics-verification-modal.scss +277 -0
- package/src/registry/modal/biometrics-verification-modal/biometrics-verification-modal.tsx +218 -0
- package/src/registry/modal/biometrics-verification-modal/type.ts +39 -0
- package/src/registry/modal/client-details-modal/client-details-modal.tsx +65 -29
- package/src/registry/modal/otp-modal/otp-whitlisting-modal.component.tsx +809 -0
- package/src/registry/modal/otp-modal/otp-whitlisting-modal.scss +354 -0
- package/src/registry/modal/otp-modal/otp-whitlisting.scss +0 -0
- package/src/registry/modal/otp-verification-modal/claims-consent.scss +72 -0
- package/src/registry/modal/otp-verification-modal/claims-consent.tsx +135 -0
- package/src/registry/modal/otp-verification-modal/extension/claims-consent.extension.tsx +124 -0
- package/src/registry/modal/otp-verification-modal/otp-verification-modal.scss +30 -0
- package/src/registry/modal/otp-verification-modal/otp-verification-modal.tsx +154 -54
- package/src/registry/modal/send-to-triage/payment-details.tsx +120 -0
- package/src/registry/modal/send-to-triage/payment-method.component.tsx +54 -0
- package/src/registry/modal/send-to-triage/send-to-queue.modal.tsx +980 -0
- package/src/registry/modal/send-to-triage/send-to-triage.modal.scss +156 -3
- package/src/registry/modal/send-to-triage/send-to-triage.modal.tsx +1101 -131
- package/src/registry/modal/start-patient-visit/start-patient-visit.modal.scss +34 -0
- package/src/registry/modal/start-patient-visit/start-patient-visit.modal.tsx +231 -0
- package/src/registry/payment-details/payment-options/payment-options.scss +13 -0
- package/src/registry/payment-details/payment-options/payment-options.tsx +61 -14
- package/src/registry/registration-list/registration-list.component.scss +32 -0
- package/src/registry/registration-list/registration-list.component.tsx +103 -0
- package/src/registry/registry-entry.tsx +11 -0
- package/src/registry/registry.component.scss +402 -78
- package/src/registry/registry.component.tsx +547 -221
- package/src/registry/registry.resource.ts +22 -3
- package/src/registry/types/index.ts +118 -9
- package/src/registry/utils/error-handler.ts +54 -0
- package/src/registry/utils/format-dependant-display-data.ts +1 -1
- package/src/registry/utils/hie-client-adapter.ts +6 -3
- package/src/registry/utils/mask-data.ts +40 -0
- package/src/registry/utils/phone-number-formatter.ts +11 -0
- package/src/resources/dashboard.resource.ts +20 -0
- package/src/resources/identifier-types.ts +2 -0
- package/src/resources/patient-resource.ts +6 -1
- package/src/resources/queue.resource.ts +24 -1
- package/src/resources/superset.resource.ts +21 -0
- package/src/resources/visit.resource.ts +19 -1
- package/src/root.component.tsx +8 -5
- package/src/routes.json +417 -23
- package/src/service-queues/admin/queue/modal/create-queue/create-queue.modal.scss +31 -0
- package/src/service-queues/admin/queue/modal/create-queue/create-queue.modal.tsx +153 -0
- package/src/service-queues/admin/queue/modal/edit-queue/edit-queue.modal.scss +0 -0
- package/src/service-queues/admin/queue/modal/edit-queue/edit-queue.modal.tsx +182 -0
- package/src/service-queues/admin/queue/queue-list/queue-list.scss +33 -0
- package/src/service-queues/admin/queue/queue-list/queue-list.tsx +113 -0
- package/src/service-queues/admin/queue-entry/queue-entry-list.component.scss +6 -0
- package/src/service-queues/admin/queue-entry/queue-entry-list.component.tsx +137 -0
- package/src/service-queues/admin/queue-room/modal/create-queue-room/create-queue-room.modal.scss +31 -0
- package/src/service-queues/admin/queue-room/modal/create-queue-room/create-queue-room.modal.tsx +137 -0
- package/src/service-queues/admin/queue-room/modal/edit-queue-room/edit-queue-room.modal.scss +0 -0
- package/src/service-queues/admin/queue-room/modal/edit-queue-room/edit-queue-room.modal.tsx +146 -0
- package/src/service-queues/admin/queue-room/queue-room-list/queue-room-list.scss +22 -0
- package/src/service-queues/admin/queue-room/queue-room-list/queue-room-list.tsx +120 -0
- package/src/service-queues/admin/service-queue-admin-dashboard.component.scss +6 -0
- package/src/service-queues/admin/service-queue-admin-dashboard.component.tsx +34 -0
- package/src/service-queues/consultation/consultation.component.tsx +9 -0
- package/src/service-queues/extensions/service-queue-patient-banner/service-queue-patient-banner.scss +30 -0
- package/src/service-queues/extensions/service-queue-patient-banner/service-queue-patient-banner.tsx +108 -0
- package/src/service-queues/modals/daily-report-patient-list/daily-report-patient-list.scss +26 -0
- package/src/service-queues/modals/daily-report-patient-list/daily-report-patient-list.tsx +110 -0
- package/src/service-queues/modals/move/move-patient.component.scss +1 -1
- package/src/service-queues/modals/move/move-patient.component.tsx +31 -17
- package/src/service-queues/queue-list/check-in.service.ts +26 -0
- package/src/service-queues/queue-list/queue-list.component.scss +37 -0
- package/src/service-queues/queue-list/queue-list.component.tsx +256 -56
- package/src/service-queues/service-queue/service-queue.component.tsx +151 -8
- package/src/service-queues/service-queue/stats/stat-details/stat-details.component.scss +5 -0
- package/src/service-queues/service-queue/stats/stat-details/stat-details.component.tsx +36 -7
- package/src/service-queues/service-queue.tsx +22 -16
- package/src/service-queues/service-queues.resource.ts +197 -1
- package/src/service-queues/service.resource.ts +1 -1
- package/src/shared/constants/concepts.ts +50 -0
- package/src/shared/constants/patient-category.ts +6 -0
- package/src/shared/constants/patient-type.ts +10 -0
- package/src/shared/constants/visit-types.ts +7 -0
- package/src/shared/services/billing.resource.ts +75 -0
- package/src/shared/services/claims.resource.ts +47 -0
- package/src/shared/services/client-payment-mode.resource.ts +27 -0
- package/src/shared/services/client-payment.resource.ts +17 -0
- package/src/shared/services/consultation-clearance.resource.ts +210 -0
- package/src/shared/services/eligibility.resource.ts +20 -0
- package/src/shared/services/encounters.resource.ts +33 -0
- package/src/shared/services/location.resource.ts +9 -0
- package/src/shared/types/index.ts +156 -0
- package/src/shared/ui/aggregate-stat-card/aggregate-stat-card.scss +42 -0
- package/src/shared/ui/aggregate-stat-card/aggregate-stat-card.tsx +42 -0
- package/src/shared/ui/confirm-modal/confirm.modal.scss +18 -0
- package/src/shared/ui/confirm-modal/confirm.modal.tsx +38 -0
- package/src/shared/ui/facility-worker-slot/facility-worker.component-slot.component.scss +39 -0
- package/src/shared/ui/facility-worker-slot/facility-worker.component-slot.component.tsx +19 -0
- package/src/shared/ui/otp-input/otp-input.component.scss +14 -0
- package/src/shared/ui/otp-input/otp-input.component.tsx +97 -0
- package/src/{service-queues/service-queue/stats → shared/ui}/stat-card/stat-card.component.tsx +6 -3
- package/src/shared/ui/timer/timer.component.scss +5 -0
- package/src/shared/ui/timer/timer.component.tsx +40 -0
- package/src/shared/utils/get-base-url.ts +10 -0
- package/src/shared/utils/get-tag-type.ts +75 -0
- package/src/side-nav-menu/mnch-nav-link-config.ts +16 -0
- package/src/side-nav-menu/mnch-nav-links.tsx +42 -0
- package/src/side-nav-menu/nav-link-config.ts +1 -5
- package/src/side-nav-menu/specialized-clinics-nav-link-config.ts +36 -0
- package/src/side-nav-menu/specialized-clinics-nav-links.tsx +42 -0
- package/src/specialized-clinics/critital-care-unit/critical-care-unit-queues.component.scss +7 -0
- package/src/specialized-clinics/critital-care-unit/critical-care-unit-queues.component.tsx +36 -0
- package/src/specialized-clinics/critital-care-unit/queues/consultation/critical-care-unit-consultation.tsx +15 -0
- package/src/specialized-clinics/critital-care-unit/queues/triage/critical-care-unit-triage.tsx +15 -0
- package/src/specialized-clinics/dental/dental-queues.component.scss +7 -0
- package/src/specialized-clinics/dental/dental-queues.component.tsx +36 -0
- package/src/specialized-clinics/dental/queues/consultation/dental-consultation.tsx +15 -0
- package/src/specialized-clinics/dental/queues/triage/dental-triage.tsx +15 -0
- package/src/specialized-clinics/diagnostic-and-imaging/diagnostic-and-imaging.component.scss +7 -0
- package/src/specialized-clinics/diagnostic-and-imaging/diagnostic-and-imaging.component.tsx +36 -0
- package/src/specialized-clinics/diagnostic-and-imaging/queues/consultation/diagnosis-and-imaging-consultation.tsx +15 -0
- package/src/specialized-clinics/diagnostic-and-imaging/queues/triage/diagnosis-and-imaging-triage.tsx +15 -0
- package/src/specialized-clinics/oncology/oncology-queues.component.scss +7 -0
- package/src/specialized-clinics/oncology/oncology-queues.component.tsx +36 -0
- package/src/specialized-clinics/oncology/queues/consultation/oncology-consultation.tsx +15 -0
- package/src/specialized-clinics/oncology/queues/triage/oncology-triage.tsx +15 -0
- package/src/specialized-clinics/ophthalmology/ophthalmology-queues.component.scss +7 -0
- package/src/specialized-clinics/ophthalmology/ophthalmology-queues.component.tsx +36 -0
- package/src/specialized-clinics/ophthalmology/queues/consultation/ophthalmology-consultation.tsx +15 -0
- package/src/specialized-clinics/ophthalmology/queues/triage/ophthalmology-triage.tsx +15 -0
- package/src/specialized-clinics/psychiatry/psychiatry-queues.component.scss +7 -0
- package/src/specialized-clinics/psychiatry/psychiatry-queues.component.tsx +36 -0
- package/src/specialized-clinics/psychiatry/queues/consultation/psychiatry-consultation.tsx +15 -0
- package/src/specialized-clinics/psychiatry/queues/triage/psychiatry-triage.tsx +15 -0
- package/src/specialized-clinics/renal/queues/consultation/dialysis-consultation.tsx +15 -0
- package/src/specialized-clinics/renal/queues/triage/renal-triage.tsx +15 -0
- package/src/specialized-clinics/renal/renal-queues.component.scss +7 -0
- package/src/specialized-clinics/renal/renal-queues.component.tsx +36 -0
- package/src/specialized-clinics/specialized-clinics-root.tsx +27 -0
- package/src/triage/triage.component.scss +6 -0
- package/src/triage/triage.component.tsx +4 -0
- package/src/types/types.ts +56 -1
- package/webpack.config.js +54 -1
- package/dist/104.js +0 -2
- package/dist/104.js.map +0 -1
- package/dist/15.js +0 -1
- package/dist/15.js.map +0 -1
- package/dist/184.js +0 -2
- package/dist/184.js.map +0 -1
- package/dist/197.js +0 -1
- package/dist/255.js +0 -1
- package/dist/255.js.map +0 -1
- package/dist/300.js +0 -1
- package/dist/335.js +0 -1
- package/dist/339.js +0 -1
- package/dist/339.js.map +0 -1
- package/dist/353.js +0 -1
- package/dist/353.js.map +0 -1
- package/dist/420.js +0 -1
- package/dist/420.js.map +0 -1
- package/dist/540.js +0 -2
- package/dist/540.js.map +0 -1
- package/dist/55.js +0 -1
- package/dist/652.js +0 -1
- package/dist/709.js +0 -1
- package/dist/709.js.map +0 -1
- package/dist/710.js +0 -2
- package/dist/710.js.map +0 -1
- package/dist/729.js +0 -1
- package/dist/729.js.map +0 -1
- package/dist/752.js +0 -1
- package/dist/752.js.map +0 -1
- package/dist/833.js +0 -1
- package/dist/833.js.map +0 -1
- package/dist/907.js +0 -1
- package/dist/907.js.map +0 -1
- package/dist/91.js +0 -1
- package/dist/91.js.map +0 -1
- package/dist/93.js +0 -1
- package/dist/93.js.map +0 -1
- package/dist/943.js +0 -1
- package/dist/943.js.map +0 -1
- package/dist/99.js +0 -1
- /package/dist/{104.js.LICENSE.txt → 2177.js.LICENSE.txt} +0 -0
- /package/dist/{184.js.LICENSE.txt → 3184.js.LICENSE.txt} +0 -0
- /package/dist/{540.js.LICENSE.txt → 6540.js.LICENSE.txt} +0 -0
- /package/dist/{710.js.LICENSE.txt → 7830.js.LICENSE.txt} +0 -0
- /package/dist/{810.js.LICENSE.txt → 9583.js.LICENSE.txt} +0 -0
- /package/src/{service-queues/service-queue/stats → shared/ui}/stat-card/stat-card.component.scss +0 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
@use '@carbon/layout';
|
|
2
|
+
@use '@carbon/type';
|
|
3
|
+
@use '@carbon/colors';
|
|
4
|
+
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
5
|
+
|
|
6
|
+
/* Marks a tab as having an explanation behind it. This is the Carbon Tooltip's own popover
|
|
7
|
+
container, which is a block by default and would push the icon onto a line of its own
|
|
8
|
+
inside the tab's label. */
|
|
9
|
+
.tabHint {
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
margin-left: layout.$spacing-02;
|
|
13
|
+
vertical-align: middle;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Carbon wraps the trigger in a div of its own between the container and the icon; it has
|
|
17
|
+
to carry the inline layout through or the same wrapping happens one level down. */
|
|
18
|
+
.tabHint :global(.cds--tooltip-trigger__wrapper) {
|
|
19
|
+
display: inline-flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* The bubble that appears on hover.
|
|
24
|
+
*
|
|
25
|
+
* Carbon caps tooltip text at 288px, which turns a couple of sentences into a narrow
|
|
26
|
+
* column — widened to 22rem so a hint sets as three or four full lines.
|
|
27
|
+
*
|
|
28
|
+
* `overflow-wrap: break-word` is Carbon's default and made sense at 288px, where a long
|
|
29
|
+
* word could exceed the whole bubble. At this width nothing does, and all it achieves is
|
|
30
|
+
* hyphen-less breaks mid-word; `normal` keeps words whole. `text-wrap: pretty` then evens
|
|
31
|
+
* the rag and stops the last line being a single orphaned word.
|
|
32
|
+
*
|
|
33
|
+
* The height cap and scrollbar that were here are gone with the long copy that needed
|
|
34
|
+
* them — and `overflow-y: auto` computes `overflow-x` to `auto` as well, which was a
|
|
35
|
+
* clipping risk for no benefit now the hints are short. */
|
|
36
|
+
.tabHint :global(.cds--tooltip-content) {
|
|
37
|
+
max-inline-size: 22rem;
|
|
38
|
+
padding-block: layout.$spacing-04;
|
|
39
|
+
padding-inline: layout.$spacing-05;
|
|
40
|
+
text-align: start;
|
|
41
|
+
line-height: 1.45;
|
|
42
|
+
overflow-wrap: normal;
|
|
43
|
+
text-wrap: pretty;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* The icon itself. `cursor: help` is what says it is hoverable — there is no other
|
|
47
|
+
affordance on a mark that can't be clicked, and it darkens on hover so the pointer
|
|
48
|
+
landing on it is confirmed before the bubble has appeared. */
|
|
49
|
+
.tabHintIcon {
|
|
50
|
+
display: inline-flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
color: colors.$gray-50;
|
|
53
|
+
cursor: help;
|
|
54
|
+
transition: color 70ms ease-out;
|
|
55
|
+
|
|
56
|
+
&:hover {
|
|
57
|
+
color: colors.$gray-80;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Header: icon + title + subtitle (matches the facility dashboard header). */
|
|
62
|
+
.hwrSection {
|
|
63
|
+
width: 100%;
|
|
64
|
+
margin-bottom: layout.$spacing-04;
|
|
65
|
+
padding-bottom: layout.$spacing-04;
|
|
66
|
+
border-bottom: 1px solid $ui-03;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.bcHeader {
|
|
70
|
+
display: flex;
|
|
71
|
+
align-items: flex-start;
|
|
72
|
+
column-gap: layout.$spacing-04;
|
|
73
|
+
padding-bottom: layout.$spacing-05;
|
|
74
|
+
border-bottom: 1px solid $ui-03;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* The icon sits beside the title, unboxed — no disc behind it. */
|
|
78
|
+
.bcHeaderIcon {
|
|
79
|
+
display: flex;
|
|
80
|
+
align-items: center;
|
|
81
|
+
flex-shrink: 0;
|
|
82
|
+
color: colors.$blue-60;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Top summary: at-a-glance counts (shared MetricsCard style, as on the lab dashboard). */
|
|
86
|
+
.summaryRow {
|
|
87
|
+
display: grid;
|
|
88
|
+
grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
|
|
89
|
+
gap: layout.$spacing-04;
|
|
90
|
+
width: 100%;
|
|
91
|
+
padding-bottom: layout.$spacing-05;
|
|
92
|
+
margin-bottom: layout.$spacing-03;
|
|
93
|
+
border-bottom: 1px solid $ui-03;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Reset the button wrapper so the MetricsCard stays clickable, and keep the card compact. */
|
|
97
|
+
.metricButton {
|
|
98
|
+
all: unset;
|
|
99
|
+
display: block;
|
|
100
|
+
cursor: pointer;
|
|
101
|
+
|
|
102
|
+
&:focus-visible {
|
|
103
|
+
outline: 2px solid var(--brand-03);
|
|
104
|
+
outline-offset: 1px;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
:global(.cds--tile) {
|
|
108
|
+
min-height: 0;
|
|
109
|
+
padding: layout.$spacing-03 layout.$spacing-05;
|
|
110
|
+
|
|
111
|
+
/* Tighten the header row — Carbon forces a 2rem-tall label row. */
|
|
112
|
+
> div:first-child {
|
|
113
|
+
margin-bottom: layout.$spacing-02;
|
|
114
|
+
|
|
115
|
+
> div {
|
|
116
|
+
height: auto;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Slimmer value. */
|
|
121
|
+
p {
|
|
122
|
+
@include type.type-style('heading-03');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.bcTitle {
|
|
128
|
+
@include type.type-style('heading-03');
|
|
129
|
+
color: $ui-05;
|
|
130
|
+
margin: 0 0 layout.$spacing-02;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.bcSubtitle {
|
|
134
|
+
@include type.type-style('body-01');
|
|
135
|
+
color: $text-02;
|
|
136
|
+
margin: 0;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* Page inset on the spacing scale rather than a percentage: 2% was ~28px on a desktop and
|
|
140
|
+
~20px on a laptop, so the dashboard sat at a different distance from the edge on every
|
|
141
|
+
screen and matched none of the spacing inside it. */
|
|
142
|
+
.bcLayout {
|
|
143
|
+
display: flex;
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
width: 100%;
|
|
146
|
+
padding: layout.$spacing-06;
|
|
147
|
+
row-gap: layout.$spacing-05;
|
|
148
|
+
|
|
149
|
+
.bcContent {
|
|
150
|
+
display: flex;
|
|
151
|
+
flex-direction: column;
|
|
152
|
+
width: 100%;
|
|
153
|
+
row-gap: layout.$spacing-05;
|
|
154
|
+
|
|
155
|
+
.bcContentFilters {
|
|
156
|
+
display: flex;
|
|
157
|
+
flex-direction: row;
|
|
158
|
+
justify-content: flex-end;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.bcContentTabs {
|
|
162
|
+
position: relative;
|
|
163
|
+
|
|
164
|
+
// Single date filter aligned to the right of the tab bar, on the
|
|
165
|
+
// same row as the Pending clearance / Bills / Claims tabs.
|
|
166
|
+
.tabRowDate {
|
|
167
|
+
position: absolute;
|
|
168
|
+
top: 0;
|
|
169
|
+
right: 0;
|
|
170
|
+
z-index: 2;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Remove the default Carbon tab-panel padding so the bordered panel
|
|
174
|
+
// content (e.g. the clearance card) sits flush against the
|
|
175
|
+
// Pending clearance / Bills / Claims tab bar on all sides.
|
|
176
|
+
:global(.cds--tab-content) {
|
|
177
|
+
padding-top: 0;
|
|
178
|
+
padding-left: 0;
|
|
179
|
+
padding-right: 0;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Bordered card for the Bills panel so it matches the Pending clearance
|
|
184
|
+
// (clearance) and Claims panels.
|
|
185
|
+
.panelCard {
|
|
186
|
+
padding: layout.$spacing-05;
|
|
187
|
+
border: 1px solid $ui-03;
|
|
188
|
+
background-color: $ui-01;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.tab {
|
|
194
|
+
min-width: 8.875rem;
|
|
195
|
+
|
|
196
|
+
&:active,
|
|
197
|
+
&:focus {
|
|
198
|
+
outline: 2px solid var(--brand-03) !important;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
&[aria-selected='true'] {
|
|
202
|
+
box-shadow: inset 0 2px 0 0 var(--brand-03) !important;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/* Hides the tab bar while a bill's details take over the page (the panels stay
|
|
206
|
+
mounted, so FacilityBills keeps its state). */
|
|
207
|
+
.hiddenTabList {
|
|
208
|
+
display: none;
|
|
209
|
+
}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import styles from './billing-claims-dashboard.component.scss';
|
|
3
|
+
import { DatePicker, DatePickerInput, Tab, TabList, TabPanel, TabPanels, Tabs, Tooltip } from '@carbon/react';
|
|
4
|
+
import { Information, Wallet } from '@carbon/react/icons';
|
|
5
|
+
import FacilityBills, {
|
|
6
|
+
CASH_PAYER_TAB,
|
|
7
|
+
resetFacilityBillsFilters,
|
|
8
|
+
SHA_PAYER_TAB,
|
|
9
|
+
} from './facility-bills/facility-bills.component';
|
|
10
|
+
import { useSession } from '@openmrs/esm-framework';
|
|
11
|
+
import ActiveVisits from './active-visits/active-visits.component';
|
|
12
|
+
import Clearance from './clearance/clearance.component';
|
|
13
|
+
import { billBalance, getPayableBills } from './cash-checklist/cash-checklist.resource';
|
|
14
|
+
import { getClearanceCounts } from '../../../shared/services/consultation-clearance.resource';
|
|
15
|
+
import { claimVisitToken, useFacilityClaimVisits, useLiveClaimStates } from '../../billing-claims.resource';
|
|
16
|
+
import { CLAIM_BUCKETS } from './facility-bills/claim-status';
|
|
17
|
+
import {
|
|
18
|
+
MetricsCard,
|
|
19
|
+
MetricsCardHeader,
|
|
20
|
+
MetricsCardBody,
|
|
21
|
+
MetricsCardItem,
|
|
22
|
+
} from '../../../service-queues/metrics/metrics-cards/metrics-card.component';
|
|
23
|
+
import FacilityAndWorkerSlot from '../../../shared/ui/facility-worker-slot/facility-worker.component-slot.component';
|
|
24
|
+
import PreauthorizationsTab from './preauth/preauthorizations-tab.component';
|
|
25
|
+
import AdmissionRequestsTab from './admissions/admission-requests-tab.component';
|
|
26
|
+
import FacilityBillsV3 from '../v3/facility-bills/facility-bills.component';
|
|
27
|
+
interface billingClaimsDashboardProps {}
|
|
28
|
+
|
|
29
|
+
const today = () => new Date().toLocaleDateString('en-CA');
|
|
30
|
+
|
|
31
|
+
/* The dashboard's own tabs, in order. Named because the summary tiles navigate by index,
|
|
32
|
+
and a bare number stopped saying which tab it meant once SHA claims was inserted in the
|
|
33
|
+
middle of the row. */
|
|
34
|
+
const TAB_PENDING_CLEARANCE = 0;
|
|
35
|
+
const TAB_FACILITY_BILLS = 1;
|
|
36
|
+
const TAB_SHA_CLAIMS = 2;
|
|
37
|
+
|
|
38
|
+
/* What each tab is for, on the tab itself. They were paragraphs standing above the tables
|
|
39
|
+
— three lines of standing copy on a page opened dozens of times a day, read once.
|
|
40
|
+
Kept to two short sentences each: what the tab lists, then what you do there. A tooltip
|
|
41
|
+
is capped at a few hundred pixels wide, so a paragraph in one becomes a tall column that
|
|
42
|
+
runs off the screen rather than something anyone reads on the way past. */
|
|
43
|
+
const PENDING_HINT =
|
|
44
|
+
'Visits that have started but are not in a service queue yet. Send each patient to triage, then mark their consultation fee paid to release them to be seen.';
|
|
45
|
+
const BILLS_HINT =
|
|
46
|
+
'Bills settled at the cash point, for the selected date. Open a patient for the itemised bill, payments received and the balance outstanding.';
|
|
47
|
+
const CLAIMS_HINT =
|
|
48
|
+
'SHA claims for the selected date, grouped by status. Open one to check its diagnoses, interventions and invoices, or to submit or close it.';
|
|
49
|
+
const PREAUTH_HINT =
|
|
50
|
+
'Preauths for the selected date. Needs raise lists items still waiting for one; Status shows their live position at SHA and can resend doctor consent.';
|
|
51
|
+
const ADMISSIONS_HINT =
|
|
52
|
+
'Patients a clinician has asked to admit at this facility. Admit one to a bed, or start the SHA claim for the inpatient visit it opens.';
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* An explanation hung off a tab's label.
|
|
56
|
+
*
|
|
57
|
+
* A `title` prop on the `Tab` itself is dropped: Carbon spreads `rest` onto the button and
|
|
58
|
+
* then sets `title: children` afterwards, so the tab's own label always wins. A `title` on
|
|
59
|
+
* an inner span does work, but a native tooltip waits about a second before appearing,
|
|
60
|
+
* which is long enough that people stop expecting one.
|
|
61
|
+
*
|
|
62
|
+
* So the hint is a Carbon `Tooltip` with its delay taken off. It nests inside the tab
|
|
63
|
+
* because Carbon's Tooltip does not inject a trigger of its own — it clones event handlers
|
|
64
|
+
* and aria attributes onto whatever child it is given, and notably not `tabIndex`, so the
|
|
65
|
+
* icon stays inert and the tab keeps sole ownership of focus and keyboard handling.
|
|
66
|
+
*
|
|
67
|
+
* `autoAlign` matters here: the tab list scrolls (`overflow-x: auto`), which would clip a
|
|
68
|
+
* statically positioned bubble. Floating-ui places it outside that clipping context — the
|
|
69
|
+
* same thing Carbon does for its own overflowing-tab-label tooltip.
|
|
70
|
+
*/
|
|
71
|
+
const TabHint: React.FC<{ text: string }> = ({ text }) => (
|
|
72
|
+
<Tooltip label={text} align="bottom" enterDelayMs={0} leaveDelayMs={0} autoAlign className={styles.tabHint}>
|
|
73
|
+
<span className={styles.tabHintIcon}>
|
|
74
|
+
<Information size={16} />
|
|
75
|
+
</span>
|
|
76
|
+
</Tooltip>
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
// The chosen filter date is held at module scope, not in component state alone, so it
|
|
80
|
+
// survives this dashboard unmounting and remounting while the user stays inside the
|
|
81
|
+
// billing route — opening a bill's invoice or the claim workspace and coming back.
|
|
82
|
+
// Deliberately not sessionStorage: a page reload should drop it and start on today.
|
|
83
|
+
let lastSelectedDate: string | null = null;
|
|
84
|
+
// Same reasoning for the open tab: opening a claim now navigates to the claim's own
|
|
85
|
+
// page, which unmounts this dashboard, and the breadcrumb back should return to the tab
|
|
86
|
+
// the claim was picked from rather than the first one.
|
|
87
|
+
let lastSelectedTab: number | null = null;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Forget the remembered date, tab and bill filters so the dashboard opens fresh. Called
|
|
91
|
+
* when the user leaves the billing route altogether (see BillingRoot) or re-clicks the
|
|
92
|
+
* "Accounting" side-nav link, both of which are a request for a fresh view.
|
|
93
|
+
*/
|
|
94
|
+
/**
|
|
95
|
+
* The date the dashboard is currently filtered to, or null when it has been forgotten.
|
|
96
|
+
* The claim page uses it to look up a claim on the day it was being read before falling
|
|
97
|
+
* back to searching the whole location.
|
|
98
|
+
*/
|
|
99
|
+
export function rememberedBillingDate(): string | null {
|
|
100
|
+
return lastSelectedDate;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function resetBillingDateFilter() {
|
|
104
|
+
lastSelectedDate = null;
|
|
105
|
+
lastSelectedTab = null;
|
|
106
|
+
resetFacilityBillsFilters();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const BillingClaimsDashboard: React.FC<billingClaimsDashboardProps> = () => {
|
|
110
|
+
const session = useSession();
|
|
111
|
+
const locationUuid = session.sessionLocation?.uuid ?? '';
|
|
112
|
+
const [billingDate, setBillingDate] = useState<string>(() => lastSelectedDate ?? today());
|
|
113
|
+
const [awaiting, setAwaiting] = useState(0);
|
|
114
|
+
const [cashDue, setCashDue] = useState(0);
|
|
115
|
+
const [selectedTab, setSelectedTab] = useState(() => lastSelectedTab ?? 0);
|
|
116
|
+
const [billsDetailsOpen, setBillsDetailsOpen] = useState(false);
|
|
117
|
+
// Which status bucket the bills tab should open on, with a nonce so clicking the same
|
|
118
|
+
// tile twice still navigates. The payer is no longer part of it: each payer is its own
|
|
119
|
+
// dashboard tab now, so `tab` alone says which list a tile means.
|
|
120
|
+
const [billsNav, setBillsNav] = useState<{ statusKey?: string; nonce: number }>({ nonce: 0 });
|
|
121
|
+
// Which sub-tab to open, with a nonce so repeat clicks still re-navigate.
|
|
122
|
+
const [clearanceNav, setClearanceNav] = useState<{ key?: string; nonce: number }>({ nonce: 0 });
|
|
123
|
+
// The SHA claims tab has its own, since it is a separate instance of FacilityBills and
|
|
124
|
+
// sharing billsNav would send both lists to the same bucket.
|
|
125
|
+
const [claimsNav, setClaimsNav] = useState<{ statusKey?: string; nonce: number }>({ nonce: 0 });
|
|
126
|
+
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
lastSelectedTab = selectedTab;
|
|
129
|
+
}, [selectedTab]);
|
|
130
|
+
|
|
131
|
+
useEffect(() => {
|
|
132
|
+
if (locationUuid) {
|
|
133
|
+
getClearanceCounts(locationUuid).then((c) => setAwaiting(c.awaiting));
|
|
134
|
+
}
|
|
135
|
+
getPayableBills(locationUuid).then((bills) => setCashDue(bills.filter((b) => billBalance(b) > 0).length));
|
|
136
|
+
}, [locationUuid]);
|
|
137
|
+
|
|
138
|
+
// The claim tiles count the same claims the bills tab lists, by the same live states.
|
|
139
|
+
// They used to read a demo store, so they reported fixtures rather than this facility's
|
|
140
|
+
// claims. The claim-state cache is shared, so counting here costs no extra HIE calls
|
|
141
|
+
// beyond the ones the bills tab already makes.
|
|
142
|
+
const { claimVisits, loading: claimVisitsLoading } = useFacilityClaimVisits(locationUuid, billingDate);
|
|
143
|
+
const claimTokens = useMemo(() => claimVisits.map(claimVisitToken).filter(Boolean), [claimVisits]);
|
|
144
|
+
const { states: liveClaimStates, settled: claimStatesSettled } = useLiveClaimStates(claimTokens, locationUuid);
|
|
145
|
+
|
|
146
|
+
// Held back until every state is confirmed: a count off the stored states would name
|
|
147
|
+
// claims as drafts that were submitted days ago.
|
|
148
|
+
const claimCountsReady = !claimVisitsLoading && claimStatesSettled;
|
|
149
|
+
const claimCounts = useMemo(() => {
|
|
150
|
+
const counts: Record<string, number> = {};
|
|
151
|
+
for (const bucket of CLAIM_BUCKETS) {
|
|
152
|
+
const statuses = new Set(bucket.statuses.map((s) => s.toUpperCase()));
|
|
153
|
+
counts[bucket.key] = claimVisits.filter((cv) => {
|
|
154
|
+
const state = (liveClaimStates[claimVisitToken(cv)] || cv.visitResponse?.workflow_state || '')
|
|
155
|
+
.trim()
|
|
156
|
+
.toUpperCase();
|
|
157
|
+
return statuses.has(state);
|
|
158
|
+
}).length;
|
|
159
|
+
}
|
|
160
|
+
return counts;
|
|
161
|
+
}, [claimVisits, liveClaimStates]);
|
|
162
|
+
|
|
163
|
+
const claimTileValue = (bucketKey: string) => (claimCountsReady ? (claimCounts[bucketKey] ?? 0) : 0);
|
|
164
|
+
|
|
165
|
+
const summary: {
|
|
166
|
+
key: string;
|
|
167
|
+
label: string;
|
|
168
|
+
unit: string;
|
|
169
|
+
value: number;
|
|
170
|
+
tab: number;
|
|
171
|
+
color?: 'red';
|
|
172
|
+
clearKey?: string;
|
|
173
|
+
billsStatusKey?: string;
|
|
174
|
+
claimsStatusKey?: string;
|
|
175
|
+
}[] = [
|
|
176
|
+
{
|
|
177
|
+
key: 'awaiting',
|
|
178
|
+
label: 'Awaiting clearance',
|
|
179
|
+
unit: 'Patients',
|
|
180
|
+
value: awaiting,
|
|
181
|
+
tab: TAB_PENDING_CLEARANCE,
|
|
182
|
+
clearKey: 'pending',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
key: 'cashdue',
|
|
186
|
+
label: 'Facility bills',
|
|
187
|
+
unit: 'Patients',
|
|
188
|
+
value: cashDue,
|
|
189
|
+
tab: TAB_FACILITY_BILLS,
|
|
190
|
+
// The tile counts bills still owing, so it lands on the bucket holding them rather
|
|
191
|
+
// than on whichever one was last being read.
|
|
192
|
+
billsStatusKey: 'pending',
|
|
193
|
+
},
|
|
194
|
+
// Straight to the bucket being counted: the SHA claims tab, Drafts / Rejected.
|
|
195
|
+
{
|
|
196
|
+
key: 'draft',
|
|
197
|
+
label: 'Draft claims',
|
|
198
|
+
unit: 'Claims',
|
|
199
|
+
value: claimTileValue('draft'),
|
|
200
|
+
tab: TAB_SHA_CLAIMS,
|
|
201
|
+
claimsStatusKey: 'draft',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
key: 'rejected',
|
|
205
|
+
label: 'Rejected claims',
|
|
206
|
+
unit: 'Claims',
|
|
207
|
+
value: claimTileValue('rejected'),
|
|
208
|
+
color: 'red',
|
|
209
|
+
tab: TAB_SHA_CLAIMS,
|
|
210
|
+
claimsStatusKey: 'rejected',
|
|
211
|
+
},
|
|
212
|
+
];
|
|
213
|
+
|
|
214
|
+
const handleTileClick = (s: {
|
|
215
|
+
tab: number;
|
|
216
|
+
clearKey?: string;
|
|
217
|
+
billsStatusKey?: string;
|
|
218
|
+
claimsStatusKey?: string;
|
|
219
|
+
}) => {
|
|
220
|
+
setSelectedTab(s.tab);
|
|
221
|
+
if (s.clearKey) {
|
|
222
|
+
setClearanceNav((p) => ({ key: s.clearKey, nonce: p.nonce + 1 }));
|
|
223
|
+
}
|
|
224
|
+
if (s.billsStatusKey) {
|
|
225
|
+
setBillsNav((p) => ({ statusKey: s.billsStatusKey, nonce: p.nonce + 1 }));
|
|
226
|
+
}
|
|
227
|
+
if (s.claimsStatusKey) {
|
|
228
|
+
setClaimsNav((p) => ({ statusKey: s.claimsStatusKey, nonce: p.nonce + 1 }));
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
const handleDateChange = (value: string) => {
|
|
233
|
+
const next = value || today();
|
|
234
|
+
lastSelectedDate = next;
|
|
235
|
+
setBillingDate(next);
|
|
236
|
+
};
|
|
237
|
+
return (
|
|
238
|
+
<>
|
|
239
|
+
<div className={styles.bcLayout}>
|
|
240
|
+
<div className={styles.bcHeader}>
|
|
241
|
+
<span className={styles.bcHeaderIcon}>
|
|
242
|
+
<Wallet size={24} />
|
|
243
|
+
</span>
|
|
244
|
+
<div className={styles.bcHeaderTitle}>
|
|
245
|
+
<h3 className={styles.bcTitle}>Billing & Claims</h3>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
<div className={styles.summaryRow}>
|
|
249
|
+
{summary.map((s) => (
|
|
250
|
+
<button key={s.key} type="button" className={styles.metricButton} onClick={() => handleTileClick(s)}>
|
|
251
|
+
<MetricsCard>
|
|
252
|
+
<MetricsCardHeader title={s.label} />
|
|
253
|
+
<MetricsCardBody>
|
|
254
|
+
<MetricsCardItem label={s.unit} value={s.value ? s.value : '--'} color={s.color} />
|
|
255
|
+
</MetricsCardBody>
|
|
256
|
+
</MetricsCard>
|
|
257
|
+
</button>
|
|
258
|
+
))}
|
|
259
|
+
</div>
|
|
260
|
+
<div className={styles.bcContent}>
|
|
261
|
+
<div className={styles.bcContentTabs}>
|
|
262
|
+
<DatePicker
|
|
263
|
+
className={styles.tabRowDate}
|
|
264
|
+
datePickerType="single"
|
|
265
|
+
dateFormat="Y-m-d"
|
|
266
|
+
value={billingDate}
|
|
267
|
+
maxDate={today()}
|
|
268
|
+
onChange={(dates) => handleDateChange(dates?.[0] ? (dates[0] as Date).toLocaleDateString('en-CA') : '')}
|
|
269
|
+
>
|
|
270
|
+
<DatePickerInput id="billing-date" labelText="" placeholder="yyyy-mm-dd" size="sm" />
|
|
271
|
+
</DatePicker>
|
|
272
|
+
<Tabs selectedIndex={selectedTab} onChange={({ selectedIndex }) => setSelectedTab(selectedIndex)}>
|
|
273
|
+
{/* Tab list hidden while a bill's details are open, but the panels stay
|
|
274
|
+
mounted so FacilityBills keeps its selected patient and fetched data. */}
|
|
275
|
+
<TabList scrollDebounceWait={200}>
|
|
276
|
+
<Tab>
|
|
277
|
+
Pending clearance
|
|
278
|
+
<TabHint text={PENDING_HINT} />
|
|
279
|
+
</Tab>
|
|
280
|
+
<Tab>
|
|
281
|
+
Facility bills
|
|
282
|
+
<TabHint text={BILLS_HINT} />
|
|
283
|
+
</Tab>
|
|
284
|
+
<Tab>
|
|
285
|
+
SHA claims
|
|
286
|
+
<TabHint text={CLAIMS_HINT} />
|
|
287
|
+
</Tab>
|
|
288
|
+
<Tab>
|
|
289
|
+
Preauthorizations
|
|
290
|
+
<TabHint text={PREAUTH_HINT} />
|
|
291
|
+
</Tab>
|
|
292
|
+
{/* <Tab>Preauth List</Tab> */}
|
|
293
|
+
{/* <Tab>Claims</Tab> */}
|
|
294
|
+
<Tab>
|
|
295
|
+
Admission Requests
|
|
296
|
+
<TabHint text={ADMISSIONS_HINT} />
|
|
297
|
+
</Tab>
|
|
298
|
+
</TabList>
|
|
299
|
+
<TabPanels>
|
|
300
|
+
<TabPanel>
|
|
301
|
+
<Clearance
|
|
302
|
+
// The paragraph that introduced this list now hangs off the tab that
|
|
303
|
+
// opens it — see PENDING_HINT in Clearance.
|
|
304
|
+
pendingTab={<ActiveVisits date={billingDate} />}
|
|
305
|
+
initialTab={clearanceNav.key}
|
|
306
|
+
navNonce={clearanceNav.nonce}
|
|
307
|
+
date={billingDate}
|
|
308
|
+
/>
|
|
309
|
+
</TabPanel>
|
|
310
|
+
<TabPanel>
|
|
311
|
+
<FacilityBillsV3 locationUuid={locationUuid} billingDate={billingDate} />
|
|
312
|
+
</TabPanel>
|
|
313
|
+
<TabPanel>
|
|
314
|
+
{/* The same table on the SHA payer. It was a sub-tab inside Facility
|
|
315
|
+
bills; claims are read often enough, and are enough their own thing,
|
|
316
|
+
to be reached in one click rather than two. */}
|
|
317
|
+
<FacilityBills
|
|
318
|
+
locationUuid={locationUuid}
|
|
319
|
+
billingDate={billingDate}
|
|
320
|
+
payerTab={SHA_PAYER_TAB}
|
|
321
|
+
navStatusKey={claimsNav.statusKey}
|
|
322
|
+
navNonce={claimsNav.nonce}
|
|
323
|
+
/>
|
|
324
|
+
</TabPanel>
|
|
325
|
+
<TabPanel>
|
|
326
|
+
<PreauthorizationsTab
|
|
327
|
+
locationUuid={locationUuid}
|
|
328
|
+
billingDate={billingDate}
|
|
329
|
+
onDateChange={handleDateChange}
|
|
330
|
+
/>
|
|
331
|
+
</TabPanel>
|
|
332
|
+
<TabPanel>
|
|
333
|
+
{/* This tab had no panel at all — five tabs against four panels, so
|
|
334
|
+
selecting it showed the preauth list or nothing depending on how
|
|
335
|
+
Carbon indexed them. */}
|
|
336
|
+
<AdmissionRequestsTab locationUuid={locationUuid} />
|
|
337
|
+
</TabPanel>
|
|
338
|
+
</TabPanels>
|
|
339
|
+
</Tabs>
|
|
340
|
+
</div>
|
|
341
|
+
</div>
|
|
342
|
+
</div>
|
|
343
|
+
</>
|
|
344
|
+
);
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
export default BillingClaimsDashboard;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
@use '@carbon/layout';
|
|
2
|
+
@use '@carbon/type';
|
|
3
|
+
@use '@carbon/colors';
|
|
4
|
+
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
5
|
+
|
|
6
|
+
.doc {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
gap: layout.$spacing-05;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.docHead {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: flex-start;
|
|
15
|
+
justify-content: space-between;
|
|
16
|
+
gap: layout.$spacing-05;
|
|
17
|
+
padding-bottom: layout.$spacing-04;
|
|
18
|
+
border-bottom: 1px solid $ui-03;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.docNo {
|
|
22
|
+
@include type.type-style('heading-compact-02');
|
|
23
|
+
font-family: 'IBM Plex Mono', monospace;
|
|
24
|
+
color: $ui-05;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.docFor {
|
|
28
|
+
@include type.type-style('body-compact-01');
|
|
29
|
+
color: $ui-05;
|
|
30
|
+
margin-top: 2px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.docMeta {
|
|
34
|
+
@include type.type-style('label-01');
|
|
35
|
+
color: $text-02;
|
|
36
|
+
margin-top: 2px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.tableWrap {
|
|
40
|
+
overflow-x: auto;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.num {
|
|
44
|
+
text-align: right;
|
|
45
|
+
font-variant-numeric: tabular-nums;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.mono {
|
|
49
|
+
font-family: 'IBM Plex Mono', monospace;
|
|
50
|
+
font-size: 0.82rem;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.totals {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-direction: column;
|
|
56
|
+
gap: layout.$spacing-02;
|
|
57
|
+
align-self: flex-end;
|
|
58
|
+
min-width: 16rem;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.totalRow {
|
|
62
|
+
display: flex;
|
|
63
|
+
justify-content: space-between;
|
|
64
|
+
gap: layout.$spacing-05;
|
|
65
|
+
@include type.type-style('body-compact-01');
|
|
66
|
+
color: $text-02;
|
|
67
|
+
|
|
68
|
+
strong {
|
|
69
|
+
color: $ui-05;
|
|
70
|
+
font-variant-numeric: tabular-nums;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.paid {
|
|
75
|
+
color: colors.$green-60;
|
|
76
|
+
font-weight: 600;
|
|
77
|
+
font-variant-numeric: tabular-nums;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.balance {
|
|
81
|
+
color: colors.$red-60;
|
|
82
|
+
font-weight: 600;
|
|
83
|
+
font-variant-numeric: tabular-nums;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.note {
|
|
87
|
+
@include type.type-style('label-01');
|
|
88
|
+
color: $text-03;
|
|
89
|
+
margin: 0;
|
|
90
|
+
}
|