@ampath/esm-dha-workflow-app 4.0.0-next.33 → 4.0.0-next.331

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.
Files changed (758) hide show
  1. package/README.md +19 -0
  2. package/dist/1149.js +1 -0
  3. package/dist/1149.js.map +1 -0
  4. package/dist/1197.js +1 -0
  5. package/dist/1362.js +1 -0
  6. package/dist/1362.js.map +1 -0
  7. package/dist/1551.js +1 -0
  8. package/dist/1551.js.map +1 -0
  9. package/dist/1925.js +1 -0
  10. package/dist/1925.js.map +1 -0
  11. package/dist/1927.js +1 -0
  12. package/dist/1927.js.map +1 -0
  13. package/dist/203.js +1 -0
  14. package/dist/203.js.map +1 -0
  15. package/dist/2054.js +1 -0
  16. package/dist/2054.js.map +1 -0
  17. package/dist/2093.js +1 -0
  18. package/dist/2093.js.map +1 -0
  19. package/dist/2177.js +2 -0
  20. package/dist/2177.js.map +1 -0
  21. package/dist/2200.js +1 -0
  22. package/dist/2200.js.map +1 -0
  23. package/dist/2230.js +1 -0
  24. package/dist/2230.js.map +1 -0
  25. package/dist/2493.js +1 -0
  26. package/dist/2493.js.map +1 -0
  27. package/dist/262.js +2 -0
  28. package/dist/262.js.map +1 -0
  29. package/dist/2914.js +1 -0
  30. package/dist/2914.js.map +1 -0
  31. package/dist/2936.js +1 -0
  32. package/dist/2936.js.map +1 -0
  33. package/dist/2988.js +1 -0
  34. package/dist/2988.js.map +1 -0
  35. package/dist/3041.js +1 -0
  36. package/dist/3041.js.map +1 -0
  37. package/dist/307.js +1 -0
  38. package/dist/307.js.map +1 -0
  39. package/dist/3099.js +1 -0
  40. package/dist/3184.js +2 -0
  41. package/dist/3184.js.map +1 -0
  42. package/dist/3202.js +1 -0
  43. package/dist/3202.js.map +1 -0
  44. package/dist/3222.js +1 -0
  45. package/dist/3222.js.map +1 -0
  46. package/dist/3406.js +1 -0
  47. package/dist/3406.js.map +1 -0
  48. package/dist/347.js +1 -0
  49. package/dist/347.js.map +1 -0
  50. package/dist/3654.js +1 -0
  51. package/dist/3654.js.map +1 -0
  52. package/dist/4003.js +1 -0
  53. package/dist/4003.js.map +1 -0
  54. package/dist/4008.js +1 -0
  55. package/dist/4008.js.map +1 -0
  56. package/dist/4055.js +1 -0
  57. package/dist/4205.js +1 -0
  58. package/dist/4205.js.map +1 -0
  59. package/dist/4225.js +1 -0
  60. package/dist/4225.js.map +1 -0
  61. package/dist/4231.js +1 -0
  62. package/dist/4231.js.map +1 -0
  63. package/dist/4300.js +1 -0
  64. package/dist/4335.js +1 -0
  65. package/dist/4353.js +1 -0
  66. package/dist/4353.js.map +1 -0
  67. package/dist/4431.js +1 -0
  68. package/dist/4431.js.map +1 -0
  69. package/dist/4454.js +1 -0
  70. package/dist/4454.js.map +1 -0
  71. package/dist/4457.js +2 -0
  72. package/dist/4457.js.LICENSE.txt +282 -0
  73. package/dist/4457.js.map +1 -0
  74. package/dist/446.js +1 -0
  75. package/dist/446.js.map +1 -0
  76. package/dist/4611.js +1 -0
  77. package/dist/4611.js.map +1 -0
  78. package/dist/4652.js +1 -0
  79. package/dist/4674.js +1 -0
  80. package/dist/4674.js.map +1 -0
  81. package/dist/4755.js +1 -0
  82. package/dist/4755.js.map +1 -0
  83. package/dist/4986.js +1 -0
  84. package/dist/4986.js.map +1 -0
  85. package/dist/5097.js +1 -0
  86. package/dist/5097.js.map +1 -0
  87. package/dist/5119.js +1 -0
  88. package/dist/5119.js.map +1 -0
  89. package/dist/5167.js +1 -0
  90. package/dist/5167.js.map +1 -0
  91. package/dist/5380.js +1 -0
  92. package/dist/5380.js.map +1 -0
  93. package/dist/5422.js +1 -0
  94. package/dist/5422.js.map +1 -0
  95. package/dist/5576.js +1 -0
  96. package/dist/5576.js.map +1 -0
  97. package/dist/5851.js +1 -0
  98. package/dist/5851.js.map +1 -0
  99. package/dist/5961.js +1 -0
  100. package/dist/5961.js.map +1 -0
  101. package/dist/6264.js +1 -0
  102. package/dist/6264.js.map +1 -0
  103. package/dist/6540.js +2 -0
  104. package/dist/6540.js.map +1 -0
  105. package/dist/6606.js +1 -0
  106. package/dist/6606.js.map +1 -0
  107. package/dist/6720.js +1 -0
  108. package/dist/6720.js.map +1 -0
  109. package/dist/6824.js +1 -0
  110. package/dist/6824.js.map +1 -0
  111. package/dist/6942.js +1 -0
  112. package/dist/6942.js.map +1 -0
  113. package/dist/71.js +1 -0
  114. package/dist/71.js.map +1 -0
  115. package/dist/7207.js +1 -0
  116. package/dist/7207.js.map +1 -0
  117. package/dist/7240.js +1 -0
  118. package/dist/7240.js.map +1 -0
  119. package/dist/7255.js +1 -0
  120. package/dist/7255.js.map +1 -0
  121. package/dist/7271.js +1 -0
  122. package/dist/7271.js.map +1 -0
  123. package/dist/7420.js +1 -0
  124. package/dist/7420.js.map +1 -0
  125. package/dist/7521.js +1 -0
  126. package/dist/7521.js.map +1 -0
  127. package/dist/7557.js +1 -0
  128. package/dist/7557.js.map +1 -0
  129. package/dist/7717.js +1 -0
  130. package/dist/7717.js.map +1 -0
  131. package/dist/7830.js +2 -0
  132. package/dist/7830.js.map +1 -0
  133. package/dist/7879.js +1 -0
  134. package/dist/7879.js.map +1 -0
  135. package/dist/7941.js +1 -0
  136. package/dist/7941.js.map +1 -0
  137. package/dist/8091.js +1 -0
  138. package/dist/8091.js.map +1 -0
  139. package/dist/810.js +1 -2
  140. package/dist/810.js.map +1 -1
  141. package/dist/8558.js +1 -0
  142. package/dist/8558.js.map +1 -0
  143. package/dist/8733.js +1 -0
  144. package/dist/8733.js.map +1 -0
  145. package/dist/874.js +1 -0
  146. package/dist/874.js.map +1 -0
  147. package/dist/8895.js +1 -0
  148. package/dist/8895.js.map +1 -0
  149. package/dist/9070.js +1 -0
  150. package/dist/9070.js.map +1 -0
  151. package/dist/9091.js +1 -0
  152. package/dist/9091.js.map +1 -0
  153. package/dist/9093.js +1 -0
  154. package/dist/9093.js.map +1 -0
  155. package/dist/9249.js +1 -0
  156. package/dist/9249.js.map +1 -0
  157. package/dist/9338.js +1 -0
  158. package/dist/9338.js.map +1 -0
  159. package/dist/9418.js +2 -0
  160. package/dist/9418.js.LICENSE.txt +1 -0
  161. package/dist/9418.js.map +1 -0
  162. package/dist/9428.js +1 -0
  163. package/dist/9428.js.map +1 -0
  164. package/dist/9721.js +1 -0
  165. package/dist/9721.js.map +1 -0
  166. package/dist/esm-dha-workflow-app.js +1 -1
  167. package/dist/esm-dha-workflow-app.js.buildmanifest.json +1675 -210
  168. package/dist/esm-dha-workflow-app.js.map +1 -1
  169. package/dist/main.js +1 -1
  170. package/dist/main.js.map +1 -1
  171. package/dist/routes.json +1 -1
  172. package/local-config.json +5 -0
  173. package/package.json +16 -6
  174. package/src/admissions/admission-request-list/admission-request-list.scss +0 -0
  175. package/src/admissions/admission-request-list/admission-request-list.tsx +263 -0
  176. package/src/admissions/admissions-dashboard.component.scss +15 -0
  177. package/src/admissions/admissions-dashboard.component.tsx +277 -0
  178. package/src/admissions/admissions.resource.ts +233 -0
  179. package/src/admissions/admitted-list/admitted-patients-list.tsx +206 -0
  180. package/src/admissions/awaiting-discharge-list/awaiting-discharge-list.tsx +197 -0
  181. package/src/admissions/bed-assigment-request/bed-assignment-request-list.tsx +134 -0
  182. package/src/admissions/constants/index.ts +33 -0
  183. package/src/admissions/discharged-list/discharged-list.scss +0 -0
  184. package/src/admissions/discharged-list/discharged-list.tsx +67 -0
  185. package/src/admissions/form-entry-workspace/form-entry-workspace.tsx +62 -0
  186. package/src/admissions/inpatient/admission-history/patient-admission-history.tsx +76 -0
  187. package/src/admissions/inpatient/admission-requests/patient-admission-requests.scss +19 -0
  188. package/src/admissions/inpatient/admission-requests/patient-admission-requests.tsx +72 -0
  189. package/src/admissions/inpatient/inpatient-admissions.component.scss +7 -0
  190. package/src/admissions/inpatient/inpatient-admissions.component.tsx +46 -0
  191. package/src/admissions/modal/add-bill-items/add-bill-items.modal.scss +17 -0
  192. package/src/admissions/modal/add-bill-items/add-bill-items.modal.tsx +233 -0
  193. package/src/admissions/modal/admit-elsewhere/admit-elsewhere.modal.scss +23 -0
  194. package/src/admissions/modal/admit-elsewhere/admit-elsewhere.modal.tsx +156 -0
  195. package/src/admissions/modal/admit-patient/admit-patient.modal.scss +0 -0
  196. package/src/admissions/modal/admit-patient/admit-patient.modal.tsx +111 -0
  197. package/src/admissions/modal/bed-swap/bed-swap.modal.scss +0 -0
  198. package/src/admissions/modal/bed-swap/bed-swap.modal.tsx +102 -0
  199. package/src/admissions/modal/cancel-admission-request/cancel-admission-request.scss +11 -0
  200. package/src/admissions/modal/cancel-admission-request/cancel-admission-request.tsx +105 -0
  201. package/src/admissions/modal/discharge/discharge-patient.modal.scss +13 -0
  202. package/src/admissions/modal/discharge/discharge-patient.modal.tsx +86 -0
  203. package/src/admissions/types/index.ts +263 -0
  204. package/src/appointments/appointments.component.scss +6 -0
  205. package/src/appointments/appointments.component.tsx +8 -1
  206. package/src/billing/api/billing.api.ts +139 -0
  207. package/src/billing/billing-claims.resource.ts +900 -0
  208. package/src/billing/billing-dashboard-link.component.tsx +31 -0
  209. package/src/billing/billing-dashboard-reset.ts +27 -0
  210. package/src/billing/billing-root.tsx +42 -0
  211. package/src/billing/dashboard/billingDashboard.component.scss +0 -0
  212. package/src/billing/dashboard/billingDashboard.component.tsx +25 -0
  213. package/src/billing/dashboard/v2/active-visits/active-visits.component.tsx +257 -0
  214. package/src/billing/dashboard/v2/active-visits/active-visits.resource.ts +85 -0
  215. package/src/billing/dashboard/v2/active-visits/active-visits.scss +15 -0
  216. package/src/billing/dashboard/v2/active-visits.component.tsx +102 -0
  217. package/src/billing/dashboard/v2/admissions/admission-requests-tab.component.tsx +79 -0
  218. package/src/billing/dashboard/v2/billing-claims-dashboard.component.scss +209 -0
  219. package/src/billing/dashboard/v2/billing-claims-dashboard.component.tsx +347 -0
  220. package/src/billing/dashboard/v2/cash-checklist/bill-document.component.scss +90 -0
  221. package/src/billing/dashboard/v2/cash-checklist/bill-document.component.tsx +101 -0
  222. package/src/billing/dashboard/v2/cash-checklist/cash-checklist.component.scss +199 -0
  223. package/src/billing/dashboard/v2/cash-checklist/cash-checklist.component.tsx +361 -0
  224. package/src/billing/dashboard/v2/cash-checklist/cash-checklist.resource.ts +239 -0
  225. package/src/billing/dashboard/v2/cash-checklist/payment-drawer.component.scss +246 -0
  226. package/src/billing/dashboard/v2/cash-checklist/payment-drawer.component.tsx +182 -0
  227. package/src/billing/dashboard/v2/claim-statuses.ts +143 -0
  228. package/src/billing/dashboard/v2/claim-visits/claim-diagnosis-details/claim-diagnosis-details.component.scss +0 -0
  229. package/src/billing/dashboard/v2/claim-visits/claim-diagnosis-details/claim-diagnosis-details.component.tsx +35 -0
  230. package/src/billing/dashboard/v2/claim-visits/claim-diagnosis-details/claim-diagnosis-panel.component.scss +67 -0
  231. package/src/billing/dashboard/v2/claim-visits/claim-diagnosis-details/claim-diagnosis-panel.component.tsx +90 -0
  232. package/src/billing/dashboard/v2/claim-visits/claim-doctors/claim-doctors.scss +28 -0
  233. package/src/billing/dashboard/v2/claim-visits/claim-doctors/claim-doctors.tsx +36 -0
  234. package/src/billing/dashboard/v2/claim-visits/claim-history/claim-history.component.scss +119 -0
  235. package/src/billing/dashboard/v2/claim-visits/claim-history/claim-history.component.tsx +198 -0
  236. package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/claim-intervention-details.component.scss +5 -0
  237. package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/claim-intervention-details.component.tsx +160 -0
  238. package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/claim-intervention-panel.component.scss +105 -0
  239. package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/claim-intervention-panel.component.tsx +184 -0
  240. package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/intervention-attachments.component.scss +161 -0
  241. package/src/billing/dashboard/v2/claim-visits/claim-intervention-details/intervention-attachments.component.tsx +328 -0
  242. package/src/billing/dashboard/v2/claim-visits/claim-invoice-details/claim-invoice-details.component.tsx +96 -0
  243. package/src/billing/dashboard/v2/claim-visits/claim-invoice-details/claim-invoice-document.component.tsx +236 -0
  244. package/src/billing/dashboard/v2/claim-visits/claim-invoice-details/claim-invoice-panel.component.scss +98 -0
  245. package/src/billing/dashboard/v2/claim-visits/claim-invoice-details/claim-invoice-panel.component.tsx +292 -0
  246. package/src/billing/dashboard/v2/claim-visits/claim-invoice-line-details/claim-invoice-line-details.component.scss +133 -0
  247. package/src/billing/dashboard/v2/claim-visits/claim-invoice-line-details/claim-invoice-line-details.component.tsx +217 -0
  248. package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-details-by-token.component.tsx +150 -0
  249. package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-details-page.component.scss +13 -0
  250. package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-details-page.component.tsx +116 -0
  251. package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-visit-details.component.scss +338 -0
  252. package/src/billing/dashboard/v2/claim-visits/claim-visit-details/claim-visit-details.component.tsx +616 -0
  253. package/src/billing/dashboard/v2/claim-visits/claim-visits.component.scss +5 -0
  254. package/src/billing/dashboard/v2/claim-visits/claim-visits.component.tsx +133 -0
  255. package/src/billing/dashboard/v2/claim-visits/modal/claim-doctors/add-claim-doctor/add-claim-doctor.modal.scss +5 -0
  256. package/src/billing/dashboard/v2/claim-visits/modal/claim-doctors/add-claim-doctor/add-claim-doctor.modal.tsx +49 -0
  257. package/src/billing/dashboard/v2/claim-visits/modal/claim-visit-details/claim-visit-details.modal.scss +17 -0
  258. package/src/billing/dashboard/v2/claim-visits/modal/claim-visit-details/claim-visit-details.modal.tsx +56 -0
  259. package/src/billing/dashboard/v2/claim-visits/modal/close-claim/close-claim.modal.scss +0 -0
  260. package/src/billing/dashboard/v2/claim-visits/modal/close-claim/close-claim.modal.tsx +129 -0
  261. package/src/billing/dashboard/v2/claim-visits/modal/submit-claim/submit-claim.modal.tsx +204 -0
  262. package/src/billing/dashboard/v2/claim-visits/shared/_empty-state.scss +28 -0
  263. package/src/billing/dashboard/v2/claim-visits/shared/record-cards.component.scss +298 -0
  264. package/src/billing/dashboard/v2/claim-visits/shared/record-cards.component.tsx +252 -0
  265. package/src/billing/dashboard/v2/claim-visits/shared/record-details.workspace.scss +42 -0
  266. package/src/billing/dashboard/v2/claim-visits/shared/record-details.workspace.tsx +54 -0
  267. package/src/billing/dashboard/v2/claim-visits/shared/record-table.component.scss +61 -0
  268. package/src/billing/dashboard/v2/claim-visits/shared/record-table.component.tsx +150 -0
  269. package/src/billing/dashboard/v2/claim-visits/switch-intervention/switch-intervention.resource.ts +51 -0
  270. package/src/billing/dashboard/v2/claim-visits/switch-intervention/switch-intervention.workspace.scss +191 -0
  271. package/src/billing/dashboard/v2/claim-visits/switch-intervention/switch-intervention.workspace.tsx +648 -0
  272. package/src/billing/dashboard/v2/claim-workspace/claim-workspace.component.scss +595 -0
  273. package/src/billing/dashboard/v2/claim-workspace/claim-workspace.component.tsx +810 -0
  274. package/src/billing/dashboard/v2/claim-workspace/claim-workspace.resource.ts +282 -0
  275. package/src/billing/dashboard/v2/claims-accounting/bill-utils.ts +134 -0
  276. package/src/billing/dashboard/v2/claims-accounting/claim-detail.component.tsx +346 -0
  277. package/src/billing/dashboard/v2/claims-accounting/claims-accounting.component.scss +546 -0
  278. package/src/billing/dashboard/v2/claims-accounting/claims-accounting.component.tsx +206 -0
  279. package/src/billing/dashboard/v2/claims-accounting/claims-accounting.resource.ts +337 -0
  280. package/src/billing/dashboard/v2/claims-accounting/invoice-document.component.scss +90 -0
  281. package/src/billing/dashboard/v2/claims-accounting/invoice-document.component.tsx +90 -0
  282. package/src/billing/dashboard/v2/claims-accounting/remittances.component.tsx +169 -0
  283. package/src/billing/dashboard/v2/claims-accounting/remittances.resource.ts +46 -0
  284. package/src/billing/dashboard/v2/claims-accounting/status-meta.ts +25 -0
  285. package/src/billing/dashboard/v2/clearance/cash-patients.scss +18 -0
  286. package/src/billing/dashboard/v2/clearance/cash.component.tsx +149 -0
  287. package/src/billing/dashboard/v2/clearance/clearance.component.scss +84 -0
  288. package/src/billing/dashboard/v2/clearance/clearance.component.tsx +225 -0
  289. package/src/billing/dashboard/v2/clearance/pay-cash.component.tsx +176 -0
  290. package/src/billing/dashboard/v2/clearance/pay-cash.scss +28 -0
  291. package/src/billing/dashboard/v2/clearance/prepaid-services.component.tsx +112 -0
  292. package/src/billing/dashboard/v2/facility-bills/claim-status.ts +249 -0
  293. package/src/billing/dashboard/v2/facility-bills/facility-bills.component.scss +140 -0
  294. package/src/billing/dashboard/v2/facility-bills/facility-bills.component.tsx +687 -0
  295. package/src/billing/dashboard/v2/facility-bills/preauths-datatables/pending-preauths.component.tsx +132 -0
  296. package/src/billing/dashboard/v2/facility-bills/preauths-datatables/preauth-preview-table.component.tsx +267 -0
  297. package/src/billing/dashboard/v2/facility-bills/preauths.component.tsx +124 -0
  298. package/src/billing/dashboard/v2/inpatient-requests/inpatient-requests.component.scss +22 -0
  299. package/src/billing/dashboard/v2/inpatient-requests/inpatient-requests.component.tsx +389 -0
  300. package/src/billing/dashboard/v2/inpatient-requests/modal/start-inpatient-claim/start-inpatient-claim.component.scss +0 -0
  301. package/src/billing/dashboard/v2/inpatient-requests/modal/start-inpatient-claim/start-inpatient-claim.component.tsx +0 -0
  302. package/src/billing/dashboard/v2/new-facility-bills/bills-table.component.tsx +78 -0
  303. package/src/billing/dashboard/v2/new-facility-bills/bills-table.scss +18 -0
  304. package/src/billing/dashboard/v2/new-facility-bills/new-facility-bills.component.tsx +64 -0
  305. package/src/billing/dashboard/v2/new-facility-bills/new-facility-bills.scss +146 -0
  306. package/src/billing/dashboard/v2/patient-bill-details/attachments/add-attachments.component.tsx +223 -0
  307. package/src/billing/dashboard/v2/patient-bill-details/attachments/attachment.component.tsx +157 -0
  308. package/src/billing/dashboard/v2/patient-bill-details/attachments/attachments.scss +92 -0
  309. package/src/billing/dashboard/v2/patient-bill-details/attachments/case-summary/case-summary.scss +295 -0
  310. package/src/billing/dashboard/v2/patient-bill-details/attachments/case-summary/case-summary.tsx +326 -0
  311. package/src/billing/dashboard/v2/patient-bill-details/attachments/dialysis/dialysis-chart.scss +238 -0
  312. package/src/billing/dashboard/v2/patient-bill-details/attachments/dialysis/dialysis-chart.tsx +269 -0
  313. package/src/billing/dashboard/v2/patient-bill-details/attachments/discharge-summary/discharge-summary.scss +96 -0
  314. package/src/billing/dashboard/v2/patient-bill-details/attachments/discharge-summary/discharge-summary.tsx +124 -0
  315. package/src/billing/dashboard/v2/patient-bill-details/attachments/final-bill.component.tsx +152 -0
  316. package/src/billing/dashboard/v2/patient-bill-details/attachments/final-bill.scss +225 -0
  317. package/src/billing/dashboard/v2/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.scss +182 -0
  318. package/src/billing/dashboard/v2/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.tsx +173 -0
  319. package/src/billing/dashboard/v2/patient-bill-details/attachments/generate-attachments.component.tsx +360 -0
  320. package/src/billing/dashboard/v2/patient-bill-details/attachments/invoice.component.tsx +151 -0
  321. package/src/billing/dashboard/v2/patient-bill-details/attachments/invoice.scss +225 -0
  322. package/src/billing/dashboard/v2/patient-bill-details/attachments/type.ts +44 -0
  323. package/src/billing/dashboard/v2/patient-bill-details/bill-details/bill-details.scss +107 -0
  324. package/src/billing/dashboard/v2/patient-bill-details/bill-details/bill-details.tsx +508 -0
  325. package/src/billing/dashboard/v2/patient-bill-details/bill-details-page.component.scss +30 -0
  326. package/src/billing/dashboard/v2/patient-bill-details/bill-details-page.component.tsx +94 -0
  327. package/src/billing/dashboard/v2/patient-bill-details/claim-details/claim-details-skeleton.component.scss +89 -0
  328. package/src/billing/dashboard/v2/patient-bill-details/claim-details/claim-details-skeleton.component.tsx +53 -0
  329. package/src/billing/dashboard/v2/patient-bill-details/claim-details/patient-claim-details.component.scss +32 -0
  330. package/src/billing/dashboard/v2/patient-bill-details/claim-details/patient-claim-details.component.tsx +215 -0
  331. package/src/billing/dashboard/v2/patient-bill-details/modals/add-claim-diagnosis/add-claim-diagnosis.modal.scss +0 -0
  332. package/src/billing/dashboard/v2/patient-bill-details/modals/add-claim-diagnosis/add-claim-diagnosis.modal.tsx +99 -0
  333. package/src/billing/dashboard/v2/patient-bill-details/modals/add-claim-line/add-claim-line.modal.tsx +186 -0
  334. package/src/billing/dashboard/v2/patient-bill-details/patient-bill-details.scss +153 -0
  335. package/src/billing/dashboard/v2/patient-bill-details/patient-bill-details.tsx +458 -0
  336. package/src/billing/dashboard/v2/patient-bill-details/payment-mode.ts +124 -0
  337. package/src/billing/dashboard/v2/patient-bill-details/workspaces/add-claim-line/add-claim-line.workspace.scss +27 -0
  338. package/src/billing/dashboard/v2/patient-bill-details/workspaces/add-claim-line/add-claim-line.workspace.tsx +222 -0
  339. package/src/billing/dashboard/v2/patient-bill-details/workspaces/bill-item-payment/bill-item-payment.workspace.scss +27 -0
  340. package/src/billing/dashboard/v2/patient-bill-details/workspaces/bill-item-payment/bill-item-payment.workspace.tsx +109 -0
  341. package/src/billing/dashboard/v2/preauth/preauth-attachments.component.tsx +389 -0
  342. package/src/billing/dashboard/v2/preauth/preauth-list.component.scss +38 -0
  343. package/src/billing/dashboard/v2/preauth/preauth-list.component.tsx +226 -0
  344. package/src/billing/dashboard/v2/preauth/preauth-status-tag.component.tsx +75 -0
  345. package/src/billing/dashboard/v2/preauth/preauth-typed-fields.md +125 -0
  346. package/src/billing/dashboard/v2/preauth/preauth.resource.ts +1067 -0
  347. package/src/billing/dashboard/v2/preauth/preauth.workspace.scss +91 -0
  348. package/src/billing/dashboard/v2/preauth/preauth.workspace.tsx +1802 -0
  349. package/src/billing/dashboard/v2/preauth/preauthorizations-tab.component.tsx +45 -0
  350. package/src/billing/dashboard/v2/sha-claims/sha-claims-table.component.tsx +36 -0
  351. package/src/billing/dashboard/v2/sha-claims/sha-claims.component.tsx +60 -0
  352. package/src/billing/dashboard/v2/sha-claims/sha-claims.scss +8 -0
  353. package/src/billing/dashboard/v2/shared/dash-board-card/dash-board-card.component.scss +17 -0
  354. package/src/billing/dashboard/v2/shared/dash-board-card/dash-board-card.component.tsx +15 -0
  355. package/src/billing/dashboard/v2/shared/empty-state.component.scss +24 -0
  356. package/src/billing/dashboard/v2/shared/empty-state.component.tsx +13 -0
  357. package/src/billing/dashboard/v2/shared/scroll-to-top.component.scss +54 -0
  358. package/src/billing/dashboard/v2/shared/scroll-to-top.component.tsx +54 -0
  359. package/src/billing/dashboard/v2/shared/table-toolbar.component.scss +77 -0
  360. package/src/billing/dashboard/v2/shared/table-toolbar.component.tsx +48 -0
  361. package/src/billing/dashboard/v2/types/index.ts +507 -0
  362. package/src/billing/dashboard/v3/active-visits/active-visits.component.tsx +256 -0
  363. package/src/billing/dashboard/v3/active-visits/active-visits.resource.ts +57 -0
  364. package/src/billing/dashboard/v3/active-visits/active-visits.scss +15 -0
  365. package/src/billing/dashboard/v3/cash-checklist/bill-document.component.scss +90 -0
  366. package/src/billing/dashboard/v3/cash-checklist/bill-document.component.tsx +101 -0
  367. package/src/billing/dashboard/v3/cash-checklist/cash-checklist.component.scss +199 -0
  368. package/src/billing/dashboard/v3/cash-checklist/cash-checklist.component.tsx +361 -0
  369. package/src/billing/dashboard/v3/cash-checklist/cash-checklist.resource.ts +240 -0
  370. package/src/billing/dashboard/v3/cash-checklist/payment-drawer.component.scss +246 -0
  371. package/src/billing/dashboard/v3/cash-checklist/payment-drawer.component.tsx +182 -0
  372. package/src/billing/dashboard/v3/claim-visits/claim-diagnosis-details/claim-diagnosis-details.component.scss +0 -0
  373. package/src/billing/dashboard/v3/claim-visits/claim-diagnosis-details/claim-diagnosis-details.component.tsx +44 -0
  374. package/src/billing/dashboard/v3/claim-visits/claim-doctors/claim-doctors.scss +5 -0
  375. package/src/billing/dashboard/v3/claim-visits/claim-doctors/claim-doctors.tsx +42 -0
  376. package/src/billing/dashboard/v3/claim-visits/claim-documents/claim-documents.scss +10 -0
  377. package/src/billing/dashboard/v3/claim-visits/claim-documents/claim-documents.tsx +25 -0
  378. package/src/billing/dashboard/v3/claim-visits/claim-intervention-details/claim-intervention-details.component.tsx +223 -0
  379. package/src/billing/dashboard/v3/claim-visits/claim-invoice-details/claim-invoice-details.component.scss +6 -0
  380. package/src/billing/dashboard/v3/claim-visits/claim-invoice-details/claim-invoice-details.component.tsx +85 -0
  381. package/src/billing/dashboard/v3/claim-visits/claim-invoice-line-details/claim-invoice-line-details.component.scss +0 -0
  382. package/src/billing/dashboard/v3/claim-visits/claim-invoice-line-details/claim-invoice-line-details.component.tsx +109 -0
  383. package/src/billing/dashboard/v3/claim-visits/claim-visit-details/claim-visit-details.component.scss +104 -0
  384. package/src/billing/dashboard/v3/claim-visits/claim-visit-details/claim-visit-details.component.tsx +336 -0
  385. package/src/billing/dashboard/v3/claim-visits/claim-visits.component.scss +5 -0
  386. package/src/billing/dashboard/v3/claim-visits/claim-visits.component.tsx +139 -0
  387. package/src/billing/dashboard/v3/claim-visits/modal/claim-doctors/add-claim-doctor/add-claim-doctor.modal.scss +5 -0
  388. package/src/billing/dashboard/v3/claim-visits/modal/claim-doctors/add-claim-doctor/add-claim-doctor.modal.tsx +49 -0
  389. package/src/billing/dashboard/v3/claim-visits/modal/claim-invoice-lines/claim-invoice-lines.modal.scss +7 -0
  390. package/src/billing/dashboard/v3/claim-visits/modal/claim-invoice-lines/claim-invoice-lines.modal.tsx +35 -0
  391. package/src/billing/dashboard/v3/claim-visits/modal/claim-visit-details/claim-visit-details.modal.scss +6 -0
  392. package/src/billing/dashboard/v3/claim-visits/modal/claim-visit-details/claim-visit-details.modal.tsx +33 -0
  393. package/src/billing/dashboard/v3/claim-visits/modal/close-claim/close-claim.modal.scss +0 -0
  394. package/src/billing/dashboard/v3/claim-visits/modal/close-claim/close-claim.modal.tsx +129 -0
  395. package/src/billing/dashboard/v3/claim-visits/modal/submit-claim/submit-claim.modal.tsx +204 -0
  396. package/src/billing/dashboard/v3/claim-visits/payer-preview/index.scss +140 -0
  397. package/src/billing/dashboard/v3/claim-visits/payer-preview/payer-preview-tile.component.tsx +55 -0
  398. package/src/billing/dashboard/v3/claim-visits/payer-preview/payer-preview-workspace.component.tsx +157 -0
  399. package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-claim-doctors.component.tsx +54 -0
  400. package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-claim-lines.component.tsx +48 -0
  401. package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-claim-notes.component.tsx +47 -0
  402. package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-diagnoses.component.tsx +44 -0
  403. package/src/billing/dashboard/v3/claim-visits/payer-preview/tables/payer-interventions.component.tsx +44 -0
  404. package/src/billing/dashboard/v3/claim-visits/switch-intervention/switch-intervention.resource.ts +51 -0
  405. package/src/billing/dashboard/v3/claim-visits/switch-intervention/switch-intervention.workspace.scss +191 -0
  406. package/src/billing/dashboard/v3/claim-visits/switch-intervention/switch-intervention.workspace.tsx +648 -0
  407. package/src/billing/dashboard/v3/claim-workspace/claim-workspace.component.scss +595 -0
  408. package/src/billing/dashboard/v3/claim-workspace/claim-workspace.component.tsx +810 -0
  409. package/src/billing/dashboard/v3/claim-workspace/claim-workspace.resource.ts +282 -0
  410. package/src/billing/dashboard/v3/claims-accounting/bill-utils.ts +134 -0
  411. package/src/billing/dashboard/v3/claims-accounting/claim-detail.component.tsx +346 -0
  412. package/src/billing/dashboard/v3/claims-accounting/claims-accounting.component.scss +546 -0
  413. package/src/billing/dashboard/v3/claims-accounting/claims-accounting.component.tsx +206 -0
  414. package/src/billing/dashboard/v3/claims-accounting/claims-accounting.resource.ts +337 -0
  415. package/src/billing/dashboard/v3/claims-accounting/invoice-document.component.scss +90 -0
  416. package/src/billing/dashboard/v3/claims-accounting/invoice-document.component.tsx +90 -0
  417. package/src/billing/dashboard/v3/claims-accounting/remittances.component.tsx +169 -0
  418. package/src/billing/dashboard/v3/claims-accounting/remittances.resource.ts +46 -0
  419. package/src/billing/dashboard/v3/claims-accounting/status-meta.ts +25 -0
  420. package/src/billing/dashboard/v3/clearance/clearance.component.scss +100 -0
  421. package/src/billing/dashboard/v3/clearance/clearance.component.tsx +0 -0
  422. package/src/billing/dashboard/v3/clearance/prepaid-services.component.tsx +112 -0
  423. package/src/billing/dashboard/v3/facility-bills/claim-status.ts +243 -0
  424. package/src/billing/dashboard/v3/facility-bills/facility-bills.component.scss +9 -0
  425. package/src/billing/dashboard/v3/facility-bills/facility-bills.component.tsx +172 -0
  426. package/src/billing/dashboard/v3/facility-bills/preauths-datatables/pending-preauths.component.tsx +132 -0
  427. package/src/billing/dashboard/v3/facility-bills/preauths-datatables/preauth-preview-table.component.tsx +232 -0
  428. package/src/billing/dashboard/v3/facility-bills/preauths.component.tsx +124 -0
  429. package/src/billing/dashboard/v3/patient-bill-details/attachments/add-attachments.component.tsx +223 -0
  430. package/src/billing/dashboard/v3/patient-bill-details/attachments/attachment.component.tsx +157 -0
  431. package/src/billing/dashboard/v3/patient-bill-details/attachments/attachments.scss +92 -0
  432. package/src/billing/dashboard/v3/patient-bill-details/attachments/case-summary/case-summary-helper.ts +58 -0
  433. package/src/billing/dashboard/v3/patient-bill-details/attachments/case-summary/case-summary.scss +295 -0
  434. package/src/billing/dashboard/v3/patient-bill-details/attachments/case-summary/case-summary.tsx +273 -0
  435. package/src/billing/dashboard/v3/patient-bill-details/attachments/dialysis/dialysis-chart.scss +238 -0
  436. package/src/billing/dashboard/v3/patient-bill-details/attachments/dialysis/dialysis-chart.tsx +314 -0
  437. package/src/billing/dashboard/v3/patient-bill-details/attachments/discharge-summary/discharge-summary.scss +96 -0
  438. package/src/billing/dashboard/v3/patient-bill-details/attachments/discharge-summary/discharge-summary.tsx +126 -0
  439. package/src/billing/dashboard/v3/patient-bill-details/attachments/final-bill.component.tsx +75 -0
  440. package/src/billing/dashboard/v3/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.scss +182 -0
  441. package/src/billing/dashboard/v3/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.tsx +253 -0
  442. package/src/billing/dashboard/v3/patient-bill-details/attachments/generate-attachments.component.tsx +343 -0
  443. package/src/billing/dashboard/v3/patient-bill-details/attachments/invoice.component.tsx +150 -0
  444. package/src/billing/dashboard/v3/patient-bill-details/attachments/invoice.scss +225 -0
  445. package/src/billing/dashboard/v3/patient-bill-details/attachments/type.ts +259 -0
  446. package/src/billing/dashboard/v3/patient-bill-details/bill-details/bill-details.scss +13 -0
  447. package/src/billing/dashboard/v3/patient-bill-details/bill-details/bill-details.tsx +205 -0
  448. package/src/billing/dashboard/v3/patient-bill-details/claim-details/patient-claim-details.component.scss +0 -0
  449. package/src/billing/dashboard/v3/patient-bill-details/claim-details/patient-claim-details.component.tsx +61 -0
  450. package/src/billing/dashboard/v3/patient-bill-details/modals/add-claim-diagnosis/add-claim-diagnosis.modal.scss +0 -0
  451. package/src/billing/dashboard/v3/patient-bill-details/modals/add-claim-diagnosis/add-claim-diagnosis.modal.tsx +99 -0
  452. package/src/billing/dashboard/v3/patient-bill-details/modals/add-claim-line/add-claim-line.modal.scss +14 -0
  453. package/src/billing/dashboard/v3/patient-bill-details/modals/add-claim-line/add-claim-line.modal.tsx +111 -0
  454. package/src/billing/dashboard/v3/patient-bill-details/modals/bill-item-payment/bill-item-payment.modal.scss +6 -0
  455. package/src/billing/dashboard/v3/patient-bill-details/modals/bill-item-payment/bill-item-payment.modal.tsx +139 -0
  456. package/src/billing/dashboard/v3/patient-bill-details/patient-bill-details.scss +20 -0
  457. package/src/billing/dashboard/v3/patient-bill-details/patient-bill-details.tsx +254 -0
  458. package/src/billing/dashboard/v3/patient-bill-details/visit-diagnosis-details/visit-diagnosis-details.component.scss +0 -0
  459. package/src/billing/dashboard/v3/patient-bill-details/visit-diagnosis-details/visit-diagnosis-details.component.tsx +80 -0
  460. package/src/billing/dashboard/v3/preauth/preauth-attachments.component.tsx +389 -0
  461. package/src/billing/dashboard/v3/preauth/preauth-list.component.scss +34 -0
  462. package/src/billing/dashboard/v3/preauth/preauth-list.component.tsx +281 -0
  463. package/src/billing/dashboard/v3/preauth/preauth-status-tag.component.tsx +75 -0
  464. package/src/billing/dashboard/v3/preauth/preauth-typed-fields.md +125 -0
  465. package/src/billing/dashboard/v3/preauth/preauth.resource.ts +1072 -0
  466. package/src/billing/dashboard/v3/preauth/preauth.workspace.scss +91 -0
  467. package/src/billing/dashboard/v3/preauth/preauth.workspace.tsx +1806 -0
  468. package/src/billing/dashboard/v3/preauth/preauthorizations-tab.component.tsx +45 -0
  469. package/src/billing/dashboard/v3/shared/empty-state.component.scss +25 -0
  470. package/src/billing/dashboard/v3/shared/empty-state.component.tsx +13 -0
  471. package/src/billing/dashboard/v3/shared/table-toolbar.component.scss +64 -0
  472. package/src/billing/dashboard/v3/shared/table-toolbar.component.tsx +48 -0
  473. package/src/billing/dashboard/v3/types/index.ts +381 -0
  474. package/src/billing/extensions/generate-order-bill-button/generate-order-bill-button.extension.tsx +55 -0
  475. package/src/billing/extensions/generate-order-bill-button/generate-order-bill-button.scss +16 -0
  476. package/src/billing/extensions/visit-billing/visit-billing.extension.scss +0 -0
  477. package/src/billing/extensions/visit-billing/visit-billing.extension.tsx +509 -0
  478. package/src/billing/invoice/bill.resource.ts +47 -0
  479. package/src/billing/invoice/invoice-header/header-card/header-card.scss +17 -0
  480. package/src/billing/invoice/invoice-header/header-card/header-card.tsx +21 -0
  481. package/src/billing/invoice/invoice.scss +113 -0
  482. package/src/billing/invoice/invoice.tsx +1441 -0
  483. package/src/billing/invoice/line-items/line-items.scss +0 -0
  484. package/src/billing/invoice/line-items/line-items.tsx +120 -0
  485. package/src/billing/invoice/modal/delete-bill-item/delete-bill-item.modal.scss +23 -0
  486. package/src/billing/invoice/modal/delete-bill-item/delete-bill-item.modal.tsx +114 -0
  487. package/src/billing/invoice/modal/edit-bill-item/edit-bill-item.modal.scss +0 -0
  488. package/src/billing/invoice/modal/edit-bill-item/edit-bill-item.modal.tsx +122 -0
  489. package/src/billing/invoice/payment-details/payment-details.scss +0 -0
  490. package/src/billing/invoice/payment-details/payment-details.tsx +43 -0
  491. package/src/billing/invoice/print-invoice/print-receipt.component.tsx +44 -0
  492. package/src/billing/invoice/print-invoice/print-receipt.scss +14 -0
  493. package/src/billing/maternity-discharge.resource.ts +21 -0
  494. package/src/billing/types/index.ts +354 -0
  495. package/src/billing/utils/index.ts +17 -0
  496. package/src/billing/widgets/billingTotalsRow.component.scss +0 -0
  497. package/src/billing/widgets/billingTotalsRow.component.tsx +712 -0
  498. package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.resource.ts +130 -0
  499. package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.scss +58 -0
  500. package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.workspace.tsx +645 -0
  501. package/src/billing/workspaces/create-order-bill-form-workspace/schema.ts +12 -0
  502. package/src/bookings/bookings.component.scss +7 -0
  503. package/src/bookings/bookings.component.tsx +35 -0
  504. package/src/bookings/daily/daily-bookings.resource.ts +2 -1
  505. package/src/case-summary/case-summary.extension.scss +13 -0
  506. package/src/case-summary/case-summary.extension.tsx +40 -0
  507. package/src/case-summary/case-summary.resource.test.ts +69 -0
  508. package/src/case-summary/case-summary.resource.ts +52 -0
  509. package/src/case-summary/components/case-summary-printable.component.scss +174 -0
  510. package/src/case-summary/components/case-summary-printable.component.tsx +288 -0
  511. package/src/case-summary/components/case-summary-printable.utils.ts +51 -0
  512. package/src/case-summary/types/case-summary.types.ts +152 -0
  513. package/src/claims/claims.component.scss +70 -0
  514. package/src/claims/claims.component.tsx +713 -0
  515. package/src/claims/claims.resource.ts +1274 -0
  516. package/src/claims/index.ts +340 -0
  517. package/src/claims/interventions.resource.ts +131 -0
  518. package/src/claims/utils.ts +64 -0
  519. package/src/config-schema.ts +114 -1
  520. package/src/context/patient-context.tsx +27 -0
  521. package/src/createDashboardLink.tsx +9 -0
  522. package/src/dashboard/charts/chart.component.scss +24 -0
  523. package/src/dashboard/charts/chart.component.tsx +56 -0
  524. package/src/dashboard/dashboard.component.scss +48 -3
  525. package/src/dashboard/dashboard.component.tsx +26 -36
  526. package/src/dashboard/overview/overview.component.scss +40 -59
  527. package/src/dashboard/overview/overview.component.tsx +53 -41
  528. package/src/dashboard-meta/accounting-dashboard.meta.ts +6 -0
  529. package/src/dashboard-meta/admissions-dashboard.meta.ts +6 -0
  530. package/src/dashboard-meta/billing-dashboard.meta.ts +6 -0
  531. package/src/dashboard-meta/bookings-dashboard.meta.ts +6 -0
  532. package/src/dashboard-meta/case-summary.meta.ts +6 -0
  533. package/src/dashboard-meta/consultation-dashboard.meta.ts +6 -0
  534. package/src/dashboard-meta/dha-workflow-dashboard.meta.ts +6 -0
  535. package/src/dashboard-meta/inpatient-admissions.meta.ts +6 -0
  536. package/src/dashboard-meta/maternity-dashboard.meta.ts +6 -0
  537. package/src/dashboard-meta/mch-dashboard.meta.ts +6 -0
  538. package/src/dashboard-meta/pharmacy-dashboard.meta.ts +6 -0
  539. package/src/dashboard-meta/queue-dashboard.meta.ts +6 -0
  540. package/src/dashboard-meta/registers-dashboard.meta.ts +6 -0
  541. package/src/dashboard-meta/registry-dashboard.meta.ts +6 -0
  542. package/src/dashboard-meta/service-queue-admin.meta.ts +6 -0
  543. package/src/dashboard-meta/specialized-clinics-dashboard.meta.ts +6 -0
  544. package/src/dashboard-meta/triage-dashboard.meta.ts +6 -0
  545. package/src/index.ts +177 -6
  546. package/src/mnch/maternity/maternity-queues.component.scss +7 -0
  547. package/src/mnch/maternity/maternity-queues.component.tsx +32 -0
  548. package/src/mnch/maternity/queues/triage/maternity-triage.tsx +15 -0
  549. package/src/mnch/mch/mch-queues.component.scss +10 -0
  550. package/src/mnch/mch/mch-queues.component.tsx +36 -0
  551. package/src/mnch/mch/queues/consultation/mch-consultation.tsx +18 -0
  552. package/src/mnch/mch/queues/triage/mch-triage.tsx +15 -0
  553. package/src/mnch/mnch-root.tsx +17 -0
  554. package/src/mortuary/mortuary.component.tsx +13 -0
  555. package/src/pharmacy/pharmacy.component.scss +16 -0
  556. package/src/pharmacy/pharmacy.component.tsx +11 -6
  557. package/src/registers/registers.component.tsx +8 -0
  558. package/src/registry/drawer/emr-compare.component.scss +263 -0
  559. package/src/registry/drawer/emr-compare.component.tsx +302 -0
  560. package/src/registry/drawer/emr-compare.resource.ts +181 -0
  561. package/src/registry/drawer/emr-create-preview.component.tsx +123 -0
  562. package/src/registry/drawer/otp-verification-step.component.tsx +398 -0
  563. package/src/registry/drawer/pomsf-balance.util.test.ts +177 -0
  564. package/src/registry/drawer/pomsf-balance.util.ts +79 -0
  565. package/src/registry/drawer/verification.resource.ts +60 -0
  566. package/src/registry/drawer/workflow-drawer.component.scss +1242 -0
  567. package/src/registry/drawer/workflow-drawer.component.tsx +1476 -0
  568. package/src/registry/eligibility/eligibility-details/eligibility-details.scss +38 -0
  569. package/src/registry/eligibility/eligibility-details/eligibility-details.tsx +101 -0
  570. package/src/registry/eligibility/eliigibility-tags/eligibility-tags.scss +16 -0
  571. package/src/registry/eligibility/eliigibility-tags/eligibility-tags.tsx +120 -0
  572. package/src/registry/eligibility/modal/eligibility-details.modal.scss +0 -0
  573. package/src/registry/eligibility/modal/eligibility-details.modal.tsx +45 -0
  574. package/src/registry/hie.resource.ts +408 -0
  575. package/src/registry/hie.types.ts +57 -0
  576. package/src/registry/modal/biometrics-verification-modal/biometrics-verification-modal.scss +277 -0
  577. package/src/registry/modal/biometrics-verification-modal/biometrics-verification-modal.tsx +218 -0
  578. package/src/registry/modal/biometrics-verification-modal/type.ts +39 -0
  579. package/src/registry/modal/client-details-modal/client-details-modal.tsx +65 -29
  580. package/src/registry/modal/otp-modal/otp-whitlisting-modal.component.tsx +815 -0
  581. package/src/registry/modal/otp-modal/otp-whitlisting-modal.scss +354 -0
  582. package/src/registry/modal/otp-modal/otp-whitlisting.scss +0 -0
  583. package/src/registry/modal/otp-verification-modal/claims-consent.scss +72 -0
  584. package/src/registry/modal/otp-verification-modal/claims-consent.tsx +135 -0
  585. package/src/registry/modal/otp-verification-modal/extension/claims-consent.extension.tsx +124 -0
  586. package/src/registry/modal/otp-verification-modal/otp-verification-modal.scss +30 -0
  587. package/src/registry/modal/otp-verification-modal/otp-verification-modal.tsx +154 -54
  588. package/src/registry/modal/send-to-triage/payment-details.tsx +120 -0
  589. package/src/registry/modal/send-to-triage/payment-method.component.tsx +54 -0
  590. package/src/registry/modal/send-to-triage/send-to-queue.modal.tsx +980 -0
  591. package/src/registry/modal/send-to-triage/send-to-triage.modal.scss +156 -3
  592. package/src/registry/modal/send-to-triage/send-to-triage.modal.tsx +1101 -131
  593. package/src/registry/modal/start-patient-visit/start-patient-visit.modal.scss +34 -0
  594. package/src/registry/modal/start-patient-visit/start-patient-visit.modal.tsx +231 -0
  595. package/src/registry/payment-details/payment-options/payment-options.scss +13 -0
  596. package/src/registry/payment-details/payment-options/payment-options.tsx +61 -14
  597. package/src/registry/registration-list/registration-list.component.scss +32 -0
  598. package/src/registry/registration-list/registration-list.component.tsx +103 -0
  599. package/src/registry/registry-entry.tsx +11 -0
  600. package/src/registry/registry.component.scss +402 -78
  601. package/src/registry/registry.component.tsx +547 -221
  602. package/src/registry/registry.resource.ts +22 -3
  603. package/src/registry/types/index.ts +117 -8
  604. package/src/registry/utils/error-handler.ts +54 -0
  605. package/src/registry/utils/format-dependant-display-data.ts +1 -1
  606. package/src/registry/utils/hie-client-adapter.ts +6 -3
  607. package/src/registry/utils/mask-data.ts +40 -0
  608. package/src/registry/utils/phone-number-formatter.ts +11 -0
  609. package/src/resources/dashboard.resource.ts +20 -0
  610. package/src/resources/identifier-types.ts +2 -0
  611. package/src/resources/patient-resource.ts +6 -1
  612. package/src/resources/queue.resource.ts +24 -1
  613. package/src/resources/superset.resource.ts +21 -0
  614. package/src/resources/visit.resource.ts +19 -1
  615. package/src/root.component.tsx +8 -5
  616. package/src/routes.json +417 -23
  617. package/src/service-queues/admin/queue/modal/create-queue/create-queue.modal.scss +31 -0
  618. package/src/service-queues/admin/queue/modal/create-queue/create-queue.modal.tsx +153 -0
  619. package/src/service-queues/admin/queue/modal/edit-queue/edit-queue.modal.scss +0 -0
  620. package/src/service-queues/admin/queue/modal/edit-queue/edit-queue.modal.tsx +182 -0
  621. package/src/service-queues/admin/queue/queue-list/queue-list.scss +33 -0
  622. package/src/service-queues/admin/queue/queue-list/queue-list.tsx +113 -0
  623. package/src/service-queues/admin/queue-entry/queue-entry-list.component.scss +6 -0
  624. package/src/service-queues/admin/queue-entry/queue-entry-list.component.tsx +137 -0
  625. package/src/service-queues/admin/queue-room/modal/create-queue-room/create-queue-room.modal.scss +31 -0
  626. package/src/service-queues/admin/queue-room/modal/create-queue-room/create-queue-room.modal.tsx +137 -0
  627. package/src/service-queues/admin/queue-room/modal/edit-queue-room/edit-queue-room.modal.scss +0 -0
  628. package/src/service-queues/admin/queue-room/modal/edit-queue-room/edit-queue-room.modal.tsx +146 -0
  629. package/src/service-queues/admin/queue-room/queue-room-list/queue-room-list.scss +22 -0
  630. package/src/service-queues/admin/queue-room/queue-room-list/queue-room-list.tsx +120 -0
  631. package/src/service-queues/admin/service-queue-admin-dashboard.component.scss +6 -0
  632. package/src/service-queues/admin/service-queue-admin-dashboard.component.tsx +34 -0
  633. package/src/service-queues/consultation/consultation.component.tsx +9 -0
  634. package/src/service-queues/extensions/service-queue-patient-banner/service-queue-patient-banner.scss +30 -0
  635. package/src/service-queues/extensions/service-queue-patient-banner/service-queue-patient-banner.tsx +108 -0
  636. package/src/service-queues/modals/daily-report-patient-list/daily-report-patient-list.scss +26 -0
  637. package/src/service-queues/modals/daily-report-patient-list/daily-report-patient-list.tsx +110 -0
  638. package/src/service-queues/modals/move/move-patient.component.scss +1 -1
  639. package/src/service-queues/modals/move/move-patient.component.tsx +31 -17
  640. package/src/service-queues/queue-list/check-in.service.ts +26 -0
  641. package/src/service-queues/queue-list/queue-list.component.scss +37 -0
  642. package/src/service-queues/queue-list/queue-list.component.tsx +256 -56
  643. package/src/service-queues/service-queue/service-queue.component.tsx +151 -8
  644. package/src/service-queues/service-queue/stats/stat-details/stat-details.component.scss +5 -0
  645. package/src/service-queues/service-queue/stats/stat-details/stat-details.component.tsx +36 -7
  646. package/src/service-queues/service-queue.tsx +22 -16
  647. package/src/service-queues/service-queues.resource.ts +197 -1
  648. package/src/service-queues/service.resource.ts +1 -1
  649. package/src/shared/constants/concepts.ts +50 -0
  650. package/src/shared/constants/patient-category.ts +6 -0
  651. package/src/shared/constants/patient-type.ts +10 -0
  652. package/src/shared/constants/visit-types.ts +7 -0
  653. package/src/shared/services/billing.resource.ts +75 -0
  654. package/src/shared/services/claims.resource.ts +47 -0
  655. package/src/shared/services/client-payment-mode.resource.ts +27 -0
  656. package/src/shared/services/client-payment.resource.ts +17 -0
  657. package/src/shared/services/consultation-clearance.resource.ts +210 -0
  658. package/src/shared/services/eligibility.resource.ts +20 -0
  659. package/src/shared/services/encounters.resource.ts +33 -0
  660. package/src/shared/services/location.resource.ts +9 -0
  661. package/src/shared/types/index.ts +156 -0
  662. package/src/shared/ui/aggregate-stat-card/aggregate-stat-card.scss +42 -0
  663. package/src/shared/ui/aggregate-stat-card/aggregate-stat-card.tsx +42 -0
  664. package/src/shared/ui/confirm-modal/confirm.modal.scss +18 -0
  665. package/src/shared/ui/confirm-modal/confirm.modal.tsx +38 -0
  666. package/src/shared/ui/facility-worker-slot/facility-worker.component-slot.component.scss +39 -0
  667. package/src/shared/ui/facility-worker-slot/facility-worker.component-slot.component.tsx +19 -0
  668. package/src/shared/ui/otp-input/otp-input.component.scss +14 -0
  669. package/src/shared/ui/otp-input/otp-input.component.tsx +97 -0
  670. package/src/{service-queues/service-queue/stats → shared/ui}/stat-card/stat-card.component.tsx +6 -3
  671. package/src/shared/ui/timer/timer.component.scss +5 -0
  672. package/src/shared/ui/timer/timer.component.tsx +40 -0
  673. package/src/shared/utils/get-base-url.ts +10 -0
  674. package/src/shared/utils/get-tag-type.ts +75 -0
  675. package/src/side-nav-menu/mnch-nav-link-config.ts +16 -0
  676. package/src/side-nav-menu/mnch-nav-links.tsx +42 -0
  677. package/src/side-nav-menu/nav-link-config.ts +1 -5
  678. package/src/side-nav-menu/specialized-clinics-nav-link-config.ts +36 -0
  679. package/src/side-nav-menu/specialized-clinics-nav-links.tsx +42 -0
  680. package/src/specialized-clinics/critital-care-unit/critical-care-unit-queues.component.scss +7 -0
  681. package/src/specialized-clinics/critital-care-unit/critical-care-unit-queues.component.tsx +36 -0
  682. package/src/specialized-clinics/critital-care-unit/queues/consultation/critical-care-unit-consultation.tsx +15 -0
  683. package/src/specialized-clinics/critital-care-unit/queues/triage/critical-care-unit-triage.tsx +15 -0
  684. package/src/specialized-clinics/dental/dental-queues.component.scss +7 -0
  685. package/src/specialized-clinics/dental/dental-queues.component.tsx +36 -0
  686. package/src/specialized-clinics/dental/queues/consultation/dental-consultation.tsx +15 -0
  687. package/src/specialized-clinics/dental/queues/triage/dental-triage.tsx +15 -0
  688. package/src/specialized-clinics/diagnostic-and-imaging/diagnostic-and-imaging.component.scss +7 -0
  689. package/src/specialized-clinics/diagnostic-and-imaging/diagnostic-and-imaging.component.tsx +36 -0
  690. package/src/specialized-clinics/diagnostic-and-imaging/queues/consultation/diagnosis-and-imaging-consultation.tsx +15 -0
  691. package/src/specialized-clinics/diagnostic-and-imaging/queues/triage/diagnosis-and-imaging-triage.tsx +15 -0
  692. package/src/specialized-clinics/oncology/oncology-queues.component.scss +7 -0
  693. package/src/specialized-clinics/oncology/oncology-queues.component.tsx +36 -0
  694. package/src/specialized-clinics/oncology/queues/consultation/oncology-consultation.tsx +15 -0
  695. package/src/specialized-clinics/oncology/queues/triage/oncology-triage.tsx +15 -0
  696. package/src/specialized-clinics/ophthalmology/ophthalmology-queues.component.scss +7 -0
  697. package/src/specialized-clinics/ophthalmology/ophthalmology-queues.component.tsx +36 -0
  698. package/src/specialized-clinics/ophthalmology/queues/consultation/ophthalmology-consultation.tsx +15 -0
  699. package/src/specialized-clinics/ophthalmology/queues/triage/ophthalmology-triage.tsx +15 -0
  700. package/src/specialized-clinics/psychiatry/psychiatry-queues.component.scss +7 -0
  701. package/src/specialized-clinics/psychiatry/psychiatry-queues.component.tsx +36 -0
  702. package/src/specialized-clinics/psychiatry/queues/consultation/psychiatry-consultation.tsx +15 -0
  703. package/src/specialized-clinics/psychiatry/queues/triage/psychiatry-triage.tsx +15 -0
  704. package/src/specialized-clinics/renal/queues/consultation/dialysis-consultation.tsx +15 -0
  705. package/src/specialized-clinics/renal/queues/triage/renal-triage.tsx +15 -0
  706. package/src/specialized-clinics/renal/renal-queues.component.scss +7 -0
  707. package/src/specialized-clinics/renal/renal-queues.component.tsx +36 -0
  708. package/src/specialized-clinics/specialized-clinics-root.tsx +27 -0
  709. package/src/triage/triage.component.scss +6 -0
  710. package/src/triage/triage.component.tsx +4 -0
  711. package/src/types/types.ts +56 -1
  712. package/webpack.config.js +54 -1
  713. package/dist/104.js +0 -2
  714. package/dist/104.js.map +0 -1
  715. package/dist/15.js +0 -1
  716. package/dist/15.js.map +0 -1
  717. package/dist/184.js +0 -2
  718. package/dist/184.js.map +0 -1
  719. package/dist/197.js +0 -1
  720. package/dist/255.js +0 -1
  721. package/dist/255.js.map +0 -1
  722. package/dist/300.js +0 -1
  723. package/dist/335.js +0 -1
  724. package/dist/339.js +0 -1
  725. package/dist/339.js.map +0 -1
  726. package/dist/353.js +0 -1
  727. package/dist/353.js.map +0 -1
  728. package/dist/420.js +0 -1
  729. package/dist/420.js.map +0 -1
  730. package/dist/540.js +0 -2
  731. package/dist/540.js.map +0 -1
  732. package/dist/55.js +0 -1
  733. package/dist/652.js +0 -1
  734. package/dist/709.js +0 -1
  735. package/dist/709.js.map +0 -1
  736. package/dist/710.js +0 -2
  737. package/dist/710.js.map +0 -1
  738. package/dist/729.js +0 -1
  739. package/dist/729.js.map +0 -1
  740. package/dist/752.js +0 -1
  741. package/dist/752.js.map +0 -1
  742. package/dist/833.js +0 -1
  743. package/dist/833.js.map +0 -1
  744. package/dist/907.js +0 -1
  745. package/dist/907.js.map +0 -1
  746. package/dist/91.js +0 -1
  747. package/dist/91.js.map +0 -1
  748. package/dist/93.js +0 -1
  749. package/dist/93.js.map +0 -1
  750. package/dist/943.js +0 -1
  751. package/dist/943.js.map +0 -1
  752. package/dist/99.js +0 -1
  753. /package/dist/{104.js.LICENSE.txt → 2177.js.LICENSE.txt} +0 -0
  754. /package/dist/{810.js.LICENSE.txt → 262.js.LICENSE.txt} +0 -0
  755. /package/dist/{184.js.LICENSE.txt → 3184.js.LICENSE.txt} +0 -0
  756. /package/dist/{540.js.LICENSE.txt → 6540.js.LICENSE.txt} +0 -0
  757. /package/dist/{710.js.LICENSE.txt → 7830.js.LICENSE.txt} +0 -0
  758. /package/src/{service-queues/service-queue/stats → shared/ui}/stat-card/stat-card.component.scss +0 -0
@@ -1,81 +1,172 @@
1
1
  import {
2
+ Breadcrumb,
3
+ BreadcrumbItem,
2
4
  Button,
3
5
  Dropdown,
4
- InlineLoading,
6
+ Layer,
7
+ Loading,
5
8
  RadioButton,
6
- RadioButtonGroup,
7
- Table,
8
- TableBody,
9
- TableCell,
10
- TableHead,
11
- TableHeader,
12
- TableRow,
9
+ Tag,
13
10
  TextInput,
14
11
  } from '@carbon/react';
12
+ import {
13
+ Search,
14
+ SearchLocate,
15
+ WarningAlt,
16
+ WarningAltFilled,
17
+ UserMultiple,
18
+ Identification,
19
+ CheckmarkOutline,
20
+ Close,
21
+ } from '@carbon/react/icons';
15
22
  import React, { useState } from 'react';
16
23
  import styles from './registry.component.scss';
17
- import { type HieClient, IDENTIFIER_TYPES, type IdentifierType, type RequestCustomOtpDto } from './types';
24
+ import {
25
+ type ClientRegistrySearchRequest,
26
+ type CreateVisitDto,
27
+ type HieClient,
28
+ IDENTIFIER_TYPES,
29
+ type IdentifierType,
30
+ type QueueEntryDto,
31
+ type RequestCustomOtpDto,
32
+ type VisitAttribute,
33
+ } from './types';
34
+ import { createVisit } from '../resources/visit.resource';
35
+ import { createQueueEntry } from '../resources/queue.resource';
36
+ import { QUEUE_PRIORITIES_UUIDS, QUEUE_STATUS_UUIDS } from '../shared/constants/concepts';
37
+ import { VisitTypeUuids } from '../shared/constants/visit-types';
38
+ import {
39
+ createConsultationClearance,
40
+ findOpenPrepaidService,
41
+ fulfillPrepaidService,
42
+ } from '../shared/services/consultation-clearance.resource';
18
43
  import { fetchClientRegistryData } from './registry.resource';
19
- import { type Patient, showSnackbar, useSession } from '@openmrs/esm-framework';
20
- import OtpVerificationModal from './modal/otp-verification-modal/otp-verification-modal';
21
- import { maskExceptFirstAndLast, maskValue } from './utils/mask-data';
22
- import ClientDetailsModal from './modal/client-details-modal/client-details-modal';
44
+ import { type Patient, showSnackbar, useConfig, useSession } from '@openmrs/esm-framework';
45
+ import { maskCrNumber, maskExceptFirstAndLast } from './utils/mask-data';
23
46
  import { searchPatientByCrNumber } from '../resources/patient-search.resource';
24
47
  import SendToTriageModal from './modal/send-to-triage/send-to-triage.modal';
25
- import { useNavigate } from 'react-router-dom';
26
- import { formatDependantDisplayData } from './utils/format-dependant-display-data';
48
+ import WorkflowDrawer from './drawer/workflow-drawer.component';
27
49
  import { registerHieClientInAmrs } from '../resources/hie-amrs-automatic-registration.service';
28
- import { getErrorMessages } from './utils/error-handler';
50
+ import { getErrorMessages, getReadableErrorMessage } from './utils/error-handler';
51
+ import { IdentifierTypesUuids } from '../resources/identifier-types';
52
+ import { formatPhoneNumberForOTP } from './utils/phone-number-formatter';
53
+ import { usePatient } from '../context/patient-context';
54
+ import FacilityAndWorkerSlot from '../shared/ui/facility-worker-slot/facility-worker.component-slot.component';
55
+ import RegistrationList from './registration-list/registration-list.component';
56
+ import { type ConfigObject } from '../config-schema';
29
57
 
30
58
  interface RegistryComponentProps {}
31
59
  const RegistryComponent: React.FC<RegistryComponentProps> = () => {
32
60
  const [identifierType, setIdentifierType] = useState<IdentifierType>('National ID');
33
61
  const [identifierValue, setIdentifierValue] = useState('');
62
+ const [validationError, setValidationError] = useState<string>('');
63
+ const [notFound, setNotFound] = useState<boolean>(false);
64
+ const [fetchError, setFetchError] = useState<string>('');
34
65
  const [loading, setLoading] = useState<boolean>(false);
35
66
  const [principal, setPrincipal] = useState<HieClient>();
36
- const [selectedDependant, setSelectedDependant] = useState<HieClient>();
37
67
  const [amrsPatients, setAmrsPatients] = useState<Patient[]>([]);
68
+ const [amrsChecked, setAmrsChecked] = useState<boolean>(false);
69
+ const [syncingAmrs, setSyncingAmrs] = useState<boolean>(false);
38
70
  const [selectedPatient, setSelectedPatient] = useState<string>('principal');
39
71
  const [displayOtpModal, setDisplayOtpModal] = useState<boolean>(false);
40
72
  const [displayClientDetailsModal, setDisplayClientDetailsModal] = useState<boolean>(false);
41
- const [displaytriageModal, setDisplaytriageModal] = useState<boolean>(false);
73
+ const [displaytStartVisitModal, setdisplaytStartVisitModal] = useState<boolean>(false);
74
+ const [displayDrawer, setDisplayDrawer] = useState<boolean>(false);
42
75
  const [requestCustomOtpDto, setRequestCustomOtpDto] = useState<RequestCustomOtpDto>();
43
76
  const session = useSession();
44
- const locationUuid = session.sessionLocation.uuid;
45
- const navigate = useNavigate();
77
+ const locationUuid = session?.sessionLocation?.uuid;
78
+ const { setPatient } = usePatient();
79
+ const { cashPaymentModeUuid, shaPaymentModeUuid } = useConfig<ConfigObject>();
80
+
81
+ const validateForm = (): string => {
82
+ const value = identifierValue.trim();
83
+ if (!value) {
84
+ return `${identifierType} value is required`;
85
+ }
86
+ if (value.length < 4) {
87
+ return `Enter a valid ${identifierType.toLowerCase()} (minimum 4 characters)`;
88
+ }
89
+ if (identifierType === 'National ID' && !/^\d+$/.test(value)) {
90
+ return 'National ID must contain digits only';
91
+ }
92
+ if (!locationUuid) {
93
+ return 'No default location selected. Please set your session location.';
94
+ }
95
+ return '';
96
+ };
46
97
 
47
98
  const handleSearchPatient = async () => {
99
+ const error = validateForm();
100
+ if (error) {
101
+ setValidationError(error);
102
+ return;
103
+ }
104
+ setValidationError('');
105
+ setNotFound(false);
106
+ setFetchError('');
48
107
  setLoading(true);
49
108
  try {
50
- const payload = {
51
- identificationNumber: identifierValue,
52
- identificationType: identifierType,
53
- locationUuid,
54
- };
109
+ const searchClientPayload = getSearchClientDto();
55
110
 
56
- if (!isValidCustomSmsPayload(payload)) return false;
111
+ if (!isValidSeatchClientPayload(searchClientPayload)) return false;
57
112
 
58
- setRequestCustomOtpDto(payload);
59
-
60
- const result = await fetchClientRegistryData(payload);
113
+ const result = await fetchClientRegistryData(searchClientPayload);
61
114
  const patients = Array.isArray(result) ? result : [];
62
115
 
63
116
  if (patients.length === 0) {
64
- handleCancel();
65
- throw new Error('No matching patient found in Client Registry.');
117
+ setPrincipal(null);
118
+ setNotFound(true);
119
+ return;
66
120
  }
67
121
 
68
122
  const patient = patients[0];
123
+ setPatient(patient);
69
124
  setPrincipal(patient);
70
- showAlert('success', 'Client Data Loaded', 'Patient fetched successfully');
125
+ // Auto-select the principal by default so the worker can proceed immediately.
126
+ setSelectedPatient('principal');
71
127
  } catch (err: any) {
72
- const errorMessage = err.message || 'Failed to fetch client data';
73
- handleCancel();
74
- showAlert('error', 'Fetch Failed', errorMessage);
128
+ // Communicate the failure on the page (keep the worker's input so they can retry).
129
+ const errorMessage = getReadableErrorMessage(err, 'We couldn’t reach the Client Registry.');
130
+ setPrincipal(null);
131
+ setFetchError(errorMessage);
75
132
  } finally {
76
133
  setLoading(false);
77
134
  }
78
135
  };
136
+
137
+ const getSearchClientDto = (): ClientRegistrySearchRequest => {
138
+ return {
139
+ identificationNumber: identifierValue.trim(),
140
+ identificationType: identifierType,
141
+ locationUuid,
142
+ };
143
+ };
144
+
145
+ const isValidSeatchClientPayload = (payload: ClientRegistrySearchRequest): boolean => {
146
+ if (!payload.identificationNumber) {
147
+ showAlert('error', 'Please enter a valid identification number', '');
148
+ return false;
149
+ }
150
+ if (!payload.identificationType) {
151
+ showAlert('error', 'Please enter a valid identification type', '');
152
+ return false;
153
+ }
154
+ if (!payload.locationUuid) {
155
+ showAlert('error', 'No default location selected', '');
156
+ return false;
157
+ }
158
+ return true;
159
+ };
160
+
161
+ const generateCustomSmsPayload = (): RequestCustomOtpDto => {
162
+ return {
163
+ identificationNumber: identifierValue,
164
+ identificationType: identifierType,
165
+ locationUuid,
166
+ phoneNumber: principal?.phone ? formatPhoneNumberForOTP(principal.phone ?? '') : '',
167
+ };
168
+ };
169
+
79
170
  const isValidCustomSmsPayload = (payload: RequestCustomOtpDto): boolean => {
80
171
  if (!payload.identificationNumber) {
81
172
  showAlert('error', 'Please enter a valid identification number', '');
@@ -89,9 +180,13 @@ const RegistryComponent: React.FC<RegistryComponentProps> = () => {
89
180
  showAlert('error', 'No default location selected', '');
90
181
  return false;
91
182
  }
183
+ if (!payload.phoneNumber) {
184
+ showAlert('error', 'No phone number selected', '');
185
+ return false;
186
+ }
92
187
  return true;
93
188
  };
94
- const showAlert = (alertType: 'error' | 'success', title: string, subtitle: string) => {
189
+ const showAlert = (alertType: 'error' | 'success' | 'info' | 'warning', title: string, subtitle: string) => {
95
190
  showSnackbar({
96
191
  kind: alertType,
97
192
  title: title,
@@ -101,70 +196,96 @@ const RegistryComponent: React.FC<RegistryComponentProps> = () => {
101
196
  const handleSelectedPatient = (sp: string) => {
102
197
  setSelectedPatient(sp);
103
198
  };
104
- const handleOtpVerification = () => {
105
- setDisplayOtpModal(true);
199
+ // Open the registration workflow drawer, which handles biometric + OTP verification,
200
+ // consent and starting the visit inline (replacing the old OTP/client-details modals).
201
+ const handleOtpVerification = async () => {
202
+ const smsPayload = generateCustomSmsPayload();
203
+ if (!isValidCustomSmsPayload(smsPayload)) {
204
+ return;
205
+ }
206
+ setRequestCustomOtpDto(smsPayload);
207
+ const client = getPatient();
208
+ if (client?.id) {
209
+ await searchAmrsPatient(client.id);
210
+ }
211
+ setDisplayDrawer(true);
212
+ };
213
+ const handleClearIdentifier = () => {
214
+ setIdentifierValue('');
215
+ setValidationError('');
216
+ setNotFound(false);
106
217
  };
107
218
  const handleModelClose = () => {
108
219
  setDisplayOtpModal(false);
109
220
  };
110
221
  const onClientDetailsModalClose = () => {
222
+ onClientDetailsModalClose();
111
223
  setDisplayClientDetailsModal(false);
112
224
  };
113
- const handleClientDetailsSubmit = () => {
114
- return;
225
+ const handleClientDetailsSubmit = async (crId: string) => {
226
+ setDisplayClientDetailsModal(false);
227
+ await searchAmrsPatient(crId);
228
+ setDisplayDrawer(true);
115
229
  };
116
230
  const handleEmergencyRegistration = () => {
117
231
  window.location.href = `${window.spaBase}/patient-registration`;
118
232
  };
119
233
  const handleManualRegistration = () => {
120
- setDisplaytriageModal(false);
234
+ setdisplaytStartVisitModal(false);
121
235
  handleEmergencyRegistration();
122
236
  };
123
- const handleSendClientToTriage = async (crId: string) => {
124
- onClientDetailsModalClose();
237
+ // Look the client up in the EMR. The found / not-found result is surfaced in the
238
+ // workflow drawer (see amrsPatients / amrsChecked) so the user can decide whether to
239
+ // create the patient in the EMR or sync an existing record.
240
+ const searchAmrsPatient = async (crId: string) => {
241
+ setAmrsChecked(false);
125
242
  const resp = await searchPatientByCrNumber(crId);
126
243
  if (resp.totalCount > 0) {
127
- showAlert(
128
- 'success',
129
- `${resp.totalCount} ${resp.totalCount > 0 ? 'Patients' : 'Patient'} found in the system with ${crId}`,
130
- '',
131
- );
132
- setAmrsPatients(resp.results);
133
- setDisplaytriageModal(true);
244
+ const validPatients = validateAmrsPatient(crId, resp.results ?? []);
245
+ setAmrsPatients(validPatients);
134
246
  } else {
135
- showAlert('error', 'Patient not found in the system', '');
136
247
  setAmrsPatients([]);
137
- setDisplaytriageModal(true);
138
248
  }
249
+ setAmrsChecked(true);
250
+ };
251
+ // Refresh the matched EMR record so the latest state is used for the visit.
252
+ const syncAmrsPatient = async () => {
253
+ const client = getPatient();
254
+ if (!client?.id) {
255
+ return;
256
+ }
257
+ setSyncingAmrs(true);
258
+ try {
259
+ await searchAmrsPatient(client.id);
260
+ showAlert('success', 'EMR record refreshed', '');
261
+ } catch (e) {
262
+ showAlert('error', 'Could not sync the EMR record', '');
263
+ } finally {
264
+ setSyncingAmrs(false);
265
+ }
266
+ };
267
+ const validateAmrsPatient = (crNo: string, patients: Patient[]) => {
268
+ return patients.filter((p) => {
269
+ return p.identifiers.some((id) => {
270
+ return id.identifier === crNo && id.identifierType.uuid === IdentifierTypesUuids.CLIENT_REGISTRY_NO_UUID;
271
+ });
272
+ });
139
273
  };
140
274
  const onSendToTriageModalClose = (modalCloseResp?: { success: boolean }) => {
141
- setDisplaytriageModal(false);
275
+ setdisplaytStartVisitModal(false);
142
276
  if (modalCloseResp && modalCloseResp.success) {
143
- navigate('/triage');
277
+ window.location.href = `${window.spaBase}/home/triage`;
144
278
  }
145
279
  };
146
280
  const handleSendToTriageModalSubmit = () => {};
147
281
  const getPatient = (): HieClient => {
148
- if (selectedPatient === 'principal') {
149
- return principal;
150
- } else if (selectedPatient === 'dependants') {
151
- return selectedDependant;
152
- } else {
282
+ if (!principal || selectedPatient === 'principal') {
153
283
  return principal;
154
284
  }
285
+ const match = principal.dependants?.find((d) => d.result[0].id === selectedPatient);
286
+ return match ? (match.result[0] as unknown as HieClient) : principal;
155
287
  };
156
- const handleSelectedDependant = (dependantId: string) => {
157
- const dependants = principal.dependants;
158
- if (dependants.length > 0) {
159
- const dependant = dependants.find((d) => {
160
- return d.result[0].id === dependantId;
161
- });
162
- if (dependant) {
163
- setSelectedDependant(dependant.result[0] as unknown as HieClient);
164
- }
165
- }
166
- };
167
- const createAmrsPatient = async () => {
288
+ const createAmrsPatient = async (): Promise<Patient | undefined> => {
168
289
  const patient = getPatient();
169
290
  if (!patient) {
170
291
  showAlert('error', 'Principal or dependant not selected', '');
@@ -175,6 +296,7 @@ const RegistryComponent: React.FC<RegistryComponentProps> = () => {
175
296
  if (resp) {
176
297
  showAlert('success', 'Patient created succesfully', '');
177
298
  setAmrsPatients([resp]);
299
+ return resp;
178
300
  }
179
301
  } catch (e) {
180
302
  const errorResp = e['responseBody'] ?? e.message;
@@ -187,211 +309,415 @@ const RegistryComponent: React.FC<RegistryComponentProps> = () => {
187
309
  }
188
310
  }
189
311
  };
312
+ // Create the AMRS visit for the verified client once the workflow drawer is submitted,
313
+ // add them to the selected triage queue, and raise the consultation clearance so they
314
+ // wait "Awaiting clearance" until Accounting settles the fee (exempt patients auto-clear).
315
+ const getVisitAttributes = (paymentMethod: 'cash' | 'insurance', insurance: string) => {
316
+ const attributes: VisitAttribute[] = [];
317
+ if (paymentMethod) {
318
+ attributes.push({
319
+ attributeType: '8553afa0-bdb9-4d3c-8a98-05fa9350aa85',
320
+ value: paymentMethod === "cash"
321
+ ? cashPaymentModeUuid
322
+ : shaPaymentModeUuid // /sha|shif/i.test(insurance) ? shaPaymentModeUuid : "",
323
+ });
324
+ }
325
+ return attributes;
326
+ }
327
+ const startVisitForClient = async (details: {
328
+ patientCategory: string;
329
+ room: string;
330
+ roomUuid: string;
331
+ visitType: string;
332
+ method?: 'cash' | 'insurance';
333
+ insurance?: string;
334
+ }) => {
335
+ // Ensure the client exists in AMRS before starting a visit.
336
+ let amrsPatient = amrsPatients[0];
337
+ if (!amrsPatient) {
338
+ amrsPatient = await createAmrsPatient();
339
+ }
340
+ if (!amrsPatient?.uuid) {
341
+ showAlert('error', 'No patient available to start a visit for', '');
342
+ return;
343
+ }
344
+ if (!details.roomUuid) {
345
+ showAlert('error', 'Selected triage room could not be resolved to a queue', '');
346
+ return;
347
+ }
348
+ const visitType =
349
+ details.visitType === 'Inpatient'
350
+ ? VisitTypeUuids.INPATIENT_VISIT_TYPE_UUID
351
+ : VisitTypeUuids.OPD_VISIT_TYPE_UUID;
352
+ const visitDto: CreateVisitDto = {
353
+ visitType,
354
+ location: locationUuid ?? '',
355
+ startDatetime: null,
356
+ stopDatetime: null,
357
+ patient: amrsPatient.uuid,
358
+ };
359
+ const visitAttributes = getVisitAttributes(details.method, details.insurance);
360
+ if (visitAttributes.length > 0) {
361
+ visitDto['attributes'] = visitAttributes;
362
+ }
363
+ try {
364
+ const visit = await createVisit(visitDto);
365
+ if (!visit?.uuid) {
366
+ showAlert('error', 'Error creating visit', '');
367
+ return;
368
+ }
369
+
370
+ // Place the patient in the selected triage queue (Waiting / Normal priority).
371
+ const queueEntryDto: QueueEntryDto = {
372
+ visit: { uuid: visit.uuid },
373
+ queueEntry: {
374
+ status: { uuid: QUEUE_STATUS_UUIDS.WAITING_UUID },
375
+ priority: { uuid: QUEUE_PRIORITIES_UUIDS.NORMAL_PRIORITY_UUID },
376
+ queue: { uuid: details.roomUuid },
377
+ patient: { uuid: amrsPatient.uuid },
378
+ startedAt: visit.startDatetime ?? new Date().toISOString(),
379
+ sortWeight: 0,
380
+ },
381
+ };
382
+ await createQueueEntry(queueEntryDto);
383
+
384
+ // Raise the consultation clearance for CASH patients only — they sit
385
+ // "Awaiting payment" in the Accounting dashboard until the fee is settled.
386
+ // SHA/insurance patients are cleared through the SHA claim (their real
387
+ // active visit is the source of truth under "Pending clearance"), so we
388
+ // don't raise a cash clearance record for them.
389
+ /*
390
+ const client = getPatient();
391
+ const isCash = details.method !== 'insurance';
392
+ if (isCash) {
393
+ // A patient who prepaid on an earlier visit clears without a new fee.
394
+ const prepaid = client?.id ? findOpenPrepaidService(client.id) : undefined;
395
+ createConsultationClearance({
396
+ patientName: [client?.first_name, client?.middle_name, client?.last_name].filter(Boolean).join(' '),
397
+ crNumber: client?.id ?? '',
398
+ locationUuid: locationUuid ?? '',
399
+ queue: details.room,
400
+ visitType: details.visitType,
401
+ payer: 'Cash',
402
+ exempt: false,
403
+ preCleared: !!prepaid,
404
+ amountOverride: prepaid?.amount,
405
+ });
406
+ if (prepaid) {
407
+ fulfillPrepaidService(prepaid.id);
408
+ }
409
+ }
410
+ */
411
+
412
+
413
+ showAlert('success', 'Patient sent to the triage queue, awaiting clearance', '');
414
+ // Land on the accounting Pending clearance section so the new patient can be cleared.
415
+ // window.location.href = `${window.spaBase}/home/billing`;
416
+ } catch (e) {
417
+ const errorResp = e['responseBody'] ?? e.message;
418
+ showAlert('error', 'Error creating visit', '');
419
+ const errors = getErrorMessages(errorResp);
420
+ if (errors && errors.length > 0) {
421
+ for (let error of errors) {
422
+ showAlert('error', error, '');
423
+ }
424
+ }
425
+ }
426
+ };
190
427
  const handleCancel = () => {
191
428
  setPrincipal(null);
192
- setSelectedDependant(null);
193
429
  setAmrsPatients([]);
194
430
  setSelectedPatient(null);
195
431
  setIdentifierValue('');
432
+ setValidationError('');
433
+ setNotFound(false);
434
+ setFetchError('');
196
435
  setIdentifierType('National ID');
197
436
  setDisplayClientDetailsModal(false);
198
437
  setDisplayOtpModal(false);
199
- setDisplaytriageModal(false);
438
+ setdisplaytStartVisitModal(false);
200
439
  setSelectedPatient('principal');
201
440
  };
202
441
  const handleOtpSuccessfullVerification = () => {
203
442
  setDisplayOtpModal(false);
204
443
  setDisplayClientDetailsModal(true);
205
444
  };
206
- const registerOnAfyaYangu = () => {
207
- window.open('https://afyayangu.go.ke/', '_blank');
208
- };
209
445
  return (
210
446
  <>
211
447
  <div className={styles.registryLayout}>
448
+ <div className={styles.headerSection}>
449
+ <FacilityAndWorkerSlot />
450
+ </div>
212
451
  <div className={styles.mainContent}>
213
452
  <div className={styles.registryHeader}>
214
- <h4>Client Registry</h4>
453
+ <h4>Registration</h4>
215
454
  <p>Please enter identification number to begin</p>
216
455
  </div>
217
456
  <div className={styles.registryContent}>
218
- <div className={styles.formRow}>
219
- <div className={styles.formControl}>
457
+ <Layer className={styles.card}>
458
+ <div className={styles.sectionHeader}>
459
+ <Identification size={20} className={styles.sectionIcon} />
460
+ <h5 className={styles.sectionTitle}>Search client</h5>
461
+ </div>
462
+ <p className={styles.formIntro}>
463
+ Search the national Client Registry by identification number to begin.
464
+ </p>
465
+ <div className={styles.formGrid}>
220
466
  <Dropdown
221
467
  id="identifier-type-dropdown"
222
- label="Identifier Type"
223
- titleText="Select Identifier Type"
468
+ label="Select identifier type"
469
+ titleText={
470
+ <span className={styles.fieldLabel}>
471
+ Identifier type<span className={styles.required}>*</span>
472
+ </span>
473
+ }
224
474
  items={IDENTIFIER_TYPES}
225
475
  selectedItem={identifierType}
226
- onChange={({ selectedItem }) => setIdentifierType(selectedItem as IdentifierType)}
476
+ onChange={({ selectedItem }) => {
477
+ const nextType = selectedItem as IdentifierType;
478
+ setIdentifierType(nextType);
479
+ if (!identifierValue.trim()) {
480
+ setValidationError(`${nextType} number is required`);
481
+ } else {
482
+ setValidationError('');
483
+ }
484
+ }}
227
485
  />
486
+ <div className={styles.clearableInput}>
487
+ <TextInput
488
+ id="identifier-value"
489
+ labelText={
490
+ <span className={styles.fieldLabel}>
491
+ {identifierType} number<span className={styles.required}>*</span>
492
+ </span>
493
+ }
494
+ value={identifierValue}
495
+ onChange={(e) => {
496
+ setIdentifierValue(e.target.value);
497
+ if (validationError) {
498
+ setValidationError('');
499
+ }
500
+ if (notFound) {
501
+ setNotFound(false);
502
+ }
503
+ }}
504
+ onBlur={() => {
505
+ if (!identifierValue.trim()) {
506
+ setValidationError(`${identifierType} number is required`);
507
+ }
508
+ }}
509
+ onKeyDown={(e) => {
510
+ if (e.key === 'Enter') {
511
+ handleSearchPatient();
512
+ }
513
+ }}
514
+ invalid={!!validationError}
515
+ invalidText={validationError}
516
+ placeholder={`e.g. enter ${identifierType.toLowerCase()} number`}
517
+ />
518
+ {identifierValue && !validationError ? (
519
+ <button
520
+ type="button"
521
+ className={styles.clearBtn}
522
+ onClick={handleClearIdentifier}
523
+ aria-label="Clear field"
524
+ >
525
+ <Close size={16} />
526
+ </button>
527
+ ) : null}
528
+ </div>
228
529
  </div>
229
-
230
- <div className={styles.formControl}>
231
- <TextInput
232
- id="identifier-value"
233
- labelText={`${identifierType} Value`}
234
- value={identifierValue}
235
- onChange={(e) => setIdentifierValue(e.target.value)}
236
- placeholder={`Enter ${identifierType.toLowerCase()} value`}
237
- />
530
+ <div className={styles.formBtn}>
531
+ <Button
532
+ className={styles.searchButton}
533
+ size="sm"
534
+ kind="primary"
535
+ renderIcon={loading ? undefined : Search}
536
+ onClick={handleSearchPatient}
537
+ disabled={loading || !identifierValue.trim()}
538
+ >
539
+ {loading ? (
540
+ <span className={styles.btnLoading}>
541
+ <Loading small withOverlay={false} className={styles.btnSpinner} description="Searching" />
542
+ Searching…
543
+ </span>
544
+ ) : (
545
+ 'Search'
546
+ )}
547
+ </Button>
548
+ <Button size="sm" kind="secondary" renderIcon={WarningAlt} onClick={handleEmergencyRegistration}>
549
+ Emergency Registration
550
+ </Button>
238
551
  </div>
239
- </div>
240
- <div className={styles.formRow}>
241
- <div className={styles.formControl}>
242
- <div className={styles.formBtn}>
243
- <Button
244
- className={styles.registrySearchBtn}
245
- kind="primary"
246
- onClick={handleSearchPatient}
247
- disabled={loading}
248
- >
249
- {loading ? <InlineLoading description="Searching..." /> : 'Search'}
250
- </Button>
251
- <Button className={styles.registrySearchBtn} kind="secondary" onClick={handleEmergencyRegistration}>
252
- Emergency Registration
253
- </Button>
254
- <Button className={styles.registrySearchBtn} kind="tertiary" onClick={registerOnAfyaYangu}>
255
- Register on Afya Yangu
256
- </Button>
552
+ </Layer>
553
+ {notFound ? (
554
+ <div className={styles.emptyState}>
555
+ <div className={styles.emptyIcon}>
556
+ <SearchLocate size={24} />
557
+ </div>
558
+ <div>
559
+ <h5 className={styles.emptyTitle}>No match found</h5>
560
+ <p className={styles.emptyText}>
561
+ No client matching that <strong>{identifierType}</strong> was found in the Client Registry. Ask the
562
+ patient to register on the{' '}
563
+ <a href="https://afyayangu.go.ke/" target="_blank" rel="noopener noreferrer">
564
+ Afya Yangu portal
565
+ </a>{' '}
566
+ first, then search again — or use <strong>Emergency Registration</strong>.
567
+ </p>
257
568
  </div>
258
569
  </div>
259
- </div>
570
+ ) : (
571
+ <></>
572
+ )}
573
+ {fetchError ? (
574
+ <div className={styles.errorState}>
575
+ <div className={styles.errorStateIcon}>
576
+ <WarningAltFilled size={24} />
577
+ </div>
578
+ <div>
579
+ <h5 className={styles.errorStateTitle}>Couldn&apos;t complete the search</h5>
580
+ <p className={styles.errorStateText}>{fetchError} Please check your connection and try again.</p>
581
+ </div>
582
+ </div>
583
+ ) : (
584
+ <></>
585
+ )}
260
586
  {principal ? (
261
- <div className={styles.formRow}>
587
+ <Layer className={styles.card}>
262
588
  <div className={styles.hieData}>
589
+ <div className={styles.sectionHeader}>
590
+ <UserMultiple size={20} className={styles.sectionIcon} />
591
+ <h5 className={styles.sectionTitle}>Principal &amp; dependants</h5>
592
+ </div>
593
+ <p className={styles.formIntro}>
594
+ Select the patient to proceed with, then ask them to share the OTP sent to their phone.
595
+ </p>
263
596
  <div className={styles.selectionHeader}>
264
- <h5>Please select one patient and request patient to share the OTP sent</h5>
597
+ <p className={styles.summaryLine}>
598
+ <span className={styles.summaryPrincipal} />1 principal
599
+ <span className={styles.summaryDot} />
600
+ <span className={styles.summaryDependant} />
601
+ {principal.dependants?.length ?? 0}{' '}
602
+ {(principal.dependants?.length ?? 0) === 1 ? 'dependant' : 'dependants'}
603
+ </p>
265
604
  </div>
266
- <div className={styles.patientSelect}>
267
- <div className={styles.patientSelectRadio}>
268
- <RadioButtonGroup
269
- defaultSelected="principal"
270
- legendText="Patient"
271
- onChange={(v) => handleSelectedPatient(v as string)}
272
- name="radio-button-default-group"
605
+ <div className={styles.principalDependantSection}>
606
+ <div className={styles.optionList}>
607
+ <div
608
+ className={`${styles.optionCard} ${styles.principalOption} ${
609
+ selectedPatient === 'principal' ? styles.optionSelected : ''
610
+ }`}
611
+ onClick={() => handleSelectedPatient('principal')}
273
612
  >
274
- <RadioButton id="principal" labelText="Principal" value="principal" />
275
- <RadioButton id="dependants" labelText="Dependants" value="dependants" />
276
- </RadioButtonGroup>
613
+ <RadioButton
614
+ id="select-principal"
615
+ name="patient-selection"
616
+ labelText=""
617
+ value="principal"
618
+ checked={selectedPatient === 'principal'}
619
+ onChange={() => handleSelectedPatient('principal')}
620
+ />
621
+ <div className={styles.optionBody}>
622
+ <div className={styles.optionTopline}>
623
+ <span className={styles.optionName}>
624
+ {maskExceptFirstAndLast(principal.first_name)} {maskExceptFirstAndLast(principal.middle_name)}{' '}
625
+ {maskExceptFirstAndLast(principal.last_name)}
626
+ </span>
627
+ <Tag type="blue" size="sm">
628
+ Principal
629
+ </Tag>
630
+ </div>
631
+ <span className={styles.optionCr}>CR {maskCrNumber(principal.id)}</span>
632
+ </div>
633
+ </div>
634
+ {principal.dependants
635
+ ?.filter((d) => d?.result?.[0])
636
+ .map((d) => {
637
+ const dependant = d.result[0];
638
+ const relationship = d.relationship;
639
+ return (
640
+ <div
641
+ key={dependant.id}
642
+ className={`${styles.optionCard} ${styles.dependantOption} ${
643
+ selectedPatient === dependant.id ? styles.optionSelected : ''
644
+ }`}
645
+ onClick={() => handleSelectedPatient(dependant.id)}
646
+ >
647
+ <RadioButton
648
+ id={`select-${dependant.id}`}
649
+ name="patient-selection"
650
+ labelText=""
651
+ value={dependant.id}
652
+ checked={selectedPatient === dependant.id}
653
+ onChange={() => handleSelectedPatient(dependant.id)}
654
+ />
655
+ <div className={styles.optionBody}>
656
+ <div className={styles.optionTopline}>
657
+ <span className={styles.optionName}>
658
+ {maskExceptFirstAndLast(dependant.first_name)} {maskExceptFirstAndLast(dependant.middle_name)}{' '}
659
+ {maskExceptFirstAndLast(dependant.last_name)}
660
+ </span>
661
+ <Tag type="teal" size="sm">
662
+ {relationship || 'Dependant'}
663
+ </Tag>
664
+ </div>
665
+ <span className={styles.optionCr}>CR {maskCrNumber(dependant.id)}</span>
666
+ </div>
667
+ </div>
668
+ );
669
+ })}
277
670
  </div>
278
671
  <div className={styles.patientConfirmSelection}>
279
672
  <div className={styles.btnContainer}>
280
- <Button kind="primary" onClick={handleOtpVerification}>
673
+ <Button kind="primary" size="sm" onClick={handleOtpVerification}>
281
674
  {' '}
282
675
  Confirm
283
676
  </Button>
284
677
  </div>
285
678
  <div className={styles.btnContainer}>
286
- <Button kind="secondary" onClick={handleCancel}>
679
+ <Button kind="secondary" size="sm" onClick={handleCancel}>
287
680
  Cancel
288
681
  </Button>
289
682
  </div>
290
683
  </div>
291
- </div>
292
- <div className={styles.principalDependantSection}>
293
- {selectedPatient === 'principal' ? (
294
- <>
295
- <Table>
296
- <TableHead>
297
- <TableRow>
298
- <TableHeader>Name</TableHeader>
299
- <TableHeader>CR</TableHeader>
300
- <TableHeader>Phone No</TableHeader>
301
- <TableHeader>ID No</TableHeader>
302
- </TableRow>
303
- </TableHead>
304
- <TableBody>
305
- <TableRow>
306
- <TableCell>
307
- {principal.first_name} {maskExceptFirstAndLast(principal.middle_name)}{' '}
308
- {maskExceptFirstAndLast(principal.last_name)}
309
- </TableCell>
310
- <TableCell>{maskValue(principal.id)}</TableCell>
311
- <TableCell>{maskValue(principal.phone)}</TableCell>
312
- <TableCell>{maskValue(principal.identification_number)}</TableCell>
313
- </TableRow>
314
- </TableBody>
315
- </Table>
316
- </>
317
- ) : (
318
- <></>
319
- )}
320
- {selectedPatient === 'dependants' ? (
321
- <>
322
- <RadioButtonGroup
323
- defaultSelected=""
324
- helperText=""
325
- invalidText=""
326
- legendText=""
327
- name="dependant-group"
328
- onChange={(dependantId) => handleSelectedDependant(dependantId as string)}
329
- >
330
- {principal.dependants.map((d) => {
331
- const dependant = d.result[0];
332
- const relationship = d.relationship;
333
- return (
334
- <RadioButton
335
- id={dependant.id}
336
- labelText={formatDependantDisplayData(dependant, relationship)}
337
- value={dependant.id}
338
- />
339
- );
340
- })}
341
- </RadioButtonGroup>
342
- </>
343
- ) : (
344
- <></>
345
- )}
346
-
347
- {displayOtpModal ? (
348
- <OtpVerificationModal
349
- requestCustomOtpDto={requestCustomOtpDto}
350
- phoneNumber={principal.phone}
351
- open={displayOtpModal}
352
- onModalClose={handleModelClose}
353
- onOtpSuccessfullVerification={handleOtpSuccessfullVerification}
354
- />
355
- ) : (
356
- <></>
357
- )}
358
-
359
- {principal && displayClientDetailsModal ? (
360
- <>
361
- <ClientDetailsModal
362
- client={getPatient()}
363
- open={displayClientDetailsModal}
364
- onModalClose={onClientDetailsModalClose}
365
- onSubmit={handleClientDetailsSubmit}
366
- onSendClientToTriage={handleSendClientToTriage}
367
- />{' '}
368
- </>
369
- ) : (
370
- <></>
371
- )}
372
684
 
373
- {principal && displaytriageModal ? (
374
- <>
375
- <SendToTriageModal
376
- client={getPatient()}
377
- patients={amrsPatients}
378
- open={displaytriageModal}
379
- onModalClose={onSendToTriageModalClose}
380
- onSubmit={handleSendToTriageModalSubmit}
381
- onCreateAmrsPatient={createAmrsPatient}
382
- onManualRegistration={handleManualRegistration}
383
- />
384
- </>
385
- ) : (
386
- <></>
387
- )}
685
+ <WorkflowDrawer
686
+ open={displayDrawer}
687
+ client={getPatient()}
688
+ clientType={
689
+ selectedPatient === 'principal'
690
+ ? 'Principal'
691
+ : principal.dependants?.find((d) => d.result[0]?.id === selectedPatient)?.relationship ||
692
+ 'Dependant'
693
+ }
694
+ locationUuid={locationUuid}
695
+ requestCustomOtpDto={generateCustomSmsPayload()}
696
+ phoneNumber={principal.phone ? formatPhoneNumberForOTP(principal.phone) : ''}
697
+ amrsPatient={amrsPatients[0] ?? null}
698
+ amrsChecked={amrsChecked}
699
+ syncingAmrs={syncingAmrs}
700
+ onCreatePatient={createAmrsPatient}
701
+ onSyncPatient={syncAmrsPatient}
702
+ onClose={() => {
703
+ setDisplayDrawer(false);
704
+ setAmrsChecked(false);
705
+ }}
706
+ onStartVisit={(details) => {
707
+ setDisplayDrawer(false);
708
+ startVisitForClient(details);
709
+ }}
710
+ />
388
711
  </div>
389
712
  </div>
390
- </div>
713
+ </Layer>
391
714
  ) : (
392
715
  <></>
393
716
  )}
394
717
  </div>
718
+ <div className={styles.registeredPatientsSection}>
719
+ <RegistrationList />
720
+ </div>
395
721
  </div>
396
722
  </div>
397
723
  </>