@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,198 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CheckmarkFilled, InformationFilled, WarningAltFilled } from '@carbon/react/icons';
|
|
3
|
+
import { InlineLoading, Tag, Tooltip } from '@carbon/react';
|
|
4
|
+
import { type ClaimsVisit } from '../../types';
|
|
5
|
+
import { claimStatusTagType, getClaimWorkflowPhase, humaniseClaimStatus } from '../../claim-statuses';
|
|
6
|
+
import styles from './claim-history.component.scss';
|
|
7
|
+
|
|
8
|
+
interface ClaimHistoryProps {
|
|
9
|
+
claimsVisit: ClaimsVisit;
|
|
10
|
+
/** No live `workflow_state` has arrived yet, so the current entry holds back rather
|
|
11
|
+
than assert the copy stored when the visit was recorded. */
|
|
12
|
+
claimStateUnconfirmed?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
type MilestoneTone = 'done' | 'warning';
|
|
16
|
+
|
|
17
|
+
interface Milestone {
|
|
18
|
+
/** The chip's own word, kept to one or two so a claim's whole history fits on a line. */
|
|
19
|
+
label: string;
|
|
20
|
+
/** What qualifies it — a count, a retry, an outcome. Rendered dimmed beside the label. */
|
|
21
|
+
note?: string;
|
|
22
|
+
/** The unabbreviated sentence, for the chip's hover title. */
|
|
23
|
+
detail: string;
|
|
24
|
+
tone: MilestoneTone;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const PHASE_LABEL: Record<string, string> = {
|
|
28
|
+
preparation: 'Being prepared',
|
|
29
|
+
submission: 'Submission and dispatch',
|
|
30
|
+
payer: 'With the payer',
|
|
31
|
+
final: 'Closed',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const CAVEAT =
|
|
35
|
+
'What the claim records having happened. The claims API returns no dates for these, and nothing here says the order they happened in.';
|
|
36
|
+
|
|
37
|
+
const plural = (n: number, one: string, many: string) => `${n} ${n === 1 ? one : many}`;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* What has happened to this claim, as far as the claim itself evidences it.
|
|
41
|
+
*
|
|
42
|
+
* There is no transition log to read: `/claim-preview/provider` returns the claim's
|
|
43
|
+
* current `workflow_state` and nothing about the states before it. So this is not a
|
|
44
|
+
* progress bar through a fixed lifecycle — claims don't share one path, and a bar would
|
|
45
|
+
* assert steps that never happened. Every chip below is instead derived from a field the
|
|
46
|
+
* claim actually carries, so a claim that skipped a stage simply has no chip for it.
|
|
47
|
+
*
|
|
48
|
+
* It reads as a status line and a row of chips rather than a stacked list because the
|
|
49
|
+
* entries have no order to preserve and no dates to align — being unordered, they lose
|
|
50
|
+
* nothing by wrapping, and the section keeps to two or three lines inside a details pane
|
|
51
|
+
* that has several more sections to get through.
|
|
52
|
+
*/
|
|
53
|
+
const ClaimHistory: React.FC<ClaimHistoryProps> = ({ claimsVisit, claimStateUnconfirmed }) => {
|
|
54
|
+
if (!claimsVisit) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const diagnoses = Number(claimsVisit.diagnoses_count ?? 0);
|
|
59
|
+
const attachments = Number(claimsVisit.claim_attachments_count ?? 0);
|
|
60
|
+
const invoiceCount = Number(claimsVisit.number_of_invoices ?? 0);
|
|
61
|
+
const retries = Number(claimsVisit.retry_count ?? 0);
|
|
62
|
+
const dispatched = (claimsVisit.invoices ?? []).some(
|
|
63
|
+
(invoice) => (invoice?.dispatch_status ?? '').trim().toUpperCase() === 'DISPATCHED',
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
const milestones: Milestone[] = [];
|
|
67
|
+
|
|
68
|
+
// --- What was assembled, each counted from the claim's own totals.
|
|
69
|
+
if (diagnoses > 0) {
|
|
70
|
+
milestones.push({
|
|
71
|
+
label: 'Diagnoses',
|
|
72
|
+
note: String(diagnoses),
|
|
73
|
+
detail: `${plural(diagnoses, 'diagnosis', 'diagnoses')} recorded`,
|
|
74
|
+
tone: 'done',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (invoiceCount > 0) {
|
|
78
|
+
milestones.push({
|
|
79
|
+
label: 'Invoiced',
|
|
80
|
+
note: String(invoiceCount),
|
|
81
|
+
detail: `${plural(invoiceCount, 'invoice', 'invoices')} raised`,
|
|
82
|
+
tone: 'done',
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (attachments > 0) {
|
|
86
|
+
milestones.push({
|
|
87
|
+
label: 'Documents',
|
|
88
|
+
note: String(attachments),
|
|
89
|
+
detail: `${plural(attachments, 'document', 'documents')} attached`,
|
|
90
|
+
tone: 'done',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (claimsVisit.is_charge_master_mapped) {
|
|
94
|
+
milestones.push({ label: 'Charges mapped', detail: 'Charges mapped to the charge master', tone: 'done' });
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// --- The visit's authorisation, in the payer's own words.
|
|
98
|
+
if ((claimsVisit.claim_auth_status ?? '').trim()) {
|
|
99
|
+
const authStatus = humaniseClaimStatus(claimsVisit.claim_auth_status);
|
|
100
|
+
milestones.push({
|
|
101
|
+
label: 'Visit auth',
|
|
102
|
+
note: authStatus,
|
|
103
|
+
detail: `Visit authorisation: ${authStatus}`,
|
|
104
|
+
tone: claimStatusTagType(claimsVisit.claim_auth_status) === 'red' ? 'warning' : 'done',
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// --- The hand-off. A dispatched invoice is the evidence the claim reached the payer;
|
|
109
|
+
// a retry count is evidence it took more than one attempt.
|
|
110
|
+
if (dispatched) {
|
|
111
|
+
milestones.push({
|
|
112
|
+
label: 'Dispatched',
|
|
113
|
+
note: retries > 0 ? `after ${retries}` : undefined,
|
|
114
|
+
detail:
|
|
115
|
+
retries > 0
|
|
116
|
+
? `Dispatched to the payer after ${plural(retries, 'failed attempt', 'failed attempts')}`
|
|
117
|
+
: 'Dispatched to the payer',
|
|
118
|
+
tone: 'done',
|
|
119
|
+
});
|
|
120
|
+
} else if (retries > 0) {
|
|
121
|
+
milestones.push({
|
|
122
|
+
label: 'Dispatch failed',
|
|
123
|
+
note: `${retries}×`,
|
|
124
|
+
detail: `${plural(retries, 'failed attempt', 'failed attempts')} to dispatch, not yet dispatched`,
|
|
125
|
+
tone: 'warning',
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// --- What came back.
|
|
130
|
+
if (claimsVisit.has_reviewed_claim) {
|
|
131
|
+
milestones.push({ label: 'Reviewed', detail: 'Reviewed by the payer', tone: 'done' });
|
|
132
|
+
}
|
|
133
|
+
if (claimsVisit.is_resubmitted) {
|
|
134
|
+
milestones.push({ label: 'Resubmitted', detail: 'Sent to the payer more than once', tone: 'done' });
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// --- Anomalies the payer will act on, worth surfacing beside the rest.
|
|
138
|
+
if (claimsVisit.is_zero) {
|
|
139
|
+
milestones.push({ label: 'Zero value', detail: 'Zero-value claim', tone: 'warning' });
|
|
140
|
+
}
|
|
141
|
+
if (claimsVisit.is_negative) {
|
|
142
|
+
milestones.push({ label: 'Negative value', detail: 'Negative-value claim', tone: 'warning' });
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const phase = getClaimWorkflowPhase(claimsVisit.workflow_state);
|
|
146
|
+
const phaseLabel = PHASE_LABEL[phase] ?? '';
|
|
147
|
+
|
|
148
|
+
return (
|
|
149
|
+
<div className={styles.history}>
|
|
150
|
+
{/* Where the claim stands now, leading and always shown — even on a claim that
|
|
151
|
+
evidences nothing else, which is exactly what a fresh draft looks like. The
|
|
152
|
+
"Now" label is what separates this from the settled facts below it, standing in
|
|
153
|
+
for the divider a wider column would have used. */}
|
|
154
|
+
<div className={styles.status}>
|
|
155
|
+
<span className={styles.statusLabel}>Now</span>
|
|
156
|
+
{claimStateUnconfirmed ? (
|
|
157
|
+
<InlineLoading status="active" description="Confirming…" className={styles.confirming} />
|
|
158
|
+
) : (
|
|
159
|
+
<>
|
|
160
|
+
<Tag size="sm" type={claimStatusTagType(claimsVisit.workflow_state)} className={styles.statusTag}>
|
|
161
|
+
{claimsVisit.workflow_state || 'Unknown'}
|
|
162
|
+
</Tag>
|
|
163
|
+
{phaseLabel ? <span className={styles.statusNote}>{phaseLabel}</span> : null}
|
|
164
|
+
</>
|
|
165
|
+
)}
|
|
166
|
+
|
|
167
|
+
{/* The caveat that used to sit under the list as a sentence. It qualifies the
|
|
168
|
+
chips rather than adding to them, so it hides behind the icon and stops
|
|
169
|
+
costing a line of its own. */}
|
|
170
|
+
<Tooltip align="bottom-right" label={CAVEAT} className={styles.caveat}>
|
|
171
|
+
<button type="button" className={styles.caveatTrigger} aria-label="About this history">
|
|
172
|
+
<InformationFilled size={16} />
|
|
173
|
+
</button>
|
|
174
|
+
</Tooltip>
|
|
175
|
+
</div>
|
|
176
|
+
|
|
177
|
+
{/* Unordered by nature: each chip is one fact the claim carries, not a step that
|
|
178
|
+
led to the next. */}
|
|
179
|
+
{milestones.length ? (
|
|
180
|
+
<ul className={styles.chips}>
|
|
181
|
+
{milestones.map((milestone, index) => (
|
|
182
|
+
<li
|
|
183
|
+
className={`${styles.chip} ${milestone.tone === 'warning' ? styles.chipWarning : styles.chipDone}`}
|
|
184
|
+
key={`${milestone.label}-${index}`}
|
|
185
|
+
title={milestone.detail}
|
|
186
|
+
>
|
|
187
|
+
{milestone.tone === 'warning' ? <WarningAltFilled size={16} /> : <CheckmarkFilled size={16} />}
|
|
188
|
+
<span className={styles.chipLabel}>{milestone.label}</span>
|
|
189
|
+
{milestone.note ? <span className={styles.chipNote}>{milestone.note}</span> : null}
|
|
190
|
+
</li>
|
|
191
|
+
))}
|
|
192
|
+
</ul>
|
|
193
|
+
) : null}
|
|
194
|
+
</div>
|
|
195
|
+
);
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
export default ClaimHistory;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button, Tag } from '@carbon/react';
|
|
3
|
+
import { type ClaimAttachment, type PatientFacilityBillDetails, type VisitIntervention } from '../../types';
|
|
4
|
+
import { asBool } from '../../preauth/preauth.resource';
|
|
5
|
+
import { interventionHasBlockingPreauth } from '../../../../../claims/claims.resource';
|
|
6
|
+
import RecordCards, { YesNo, type RecordCardModel } from '../shared/record-cards.component';
|
|
7
|
+
import InterventionAttachments from './intervention-attachments.component';
|
|
8
|
+
import ClaimInterventionPanel, { type InterventionClaimFacts } from './claim-intervention-panel.component';
|
|
9
|
+
|
|
10
|
+
interface claimInterventionDetailsProps {
|
|
11
|
+
claimInterventions: VisitIntervention[];
|
|
12
|
+
consentToken: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Context needed for the per-intervention required-documents region.
|
|
16
|
+
export interface InterventionAttachmentOpts {
|
|
17
|
+
consentToken: string;
|
|
18
|
+
locationUuid: string;
|
|
19
|
+
claimAttachments: ClaimAttachment[];
|
|
20
|
+
bill?: PatientFacilityBillDetails;
|
|
21
|
+
/** Only a draft claim accepts new documents; otherwise the rows are read-only. */
|
|
22
|
+
isClaimDraft?: boolean;
|
|
23
|
+
/** Whether the claim is currently open to content edits (gates Switch / Raise preauth). */
|
|
24
|
+
canSwitchIntervention?: boolean;
|
|
25
|
+
/** Launches the switch workflow scoped to this card's intervention. */
|
|
26
|
+
onSwitchIntervention?: (intervention: VisitIntervention) => void;
|
|
27
|
+
/** Opens the normal preauth workspace for this intervention. */
|
|
28
|
+
onRaisePreauth?: (intervention: VisitIntervention) => void;
|
|
29
|
+
/** Raw GET /pre-auth/preview payload — used to hide Raise when a non-failed row exists. */
|
|
30
|
+
preauthPreview?: unknown;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// A claim intervention is actionable only while its workflow_state is ACTIVE;
|
|
34
|
+
// one already switched out (INACTIVE) has nothing left to change.
|
|
35
|
+
const isActiveIntervention = (iv: VisitIntervention) => (iv.workflow_state ?? '').toUpperCase() === 'ACTIVE';
|
|
36
|
+
|
|
37
|
+
// Builder so the cards can be merged into a shared grid with the invoices. When `opts`
|
|
38
|
+
// is given, each card gets an expandable "required documents" region driven by that
|
|
39
|
+
// intervention's own applicable_document_types.
|
|
40
|
+
export function buildInterventionRecords(
|
|
41
|
+
claimInterventions: VisitIntervention[],
|
|
42
|
+
opts?: InterventionAttachmentOpts,
|
|
43
|
+
/** What the claim page states above the panel, so the panel doesn't restate it. */
|
|
44
|
+
claimFacts?: InterventionClaimFacts,
|
|
45
|
+
): RecordCardModel[] {
|
|
46
|
+
return (claimInterventions ?? []).map((ci) => {
|
|
47
|
+
const requiredDocs = Array.from(new Set(ci.applicable_document_types ?? []));
|
|
48
|
+
const canAct = Boolean(opts?.canSwitchIntervention) && isActiveIntervention(ci);
|
|
49
|
+
const alreadyRaised = interventionHasBlockingPreauth(opts?.preauthPreview, ci.intervention_code);
|
|
50
|
+
const canRaisePreauth = canAct && Boolean(ci.needs_preauth) && !alreadyRaised;
|
|
51
|
+
const hasActions = Boolean(opts?.onSwitchIntervention || opts?.onRaisePreauth);
|
|
52
|
+
const raisePreauthReason = !ci.needs_preauth
|
|
53
|
+
? 'This intervention does not need preauth'
|
|
54
|
+
: alreadyRaised
|
|
55
|
+
? 'Preauth already raised for this intervention'
|
|
56
|
+
: 'This intervention is no longer open to changes';
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
// How the side panel renders this intervention, in place of the generic field grid.
|
|
60
|
+
panel: (
|
|
61
|
+
<ClaimInterventionPanel
|
|
62
|
+
intervention={ci}
|
|
63
|
+
attachmentOpts={opts}
|
|
64
|
+
claimFacts={claimFacts}
|
|
65
|
+
canSwitch={canAct}
|
|
66
|
+
canRaisePreauth={canRaisePreauth}
|
|
67
|
+
onSwitch={opts?.onSwitchIntervention ? () => opts.onSwitchIntervention!(ci) : undefined}
|
|
68
|
+
onRaisePreauth={opts?.onRaisePreauth ? () => opts.onRaisePreauth!(ci) : undefined}
|
|
69
|
+
raisePreauthReason={raisePreauthReason}
|
|
70
|
+
/>
|
|
71
|
+
),
|
|
72
|
+
tone: 'purple',
|
|
73
|
+
kind: 'Intervention',
|
|
74
|
+
title: ci.intervention_name,
|
|
75
|
+
badge: ci.workflow_state ? (
|
|
76
|
+
<Tag size="sm" type="teal">
|
|
77
|
+
{ci.workflow_state}
|
|
78
|
+
</Tag>
|
|
79
|
+
) : undefined,
|
|
80
|
+
fields: [
|
|
81
|
+
{ label: 'Code', value: ci.intervention_code },
|
|
82
|
+
{ label: 'Payment mechanism', value: ci.intervention_payment_mechanism },
|
|
83
|
+
{ label: 'Scheme', value: ci.supported_scheme },
|
|
84
|
+
{ label: 'Sub benefit code', value: ci.sub_benefit_code },
|
|
85
|
+
{ label: 'Fund', value: ci.intervention_fund },
|
|
86
|
+
{ label: 'Keph level tariff', value: ci.keph_level_tarrif },
|
|
87
|
+
{ label: 'Accrued per diem', value: ci.accrued_per_diem_amount },
|
|
88
|
+
{ label: 'Accrued per diem days', value: ci.accrued_per_diem_days },
|
|
89
|
+
{ label: 'Active for UHC', value: <YesNo value={ci.active_for_uhc} /> },
|
|
90
|
+
{ label: 'Needs preauth', value: <YesNo value={ci.needs_preauth} /> },
|
|
91
|
+
{
|
|
92
|
+
label: 'Surgical preauth',
|
|
93
|
+
value: <YesNo value={asBool(ci.requires_surgical_preauth ?? (ci as any).requiresSurgicalPreauth)} />,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
label: 'Renal preauth',
|
|
97
|
+
value: <YesNo value={asBool(ci.requires_renal_preauth ?? (ci as any).requiresRenalPreauth)} />,
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
label: 'Oncology preauth',
|
|
101
|
+
value: <YesNo value={asBool(ci.requires_oncology_preauth ?? (ci as any).requiresOncologyPreauth)} />,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
label: 'Radiology preauth',
|
|
105
|
+
value: <YesNo value={asBool(ci.requires_radiology_preauth ?? (ci as any).requiresRadiologyPreauth)} />,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
label: 'Optical preauth',
|
|
109
|
+
value: <YesNo value={asBool(ci.requires_optical_preauth ?? (ci as any).requiresOpticalPreauth)} />,
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
expandable: opts
|
|
113
|
+
? {
|
|
114
|
+
label: (open: boolean) => `${open ? 'Hide' : 'Show'} required claim documents (${requiredDocs.length})`,
|
|
115
|
+
content: <InterventionAttachments intervention={ci} {...opts} />,
|
|
116
|
+
// Nothing to show when the intervention requires no documents, so start
|
|
117
|
+
// collapsed rather than expanding onto an empty state.
|
|
118
|
+
defaultOpen: requiredDocs.length > 0,
|
|
119
|
+
}
|
|
120
|
+
: undefined,
|
|
121
|
+
actions: hasActions ? (
|
|
122
|
+
<>
|
|
123
|
+
{opts?.onSwitchIntervention ? (
|
|
124
|
+
<Button kind="tertiary" size="sm" onClick={() => opts.onSwitchIntervention!(ci)} disabled={!canAct}>
|
|
125
|
+
Switch Intervention
|
|
126
|
+
</Button>
|
|
127
|
+
) : null}
|
|
128
|
+
{opts?.onRaisePreauth ? (
|
|
129
|
+
<Button
|
|
130
|
+
kind="tertiary"
|
|
131
|
+
size="sm"
|
|
132
|
+
onClick={() => opts.onRaisePreauth!(ci)}
|
|
133
|
+
disabled={!canRaisePreauth}
|
|
134
|
+
title={
|
|
135
|
+
!ci.needs_preauth
|
|
136
|
+
? 'This intervention does not need preauth'
|
|
137
|
+
: alreadyRaised
|
|
138
|
+
? 'Preauth already raised for this intervention'
|
|
139
|
+
: 'Raise normal preauth for this intervention'
|
|
140
|
+
}
|
|
141
|
+
>
|
|
142
|
+
Raise preauth
|
|
143
|
+
</Button>
|
|
144
|
+
) : null}
|
|
145
|
+
</>
|
|
146
|
+
) : undefined,
|
|
147
|
+
};
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const ClaimInterventionDetails: React.FC<claimInterventionDetailsProps> = ({ claimInterventions }) => (
|
|
152
|
+
<RecordCards
|
|
153
|
+
records={buildInterventionRecords(claimInterventions)}
|
|
154
|
+
emptyMessage="No intervention data."
|
|
155
|
+
layout="grid"
|
|
156
|
+
gridFill="fill"
|
|
157
|
+
/>
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
export default ClaimInterventionDetails;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* Fills the workspace body so the footer can be held to the bottom even when the
|
|
2
|
+
intervention is short and the content doesn't reach that far. */
|
|
3
|
+
.panel {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
gap: 1.25rem;
|
|
7
|
+
min-height: 100%;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* The intervention's particulars, in columns, stepping down to fewer on a narrow
|
|
11
|
+
panel. */
|
|
12
|
+
.meta {
|
|
13
|
+
display: grid;
|
|
14
|
+
grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
|
|
15
|
+
gap: 0.75rem 1.5rem;
|
|
16
|
+
margin: 0;
|
|
17
|
+
|
|
18
|
+
div {
|
|
19
|
+
display: flex;
|
|
20
|
+
flex-direction: column;
|
|
21
|
+
gap: 0.25rem;
|
|
22
|
+
min-width: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
dt {
|
|
26
|
+
font-size: 0.625rem;
|
|
27
|
+
font-weight: 700;
|
|
28
|
+
letter-spacing: 0.06em;
|
|
29
|
+
text-transform: uppercase;
|
|
30
|
+
color: #6f6f6f;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
dd {
|
|
34
|
+
margin: 0;
|
|
35
|
+
font-size: 0.875rem;
|
|
36
|
+
line-height: 1.35;
|
|
37
|
+
color: #161616;
|
|
38
|
+
overflow-wrap: anywhere;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* One line for what the intervention requires, rather than a row per flag. */
|
|
43
|
+
.flagsRow {
|
|
44
|
+
display: flex;
|
|
45
|
+
flex-wrap: wrap;
|
|
46
|
+
align-items: center;
|
|
47
|
+
gap: 0.375rem 0.5rem;
|
|
48
|
+
padding-top: 0.875rem;
|
|
49
|
+
border-top: 1px solid #e0e0e0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.flagsLabel {
|
|
53
|
+
font-size: 0.625rem;
|
|
54
|
+
font-weight: 700;
|
|
55
|
+
letter-spacing: 0.06em;
|
|
56
|
+
text-transform: uppercase;
|
|
57
|
+
color: #6f6f6f;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.tags {
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-wrap: wrap;
|
|
63
|
+
gap: 0.25rem;
|
|
64
|
+
|
|
65
|
+
/* Carbon tags carry their own margin, which would knock them out of line with the
|
|
66
|
+
values beside them. */
|
|
67
|
+
:global(.cds--tag) {
|
|
68
|
+
margin: 0;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* ---- Required documents ---- */
|
|
73
|
+
.documents {
|
|
74
|
+
display: flex;
|
|
75
|
+
flex-direction: column;
|
|
76
|
+
gap: 0.5rem;
|
|
77
|
+
padding-top: 0.875rem;
|
|
78
|
+
border-top: 1px solid #e0e0e0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.documentsTitle {
|
|
82
|
+
margin: 0;
|
|
83
|
+
font-size: 0.875rem;
|
|
84
|
+
font-weight: 600;
|
|
85
|
+
color: #161616;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* ---- Footer ---- */
|
|
89
|
+
/* margin-top:auto drops it to the bottom of a short panel; sticky keeps it there when a
|
|
90
|
+
long documents list scrolls. The negative margins bleed it over the panel's own
|
|
91
|
+
padding, so it spans the width and covers the strip content would scroll through
|
|
92
|
+
beneath it. */
|
|
93
|
+
.footer {
|
|
94
|
+
position: sticky;
|
|
95
|
+
bottom: 0;
|
|
96
|
+
z-index: 1;
|
|
97
|
+
margin: auto -1rem -1rem;
|
|
98
|
+
padding: 0.5rem 1rem;
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-wrap: wrap;
|
|
101
|
+
justify-content: flex-start;
|
|
102
|
+
gap: 0.5rem;
|
|
103
|
+
background-color: #ffffff;
|
|
104
|
+
border-top: 1px solid #e0e0e0;
|
|
105
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button, Tag } from '@carbon/react';
|
|
3
|
+
import { closeWorkspace } from '@openmrs/esm-framework';
|
|
4
|
+
import { type VisitIntervention } from '../../types';
|
|
5
|
+
import { asBool } from '../../preauth/preauth.resource';
|
|
6
|
+
import InterventionAttachments, { type InterventionAttachmentsProps } from './intervention-attachments.component';
|
|
7
|
+
import { RECORD_DETAILS_WORKSPACE } from '../shared/record-details.workspace';
|
|
8
|
+
import styles from './claim-intervention-panel.component.scss';
|
|
9
|
+
|
|
10
|
+
/** What the claim page states above this panel, so the panel doesn't restate it. */
|
|
11
|
+
export interface InterventionClaimFacts {
|
|
12
|
+
schemeCode?: string;
|
|
13
|
+
schemeName?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface ClaimInterventionPanelProps {
|
|
17
|
+
intervention: VisitIntervention;
|
|
18
|
+
/** Context for the required-documents section; absent when documents don't apply. */
|
|
19
|
+
attachmentOpts?: Omit<InterventionAttachmentsProps, 'intervention'>;
|
|
20
|
+
claimFacts?: InterventionClaimFacts;
|
|
21
|
+
canSwitch?: boolean;
|
|
22
|
+
canRaisePreauth?: boolean;
|
|
23
|
+
onSwitch?: () => void;
|
|
24
|
+
onRaisePreauth?: () => void;
|
|
25
|
+
/** Why Raise preauth is unavailable, when it is. */
|
|
26
|
+
raisePreauthReason?: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const money = (n: number | string) => {
|
|
30
|
+
const value = Number(n ?? 0);
|
|
31
|
+
return value ? `KES ${value.toLocaleString('en-KE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}` : '';
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const sameValue = (a?: string | null, b?: string | null): boolean =>
|
|
35
|
+
(a ?? '').trim().toUpperCase() === (b ?? '').trim().toUpperCase();
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The specialties an intervention needs a preauth for. The five flags are false on most
|
|
39
|
+
* interventions, so they are collected into one list of the ones that are set rather than
|
|
40
|
+
* five rows of "No".
|
|
41
|
+
*/
|
|
42
|
+
const specialtyFlags = (iv: VisitIntervention): string[] =>
|
|
43
|
+
[
|
|
44
|
+
{ label: 'Surgical', on: asBool(iv.requires_surgical_preauth ?? (iv as any).requiresSurgicalPreauth) },
|
|
45
|
+
{ label: 'Renal', on: asBool(iv.requires_renal_preauth ?? (iv as any).requiresRenalPreauth) },
|
|
46
|
+
{ label: 'Oncology', on: asBool(iv.requires_oncology_preauth ?? (iv as any).requiresOncologyPreauth) },
|
|
47
|
+
{ label: 'Radiology', on: asBool(iv.requires_radiology_preauth ?? (iv as any).requiresRadiologyPreauth) },
|
|
48
|
+
{ label: 'Optical', on: asBool(iv.requires_optical_preauth ?? (iv as any).requiresOpticalPreauth) },
|
|
49
|
+
]
|
|
50
|
+
.filter((flag) => flag.on)
|
|
51
|
+
.map((flag) => flag.label);
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* An intervention as the side panel shows it.
|
|
55
|
+
*
|
|
56
|
+
* The generic card gave all fifteen fields the same weight, eleven of which were the same
|
|
57
|
+
* word on every intervention — five "No"s for the specialty preauths, a scheme the claim
|
|
58
|
+
* had already named, per-diem figures that are nil unless the visit accrued any. Here the
|
|
59
|
+
* particulars that vary lead, the flags that are set are collected into one line and the
|
|
60
|
+
* ones that aren't stay silent, and the documents the intervention needs follow.
|
|
61
|
+
*/
|
|
62
|
+
const ClaimInterventionPanel: React.FC<ClaimInterventionPanelProps> = ({
|
|
63
|
+
intervention,
|
|
64
|
+
attachmentOpts,
|
|
65
|
+
claimFacts,
|
|
66
|
+
canSwitch,
|
|
67
|
+
canRaisePreauth,
|
|
68
|
+
onSwitch,
|
|
69
|
+
onRaisePreauth,
|
|
70
|
+
raisePreauthReason,
|
|
71
|
+
}) => {
|
|
72
|
+
const perDiemAmount = Number(intervention.accrued_per_diem_amount ?? 0);
|
|
73
|
+
const perDiemDays = Number(intervention.accrued_per_diem_days ?? 0);
|
|
74
|
+
const specialties = specialtyFlags(intervention);
|
|
75
|
+
|
|
76
|
+
// Each is shown only when it says something this intervention alone can say: not blank,
|
|
77
|
+
// and not the scheme the claim above already named.
|
|
78
|
+
const facts = [
|
|
79
|
+
{ label: 'Code', value: intervention.intervention_code },
|
|
80
|
+
{ label: 'Payment mechanism', value: intervention.intervention_payment_mechanism },
|
|
81
|
+
{ label: 'Fund', value: intervention.intervention_fund },
|
|
82
|
+
{ label: 'Sub benefit code', value: intervention.sub_benefit_code },
|
|
83
|
+
{ label: 'Keph level tariff', value: money(intervention.keph_level_tarrif) },
|
|
84
|
+
...(perDiemAmount > 0 ? [{ label: 'Accrued per diem', value: money(perDiemAmount) }] : []),
|
|
85
|
+
...(perDiemDays > 0 ? [{ label: 'Per diem days', value: String(perDiemDays) }] : []),
|
|
86
|
+
...(sameValue(intervention.supported_scheme, claimFacts?.schemeCode) ||
|
|
87
|
+
sameValue(intervention.supported_scheme, claimFacts?.schemeName)
|
|
88
|
+
? []
|
|
89
|
+
: [{ label: 'Scheme', value: intervention.supported_scheme }]),
|
|
90
|
+
].filter((fact) => Boolean((fact.value ?? '').trim()));
|
|
91
|
+
|
|
92
|
+
const showActions = Boolean(onSwitch || onRaisePreauth);
|
|
93
|
+
|
|
94
|
+
return (
|
|
95
|
+
<div className={styles.panel}>
|
|
96
|
+
<dl className={styles.meta}>
|
|
97
|
+
<div>
|
|
98
|
+
<dt>Status</dt>
|
|
99
|
+
<dd className={styles.tags}>
|
|
100
|
+
{intervention.workflow_state ? (
|
|
101
|
+
<Tag size="sm" type={intervention.workflow_state.toUpperCase() === 'ACTIVE' ? 'teal' : 'gray'}>
|
|
102
|
+
{intervention.workflow_state}
|
|
103
|
+
</Tag>
|
|
104
|
+
) : (
|
|
105
|
+
'—'
|
|
106
|
+
)}
|
|
107
|
+
</dd>
|
|
108
|
+
</div>
|
|
109
|
+
{facts.map((fact) => (
|
|
110
|
+
<div key={fact.label}>
|
|
111
|
+
<dt>{fact.label}</dt>
|
|
112
|
+
<dd>{fact.value}</dd>
|
|
113
|
+
</div>
|
|
114
|
+
))}
|
|
115
|
+
</dl>
|
|
116
|
+
|
|
117
|
+
{/* Only the flags that are set. An intervention with none of them says so once,
|
|
118
|
+
rather than five times over. */}
|
|
119
|
+
<div className={styles.flagsRow}>
|
|
120
|
+
<span className={styles.flagsLabel}>Preauth</span>
|
|
121
|
+
<span className={styles.tags}>
|
|
122
|
+
{intervention.needs_preauth ? (
|
|
123
|
+
<Tag size="sm" type="blue">
|
|
124
|
+
Required
|
|
125
|
+
</Tag>
|
|
126
|
+
) : (
|
|
127
|
+
<Tag size="sm" type="gray">
|
|
128
|
+
Not required
|
|
129
|
+
</Tag>
|
|
130
|
+
)}
|
|
131
|
+
{specialties.map((specialty) => (
|
|
132
|
+
<Tag size="sm" type="purple" key={specialty}>
|
|
133
|
+
{specialty}
|
|
134
|
+
</Tag>
|
|
135
|
+
))}
|
|
136
|
+
{intervention.active_for_uhc ? (
|
|
137
|
+
<Tag size="sm" type="green">
|
|
138
|
+
Active for UHC
|
|
139
|
+
</Tag>
|
|
140
|
+
) : null}
|
|
141
|
+
</span>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
{attachmentOpts ? (
|
|
145
|
+
<section className={styles.documents}>
|
|
146
|
+
<h6 className={styles.documentsTitle}>Required claim documents</h6>
|
|
147
|
+
<InterventionAttachments intervention={intervention} {...attachmentOpts} />
|
|
148
|
+
</section>
|
|
149
|
+
) : null}
|
|
150
|
+
|
|
151
|
+
{/* Held to the bottom of the panel however short the intervention is, and staying
|
|
152
|
+
there when the documents list scrolls. This panel is rendered from a record model
|
|
153
|
+
rather than as a child of the workspace, so it has no closeWorkspace prop to
|
|
154
|
+
call — it dismisses the panel by name instead. */}
|
|
155
|
+
<div className={styles.footer}>
|
|
156
|
+
<Button kind="secondary" size="sm" onClick={() => closeWorkspace(RECORD_DETAILS_WORKSPACE)}>
|
|
157
|
+
Close
|
|
158
|
+
</Button>
|
|
159
|
+
{showActions ? (
|
|
160
|
+
<>
|
|
161
|
+
{onSwitch ? (
|
|
162
|
+
<Button kind="tertiary" size="sm" disabled={!canSwitch} onClick={onSwitch}>
|
|
163
|
+
Switch intervention
|
|
164
|
+
</Button>
|
|
165
|
+
) : null}
|
|
166
|
+
{onRaisePreauth ? (
|
|
167
|
+
<Button
|
|
168
|
+
kind="primary"
|
|
169
|
+
size="sm"
|
|
170
|
+
disabled={!canRaisePreauth}
|
|
171
|
+
title={canRaisePreauth ? 'Raise normal preauth for this intervention' : raisePreauthReason}
|
|
172
|
+
onClick={onRaisePreauth}
|
|
173
|
+
>
|
|
174
|
+
Raise preauth
|
|
175
|
+
</Button>
|
|
176
|
+
) : null}
|
|
177
|
+
</>
|
|
178
|
+
) : null}
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
);
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
export default ClaimInterventionPanel;
|