@ampath/esm-dha-workflow-app 4.0.0-next.15 → 4.0.0-next.151

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 (379) hide show
  1. package/dist/1197.js +1 -0
  2. package/dist/1277.js +1 -0
  3. package/dist/1277.js.map +1 -0
  4. package/dist/1558.js +2 -0
  5. package/dist/1558.js.map +1 -0
  6. package/dist/1729.js +1 -0
  7. package/dist/1729.js.map +1 -0
  8. package/dist/182.js +1 -0
  9. package/dist/182.js.map +1 -0
  10. package/dist/1826.js +1 -0
  11. package/dist/1826.js.map +1 -0
  12. package/dist/1833.js +1 -0
  13. package/dist/1833.js.map +1 -0
  14. package/dist/1856.js +1 -0
  15. package/dist/1856.js.map +1 -0
  16. package/dist/1925.js +1 -0
  17. package/dist/1925.js.map +1 -0
  18. package/dist/2021.js +1 -0
  19. package/dist/2021.js.map +1 -0
  20. package/dist/2054.js +1 -0
  21. package/dist/2054.js.map +1 -0
  22. package/dist/2177.js +2 -0
  23. package/dist/2177.js.map +1 -0
  24. package/dist/2333.js +1 -0
  25. package/dist/2333.js.map +1 -0
  26. package/dist/2364.js +2 -0
  27. package/dist/{388.js.LICENSE.txt → 2364.js.LICENSE.txt} +15 -0
  28. package/dist/2364.js.map +1 -0
  29. package/dist/2801.js +1 -0
  30. package/dist/2801.js.map +1 -0
  31. package/dist/3041.js +1 -0
  32. package/dist/3041.js.map +1 -0
  33. package/dist/3099.js +1 -0
  34. package/dist/3184.js +2 -0
  35. package/dist/3184.js.map +1 -0
  36. package/dist/3654.js +1 -0
  37. package/dist/3654.js.map +1 -0
  38. package/dist/4055.js +1 -0
  39. package/dist/4205.js +1 -0
  40. package/dist/4205.js.map +1 -0
  41. package/dist/4225.js +1 -0
  42. package/dist/4225.js.map +1 -0
  43. package/dist/4300.js +1 -0
  44. package/dist/4335.js +1 -0
  45. package/dist/4353.js +1 -0
  46. package/dist/4353.js.map +1 -0
  47. package/dist/4517.js +1 -0
  48. package/dist/4517.js.map +1 -0
  49. package/dist/4652.js +1 -0
  50. package/dist/4674.js +1 -0
  51. package/dist/4674.js.map +1 -0
  52. package/dist/4947.js +1 -0
  53. package/dist/4947.js.map +1 -0
  54. package/dist/5015.js +1 -0
  55. package/dist/5015.js.map +1 -0
  56. package/dist/5422.js +1 -0
  57. package/dist/5422.js.map +1 -0
  58. package/dist/5428.js +1 -0
  59. package/dist/5428.js.map +1 -0
  60. package/dist/5752.js +1 -0
  61. package/dist/5752.js.map +1 -0
  62. package/dist/5851.js +1 -0
  63. package/dist/5851.js.map +1 -0
  64. package/dist/6260.js +1 -0
  65. package/dist/6260.js.map +1 -0
  66. package/dist/6264.js +1 -0
  67. package/dist/6264.js.map +1 -0
  68. package/dist/6540.js +2 -0
  69. package/dist/6540.js.map +1 -0
  70. package/dist/6606.js +1 -0
  71. package/dist/6606.js.map +1 -0
  72. package/dist/{709.js → 693.js} +1 -1
  73. package/dist/693.js.map +1 -0
  74. package/dist/6991.js +1 -0
  75. package/dist/6991.js.map +1 -0
  76. package/dist/7199.js +1 -0
  77. package/dist/7199.js.map +1 -0
  78. package/dist/7255.js +1 -0
  79. package/dist/7255.js.map +1 -0
  80. package/dist/7258.js +1 -0
  81. package/dist/7258.js.map +1 -0
  82. package/dist/7420.js +1 -0
  83. package/dist/7420.js.map +1 -0
  84. package/dist/8114.js +1 -0
  85. package/dist/8114.js.map +1 -0
  86. package/dist/8235.js +1 -0
  87. package/dist/8235.js.map +1 -0
  88. package/dist/8339.js +1 -0
  89. package/dist/8339.js.map +1 -0
  90. package/dist/8558.js +1 -0
  91. package/dist/8558.js.map +1 -0
  92. package/dist/8865.js +1 -0
  93. package/dist/8865.js.map +1 -0
  94. package/dist/8895.js +1 -0
  95. package/dist/8895.js.map +1 -0
  96. package/dist/9037.js +1 -0
  97. package/dist/9037.js.map +1 -0
  98. package/dist/9091.js +1 -0
  99. package/dist/9091.js.map +1 -0
  100. package/dist/9093.js +1 -0
  101. package/dist/9093.js.map +1 -0
  102. package/dist/9117.js +1 -0
  103. package/dist/9117.js.map +1 -0
  104. package/dist/9721.js +1 -0
  105. package/dist/9721.js.map +1 -0
  106. package/dist/esm-dha-workflow-app.js +1 -1
  107. package/dist/esm-dha-workflow-app.js.buildmanifest.json +990 -215
  108. package/dist/esm-dha-workflow-app.js.map +1 -1
  109. package/dist/main.js +1 -1
  110. package/dist/main.js.map +1 -1
  111. package/dist/routes.json +1 -1
  112. package/package.json +10 -3
  113. package/src/accounting/accounting.component.tsx +13 -0
  114. package/src/admissions/admission-request-list/admission-request-list.scss +0 -0
  115. package/src/admissions/admission-request-list/admission-request-list.tsx +134 -0
  116. package/src/admissions/admissions-dashboard.component.scss +15 -0
  117. package/src/admissions/admissions-dashboard.component.tsx +160 -0
  118. package/src/admissions/admissions.resource.ts +101 -0
  119. package/src/admissions/admitted-list/admitted-patients-list.tsx +141 -0
  120. package/src/admissions/constants/index.ts +33 -0
  121. package/src/admissions/discharged-list/discharged-list.scss +0 -0
  122. package/src/admissions/discharged-list/discharged-list.tsx +58 -0
  123. package/src/admissions/inpatient/admission-history/patient-admission-history.tsx +76 -0
  124. package/src/admissions/inpatient/admission-requests/patient-admission-requests.scss +19 -0
  125. package/src/admissions/inpatient/admission-requests/patient-admission-requests.tsx +72 -0
  126. package/src/admissions/inpatient/inpatient-admissions.component.scss +7 -0
  127. package/src/admissions/inpatient/inpatient-admissions.component.tsx +46 -0
  128. package/src/admissions/modal/admit-elsewhere/admit-elsewhere.modal.scss +23 -0
  129. package/src/admissions/modal/admit-elsewhere/admit-elsewhere.modal.tsx +156 -0
  130. package/src/admissions/modal/admit-patient/admit-patient.modal.scss +0 -0
  131. package/src/admissions/modal/admit-patient/admit-patient.modal.tsx +109 -0
  132. package/src/admissions/modal/bed-swap/bed-swap.modal.scss +0 -0
  133. package/src/admissions/modal/bed-swap/bed-swap.modal.tsx +102 -0
  134. package/src/admissions/modal/cancel-admission-request/cancel-admission-request.scss +11 -0
  135. package/src/admissions/modal/cancel-admission-request/cancel-admission-request.tsx +105 -0
  136. package/src/admissions/modal/discharge/discharge-patient.modal.scss +13 -0
  137. package/src/admissions/modal/discharge/discharge-patient.modal.tsx +84 -0
  138. package/src/admissions/types/index.ts +192 -0
  139. package/src/appointments/appointments.component.tsx +13 -0
  140. package/src/billing/api/billing.api.ts +107 -0
  141. package/src/billing/billing-root.tsx +20 -0
  142. package/src/billing/dashboard/billingDashboard.component.scss +0 -0
  143. package/src/billing/dashboard/billingDashboard.component.tsx +25 -0
  144. package/src/billing/extensions/visit-billing/visit-billing.extension.scss +0 -0
  145. package/src/billing/extensions/visit-billing/visit-billing.extension.tsx +508 -0
  146. package/src/billing/invoice/bill.resource.ts +47 -0
  147. package/src/billing/invoice/invoice-header/header-card/header-card.scss +17 -0
  148. package/src/billing/invoice/invoice-header/header-card/header-card.tsx +21 -0
  149. package/src/billing/invoice/invoice.scss +113 -0
  150. package/src/billing/invoice/invoice.tsx +1441 -0
  151. package/src/billing/invoice/line-items/line-items.scss +0 -0
  152. package/src/billing/invoice/line-items/line-items.tsx +120 -0
  153. package/src/billing/invoice/modal/delete-bill-item/delete-bill-item.modal.scss +23 -0
  154. package/src/billing/invoice/modal/delete-bill-item/delete-bill-item.modal.tsx +114 -0
  155. package/src/billing/invoice/modal/edit-bill-item/edit-bill-item.modal.scss +0 -0
  156. package/src/billing/invoice/modal/edit-bill-item/edit-bill-item.modal.tsx +122 -0
  157. package/src/billing/invoice/payment-details/payment-details.scss +0 -0
  158. package/src/billing/invoice/payment-details/payment-details.tsx +43 -0
  159. package/src/billing/invoice/print-invoice/print-receipt.component.tsx +44 -0
  160. package/src/billing/invoice/print-invoice/print-receipt.scss +14 -0
  161. package/src/billing/types/index.ts +84 -0
  162. package/src/billing/utils/index.ts +17 -0
  163. package/src/billing/widgets/billingTotalsRow.component.scss +0 -0
  164. package/src/billing/widgets/billingTotalsRow.component.tsx +712 -0
  165. package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.resource.ts +103 -0
  166. package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.scss +58 -0
  167. package/src/billing/workspaces/create-order-bill-form-workspace/create-order-bill-form.workspace.tsx +349 -0
  168. package/src/billing/workspaces/create-order-bill-form-workspace/schema.ts +11 -0
  169. package/src/bookings/bookings.component.scss +7 -0
  170. package/src/bookings/bookings.component.tsx +31 -0
  171. package/src/bookings/daily/daily-bookings.component.scss +38 -0
  172. package/src/bookings/daily/daily-bookings.component.tsx +138 -0
  173. package/src/bookings/daily/daily-bookings.resource.ts +28 -0
  174. package/src/bookings/daily/filters/daily-bookings-filter.component.scss +15 -0
  175. package/src/bookings/daily/filters/daily-bookings-filter.component.tsx +80 -0
  176. package/src/bookings/daily/patient-list/daily-bookings-patient-list.component.tsx +97 -0
  177. package/src/bookings/types/index.ts +68 -0
  178. package/src/config-schema.ts +91 -1
  179. package/src/createDashboardLink.tsx +9 -0
  180. package/src/dashboard/charts/chart.component.scss +13 -0
  181. package/src/dashboard/charts/chart.component.tsx +56 -0
  182. package/src/dashboard/dashboard.component.scss +7 -0
  183. package/src/dashboard/dashboard.component.tsx +51 -0
  184. package/src/dashboard/overview/overview.component.scss +150 -0
  185. package/src/dashboard/overview/overview.component.tsx +134 -0
  186. package/src/dashboard/patient-list/patient-list.component.tsx +41 -0
  187. package/src/dashboard-meta/accounting-dashboard.meta.ts +6 -0
  188. package/src/dashboard-meta/admissions-dashboard.meta.ts +6 -0
  189. package/src/dashboard-meta/billing-dashboard.meta.ts +6 -0
  190. package/src/dashboard-meta/bookings-dashboard.meta.ts +6 -0
  191. package/src/dashboard-meta/consultation-dashboard.meta.ts +6 -0
  192. package/src/dashboard-meta/dha-workflow-dashboard.meta.ts +6 -0
  193. package/src/dashboard-meta/inpatient-admissions.meta.ts +6 -0
  194. package/src/dashboard-meta/maternity-dashboard.meta.ts +6 -0
  195. package/src/dashboard-meta/mch-dashboard.meta.ts +6 -0
  196. package/src/dashboard-meta/pharmacy-dashboard.meta.ts +6 -0
  197. package/src/dashboard-meta/queue-dashboard.meta.ts +6 -0
  198. package/src/dashboard-meta/registers-dashboard.meta.ts +6 -0
  199. package/src/dashboard-meta/registry-dashboard.meta.ts +6 -0
  200. package/src/dashboard-meta/service-queue-admin.meta.ts +6 -0
  201. package/src/dashboard-meta/triage-dashboard.meta.ts +6 -0
  202. package/src/hooks/useActions.ts +19 -2
  203. package/src/index.ts +110 -15
  204. package/src/laboratory/laboratory.component.tsx +13 -0
  205. package/src/mnch/maternity/maternity-queues.component.scss +7 -0
  206. package/src/mnch/maternity/maternity-queues.component.tsx +28 -0
  207. package/src/mnch/maternity/queues/triage/maternity-triage.tsx +15 -0
  208. package/src/mnch/mch/mch-queues.component.scss +7 -0
  209. package/src/mnch/mch/mch-queues.component.tsx +32 -0
  210. package/src/mnch/mch/queues/consultation/mch-consultation.tsx +18 -0
  211. package/src/mnch/mch/queues/triage/mch-triage.tsx +15 -0
  212. package/src/mnch/mnch-root.tsx +17 -0
  213. package/src/mortuary/mortuary.component.tsx +13 -0
  214. package/src/pharmacy/pharmacy.component.tsx +13 -0
  215. package/src/registers/registers.component.tsx +8 -0
  216. package/src/registry/eligibility/eliigibility-tags/eligibility-tags.scss +6 -0
  217. package/src/registry/eligibility/eliigibility-tags/eligibility-tags.tsx +137 -0
  218. package/src/registry/eligibility/modal/eligibility-details.modal.scss +38 -0
  219. package/src/registry/eligibility/modal/eligibility-details.modal.tsx +131 -0
  220. package/src/registry/modal/client-details-modal/client-details-modal.tsx +9 -26
  221. package/src/registry/modal/otp-verification-modal/otp-verification-modal.scss +31 -1
  222. package/src/registry/modal/otp-verification-modal/otp-verification-modal.tsx +139 -54
  223. package/src/registry/modal/send-to-triage/send-to-triage.modal.scss +9 -1
  224. package/src/registry/modal/send-to-triage/send-to-triage.modal.tsx +665 -45
  225. package/src/registry/payment-details/payment-options/payment-options.scss +13 -0
  226. package/src/registry/payment-details/payment-options/payment-options.tsx +61 -14
  227. package/src/registry/registry.component.scss +6 -0
  228. package/src/registry/registry.component.tsx +94 -27
  229. package/src/registry/registry.resource.ts +10 -6
  230. package/src/registry/types/index.ts +120 -0
  231. package/src/registry/utils/hie-client-adapter.ts +3 -0
  232. package/src/registry/utils/mask-data.ts +11 -0
  233. package/src/resources/dashboard.resource.ts +20 -0
  234. package/src/resources/identifier-types.ts +2 -0
  235. package/src/resources/patient-resource.ts +3 -1
  236. package/src/resources/queue.resource.ts +24 -1
  237. package/src/resources/superset.resource.ts +21 -0
  238. package/src/resources/visit.resource.ts +19 -1
  239. package/src/root.component.tsx +27 -6
  240. package/src/routes.json +222 -15
  241. package/src/{consultation → service-queues}/action-button.component.tsx +2 -2
  242. package/src/{consultation → service-queues}/action-overflow-menu-item.component.tsx +2 -2
  243. package/src/service-queues/admin/queue/modal/create-queue/create-queue.modal.scss +31 -0
  244. package/src/service-queues/admin/queue/modal/create-queue/create-queue.modal.tsx +143 -0
  245. package/src/service-queues/admin/queue/modal/edit-queue/edit-queue.modal.scss +0 -0
  246. package/src/service-queues/admin/queue/modal/edit-queue/edit-queue.modal.tsx +154 -0
  247. package/src/service-queues/admin/queue/queue-list/queue-list.scss +33 -0
  248. package/src/service-queues/admin/queue/queue-list/queue-list.tsx +113 -0
  249. package/src/service-queues/admin/queue-entry/queue-entry-list.component.scss +6 -0
  250. package/src/service-queues/admin/queue-entry/queue-entry-list.component.tsx +137 -0
  251. package/src/service-queues/admin/queue-room/modal/create-queue-room/create-queue-room.modal.scss +31 -0
  252. package/src/service-queues/admin/queue-room/modal/create-queue-room/create-queue-room.modal.tsx +137 -0
  253. package/src/service-queues/admin/queue-room/modal/edit-queue-room/edit-queue-room.modal.scss +0 -0
  254. package/src/service-queues/admin/queue-room/modal/edit-queue-room/edit-queue-room.modal.tsx +146 -0
  255. package/src/service-queues/admin/queue-room/queue-room-list/queue-room-list.scss +22 -0
  256. package/src/service-queues/admin/queue-room/queue-room-list/queue-room-list.tsx +120 -0
  257. package/src/service-queues/admin/service-queue-admin-dashboard.component.scss +6 -0
  258. package/src/service-queues/admin/service-queue-admin-dashboard.component.tsx +34 -0
  259. package/src/service-queues/consultation/consultation.component.scss +7 -0
  260. package/src/service-queues/consultation/consultation.component.tsx +15 -0
  261. package/src/service-queues/extensions/service-queue-patient-banner/service-queue-patient-banner.scss +30 -0
  262. package/src/service-queues/extensions/service-queue-patient-banner/service-queue-patient-banner.tsx +108 -0
  263. package/src/service-queues/metrics/metrics-cards/attended-patients.extension.tsx +38 -0
  264. package/src/service-queues/metrics/metrics-cards/waiting-patients.extension.tsx +34 -0
  265. package/src/service-queues/metrics/metrics-container.component.tsx +23 -0
  266. package/src/{metrics → service-queues/metrics}/metrics.resource.ts +0 -36
  267. package/src/service-queues/modals/daily-report-patient-list/daily-report-patient-list.scss +26 -0
  268. package/src/service-queues/modals/daily-report-patient-list/daily-report-patient-list.tsx +108 -0
  269. package/src/service-queues/modals/move/move-patient.component.scss +35 -0
  270. package/src/service-queues/modals/move/move-patient.component.tsx +152 -0
  271. package/src/service-queues/modals/serve/serve-patient.comppnent.scss +0 -0
  272. package/src/service-queues/modals/serve/serve-patient.comppnent.tsx +80 -0
  273. package/src/service-queues/modals/sign-off/sign-off.modal.scss +0 -0
  274. package/src/service-queues/modals/sign-off/sign-off.modal.tsx +79 -0
  275. package/src/service-queues/modals/transition/transition-patient.component.scss +0 -0
  276. package/src/service-queues/modals/transition/transition-patient.component.tsx +122 -0
  277. package/src/service-queues/queue-list/check-in.service.ts +26 -0
  278. package/src/service-queues/queue-list/queue-list.component.scss +50 -0
  279. package/src/service-queues/queue-list/queue-list.component.tsx +302 -0
  280. package/src/service-queues/queue-room.component.tsx +39 -0
  281. package/src/service-queues/room/room.component.tsx +58 -0
  282. package/src/service-queues/service-queue/service-queue.component.scss +14 -0
  283. package/src/service-queues/service-queue/service-queue.component.tsx +399 -0
  284. package/src/service-queues/service-queue/stats/stat-details/stat-details.component.scss +12 -0
  285. package/src/service-queues/service-queue/stats/stat-details/stat-details.component.tsx +63 -0
  286. package/src/service-queues/service-queue.scss +27 -0
  287. package/src/service-queues/service-queue.tsx +37 -0
  288. package/src/service-queues/service-queues.resource.ts +303 -4
  289. package/src/service-queues/service.resource.ts +28 -0
  290. package/src/shared/constants/concepts.ts +18 -0
  291. package/src/shared/constants/index.ts +1 -2
  292. package/src/shared/constants/patient-category.ts +6 -0
  293. package/src/shared/constants/patient-type.ts +10 -0
  294. package/src/shared/constants/visit-types.ts +7 -0
  295. package/src/shared/services/billing.resource.ts +38 -0
  296. package/src/shared/services/client-payment-mode.resource.ts +27 -0
  297. package/src/shared/services/client-payment.resource.ts +17 -0
  298. package/src/shared/services/eligibility.resource.ts +19 -0
  299. package/src/shared/services/encounters.resource.ts +27 -0
  300. package/src/shared/services/location.resource.ts +9 -0
  301. package/src/shared/types/index.ts +152 -0
  302. package/src/shared/ui/aggregate-stat-card/aggregate-stat-card.scss +42 -0
  303. package/src/shared/ui/aggregate-stat-card/aggregate-stat-card.tsx +42 -0
  304. package/src/shared/ui/confirm-modal/confirm.modal.scss +18 -0
  305. package/src/shared/ui/confirm-modal/confirm.modal.tsx +38 -0
  306. package/src/shared/ui/otp-input/otp-input.component.scss +14 -0
  307. package/src/shared/ui/otp-input/otp-input.component.tsx +90 -0
  308. package/src/shared/ui/stat-card/stat-card.component.scss +10 -0
  309. package/src/shared/ui/stat-card/stat-card.component.tsx +26 -0
  310. package/src/shared/ui/timer/timer.component.scss +5 -0
  311. package/src/shared/ui/timer/timer.component.tsx +40 -0
  312. package/src/shared/utils/get-base-url.ts +27 -0
  313. package/src/shared/utils/get-tag-type.ts +66 -0
  314. package/src/side-nav-menu/mnch-nav-link-config.ts +16 -0
  315. package/src/side-nav-menu/mnch-nav-links.tsx +42 -0
  316. package/src/side-nav-menu/nav-link-config.ts +6 -4
  317. package/src/triage/metrics/attended-patients.extension.tsx +42 -0
  318. package/src/triage/metrics/metrics.scss +36 -0
  319. package/src/triage/metrics/triage-metrics.component.tsx +21 -0
  320. package/src/triage/metrics/waiting-patients.extension.tsx +39 -0
  321. package/src/triage/room/room.scss +29 -0
  322. package/src/triage/triage.component.tsx +15 -0
  323. package/src/triage/triage.resource.ts +19 -0
  324. package/src/triage/types.ts +16 -0
  325. package/src/types/types.ts +82 -2
  326. package/dist/104.js +0 -2
  327. package/dist/104.js.map +0 -1
  328. package/dist/184.js +0 -2
  329. package/dist/184.js.map +0 -1
  330. package/dist/197.js +0 -1
  331. package/dist/255.js +0 -1
  332. package/dist/255.js.map +0 -1
  333. package/dist/300.js +0 -1
  334. package/dist/306.js +0 -1
  335. package/dist/306.js.map +0 -1
  336. package/dist/335.js +0 -1
  337. package/dist/353.js +0 -1
  338. package/dist/353.js.map +0 -1
  339. package/dist/388.js +0 -2
  340. package/dist/388.js.map +0 -1
  341. package/dist/420.js +0 -1
  342. package/dist/420.js.map +0 -1
  343. package/dist/460.js +0 -1
  344. package/dist/460.js.map +0 -1
  345. package/dist/540.js +0 -2
  346. package/dist/540.js.map +0 -1
  347. package/dist/55.js +0 -1
  348. package/dist/560.js +0 -1
  349. package/dist/560.js.map +0 -1
  350. package/dist/635.js +0 -1
  351. package/dist/635.js.map +0 -1
  352. package/dist/652.js +0 -1
  353. package/dist/695.js +0 -1
  354. package/dist/695.js.map +0 -1
  355. package/dist/709.js.map +0 -1
  356. package/dist/710.js +0 -2
  357. package/dist/710.js.map +0 -1
  358. package/dist/91.js +0 -1
  359. package/dist/91.js.map +0 -1
  360. package/dist/93.js +0 -1
  361. package/dist/93.js.map +0 -1
  362. package/dist/978.js +0 -1
  363. package/dist/978.js.map +0 -1
  364. package/dist/99.js +0 -1
  365. package/src/consultation/consultation-room.component.tsx +0 -60
  366. package/src/consultation/consultation.scss +0 -5
  367. package/src/consultation/consultation.tsx +0 -14
  368. package/src/hooks/useQueueEntries.ts +0 -35
  369. package/src/metrics/metrics-cards/attended-patients.extension.tsx +0 -18
  370. package/src/metrics/metrics-cards/waiting-patients.extension.tsx +0 -18
  371. package/src/metrics/metrics-container.component.tsx +0 -16
  372. package/src/registry/mock-client.ts +0 -627
  373. /package/dist/{710.js.LICENSE.txt → 1558.js.LICENSE.txt} +0 -0
  374. /package/dist/{104.js.LICENSE.txt → 2177.js.LICENSE.txt} +0 -0
  375. /package/dist/{184.js.LICENSE.txt → 3184.js.LICENSE.txt} +0 -0
  376. /package/dist/{540.js.LICENSE.txt → 6540.js.LICENSE.txt} +0 -0
  377. /package/src/{metrics → service-queues/metrics}/metrics-cards/metrics-card.component.tsx +0 -0
  378. /package/src/{metrics → service-queues/metrics}/metrics-cards/metrics-card.scss +0 -0
  379. /package/src/{metrics → service-queues/metrics}/metrics-container.scss +0 -0
@@ -1,6 +1,26 @@
1
- import { type Encounter, formatDate, openmrsFetch, parseDate, restBaseUrl } from "@openmrs/esm-framework";
2
- import { type Identifer, type MappedEncounter, type MappedVisitQueueEntry, type QueueEntry } from "../types/types";
3
- import dayjs from "dayjs";
1
+ import { type Encounter, formatDate, openmrsFetch, parseDate, restBaseUrl, useSession } from '@openmrs/esm-framework';
2
+ import {
3
+ type QueueEntryResponse,
4
+ type Identifer,
5
+ type MappedEncounter,
6
+ type MappedVisitQueueEntry,
7
+ type QueueEntry,
8
+ type Queue,
9
+ type CreateQueueDto,
10
+ type QueueRoom,
11
+ type CreateQueueRoomDto,
12
+ } from '../types/types';
13
+ import dayjs from 'dayjs';
14
+ import useSWR from 'swr';
15
+ import { useMemo } from 'react';
16
+ import { type QueueEntryResult } from '../registry/types';
17
+ import { getEtlBaseUrl } from '../shared/utils/get-base-url';
18
+ import {
19
+ type ServiceQueueDailyPatientListReportResp,
20
+ type ServiceQueueDailyReport,
21
+ type ServiceQueueDailyReportResp,
22
+ type ServiceQueueReportPatientList,
23
+ } from '../shared/types';
4
24
 
5
25
  export function serveQueueEntry(servicePointName: string, ticketNumber: string, status: string) {
6
26
  const abortController = new AbortController();
@@ -59,4 +79,283 @@ export const mapVisitQueueEntryProperties = (
59
79
  ?.value,
60
80
  identifiers: queueEntry.patient?.identifiers as Identifer[],
61
81
  queueComingFrom: queueEntry?.queueComingFrom?.name,
62
- });
82
+ });
83
+
84
+ export function useQueueEntries(queue: string) {
85
+ // const queueEntryBaseUrl = `${restBaseUrl}/queue-entry?` +
86
+ // `isEnded=false&service=7f7ec7ad-cdd7-4ed9-bc2e-5c5bd9f065b2&location=18c343eb-b353-462a-9139-b16606e6b6c2`;
87
+ const queueEntryBaseUrl = `${restBaseUrl}/queue-entry?` + `isEnded=false&queue=${queue}`;
88
+ const {
89
+ data,
90
+ isValidating,
91
+ isLoading,
92
+ error: pageError,
93
+ } = useSWR<QueueEntryResponse, Error>(queueEntryBaseUrl, openmrsFetch);
94
+
95
+ const queueEntries = useMemo(() => data, [data]);
96
+
97
+ return {
98
+ queueEntries,
99
+ isLoading,
100
+ };
101
+ }
102
+
103
+ export function useQueues(service: string = '7f7ec7ad-cdd7-4ed9-bc2e-5c5bd9f065b2') {
104
+ const currentUserSession = useSession();
105
+ const location = currentUserSession?.sessionLocation?.uuid;
106
+
107
+ const customRepresentation = 'custom:(uuid,display,name)';
108
+
109
+ const apiUrl =
110
+ `${restBaseUrl}/queue?&service=${service}` +
111
+ (location ? `&location=${location}` : '') +
112
+ `&v=${customRepresentation}`;
113
+
114
+ const { data, isLoading } = useSWR<
115
+ {
116
+ data: {
117
+ results: Array<{
118
+ uuid: string;
119
+ display: string;
120
+ name: string;
121
+ }>;
122
+ };
123
+ },
124
+ Error
125
+ >(service ? apiUrl : null, openmrsFetch);
126
+
127
+ return { data, isLoading };
128
+ }
129
+
130
+ export function useQueue(service: string = '7f7ec7ad-cdd7-4ed9-bc2e-5c5bd9f065b2') {
131
+ const currentUserSession = useSession();
132
+ const location = currentUserSession?.sessionLocation?.uuid;
133
+
134
+ const customRepresentation = 'custom:(uuid,display,name)';
135
+
136
+ const apiUrl =
137
+ `${restBaseUrl}/queue?&service=${service}` +
138
+ (location ? `&location=${location}` : '') +
139
+ `&v=${customRepresentation}`;
140
+
141
+ const { data, isLoading } = useSWR<
142
+ {
143
+ data: {
144
+ results: Array<{
145
+ uuid: string;
146
+ display: string;
147
+ name: string;
148
+ }>;
149
+ };
150
+ },
151
+ Error
152
+ >(service ? apiUrl : null, openmrsFetch);
153
+
154
+ return { data, isLoading };
155
+ }
156
+
157
+ export async function getServiceQueueByLocationUuid(
158
+ serviceUuid: string,
159
+ locationUuid: string,
160
+ ): Promise<QueueEntryResult[]> {
161
+ const etlBaseUrl = await getEtlBaseUrl();
162
+ const queueEntryUrl = `${etlBaseUrl}/queue-entry`;
163
+ const params = {
164
+ locationUuid: locationUuid,
165
+ serviceUuid: serviceUuid,
166
+ };
167
+ const queryString = new URLSearchParams(params).toString();
168
+ const response = await openmrsFetch(`${queueEntryUrl}?${queryString}`);
169
+ const result = await response.json();
170
+ return result.data;
171
+ }
172
+
173
+ export async function closeQueueEntry(entryQueueUuid: string): Promise<QueueEntryResult[]> {
174
+ const queueEntryUrl = `${restBaseUrl}/queue-entry/${entryQueueUuid}`;
175
+ const params = {
176
+ endedAt: new Date().toISOString(),
177
+ };
178
+ const response = await openmrsFetch(queueEntryUrl, {
179
+ method: 'POST',
180
+ headers: {
181
+ 'content-type': 'application/json',
182
+ },
183
+ body: JSON.stringify(params),
184
+ });
185
+ const result = await response.json();
186
+ return result.data;
187
+ }
188
+
189
+ export async function getQueuesByLocationUuid(locationUuid: string): Promise<Queue[]> {
190
+ const queueUrl = `${restBaseUrl}/queue`;
191
+ const params = {
192
+ location: locationUuid,
193
+ v: 'full',
194
+ };
195
+ const queryString = new URLSearchParams(params).toString();
196
+ const response = await openmrsFetch(`${queueUrl}?${queryString}`);
197
+ const result = await response.json();
198
+ return result.results;
199
+ }
200
+
201
+ export async function deleteQueue(queueUuid: string): Promise<any> {
202
+ const queueUrl = `${restBaseUrl}/queue/${queueUuid}?!purge`;
203
+ const response = await openmrsFetch(queueUrl, {
204
+ method: 'DELETE',
205
+ });
206
+ return response;
207
+ }
208
+
209
+ export async function createQueue(createQueueDto: CreateQueueDto): Promise<Queue> {
210
+ const createQueueUrl = `${restBaseUrl}/queue/`;
211
+ const response = await openmrsFetch(createQueueUrl, {
212
+ method: 'POST',
213
+ headers: {
214
+ 'content-type': 'application/json',
215
+ },
216
+ body: JSON.stringify(createQueueDto),
217
+ });
218
+ const result = await response.json();
219
+ return result;
220
+ }
221
+
222
+ export async function editQueue(queueUuid: string, editQueueDto: CreateQueueDto): Promise<Queue> {
223
+ const editQueueUrl = `${restBaseUrl}/queue/${queueUuid}`;
224
+ const response = await openmrsFetch(editQueueUrl, {
225
+ method: 'POST',
226
+ headers: {
227
+ 'content-type': 'application/json',
228
+ },
229
+ body: JSON.stringify(editQueueDto),
230
+ });
231
+ const result = await response.json();
232
+ return result;
233
+ }
234
+
235
+ export async function getQueueRoomsByLocationUuid(locationUuid: string): Promise<QueueRoom[]> {
236
+ const queueUrl = `${restBaseUrl}/queue-room`;
237
+ const v =
238
+ 'custom:(uuid,display,name,description,queue:(uuid,display,location:(uuid,display),service:(uuid,display)))';
239
+ const params = {
240
+ location: locationUuid,
241
+ v: v,
242
+ };
243
+ const queryString = new URLSearchParams(params).toString();
244
+ const response = await openmrsFetch(`${queueUrl}?${queryString}`);
245
+ const result = await response.json();
246
+ return result.results;
247
+ }
248
+
249
+ export async function createQueueRoom(createQueueRoomDto: CreateQueueRoomDto): Promise<QueueRoom> {
250
+ const createQueueUrl = `${restBaseUrl}/queue-room/`;
251
+ const response = await openmrsFetch(createQueueUrl, {
252
+ method: 'POST',
253
+ headers: {
254
+ 'content-type': 'application/json',
255
+ },
256
+ body: JSON.stringify(createQueueRoomDto),
257
+ });
258
+ const result = await response.json();
259
+ return result;
260
+ }
261
+
262
+ export async function deleteQueueRoom(queueRoomUuid: string): Promise<any> {
263
+ const queueUrl = `${restBaseUrl}/queue-room/${queueRoomUuid}?!purge`;
264
+ const response = await openmrsFetch(queueUrl, {
265
+ method: 'DELETE',
266
+ });
267
+ return response;
268
+ }
269
+
270
+ export async function editQueueRoom(queueRoomUuid: string, editQueueRoomDto: CreateQueueRoomDto): Promise<QueueRoom> {
271
+ const editQueueUrl = `${restBaseUrl}/queue-room/${queueRoomUuid}`;
272
+ const response = await openmrsFetch(editQueueUrl, {
273
+ method: 'POST',
274
+ headers: {
275
+ 'content-type': 'application/json',
276
+ },
277
+ body: JSON.stringify(editQueueRoomDto),
278
+ });
279
+ const result = await response.json();
280
+ return result;
281
+ }
282
+ export async function getActiveQueueEntryByPatientUuid(patientUuid: string): Promise<QueueEntry[]> {
283
+ const queueUrl = `${restBaseUrl}/queue-entry`;
284
+ const v =
285
+ 'custom:(uuid,display,queue,status,patient:(uuid,display,person,identifiers:(uuid,display,identifier,identifierType)),visit:(uuid,display,startDatetime,encounters:(uuid,display,diagnoses,encounterDatetime,encounterType,obs,encounterProviders,voided),attributes:(uuid,display,value,attributeType)),priority,priorityComment,sortWeight,startedAt,endedAt,locationWaitingFor,queueComingFrom,providerWaitingFor,previousQueueEntry)';
286
+ const params = {
287
+ patient: patientUuid,
288
+ v: v,
289
+ isEnded: 'false',
290
+ totalCount: 'true',
291
+ };
292
+ const queryString = new URLSearchParams(params).toString();
293
+ const response = await openmrsFetch(`${queueUrl}?${queryString}`);
294
+ const result = await response.json();
295
+ return result.results;
296
+ }
297
+
298
+ export async function getServiceQueueDailyReport(
299
+ serviceUuid: string,
300
+ locationUuid: string,
301
+ ): Promise<ServiceQueueDailyReport[]> {
302
+ const etlBaseUrl = await getEtlBaseUrl();
303
+ const reportUrl = `${etlBaseUrl}/service-queue-daily-report?serviceUuid=${serviceUuid}&locationUuid=${locationUuid}`;
304
+ const response = await openmrsFetch<ServiceQueueDailyReportResp>(reportUrl);
305
+ const result = await response.json();
306
+ return result.result;
307
+ }
308
+
309
+ export async function getServiceQueueDailyPatientListReport(
310
+ serviceUuid: string,
311
+ locationUuid: string,
312
+ ): Promise<ServiceQueueReportPatientList[]> {
313
+ const etlBaseUrl = await getEtlBaseUrl();
314
+ const reportUrl = `${etlBaseUrl}/service-queue-daily-report/patient-list?serviceUuid=${serviceUuid}&locationUuid=${locationUuid}`;
315
+ const response = await openmrsFetch<ServiceQueueDailyPatientListReportResp>(reportUrl);
316
+ const result: ServiceQueueDailyPatientListReportResp = await response.json();
317
+ if (result && result.results) {
318
+ return result.results.results ?? [];
319
+ } else {
320
+ return [];
321
+ }
322
+ }
323
+ export async function getQueueEntryByLocationUuid(locationUuid: string): Promise<QueueEntry[]> {
324
+ const queueUrl = `${restBaseUrl}/queue-entry`;
325
+ const v =
326
+ 'custom:(uuid,display,queue,status,patient:(uuid,display,person),visit:(uuid,display,startDatetime,stopDatetime),priority,priorityComment,sortWeight,startedAt,endedAt,locationWaitingFor,queueComingFrom,providerWaitingFor,previousQueueEntry)';
327
+ const params = {
328
+ location: locationUuid,
329
+ v: v,
330
+ isEnded: 'false',
331
+ totalCount: 'true',
332
+ };
333
+ const queryString = new URLSearchParams(params).toString();
334
+ const response = await openmrsFetch(`${queueUrl}?${queryString}`);
335
+ const result = await response.json();
336
+ return result.results;
337
+ }
338
+
339
+ export async function deleteQueueEntry(queueEntryUuid: string): Promise<any> {
340
+ const queueUrl = `${restBaseUrl}/queue-entry/${queueEntryUuid}?!purge`;
341
+ const response = await openmrsFetch(queueUrl, {
342
+ method: 'DELETE',
343
+ });
344
+ return response;
345
+ }
346
+
347
+ export async function endQueueEntry(entryQueueUuid: string, endedAt: string): Promise<QueueEntryResult[]> {
348
+ const queueEntryUrl = `${restBaseUrl}/queue-entry/${entryQueueUuid}`;
349
+ const params = {
350
+ endedAt: endedAt,
351
+ };
352
+ const response = await openmrsFetch(queueEntryUrl, {
353
+ method: 'POST',
354
+ headers: {
355
+ 'content-type': 'application/json',
356
+ },
357
+ body: JSON.stringify(params),
358
+ });
359
+ const result = await response.json();
360
+ return result.data;
361
+ }
@@ -0,0 +1,28 @@
1
+ import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
2
+ import { type ServiceQueue } from '../registry/types';
3
+ import { type TransitionQueueEntryDto } from '../types/types';
4
+
5
+ export async function getServiceQueueByLocation(locationUuid: string): Promise<ServiceQueue[]> {
6
+ const params = {
7
+ v: 'custom:(uuid,name,location:(uuid,display))',
8
+ location: locationUuid,
9
+ };
10
+ const queryString = new URLSearchParams(params).toString();
11
+ const queueEntryUrl = `${restBaseUrl}/queue`;
12
+ const response = await openmrsFetch(`${queueEntryUrl}?${queryString}`);
13
+ const result = await response.json();
14
+ return result.results;
15
+ }
16
+
17
+ export async function transitionQueueEntry(transitionQueueEntryDto: TransitionQueueEntryDto) {
18
+ const url = `${restBaseUrl}/queue-entry/transition`;
19
+ const resp = await openmrsFetch(url, {
20
+ method: 'POST',
21
+ headers: {
22
+ 'content-type': 'application/json',
23
+ },
24
+ body: JSON.stringify(transitionQueueEntryDto),
25
+ });
26
+ const res = await resp.json();
27
+ return res;
28
+ }
@@ -1,13 +1,23 @@
1
1
  const NORMAL_PRIORITY_UUID = 'bbd99c12-67e9-4381-8b4c-1f231e86f8e2';
2
2
  const EMERGENCY_PRIORITY_UUID = '8e86ff12-ec83-41e8-a534-bb410739d880';
3
+ const NOT_URGENT_PRIORITY_UUID = '26995049-fc00-43f4-a725-851fd517a1ac';
3
4
 
4
5
  const WAITING_UUID = '89d01aa5-0ab0-4626-934b-37766b4cd779';
5
6
  const IN_SERVICE_UUID = 'f9cf5768-508f-45de-8d40-eaf6ea3f3b02';
6
7
  const COMPLETED_UUID = 'a89c1ef8-1350-11df-a1f1-0026b9348838';
7
8
 
9
+ const TRIAGE_SERVICE_UUID = '2d4472e2-d7ab-4430-8e0e-a9ffcd809bf4';
10
+ const CLINICAL_CONSULTATION_SERVICE_UUID = '7f7ec7ad-cdd7-4ed9-bc2e-5c5bd9f065b2';
11
+
12
+ const MCH_TRIAGE_SERVICE_UUID = '7e4452bf-f9b7-4977-a21f-1c8b94831bac';
13
+ const MCH_CLINICAL_CONSULTATION_SERVICE_UUID = '0026e273-5f8c-46b5-8bb4-0d8301d50321';
14
+
15
+ const MATERNITY_TRIAGE_SERVICE_UUID = 'c00a4436-a719-4b55-b3ae-7c22165d4ac2';
16
+
8
17
  export const QUEUE_PRIORITIES_UUIDS = {
9
18
  NORMAL_PRIORITY_UUID,
10
19
  EMERGENCY_PRIORITY_UUID,
20
+ NOT_URGENT_PRIORITY_UUID,
11
21
  };
12
22
 
13
23
  export const QUEUE_STATUS_UUIDS = {
@@ -15,3 +25,11 @@ export const QUEUE_STATUS_UUIDS = {
15
25
  IN_SERVICE_UUID,
16
26
  COMPLETED_UUID,
17
27
  };
28
+
29
+ export const QUEUE_SERVICE_UUIDS = {
30
+ TRIAGE_SERVICE_UUID,
31
+ CLINICAL_CONSULTATION_SERVICE_UUID,
32
+ MCH_TRIAGE_SERVICE_UUID,
33
+ MCH_CLINICAL_CONSULTATION_SERVICE_UUID,
34
+ MATERNITY_TRIAGE_SERVICE_UUID
35
+ };
@@ -1,2 +1 @@
1
- export const HIE_BASE_URL = 'https://staging.ampath.or.ke/hie';
2
- export const OPENMRS_BASE_URL = 'https://staging.ampath.or.ke/openmrs/ws/rest/v1';
1
+
@@ -0,0 +1,6 @@
1
+ const CCC_PATIENT_UUID = 'a8a3899a-1350-11df-a1f1-0026b9348838';
2
+ const MCH_PATIENT_UUID = 'a8a17d80-1350-11df-a1f1-0026b9348838';
3
+ export const PatientCategories = {
4
+ CCC_PATIENT_UUID,
5
+ MCH_PATIENT_UUID,
6
+ };
@@ -0,0 +1,10 @@
1
+ const WALK_IN_UUID = '1671c96d-f281-49bf-b246-c0698f200871';
2
+ const SELF_RERERRAL_UUID = 'a8a17d80-1350-11df-a1f1-0026b9348838';
3
+ const REFERRAL_FROM_ANOTHER_FACILITY_UUID = 'a095f6aa-9d15-442e-8b21-d9306b82983f';
4
+ const REFERRED_BY_COMMUNITY_HEALTH_WORKER_UUID = '1d54b745-0afc-4568-a9ba-17ba3fc1dda0';
5
+ export const PatientTypes = {
6
+ WALK_IN_UUID,
7
+ SELF_RERERRAL_UUID,
8
+ REFERRAL_FROM_ANOTHER_FACILITY_UUID,
9
+ REFERRED_BY_COMMUNITY_HEALTH_WORKER_UUID
10
+ };
@@ -0,0 +1,7 @@
1
+ const OPD_VISIT_TYPE_UUID = '57d7f623-6a5c-47b2-a1b0-0238b92bea95';
2
+ const INPATIENT_VISIT_TYPE_UUID = 'be7c422a-9f7d-4817-95d0-0e4d451ad153';
3
+
4
+ export const VisitTypeUuids = {
5
+ OPD_VISIT_TYPE_UUID,
6
+ INPATIENT_VISIT_TYPE_UUID,
7
+ };
@@ -0,0 +1,38 @@
1
+ import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
2
+ import { type CreateBillDto, type BillableService, type PaymentMode, type CashPoint } from '../types';
3
+
4
+ export async function fetchPaymentModes(): Promise<PaymentMode[]> {
5
+ const paymentModeUrl = `${restBaseUrl}/billing/paymentMode`;
6
+ const resp = await openmrsFetch(paymentModeUrl);
7
+ const data = await resp.json();
8
+ return data.results ?? [];
9
+ }
10
+
11
+ export async function fetchBillableServices(): Promise<BillableService[]> {
12
+ const v = 'full';
13
+ const billableServiceUrl = `${restBaseUrl}/billing/billableService`;
14
+ const resp = await openmrsFetch(`${billableServiceUrl}?v=${v}`);
15
+ const data = await resp.json();
16
+ return data.results ?? [];
17
+ }
18
+
19
+ export async function createBill(createBillDto: CreateBillDto) {
20
+ const createBillUrl = `${restBaseUrl}/billing/bill`;
21
+ const response = await openmrsFetch(createBillUrl, {
22
+ method: 'POST',
23
+ headers: {
24
+ 'content-type': 'application/json',
25
+ },
26
+ body: JSON.stringify(createBillDto),
27
+ });
28
+ const result = await response.json();
29
+ return result.results ?? [];
30
+ }
31
+
32
+ export async function fetchCashPoints(): Promise<CashPoint[]> {
33
+ const v = 'full';
34
+ const cashPointUrl = `${restBaseUrl}/billing/cashPoint?v=${v}`;
35
+ const resp = await openmrsFetch(cashPointUrl);
36
+ const data = await resp.json();
37
+ return data.results ?? [];
38
+ }
@@ -0,0 +1,27 @@
1
+ import { type HieClientPaymentMode, type CreateClientPaymentModeDto } from '../types';
2
+ import { getHieBaseUrl } from '../utils/get-base-url';
3
+
4
+ export async function createClientPaymentMode(
5
+ createClientPaymentModeDto: CreateClientPaymentModeDto,
6
+ ): Promise<HieClientPaymentMode> {
7
+ const hieBaseUrl = await getHieBaseUrl();
8
+ const url = `${hieBaseUrl}/client-payment-mode`;
9
+ const response = await fetch(url, {
10
+ method: 'POST',
11
+ headers: {
12
+ 'Content-Type': 'application/json',
13
+ },
14
+ body: JSON.stringify(createClientPaymentModeDto),
15
+ });
16
+
17
+ const data = response.json();
18
+ return data;
19
+ }
20
+
21
+ export async function fetchClientPaymentMode(clientId: string): Promise<HieClientPaymentMode> {
22
+ const hieBaseUrl = await getHieBaseUrl();
23
+ const url = `${hieBaseUrl}/client-payment-mode?clientId=${clientId}`;
24
+ const response = await fetch(url);
25
+ const data = response.json();
26
+ return data;
27
+ }
@@ -0,0 +1,17 @@
1
+ import { type HieBillPayment } from '../types';
2
+ import { getHieBaseUrl } from '../utils/get-base-url';
3
+
4
+ export async function createClientPayment(createClientBillPaymentDto: HieBillPayment): Promise<HieBillPayment> {
5
+ const hieBaseUrl = await getHieBaseUrl();
6
+ const url = `${hieBaseUrl}/payment`;
7
+ const response = await fetch(url, {
8
+ method: 'POST',
9
+ headers: {
10
+ 'Content-Type': 'application/json',
11
+ },
12
+ body: JSON.stringify(createClientBillPaymentDto),
13
+ });
14
+
15
+ const data = response.json();
16
+ return data;
17
+ }
@@ -0,0 +1,19 @@
1
+ import { type HieClientEligibility, type EligibilityFilterDto } from '../../registry/types';
2
+ import { getHieBaseUrl } from '../utils/get-base-url';
3
+
4
+ export async function getClientEligibityStatus(
5
+ eligibilityFilterDto: EligibilityFilterDto,
6
+ ): Promise<HieClientEligibility> {
7
+ const hieBaseUrl = await getHieBaseUrl();
8
+ const url = `${hieBaseUrl}/eligibility`;
9
+ const response = await fetch(url, {
10
+ method: 'POST',
11
+ headers: {
12
+ 'Content-Type': 'application/json',
13
+ },
14
+ body: JSON.stringify(eligibilityFilterDto),
15
+ });
16
+
17
+ const data = response.json();
18
+ return data;
19
+ }
@@ -0,0 +1,27 @@
1
+ import { type Encounter, openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
2
+ import { type CreateOrderEncounterDto } from '../types';
3
+
4
+ export async function fetchPatientEncountersByType(patientUuid: string, encounterTypeUuid: string) {
5
+ const res = await openmrsFetch(
6
+ `${restBaseUrl}/encounter?patient=${patientUuid}&encounterType=${encounterTypeUuid}&v=full`,
7
+ );
8
+
9
+ return res.data.results ?? [];
10
+ }
11
+ export async function getPatientEncounters(patientUuid: string) {
12
+ const res = await openmrsFetch(`${restBaseUrl}/encounter?patient=${patientUuid}&v=full`);
13
+
14
+ return res.data.results ?? [];
15
+ }
16
+ export async function createOrderEncounter(createOrderEncounterDto: CreateOrderEncounterDto): Promise<Encounter> {
17
+ const encounterUrl = `${restBaseUrl}/encounter`;
18
+ const response = await openmrsFetch(encounterUrl, {
19
+ method: 'POST',
20
+ headers: {
21
+ 'content-type': 'application/json',
22
+ },
23
+ body: JSON.stringify(createOrderEncounterDto),
24
+ });
25
+ const result = await response.json();
26
+ return result ?? null;
27
+ }
@@ -0,0 +1,9 @@
1
+ import { type Location, openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
2
+
3
+ export async function getLocationByUuid(locationUuid: string): Promise<Location> {
4
+ const locationBaseUrl = `${restBaseUrl}/location`;
5
+ const locationUrl = `${locationBaseUrl}/${locationUuid}`;
6
+ const resp = await openmrsFetch(locationUrl);
7
+ const data = await resp.json();
8
+ return data ?? null;
9
+ }