@kenyaemr/esm-express-workflow-app 5.4.4-pre.43 → 5.4.4-pre.430

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 (627) hide show
  1. package/.turbo/turbo-build.log +14 -7
  2. package/dist/1084.js +1 -0
  3. package/dist/1084.js.map +1 -0
  4. package/dist/1278.js +1 -0
  5. package/dist/1278.js.map +1 -0
  6. package/dist/1324.js +1 -0
  7. package/dist/1324.js.map +1 -0
  8. package/dist/1375.js +66 -0
  9. package/dist/1375.js.map +1 -0
  10. package/dist/1402.js +1 -0
  11. package/dist/1402.js.map +1 -0
  12. package/dist/1442.js +1 -0
  13. package/dist/1442.js.map +1 -0
  14. package/dist/1520.js +1 -0
  15. package/dist/1520.js.map +1 -0
  16. package/dist/1559.js +1 -0
  17. package/dist/1559.js.map +1 -0
  18. package/dist/1593.js +1 -0
  19. package/dist/1593.js.map +1 -0
  20. package/dist/162.js +1 -0
  21. package/dist/162.js.map +1 -0
  22. package/dist/1620.js +1 -0
  23. package/dist/1620.js.map +1 -0
  24. package/dist/1658.js +1 -0
  25. package/dist/1658.js.map +1 -0
  26. package/dist/1659.js +1 -0
  27. package/dist/1659.js.map +1 -0
  28. package/dist/1789.js +1 -0
  29. package/dist/1789.js.map +1 -0
  30. package/dist/1827.js +1 -0
  31. package/dist/1827.js.map +1 -0
  32. package/dist/1831.js +1 -0
  33. package/dist/1831.js.map +1 -0
  34. package/dist/1854.js +1 -0
  35. package/dist/1854.js.map +1 -0
  36. package/dist/196.js +1 -0
  37. package/dist/196.js.map +1 -0
  38. package/dist/2127.js +1 -0
  39. package/dist/2127.js.map +1 -0
  40. package/dist/2152.js +1 -0
  41. package/dist/2152.js.map +1 -0
  42. package/dist/2202.js +1 -0
  43. package/dist/2202.js.map +1 -0
  44. package/dist/221.js +1 -0
  45. package/dist/221.js.map +1 -0
  46. package/dist/2269.js +1 -0
  47. package/dist/2269.js.map +1 -0
  48. package/dist/2293.js +1 -0
  49. package/dist/2293.js.map +1 -0
  50. package/dist/234.js +1 -0
  51. package/dist/234.js.map +1 -0
  52. package/dist/2412.js +1 -1
  53. package/dist/2412.js.map +1 -1
  54. package/dist/2466.js +1 -0
  55. package/dist/2466.js.map +1 -0
  56. package/dist/2534.js +1 -1
  57. package/dist/2534.js.map +1 -1
  58. package/dist/2553.js +1 -0
  59. package/dist/2553.js.map +1 -0
  60. package/dist/2556.js +1 -0
  61. package/dist/2556.js.map +1 -0
  62. package/dist/2648.js +1 -0
  63. package/dist/2648.js.map +1 -0
  64. package/dist/274.js +1 -0
  65. package/dist/274.js.map +1 -0
  66. package/dist/2788.js +1 -0
  67. package/dist/2788.js.map +1 -0
  68. package/dist/2842.js +1 -0
  69. package/dist/2842.js.map +1 -0
  70. package/dist/2874.js +1 -0
  71. package/dist/2874.js.map +1 -0
  72. package/dist/2916.js +1 -0
  73. package/dist/2916.js.map +1 -0
  74. package/dist/2947.js +1 -1
  75. package/dist/2947.js.map +1 -1
  76. package/dist/3012.js +1 -0
  77. package/dist/3012.js.map +1 -0
  78. package/dist/3087.js +1 -0
  79. package/dist/3087.js.map +1 -0
  80. package/dist/3335.js +1 -0
  81. package/dist/3335.js.map +1 -0
  82. package/dist/3378.js +1 -0
  83. package/dist/3378.js.map +1 -0
  84. package/dist/3504.js +1 -0
  85. package/dist/3504.js.map +1 -0
  86. package/dist/3509.js +1 -1
  87. package/dist/3509.js.map +1 -1
  88. package/dist/356.js +1 -0
  89. package/dist/356.js.map +1 -0
  90. package/dist/3690.js +1 -0
  91. package/dist/3690.js.map +1 -0
  92. package/dist/371.js +1 -0
  93. package/dist/371.js.map +1 -0
  94. package/dist/3747.js +1 -0
  95. package/dist/3747.js.map +1 -0
  96. package/dist/3819.js +1 -0
  97. package/dist/3819.js.map +1 -0
  98. package/dist/3820.js +1 -0
  99. package/dist/3820.js.map +1 -0
  100. package/dist/3910.js +1 -0
  101. package/dist/3910.js.map +1 -0
  102. package/dist/393.js +6 -0
  103. package/dist/393.js.map +1 -0
  104. package/dist/3933.js +1 -0
  105. package/dist/3933.js.map +1 -0
  106. package/dist/3989.js +1 -0
  107. package/dist/3989.js.map +1 -0
  108. package/dist/3995.js +1 -0
  109. package/dist/3995.js.map +1 -0
  110. package/dist/4032.js +1 -0
  111. package/dist/4032.js.map +1 -0
  112. package/dist/4145.js +1 -1
  113. package/dist/4145.js.map +1 -1
  114. package/dist/4178.js +1 -1
  115. package/dist/4178.js.map +1 -1
  116. package/dist/4191.js +1 -0
  117. package/dist/4191.js.map +1 -0
  118. package/dist/4212.js +1 -0
  119. package/dist/4212.js.map +1 -0
  120. package/dist/4215.js +1 -0
  121. package/dist/4215.js.map +1 -0
  122. package/dist/4523.js +1 -0
  123. package/dist/4523.js.map +1 -0
  124. package/dist/4588.js +1 -0
  125. package/dist/4588.js.map +1 -0
  126. package/dist/4617.js +1 -0
  127. package/dist/4617.js.map +1 -0
  128. package/dist/466.js +1 -1
  129. package/dist/466.js.map +1 -1
  130. package/dist/4688.js +1 -0
  131. package/dist/{7288.js.map → 4688.js.map} +1 -1
  132. package/dist/470.js +1 -0
  133. package/dist/470.js.map +1 -0
  134. package/dist/4759.js +1 -0
  135. package/dist/4759.js.map +1 -0
  136. package/dist/4818.js +1 -1
  137. package/dist/4818.js.map +1 -1
  138. package/dist/5086.js +1 -1
  139. package/dist/5086.js.map +1 -1
  140. package/dist/5093.js +1 -0
  141. package/dist/5093.js.map +1 -0
  142. package/dist/5097.js +1 -0
  143. package/dist/5097.js.map +1 -0
  144. package/dist/510.js +1 -0
  145. package/dist/510.js.map +1 -0
  146. package/dist/5117.js +1 -0
  147. package/dist/5117.js.map +1 -0
  148. package/dist/5279.js +1 -0
  149. package/dist/5279.js.map +1 -0
  150. package/dist/5434.js +1 -0
  151. package/dist/5434.js.map +1 -0
  152. package/dist/5514.js +1 -0
  153. package/dist/5514.js.map +1 -0
  154. package/dist/5568.js +1 -0
  155. package/dist/5568.js.map +1 -0
  156. package/dist/5576.js +1 -1
  157. package/dist/5576.js.map +1 -1
  158. package/dist/5630.js +1 -0
  159. package/dist/5630.js.map +1 -0
  160. package/dist/5676.js +1 -1
  161. package/dist/5676.js.map +1 -1
  162. package/dist/5695.js +1 -0
  163. package/dist/5695.js.map +1 -0
  164. package/dist/5697.js +1 -1
  165. package/dist/5697.js.map +1 -1
  166. package/dist/5728.js +1 -0
  167. package/dist/5728.js.map +1 -0
  168. package/dist/5809.js +1 -1
  169. package/dist/5809.js.map +1 -1
  170. package/dist/585.js +1 -0
  171. package/dist/585.js.map +1 -0
  172. package/dist/5887.js +1 -0
  173. package/dist/5887.js.map +1 -0
  174. package/dist/5958.js +1 -0
  175. package/dist/5958.js.map +1 -0
  176. package/dist/5964.js +1 -0
  177. package/dist/5964.js.map +1 -0
  178. package/dist/6008.js +1 -0
  179. package/dist/602.js +1 -0
  180. package/dist/602.js.map +1 -0
  181. package/dist/6020.js +1 -0
  182. package/dist/6020.js.map +1 -0
  183. package/dist/6161.js +1 -0
  184. package/dist/6161.js.map +1 -0
  185. package/dist/6273.js +1 -0
  186. package/dist/6273.js.map +1 -0
  187. package/dist/6337.js +1 -0
  188. package/dist/6337.js.map +1 -0
  189. package/dist/6427.js +1 -1
  190. package/dist/6427.js.map +1 -1
  191. package/dist/6429.js +1 -0
  192. package/dist/6429.js.map +1 -0
  193. package/dist/6478.js +7 -0
  194. package/dist/6478.js.map +1 -0
  195. package/dist/6508.js +1 -0
  196. package/dist/6508.js.map +1 -0
  197. package/dist/6634.js +1 -0
  198. package/dist/6634.js.map +1 -0
  199. package/dist/6767.js +1 -0
  200. package/dist/6767.js.map +1 -0
  201. package/dist/6783.js +1 -0
  202. package/dist/6783.js.map +1 -0
  203. package/dist/6868.js +1 -1
  204. package/dist/6868.js.map +1 -1
  205. package/dist/688.js +1 -0
  206. package/dist/688.js.map +1 -0
  207. package/dist/689.js +1 -1
  208. package/dist/689.js.map +1 -1
  209. package/dist/694.js +1 -0
  210. package/dist/694.js.map +1 -0
  211. package/dist/6987.js +1 -0
  212. package/dist/6987.js.map +1 -0
  213. package/dist/7061.js +1 -0
  214. package/dist/7061.js.map +1 -0
  215. package/dist/7078.js +1 -0
  216. package/dist/7078.js.map +1 -0
  217. package/dist/710.js +1 -0
  218. package/dist/710.js.map +1 -0
  219. package/dist/7128.js +1 -0
  220. package/dist/7128.js.map +1 -0
  221. package/dist/7209.js +1 -0
  222. package/dist/7209.js.map +1 -0
  223. package/dist/7424.js +1 -0
  224. package/dist/7424.js.map +1 -0
  225. package/dist/770.js +1 -0
  226. package/dist/770.js.map +1 -0
  227. package/dist/7707.js +1 -0
  228. package/dist/7707.js.map +1 -0
  229. package/dist/7784.js +1 -0
  230. package/dist/7784.js.map +1 -0
  231. package/dist/781.js +1 -1
  232. package/dist/781.js.map +1 -1
  233. package/dist/7824.js +1 -0
  234. package/dist/7824.js.map +1 -0
  235. package/dist/7832.js +1 -0
  236. package/dist/7832.js.map +1 -0
  237. package/dist/8178.js +1 -0
  238. package/dist/8178.js.map +1 -0
  239. package/dist/820.js +1 -0
  240. package/dist/820.js.map +1 -0
  241. package/dist/8224.js +1 -0
  242. package/dist/8224.js.map +1 -0
  243. package/dist/8225.js +1 -0
  244. package/dist/8225.js.map +1 -0
  245. package/dist/8240.js +1 -1
  246. package/dist/8240.js.map +1 -1
  247. package/dist/8258.js +1 -0
  248. package/dist/8258.js.map +1 -0
  249. package/dist/8702.js +1 -0
  250. package/dist/8702.js.map +1 -0
  251. package/dist/8725.js +1 -0
  252. package/dist/8725.js.map +1 -0
  253. package/dist/8762.js +1 -0
  254. package/dist/8762.js.map +1 -0
  255. package/dist/8763.js +1 -0
  256. package/dist/8763.js.map +1 -0
  257. package/dist/8815.js +1 -0
  258. package/dist/8815.js.map +1 -0
  259. package/dist/8882.js +1 -0
  260. package/dist/8882.js.map +1 -0
  261. package/dist/8924.js +1 -1
  262. package/dist/8924.js.map +1 -1
  263. package/dist/8937.js +1 -0
  264. package/dist/8937.js.map +1 -0
  265. package/dist/9.js +1 -1
  266. package/dist/9.js.map +1 -1
  267. package/dist/9061.js +1 -0
  268. package/dist/9061.js.map +1 -0
  269. package/dist/9087.js +1 -0
  270. package/dist/9087.js.map +1 -0
  271. package/dist/9301.js +1 -0
  272. package/dist/9301.js.map +1 -0
  273. package/dist/9324.js +1 -0
  274. package/dist/9324.js.map +1 -0
  275. package/dist/9497.js +1 -0
  276. package/dist/9497.js.map +1 -0
  277. package/dist/9520.js +1 -1
  278. package/dist/9520.js.map +1 -1
  279. package/dist/9526.js +1 -0
  280. package/dist/9526.js.map +1 -0
  281. package/dist/9621.js +1 -0
  282. package/dist/9621.js.map +1 -0
  283. package/dist/9676.js +17 -0
  284. package/dist/9676.js.map +1 -0
  285. package/dist/977.js +1 -0
  286. package/dist/977.js.map +1 -0
  287. package/dist/9771.js +1 -0
  288. package/dist/9771.js.map +1 -0
  289. package/dist/9806.js +1 -0
  290. package/dist/9806.js.map +1 -0
  291. package/dist/989.js +1 -0
  292. package/dist/989.js.map +1 -0
  293. package/dist/kenyaemr-esm-express-workflow-app.js +6 -5
  294. package/dist/kenyaemr-esm-express-workflow-app.js.buildmanifest.json +1407 -809
  295. package/dist/kenyaemr-esm-express-workflow-app.js.map +1 -1
  296. package/dist/main.js +22 -5
  297. package/dist/main.js.map +1 -1
  298. package/dist/routes.json +1 -1
  299. package/package.json +4 -6
  300. package/src/components/admissions/admissions-dashboard.component.tsx +2 -2
  301. package/src/components/anaesthetic/anaesthetic-dashboard.meta.ts +8 -0
  302. package/src/components/anaesthetic/anaesthetic-data-form.component.tsx +442 -0
  303. package/src/components/anaesthetic/anaesthetic-data-form.scss +278 -0
  304. package/src/components/anaesthetic/anaesthetic-link.component.tsx +21 -0
  305. package/src/components/anaesthetic/anaesthetic.component.tsx +618 -0
  306. package/src/components/anaesthetic/anaesthetic.resource.ts +1503 -0
  307. package/src/components/anaesthetic/anaesthetic.scss +1885 -0
  308. package/src/components/anaesthetic/forms/anaesthetic-form.component.tsx +304 -0
  309. package/src/components/anaesthetic/forms/anaesthetic-record-form.component.tsx +707 -0
  310. package/src/components/anaesthetic/forms/icd11-diagnosis-search.component.tsx +178 -0
  311. package/src/components/anaesthetic/forms/icd11-diagnosis-search.scss +126 -0
  312. package/src/components/anaesthetic/forms/index.ts +2 -0
  313. package/src/components/anaesthetic/forms/interoperative-record-drug-given-form.component.tsx +231 -0
  314. package/src/components/anaesthetic/forms/post-operative-summary-form.component.tsx +171 -0
  315. package/src/components/anaesthetic/forms/time-picker-dropdown.component.tsx +202 -0
  316. package/src/components/anaesthetic/forms/time-picker-dropdown.scss +107 -0
  317. package/src/components/anaesthetic/forms/time-picker-with-clock.component.tsx +174 -0
  318. package/src/components/anaesthetic/forms/time-picker-with-clock.scss +178 -0
  319. package/src/components/anaesthetic/forms/useAnaestheticData.ts +16 -0
  320. package/src/components/anaesthetic/graphs/anaesthetic-graph-wrapper.component.tsx +266 -0
  321. package/src/components/anaesthetic/graphs/anaesthetic-graph.component.tsx +185 -0
  322. package/src/components/anaesthetic/graphs/index.ts +2 -0
  323. package/src/components/anaesthetic/graphs/interoperative-record-drug-given-graph-wrapper.component.tsx +197 -0
  324. package/src/components/anaesthetic/graphs/interoperative-record-drug-given-graph.component.tsx +93 -0
  325. package/src/components/anaesthetic/resources/anaesthetic-amniotic-fluid.resource.ts +277 -0
  326. package/src/components/anaesthetic/resources/anaesthetic-form.resource.ts +716 -0
  327. package/src/components/anaesthetic/resources/anaesthetic.resource.ts +378 -0
  328. package/src/components/anaesthetic/types/index.ts +1349 -0
  329. package/src/components/consultation/clinical-encounter/clinical-encounter.component.tsx +4 -20
  330. package/src/components/consultation/clinical-encounter/encounter-details.component.tsx +9 -9
  331. package/src/components/consultation/clinical-encounter/encounter-details.test.tsx +19 -18
  332. package/src/components/consultation/consultation.utils.tsx +1 -1
  333. package/src/components/consultation/dashboard.component.tsx +0 -2
  334. package/src/components/consultation/index.ts +1 -1
  335. package/src/components/consultation/tabs/index.ts +67 -0
  336. package/src/components/facility-dashboard/components/header/home-header.component.tsx +8 -13
  337. package/src/components/laboratory/index.ts +11 -0
  338. package/src/components/laboratory/lab-table.component.tsx +46 -12
  339. package/src/components/laboratory/laboratory-tabs.component.tsx +3 -17
  340. package/src/components/mch/dashboard.component.tsx +0 -2
  341. package/src/components/mch/mch.component.tsx +1 -3
  342. package/src/components/pharmacy/index.ts +1 -1
  343. package/src/components/pharmacy/orders/pharmacy-orders.component.tsx +44 -6
  344. package/src/components/pharmacy/orders/pharmacy-orders.test.tsx +8 -7
  345. package/src/components/pharmacy/pharmacy-tabs.component.tsx +4 -20
  346. package/src/components/pharmacy/tabs/index.ts +21 -0
  347. package/src/components/preauth/index.ts +22 -0
  348. package/src/components/preauth/preauth-dashboard.component.tsx +20 -0
  349. package/src/components/procedures/index.ts +16 -0
  350. package/src/components/procedures/procedure-queues/index.ts +13 -0
  351. package/src/components/procedures/procedure-queues/procedure-form-extras.component.tsx +33 -0
  352. package/src/components/procedures/procedure-queues/procedure-form-extras.scss +5 -0
  353. package/src/components/procedures/procedure-queues/procedure-queues.component.tsx +35 -0
  354. package/src/components/procedures/procedure-queues/procedure-queues.resources.ts +37 -0
  355. package/src/components/procedures/procedure-queues/procedure-room-tabs.component.tsx +80 -0
  356. package/src/components/procedures/procedure-queues/procedure-rooms.scss +13 -0
  357. package/src/components/procedures/procedure-queues/queue-procedure-tabs.component.tsx +34 -0
  358. package/src/components/procedures/procedure-queues/summary-cards.component.tsx +81 -0
  359. package/src/components/procedures/procedure-queues/summary-cards.scss +35 -0
  360. package/src/components/procedures/procedures-table.component.tsx +77 -19
  361. package/src/components/procedures/procedures-tabs.component.test.tsx +57 -0
  362. package/src/components/procedures/procedures-tabs.component.tsx +3 -18
  363. package/src/components/radiology-and-imaging/index.ts +11 -0
  364. package/src/components/radiology-and-imaging/radiology-and-imaging-table.component.tsx +73 -21
  365. package/src/components/radiology-and-imaging/radiology-and-imaging.component.tsx +3 -19
  366. package/src/components/registration/card/HIE-card/hie-card.component.tsx +32 -44
  367. package/src/components/registration/card/Local-card/local-card.component.tsx +22 -24
  368. package/src/components/registration/checkin-form-extra/checkin-form-extra.extension.tsx +8 -2
  369. package/src/components/registration/checkin-form-extra/queue-fields.component.tsx +18 -19
  370. package/src/components/registration/dependants/dependants.component.tsx +37 -60
  371. package/src/components/registration/dependants/dependants.resource.ts +75 -46
  372. package/src/components/registration/end-visit-modal/end-visit-dialog.modal.tsx +320 -0
  373. package/src/components/registration/end-visit-modal/end-visit-dialog.scss +12 -0
  374. package/src/components/registration/end-visit-modal/end-visit.resource.tsx +59 -0
  375. package/src/components/registration/end-visit-modal/sha-end-visit.resource.ts +285 -0
  376. package/src/components/registration/search-bar/search-bar.resource.ts +32 -93
  377. package/src/components/registration/start-visit-form/hooks/useDefaultFacilityLocation.tsx +15 -0
  378. package/src/components/registration/start-visit-form/hooks/useDefaultVisitLocation.tsx +24 -0
  379. package/src/components/registration/start-visit-form/hooks/useOfflineVisitType.tsx +18 -0
  380. package/src/components/registration/start-visit-form/hooks/useRecommendedVisitTypes.tsx +36 -0
  381. package/src/components/registration/start-visit-form/hooks/useVisitAttributeType.tsx +102 -0
  382. package/src/components/registration/start-visit-form/overflow-menu-extension/custom-end-active-visit.extension.tsx +44 -0
  383. package/src/components/registration/start-visit-form/overflow-menu-extension/overflow-menu-item.extension.tsx +67 -0
  384. package/src/components/registration/start-visit-form/overflow-menu-extension/overflow-menu-item.scss +3 -0
  385. package/src/components/registration/start-visit-form/start-visit-workspace/base-visit-type.component.tsx +126 -0
  386. package/src/components/registration/start-visit-form/start-visit-workspace/base-visit-type.scss +75 -0
  387. package/src/components/registration/start-visit-form/start-visit-workspace/exported-visit-form.workspace.tsx +778 -0
  388. package/src/components/registration/start-visit-form/start-visit-workspace/location-selector.component.tsx +86 -0
  389. package/src/components/registration/start-visit-form/start-visit-workspace/recommended-visit-type.component.tsx +32 -0
  390. package/src/components/registration/start-visit-form/start-visit-workspace/visit-attribute-type.component.tsx +257 -0
  391. package/src/components/registration/start-visit-form/start-visit-workspace/visit-attribute-type.scss +5 -0
  392. package/src/components/registration/start-visit-form/start-visit-workspace/visit-date-time.component.tsx +193 -0
  393. package/src/components/registration/start-visit-form/start-visit-workspace/visit-form.resource.ts +390 -0
  394. package/src/components/registration/start-visit-form/start-visit-workspace/visit-form.scss +144 -0
  395. package/src/components/registration/start-visit-form/visit-form-workspace/visit-form.workspace.tsx +48 -0
  396. package/src/components/registration/type/index.ts +101 -0
  397. package/src/components/reports/index.ts +1 -0
  398. package/src/components/triage/dashboard.component.tsx +0 -2
  399. package/src/config-schema.ts +476 -0
  400. package/src/hooks/useOrders.tsx +2 -2
  401. package/src/hooks/useServiceQueues.tsx +1 -1
  402. package/src/index.ts +81 -15
  403. package/src/routes.json +298 -32
  404. package/src/shared/dashboard-link/dashboard-link.component.tsx +11 -8
  405. package/src/shared/orders/OrderTable.scss +7 -0
  406. package/src/shared/orders/OrderTable.tsx +68 -8
  407. package/src/shared/orders/print-order/print-order.component.tsx +158 -0
  408. package/src/shared/orders/print-order/print-order.scss +225 -0
  409. package/src/shared/orders/print-prescription/print-prescription.component.tsx +65 -0
  410. package/src/shared/orders/print-prescription/print-prescription.resource.ts +45 -0
  411. package/src/shared/orders/print-prescription/print-prescription.scss +25 -0
  412. package/src/shared/otp-verification/index.ts +112 -29
  413. package/src/shared/otp-verification/otp-verification.modal.tsx +1110 -122
  414. package/src/shared/otp-verification/otp-verification.scss +374 -0
  415. package/src/shared/patient-chart/patient-summary-dashboard/patient-summary-dashboard.component.tsx +5 -84
  416. package/src/shared/pin-put/pinput.component.test.tsx +7 -6
  417. package/src/shared/tabs/create-tab-extension.tsx +33 -0
  418. package/src/shared/tabs/extension-tabs.component.tsx +51 -33
  419. package/src/shared/utils/index.ts +140 -5
  420. package/src/types/index.ts +12 -0
  421. package/translations/am.json +443 -131
  422. package/translations/en.json +327 -15
  423. package/translations/fr.json +372 -63
  424. package/translations/sw.json +347 -35
  425. package/tsconfig.json +1 -0
  426. package/dist/1049.js +0 -1
  427. package/dist/1049.js.map +0 -1
  428. package/dist/1072.js +0 -1
  429. package/dist/1072.js.map +0 -1
  430. package/dist/1091.js +0 -1
  431. package/dist/1091.js.map +0 -1
  432. package/dist/1172.js +0 -1
  433. package/dist/1172.js.map +0 -1
  434. package/dist/132.js +0 -1
  435. package/dist/132.js.map +0 -1
  436. package/dist/1354.js +0 -1
  437. package/dist/1354.js.map +0 -1
  438. package/dist/1704.js +0 -1
  439. package/dist/1704.js.map +0 -1
  440. package/dist/1729.js +0 -17
  441. package/dist/1729.js.map +0 -1
  442. package/dist/1757.js +0 -1
  443. package/dist/1757.js.map +0 -1
  444. package/dist/1761.js +0 -1
  445. package/dist/1761.js.map +0 -1
  446. package/dist/1809.js +0 -7
  447. package/dist/1809.js.map +0 -1
  448. package/dist/1842.js +0 -1
  449. package/dist/1874.js +0 -1
  450. package/dist/1874.js.map +0 -1
  451. package/dist/1962.js +0 -1
  452. package/dist/1962.js.map +0 -1
  453. package/dist/2007.js +0 -1
  454. package/dist/2007.js.map +0 -1
  455. package/dist/2024.js +0 -1
  456. package/dist/2024.js.map +0 -1
  457. package/dist/2045.js +0 -1
  458. package/dist/2045.js.map +0 -1
  459. package/dist/2163.js +0 -1
  460. package/dist/2163.js.map +0 -1
  461. package/dist/2191.js +0 -1
  462. package/dist/2191.js.map +0 -1
  463. package/dist/2267.js +0 -1
  464. package/dist/2267.js.map +0 -1
  465. package/dist/231.js +0 -1
  466. package/dist/231.js.map +0 -1
  467. package/dist/236.js +0 -1
  468. package/dist/236.js.map +0 -1
  469. package/dist/2367.js +0 -1
  470. package/dist/2367.js.map +0 -1
  471. package/dist/2463.js +0 -1
  472. package/dist/2463.js.map +0 -1
  473. package/dist/2561.js +0 -1
  474. package/dist/2561.js.map +0 -1
  475. package/dist/2810.js +0 -2
  476. package/dist/2810.js.map +0 -1
  477. package/dist/2867.js +0 -1
  478. package/dist/2867.js.map +0 -1
  479. package/dist/2909.js +0 -1
  480. package/dist/2909.js.map +0 -1
  481. package/dist/2949.js +0 -1
  482. package/dist/2949.js.map +0 -1
  483. package/dist/3040.js +0 -1
  484. package/dist/3119.js +0 -1
  485. package/dist/3119.js.map +0 -1
  486. package/dist/3215.js +0 -1
  487. package/dist/3215.js.map +0 -1
  488. package/dist/322.js +0 -1
  489. package/dist/322.js.map +0 -1
  490. package/dist/3228.js +0 -1
  491. package/dist/3228.js.map +0 -1
  492. package/dist/330.js +0 -1
  493. package/dist/330.js.map +0 -1
  494. package/dist/3472.js +0 -1
  495. package/dist/3472.js.map +0 -1
  496. package/dist/351.js +0 -1
  497. package/dist/351.js.map +0 -1
  498. package/dist/3576.js +0 -1
  499. package/dist/3576.js.map +0 -1
  500. package/dist/397.js +0 -1
  501. package/dist/397.js.map +0 -1
  502. package/dist/4007.js +0 -66
  503. package/dist/4007.js.map +0 -1
  504. package/dist/4200.js +0 -1
  505. package/dist/4200.js.map +0 -1
  506. package/dist/4224.js +0 -1
  507. package/dist/4224.js.map +0 -1
  508. package/dist/43.js +0 -1
  509. package/dist/43.js.map +0 -1
  510. package/dist/4308.js +0 -1
  511. package/dist/4308.js.map +0 -1
  512. package/dist/4399.js +0 -1
  513. package/dist/4399.js.map +0 -1
  514. package/dist/4505.js +0 -1
  515. package/dist/4505.js.map +0 -1
  516. package/dist/4724.js +0 -1
  517. package/dist/4724.js.map +0 -1
  518. package/dist/498.js +0 -1
  519. package/dist/498.js.map +0 -1
  520. package/dist/509.js +0 -1
  521. package/dist/509.js.map +0 -1
  522. package/dist/5096.js +0 -1
  523. package/dist/5096.js.map +0 -1
  524. package/dist/5159.js +0 -13
  525. package/dist/5159.js.map +0 -1
  526. package/dist/5184.js +0 -1
  527. package/dist/5184.js.map +0 -1
  528. package/dist/5270.js +0 -1
  529. package/dist/5270.js.map +0 -1
  530. package/dist/5361.js +0 -1
  531. package/dist/5361.js.map +0 -1
  532. package/dist/5537.js +0 -1
  533. package/dist/5537.js.map +0 -1
  534. package/dist/566.js +0 -1
  535. package/dist/566.js.map +0 -1
  536. package/dist/5733.js +0 -1
  537. package/dist/5733.js.map +0 -1
  538. package/dist/5854.js +0 -1
  539. package/dist/5854.js.map +0 -1
  540. package/dist/5882.js +0 -1
  541. package/dist/6004.js +0 -1
  542. package/dist/6004.js.map +0 -1
  543. package/dist/6121.js +0 -3
  544. package/dist/6121.js.map +0 -1
  545. package/dist/6137.js +0 -1
  546. package/dist/6137.js.map +0 -1
  547. package/dist/6356.js +0 -1
  548. package/dist/6356.js.map +0 -1
  549. package/dist/6571.js +0 -1
  550. package/dist/6571.js.map +0 -1
  551. package/dist/6721.js +0 -1
  552. package/dist/6721.js.map +0 -1
  553. package/dist/6858.js +0 -1
  554. package/dist/6858.js.map +0 -1
  555. package/dist/6925.js +0 -1
  556. package/dist/6925.js.map +0 -1
  557. package/dist/6960.js +0 -1
  558. package/dist/6960.js.map +0 -1
  559. package/dist/7085.js +0 -1
  560. package/dist/7085.js.map +0 -1
  561. package/dist/7127.js +0 -1
  562. package/dist/7176.js +0 -1
  563. package/dist/7176.js.map +0 -1
  564. package/dist/7237.js +0 -1
  565. package/dist/7237.js.map +0 -1
  566. package/dist/725.js +0 -1
  567. package/dist/725.js.map +0 -1
  568. package/dist/7288.js +0 -1
  569. package/dist/7329.js +0 -1
  570. package/dist/7329.js.map +0 -1
  571. package/dist/7334.js +0 -1
  572. package/dist/7334.js.map +0 -1
  573. package/dist/7461.js +0 -1
  574. package/dist/7461.js.map +0 -1
  575. package/dist/7517.js +0 -1
  576. package/dist/7517.js.map +0 -1
  577. package/dist/7837.js +0 -1
  578. package/dist/7837.js.map +0 -1
  579. package/dist/8103.js +0 -1
  580. package/dist/8103.js.map +0 -1
  581. package/dist/8110.js +0 -1
  582. package/dist/8110.js.map +0 -1
  583. package/dist/8179.js +0 -6
  584. package/dist/8179.js.map +0 -1
  585. package/dist/8189.js +0 -1
  586. package/dist/8189.js.map +0 -1
  587. package/dist/8209.js +0 -1
  588. package/dist/8209.js.map +0 -1
  589. package/dist/8249.js +0 -1
  590. package/dist/8249.js.map +0 -1
  591. package/dist/8285.js +0 -1
  592. package/dist/8285.js.map +0 -1
  593. package/dist/8470.js +0 -1
  594. package/dist/8470.js.map +0 -1
  595. package/dist/8502.js +0 -1
  596. package/dist/8502.js.map +0 -1
  597. package/dist/866.js +0 -1
  598. package/dist/866.js.map +0 -1
  599. package/dist/8889.js +0 -11
  600. package/dist/8889.js.map +0 -1
  601. package/dist/8990.js +0 -1
  602. package/dist/8990.js.map +0 -1
  603. package/dist/8994.js +0 -1
  604. package/dist/8994.js.map +0 -1
  605. package/dist/9049.js +0 -1
  606. package/dist/9049.js.map +0 -1
  607. package/dist/9054.js +0 -1
  608. package/dist/9054.js.map +0 -1
  609. package/dist/916.js +0 -1
  610. package/dist/9231.js +0 -1
  611. package/dist/9231.js.map +0 -1
  612. package/dist/9408.js +0 -1
  613. package/dist/9408.js.map +0 -1
  614. package/dist/9425.js +0 -1
  615. package/dist/9466.js +0 -1
  616. package/dist/9466.js.map +0 -1
  617. package/dist/9919.js +0 -1
  618. package/dist/9919.js.map +0 -1
  619. package/dist/9931.js +0 -1
  620. package/dist/9931.js.map +0 -1
  621. package/jest.config.js +0 -3
  622. package/src/shared/orders/OrdersTabs.tsx +0 -58
  623. package/src/shared/patient-chart/patient-chart.component.tsx +0 -61
  624. package/src/shared/patient-chart/patient-chart.resources.ts +0 -180
  625. package/src/shared/patient-chart/patient-chart.scss +0 -15
  626. package/src/shared/patient-chart/useInitialize.ts +0 -24
  627. /package/src/shared/{patient-chart/patient-summary-dashboard → tabs}/patient-summary-dashboard.scss +0 -0
package/src/routes.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json.openmrs.org/routes.schema.json",
3
3
  "backendDependencies": {
4
4
  "fhir2": ">=1.2",
5
- "webservices.rest": ">=2.24.0"
5
+ "webservices.rest": ">=2.24.0"
6
6
  },
7
7
  "pages": [
8
8
  {
@@ -12,10 +12,6 @@
12
12
  {
13
13
  "component": "queuesAdminHome",
14
14
  "route": "queues-admin"
15
- },
16
- {
17
- "component": "appointmentsDashboard",
18
- "route": "appointments"
19
15
  }
20
16
  ],
21
17
  "extensions": [
@@ -29,6 +25,27 @@
29
25
  "title": "Appointments"
30
26
  }
31
27
  },
28
+ {
29
+ "name": "ewf-preauth-dashboard-link",
30
+ "component": "preauthDashboardLink",
31
+ "slot": "patient-chart-dashboard-slot",
32
+ "order": 10,
33
+ "meta": {
34
+ "name": "ewf-preauth",
35
+ "title": "Preauthorization",
36
+ "path": "preauthorization",
37
+ "slot": "ewf-preauth-dashboard-slot",
38
+ "layoutMode": "anchored",
39
+ "hideDashboardTitle": true
40
+ }
41
+ },
42
+ {
43
+ "name": "ewf-preauth-dashboard",
44
+ "component": "preauthDashboard",
45
+ "slot": "ewf-patient-chart-preauth-dashboard-slot",
46
+ "online": true,
47
+ "offline": false
48
+ },
32
49
  {
33
50
  "component": "admissionsLeftPanelLink",
34
51
  "name": "admissions-dashboard-link",
@@ -125,7 +142,7 @@
125
142
  {
126
143
  "name": "custom-visit-form-queue-fields",
127
144
  "component": "checkinFormExtraExtension",
128
- "slot":"visit-form-bottom-slot",
145
+ "slot": "visit-form-bottom-slot",
129
146
  "order": 0
130
147
  },
131
148
  {
@@ -193,7 +210,7 @@
193
210
  "online": true,
194
211
  "offline": false
195
212
  },
196
- {
213
+ {
197
214
  "name": "ewf-laboratory-dashboard-link",
198
215
  "component": "laboratoryLeftPanelLink",
199
216
  "slot": "patient-chart-dashboard-slot",
@@ -266,15 +283,15 @@
266
283
  "hideDashboardTitle": true
267
284
  }
268
285
  },
269
-
270
- {
286
+ {
271
287
  "name": "ewf-pharmacy-dashboard",
272
288
  "component": "pharmacyTabs",
273
289
  "slot": "ewf-patient-chart-pharmacy-dashboard-slot",
274
290
  "online": true,
275
291
  "offline": false
276
292
  },
277
- {"name": "ewf-admissions-dashboard-link",
293
+ {
294
+ "name": "ewf-admissions-dashboard-link",
278
295
  "component": "admissionsDashboardLink",
279
296
  "slot": "patient-chart-dashboard-slot",
280
297
  "meta": {
@@ -305,38 +322,287 @@
305
322
  "slot": "ewf-clinical-encounter-slot",
306
323
  "online": true,
307
324
  "offline": false
325
+ },
326
+ {
327
+ "name": "custom-start-visit-overflow-menu-item",
328
+ "slot": "patient-actions-slot",
329
+ "component": "customStartVisitOverflowMenuItem",
330
+ "online": true,
331
+ "offline": true
332
+ },
333
+ {
334
+ "name": "custom-stop-visit-overflow-menu-item",
335
+ "component": "customStopVisitOverflowMenuItem",
336
+ "online": true,
337
+ "offline": true
338
+ },
339
+ {
340
+ "name": "procedure-queues",
341
+ "component": "procedureQueues",
342
+ "online": true,
343
+ "offline": false,
344
+ "featureFlag": "procedureQueues",
345
+ "slot": "procedure-orders-dashboard-slot"
346
+ },
347
+ {
348
+ "name": "procedure-form-extras",
349
+ "component": "procedureFormExtras",
350
+ "slot": "procedure-order-form-extras-slot",
351
+ "online": true,
352
+ "offline": false,
353
+ "featureFlag": "procedureQueues"
354
+ },
355
+ {
356
+ "name": "ewf-patient-summary-tab",
357
+ "component": "patientSummary",
358
+ "slot": "ewf-patient-chart-patient-summary-tabs-extension-slot",
359
+ "meta": {
360
+ "title": "patientSummaryTab",
361
+ "slot": "ewf-patient-summary-slot"
362
+ }
363
+ },
364
+ {
365
+ "name": "ewf-patient-vitals-tab",
366
+ "component": "patientVitals",
367
+ "slot": "ewf-patient-chart-patient-summary-tabs-extension-slot",
368
+ "meta": {
369
+ "title": "vitalsAndAnthropometric",
370
+ "slot": "ewf-vitals-slot"
371
+ }
372
+ },
373
+ {
374
+ "name": "ewf-patient-care-panel-tab",
375
+ "component": "carePanel",
376
+ "slot": "ewf-patient-chart-patient-summary-tabs-extension-slot",
377
+ "meta": {
378
+ "title": "carePanel",
379
+ "slot": "ewf-care-panel-slot"
380
+ }
381
+ },
382
+ {
383
+ "name": "ewf-patient-immunization-tab",
384
+ "component": "immunization",
385
+ "slot": "ewf-patient-chart-patient-summary-tabs-extension-slot",
386
+ "meta": {
387
+ "title": "immunizations",
388
+ "slot": "ewf-immunizations-slot"
389
+ }
390
+ },
391
+ {
392
+ "name": "ewf-patient-relationships-tab",
393
+ "component": "relationships",
394
+ "slot": "ewf-patient-chart-patient-summary-tabs-extension-slot",
395
+ "meta": {
396
+ "title": "relationships",
397
+ "slot": "ewf-relationships-slot"
398
+ }
399
+ },
400
+ {
401
+ "name": "ewf-patient-appointments-tab",
402
+ "component": "appointments",
403
+ "slot": "ewf-patient-chart-patient-summary-tabs-extension-slot",
404
+ "meta": {
405
+ "title": "appointments",
406
+ "slot": "ewf-appointments-slot"
407
+ }
408
+ },
409
+ {
410
+ "name": "ewf-patient-attachments-tab",
411
+ "component": "attachments",
412
+ "slot": "ewf-patient-chart-patient-summary-tabs-extension-slot",
413
+ "meta": {
414
+ "title": "attachments",
415
+ "slot": "ewf-attachments-slot"
416
+ }
417
+ },
418
+ {
419
+ "name": "ewf-patient-clinical-encounter-tab",
420
+ "component": "patientClinicalEncounter",
421
+ "slot": "clinical-encounter-tabs-slot",
422
+ "meta": {
423
+ "title": "clinicalEncounterTab",
424
+ "slot": "ewf-clinical-encounter-slot"
425
+ }
426
+ },
427
+ {
428
+ "name": "ewf-patient-visits-tab",
429
+ "component": "patientVisits",
430
+ "slot": "clinical-encounter-tabs-slot",
431
+ "meta": {
432
+ "title": "visits",
433
+ "slot": "ewf-visits-slot"
434
+ }
435
+ },
436
+ {
437
+ "name": "ewf-patient-special-clinics-tab",
438
+ "component": "specialClinics",
439
+ "slot": "clinical-encounter-tabs-slot",
440
+ "meta": {
441
+ "title": "specialClinics",
442
+ "slot": "ewf-special-clinics-slot"
443
+ }
444
+ },
445
+ {
446
+ "name": "ewf-clinical-notes-tab",
447
+ "component": "clinicalNotes",
448
+ "meta": {
449
+ "title": "clinicalNotes",
450
+ "slot": "ewf-clinical-notes-slot"
451
+ }
452
+ },
453
+ {
454
+ "name": "ewf-procedures-and-orders-tab",
455
+ "component": "proceduresAndOrders",
456
+ "meta": {
457
+ "title": "proceduresAndOrders",
458
+ "slot": "ewf-procedures-and-orders-slot"
459
+ }
460
+ },
461
+ {
462
+ "name": "ewf-pharmacy-orders-tab",
463
+ "component": "pharmacyOrdersTab",
464
+ "slot": "pharmacy-tabs-slot",
465
+ "meta": {
466
+ "title": "orders",
467
+ "slot": "ewf-orders-slot"
468
+ }
469
+ },
470
+ {
471
+ "name": "ewf-pharmacy-active-medication-tab",
472
+ "component": "pharmacyActiveMedicationsTab",
473
+ "slot": "pharmacy-tabs-slot",
474
+ "meta": {
475
+ "title": "activeMedications",
476
+ "slot": "ewf-active-medications-slot"
477
+ }
478
+ },
479
+ {
480
+ "name": "ewf-pharmacy-past-medication-tab",
481
+ "component": "pharmacyPastMedicationsTab",
482
+ "slot": "pharmacy-tabs-slot",
483
+ "meta": {
484
+ "title": "pastMedications",
485
+ "slot": "ewf-past-medications-slot"
486
+ }
487
+ },
488
+ {
489
+ "name": "ewf-patient-lab-orders-tab",
490
+ "component": "patientLaboratoryOrdersTab",
491
+ "slot": "patient-laboratory-tabs-slot",
492
+ "meta": {
493
+ "title": "orders"
494
+ }
495
+ },
496
+ {
497
+ "name": "ewf-patient-lab-order-results-tab",
498
+ "component": "patientLaboratoryOrdersResults",
499
+ "slot": "patient-laboratory-tabs-slot",
500
+ "meta": {
501
+ "title": "results",
502
+ "slot": "ewf-laboratory-results-slot",
503
+ "basePath": "laboratory"
504
+ }
505
+ },
506
+ {
507
+ "name": "ewf-patient-procedure-orders-tab",
508
+ "component": "patientProcedureOrdersTab",
509
+ "slot": "patient-procedure-tabs-slot",
510
+ "meta": {
511
+ "title": "orders"
512
+ }
513
+ },
514
+ {
515
+ "name": "ewf-patient-procedure-order-results-tab",
516
+ "component": "patientProcedureOrdersResults",
517
+ "slot": "patient-procedure-tabs-slot",
518
+ "meta": {
519
+ "title": "results",
520
+ "slot": "ewf-procedures-results-slot",
521
+ "basePath": "procedures"
522
+ }
523
+ },
524
+ {
525
+ "name": "ewf-patient-procedure-anaesthetic-tab",
526
+ "component": "patientProcedureAnaestheticTab",
527
+ "slot": "patient-procedure-tabs-slot",
528
+ "meta": {
529
+ "title": "anaesthetic"
530
+ }
531
+ },
532
+ {
533
+ "name": "ewf-patient-imaging-orders-tab",
534
+ "component": "patientImagingOrdersTab",
535
+ "slot": "patient-imaging-tabs-slot",
536
+ "meta": {
537
+ "title": "orders"
538
+ }
539
+ },
540
+ {
541
+ "name": "ewf-patient-imaging-order-results-tab",
542
+ "component": "patientImagingOrdersResults",
543
+ "slot": "patient-imaging-tabs-slot",
544
+ "meta": {
545
+ "title": "results",
546
+ "slot": "ewf-radiology-and-imaging-results-slot",
547
+ "basePath": "radiology-and-imaging"
548
+ }
549
+ }
550
+ ],
551
+ "workspaces2": [
552
+ {
553
+ "name": "custom-start-visit-workspace-form",
554
+ "component": "visitFormWorkspace",
555
+ "window": "ewf-start-visit"
556
+ },
557
+ {
558
+ "name": "anaesthetic-record-workspace-form",
559
+ "component": "anaestheticFormWorkspace",
560
+ "window": "ewf-anaesthetic-record"
561
+ },
562
+ {
563
+ "name": "interoperative-drug-given-workspace-form",
564
+ "component": "interoperativeDrugGivenFormWorkspace",
565
+ "window": "ewf-anaesthetic-record"
308
566
  }
309
567
  ],
310
-
311
- "workspaces": [
312
- {
313
- "name": "express-workflow-workspace",
314
- "component": "expressWorkflowWorkspace",
315
- "title": "Express Workflow Workspace",
316
- "type": "workspace",
317
- "canMaximize": true,
318
- "canHide": true
568
+ "workspaceWindows2": [
569
+ {
570
+ "name": "ewf-start-visit",
571
+ "group": "ewf-patient-chart",
572
+ "width": "wider"
573
+ },
574
+ {
575
+ "name": "ewf-anaesthetic-record",
576
+ "group": "ewf-patient-chart",
577
+ "width": "wider"
578
+ }
579
+ ],
580
+ "workspaceGroups2": [
581
+ {
582
+ "name": "ewf-patient-chart",
583
+ "scopePattern": "/patient/([^/]+)/chart"
319
584
  }
320
585
  ],
321
586
  "modals": [
322
587
  {
323
588
  "component": "otpVerificationModal",
324
589
  "name": "otp-verification-modal"
325
- }, {
590
+ },
591
+ {
326
592
  "component": "facilityDashboardAuthorizationModal",
327
593
  "name": "facility-dashboard-authorization-form-modal"
328
- }
329
- ],
330
- "workspaceGroups": [
331
- {
332
- "name": "express-workflow",
333
- "members": [
334
- "add-drug-order",
335
- "order-basket",
336
- "add-lab-order",
337
- "express-workflow-workspace",
338
- "start-visit-workspace-form"
339
- ]
594
+ },
595
+ {
596
+ "name": "print-order-preview-modal",
597
+ "component": "printOrderPreviewModal"
598
+ },
599
+ {
600
+ "name": "custom-end-visit-dialog",
601
+ "component": "customEndVisitModal"
602
+ },
603
+ {
604
+ "name": "print-prescription-modal",
605
+ "component": "printPrescriptionModal"
340
606
  }
341
607
  ]
342
608
  }
@@ -11,23 +11,26 @@ export interface LinkConfig {
11
11
  name: string;
12
12
  title: string;
13
13
  icon?: string | CarbonIconType;
14
+ basePath?: string;
14
15
  }
15
16
 
16
- export function LinkExtension({ config }: { config: LinkConfig }) {
17
+ export function LinkExtension({ config }: { readonly config: LinkConfig }) {
17
18
  const { t } = useTranslation();
18
- const { name, title, icon } = config;
19
+ const { name, title, icon, basePath = 'home' } = config;
19
20
  const nameSegment = name.split('/').at(-1);
20
21
  const location = useLocation();
21
- const spaBasePath = window.getOpenmrsSpaBase() + 'home';
22
+ const spaBasePath = window.getOpenmrsSpaBase() + basePath;
22
23
 
23
- let urlSegment = useMemo(() => decodeURIComponent(last(location.pathname.split('/'))), [location.pathname]);
24
- const IconComp = typeof icon !== 'string' ? (icon as CarbonIconType) : null;
24
+ let urlSegment = useMemo(() => decodeURIComponent(last(location.pathname.split('/')) || ''), [location.pathname]);
25
+ const IconComp = typeof icon === 'string' ? null : icon;
26
+
27
+ const url = spaBasePath + '/' + name;
28
+
29
+ const cleanUrl = url.replaceAll(/(?<!:)\/\//g, '/');
25
30
 
26
31
  const isActive = nameSegment === urlSegment;
27
32
  return (
28
- <ConfigurableLink
29
- to={spaBasePath + '/' + name}
30
- className={`cds--side-nav__link ${isActive && 'active-left-nav-link'}`}>
33
+ <ConfigurableLink to={cleanUrl} className={`cds--side-nav__link ${isActive && 'active-left-nav-link'}`}>
31
34
  {typeof icon === 'string' ? (
32
35
  <MaybeIcon icon={icon} className={styles.icon} size={16} />
33
36
  ) : (
@@ -0,0 +1,7 @@
1
+ @use '@carbon/layout';
2
+
3
+ .buttonGroup {
4
+ display: flex;
5
+ justify-content: flex-end;
6
+ gap: layout.$spacing-05;
7
+ }
@@ -1,11 +1,14 @@
1
- import React from 'react';
1
+ import React, { useCallback, useMemo } from 'react';
2
2
  import { DataTable, Table, TableHead, TableRow, TableHeader, TableBody, TableCell, Layer, Button } from '@carbon/react';
3
- import { Add } from '@carbon/react/icons';
3
+ import { Add, Printer } from '@carbon/react/icons';
4
4
  import { useTranslation } from 'react-i18next';
5
- import { parseDate, formatDatetime } from '@openmrs/esm-framework';
5
+ import { parseDate, formatDatetime, translateFrom, showModal, useVisit, OpenmrsResource } from '@openmrs/esm-framework';
6
6
  import { PriorityPill, StatusPill } from './OrderPills';
7
7
  import { type Order } from '../../types/order/order';
8
8
  import { CardHeader } from '@openmrs/esm-patient-common-lib';
9
+ import styles from './OrderTable.scss';
10
+
11
+ export type OrderDocumentType = 'lab' | 'radiology' | 'procedure';
9
12
 
10
13
  type OrderTableProps = {
11
14
  title: string;
@@ -15,15 +18,22 @@ type OrderTableProps = {
15
18
  tableCellClassName: string;
16
19
  priorityPillClassName: string;
17
20
  statusPillClassName: string;
21
+ module: string;
22
+ orderType: OrderDocumentType;
23
+ patientName?: string;
24
+ patientId?: string;
25
+ patientAge?: string | number;
18
26
  };
19
27
 
20
28
  const defaultHeaders = (t: (k: string, d: string) => string) => [
21
29
  { header: t('orderNo', 'Order No'), key: 'orderNo' },
22
30
  { header: t('dateOrdered', 'Date Ordered'), key: 'dateOrdered' },
23
31
  { header: t('order', 'Order'), key: 'order' },
32
+ { header: t('orderReason', 'Order reason'), key: 'orderReason' },
24
33
  { header: t('priority', 'Priority'), key: 'priority' },
25
34
  { header: t('orderBy', 'Order By'), key: 'orderBy' },
26
35
  { header: t('status', 'Status'), key: 'status' },
36
+ { header: t('actions', 'Actions'), key: 'actions' },
27
37
  ];
28
38
 
29
39
  export const OrderTable: React.FC<OrderTableProps> = ({
@@ -34,17 +44,65 @@ export const OrderTable: React.FC<OrderTableProps> = ({
34
44
  tableCellClassName,
35
45
  priorityPillClassName,
36
46
  statusPillClassName,
47
+ module,
48
+ orderType,
49
+ patientName,
50
+ patientId,
51
+ patientAge,
37
52
  }) => {
38
53
  const { t } = useTranslation();
39
54
 
55
+ const ordersByUuid = useMemo(() => new Map(orders.map((o) => [o.uuid, o])), [orders]);
56
+
57
+ const handlePrintOrder = useCallback(
58
+ (uuid: string) => {
59
+ const order = ordersByUuid.get(uuid);
60
+ if (!order) {
61
+ return;
62
+ }
63
+ const dispose = showModal('print-order-preview-modal', {
64
+ onClose: () => dispose(),
65
+ orders: [order],
66
+ orderType,
67
+ patientName,
68
+ patientId,
69
+ patientAge,
70
+ });
71
+ },
72
+ [ordersByUuid, orderType, patientName, patientId, patientAge],
73
+ );
74
+
40
75
  const rows = orders.map((order) => ({
41
76
  id: order.uuid,
42
77
  orderNo: order.orderNumber,
43
78
  dateOrdered: formatDatetime(parseDate(order.dateActivated), { mode: 'standard' }),
44
79
  order: order.concept?.display?.replace('_', ' ') ?? '--',
45
- priority: <PriorityPill value={order.urgency} className={priorityPillClassName} dataAttrName="priority" />,
80
+ priority: (
81
+ <PriorityPill
82
+ value={translateFrom(module, order.urgency, order.urgency)}
83
+ className={priorityPillClassName}
84
+ dataAttrName="priority"
85
+ />
86
+ ),
46
87
  orderBy: order.orderer?.display ?? '--',
47
- status: <StatusPill value={order.fulfillerStatus} className={statusPillClassName} dataAttrName="status" />,
88
+ orderReason: (order.orderReason as unknown as OpenmrsResource)?.display,
89
+ status: (
90
+ <StatusPill
91
+ value={translateFrom(module, order.fulfillerStatus, order.fulfillerStatus)}
92
+ className={statusPillClassName}
93
+ dataAttrName="status"
94
+ />
95
+ ),
96
+ actions: (
97
+ <Button
98
+ kind="ghost"
99
+ size="sm"
100
+ hasIconOnly
101
+ iconDescription={t('printOrder', 'Print Order')}
102
+ renderIcon={Printer}
103
+ onClick={() => handlePrintOrder(order.uuid)}
104
+ />
105
+ ),
48
106
  }));
49
107
 
50
108
  if (orders?.length === 0) {
@@ -54,9 +112,11 @@ export const OrderTable: React.FC<OrderTableProps> = ({
54
112
  return (
55
113
  <div className={containerClassName}>
56
114
  <CardHeader title={title}>
57
- <Button onClick={onAdd} kind="ghost" renderIcon={Add}>
58
- {t('addOrder', 'Add Order')}
59
- </Button>
115
+ <div className={styles.buttonGroup}>
116
+ <Button onClick={onAdd} kind="ghost" renderIcon={Add}>
117
+ {t('addOrder', 'Add Order')}
118
+ </Button>
119
+ </div>
60
120
  </CardHeader>
61
121
  <DataTable size="sm" useZebraStyles headers={defaultHeaders(t)} isSortable rows={rows}>
62
122
  {({ getHeaderProps, getRowProps, getTableProps, headers, rows }) => (