@kenyaemr/esm-care-panel-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 (487) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/currentProphylaxisUsed/fr.json +1 -0
  3. package/dist/1072.js +1 -1
  4. package/dist/1072.js.map +1 -1
  5. package/dist/1278.js +1 -0
  6. package/dist/1278.js.map +1 -0
  7. package/dist/1354.js +1 -0
  8. package/dist/1354.js.map +1 -0
  9. package/dist/1375.js +66 -0
  10. package/dist/1375.js.map +1 -0
  11. package/dist/1442.js +1 -0
  12. package/dist/1442.js.map +1 -0
  13. package/dist/15.js +1 -0
  14. package/dist/15.js.map +1 -0
  15. package/dist/1620.js +1 -0
  16. package/dist/1620.js.map +1 -0
  17. package/dist/1761.js +1 -1
  18. package/dist/1761.js.map +1 -1
  19. package/dist/1789.js +1 -0
  20. package/dist/1789.js.map +1 -0
  21. package/dist/1831.js +1 -0
  22. package/dist/1831.js.map +1 -0
  23. package/dist/1844.js +1 -0
  24. package/dist/1844.js.map +1 -0
  25. package/dist/1854.js +1 -0
  26. package/dist/1854.js.map +1 -0
  27. package/dist/1919.js +1 -0
  28. package/dist/1919.js.map +1 -0
  29. package/dist/1946.js +1 -0
  30. package/dist/1946.js.map +1 -0
  31. package/dist/2007.js +1 -1
  32. package/dist/2007.js.map +1 -1
  33. package/dist/2127.js +1 -0
  34. package/dist/2127.js.map +1 -0
  35. package/dist/2146.js +1 -0
  36. package/dist/2146.js.map +1 -0
  37. package/dist/2152.js +1 -0
  38. package/dist/2152.js.map +1 -0
  39. package/dist/2202.js +1 -0
  40. package/dist/2202.js.map +1 -0
  41. package/dist/2300.js +1 -0
  42. package/dist/2300.js.map +1 -0
  43. package/dist/2394.js +1 -0
  44. package/dist/2394.js.map +1 -0
  45. package/dist/2468.js +1 -0
  46. package/dist/2468.js.map +1 -0
  47. package/dist/2534.js +1 -1
  48. package/dist/2534.js.map +1 -1
  49. package/dist/2556.js +1 -0
  50. package/dist/2556.js.map +1 -0
  51. package/dist/26.js +1 -0
  52. package/dist/26.js.map +1 -0
  53. package/dist/2648.js +1 -0
  54. package/dist/2648.js.map +1 -0
  55. package/dist/2823.js +1 -0
  56. package/dist/2823.js.map +1 -0
  57. package/dist/2840.js +1 -0
  58. package/dist/2840.js.map +1 -0
  59. package/dist/2842.js +1 -0
  60. package/dist/2842.js.map +1 -0
  61. package/dist/2916.js +1 -0
  62. package/dist/2916.js.map +1 -0
  63. package/dist/2924.js +1 -0
  64. package/dist/2924.js.map +1 -0
  65. package/dist/3285.js +1 -0
  66. package/dist/3285.js.map +1 -0
  67. package/dist/3302.js +1 -0
  68. package/dist/3302.js.map +1 -0
  69. package/dist/3321.js +1 -0
  70. package/dist/3321.js.map +1 -0
  71. package/dist/3335.js +1 -0
  72. package/dist/3335.js.map +1 -0
  73. package/dist/3378.js +1 -0
  74. package/dist/3378.js.map +1 -0
  75. package/dist/3504.js +1 -0
  76. package/dist/3504.js.map +1 -0
  77. package/dist/356.js +1 -0
  78. package/dist/356.js.map +1 -0
  79. package/dist/3569.js +1 -0
  80. package/dist/3569.js.map +1 -0
  81. package/dist/3580.js +1 -0
  82. package/dist/3580.js.map +1 -0
  83. package/dist/3690.js +1 -0
  84. package/dist/3690.js.map +1 -0
  85. package/dist/3723.js +1 -0
  86. package/dist/3723.js.map +1 -0
  87. package/dist/3745.js +1 -0
  88. package/dist/3745.js.map +1 -0
  89. package/dist/3796.js +1 -0
  90. package/dist/3796.js.map +1 -0
  91. package/dist/3805.js +1 -0
  92. package/dist/3805.js.map +1 -0
  93. package/dist/3813.js +1 -0
  94. package/dist/3813.js.map +1 -0
  95. package/dist/3847.js +1 -0
  96. package/dist/3847.js.map +1 -0
  97. package/dist/393.js +6 -0
  98. package/dist/393.js.map +1 -0
  99. package/dist/3953.js +1 -0
  100. package/dist/3953.js.map +1 -0
  101. package/dist/3989.js +1 -0
  102. package/dist/3989.js.map +1 -0
  103. package/dist/4178.js +1 -1
  104. package/dist/4178.js.map +1 -1
  105. package/dist/4212.js +1 -0
  106. package/dist/4212.js.map +1 -0
  107. package/dist/4337.js +1 -0
  108. package/dist/4337.js.map +1 -0
  109. package/dist/4405.js +1 -0
  110. package/dist/4405.js.map +1 -0
  111. package/dist/4487.js +11 -0
  112. package/dist/4487.js.map +1 -0
  113. package/dist/4567.js +1 -0
  114. package/dist/4567.js.map +1 -0
  115. package/dist/4588.js +1 -0
  116. package/dist/4588.js.map +1 -0
  117. package/dist/4637.js +1 -1
  118. package/dist/4637.js.map +1 -1
  119. package/dist/466.js +1 -1
  120. package/dist/466.js.map +1 -1
  121. package/dist/4711.js +1 -0
  122. package/dist/4711.js.map +1 -0
  123. package/dist/4759.js +1 -0
  124. package/dist/4759.js.map +1 -0
  125. package/dist/4817.js +1 -0
  126. package/dist/4817.js.map +1 -0
  127. package/dist/4818.js +1 -0
  128. package/dist/4818.js.map +1 -0
  129. package/dist/500.js +1 -0
  130. package/dist/500.js.map +1 -0
  131. package/dist/5086.js +1 -1
  132. package/dist/5086.js.map +1 -1
  133. package/dist/510.js +1 -0
  134. package/dist/510.js.map +1 -0
  135. package/dist/5117.js +1 -0
  136. package/dist/5117.js.map +1 -0
  137. package/dist/5209.js +1 -1
  138. package/dist/5209.js.map +1 -1
  139. package/dist/5279.js +1 -0
  140. package/dist/5279.js.map +1 -0
  141. package/dist/5362.js +1 -0
  142. package/dist/5362.js.map +1 -0
  143. package/dist/5366.js +1 -0
  144. package/dist/5366.js.map +1 -0
  145. package/dist/5567.js +1 -0
  146. package/dist/5567.js.map +1 -0
  147. package/dist/5598.js +1 -0
  148. package/dist/5598.js.map +1 -0
  149. package/dist/5676.js +1 -1
  150. package/dist/5676.js.map +1 -1
  151. package/dist/5731.js +5 -0
  152. package/dist/5731.js.map +1 -0
  153. package/dist/5809.js +1 -1
  154. package/dist/5809.js.map +1 -1
  155. package/dist/5825.js +1 -0
  156. package/dist/5825.js.map +1 -0
  157. package/dist/5932.js +1 -0
  158. package/dist/5932.js.map +1 -0
  159. package/dist/5941.js +1 -0
  160. package/dist/5941.js.map +1 -0
  161. package/dist/6104.js +1 -1
  162. package/dist/6104.js.map +1 -1
  163. package/dist/6273.js +1 -0
  164. package/dist/6273.js.map +1 -0
  165. package/dist/6337.js +1 -0
  166. package/dist/6337.js.map +1 -0
  167. package/dist/6357.js +1 -0
  168. package/dist/6357.js.map +1 -0
  169. package/dist/6427.js +1 -1
  170. package/dist/6427.js.map +1 -1
  171. package/dist/6478.js +7 -0
  172. package/dist/6478.js.map +1 -0
  173. package/dist/65.js +1 -0
  174. package/dist/65.js.map +1 -0
  175. package/dist/6508.js +1 -0
  176. package/dist/6508.js.map +1 -0
  177. package/dist/6567.js +1 -0
  178. package/dist/6567.js.map +1 -0
  179. package/dist/6634.js +1 -0
  180. package/dist/6634.js.map +1 -0
  181. package/dist/6698.js +1 -0
  182. package/dist/6698.js.map +1 -0
  183. package/dist/682.js +1 -0
  184. package/dist/682.js.map +1 -0
  185. package/dist/689.js +1 -1
  186. package/dist/689.js.map +1 -1
  187. package/dist/7126.js +1 -0
  188. package/dist/7126.js.map +1 -0
  189. package/dist/7205.js +1 -0
  190. package/dist/7205.js.map +1 -0
  191. package/dist/7209.js +1 -0
  192. package/dist/7209.js.map +1 -0
  193. package/dist/740.js +1 -0
  194. package/dist/740.js.map +1 -0
  195. package/dist/7478.js +1 -1
  196. package/dist/7478.js.map +1 -1
  197. package/dist/7479.js +1 -0
  198. package/dist/7479.js.map +1 -0
  199. package/dist/7602.js +1 -0
  200. package/dist/7602.js.map +1 -0
  201. package/dist/7686.js +1 -0
  202. package/dist/7686.js.map +1 -0
  203. package/dist/7782.js +1 -0
  204. package/dist/7782.js.map +1 -0
  205. package/dist/7796.js +1 -0
  206. package/dist/7796.js.map +1 -0
  207. package/dist/7808.js +1 -0
  208. package/dist/7808.js.map +1 -0
  209. package/dist/781.js +1 -1
  210. package/dist/781.js.map +1 -1
  211. package/dist/8018.js +1 -0
  212. package/dist/8018.js.map +1 -0
  213. package/dist/8183.js +1 -0
  214. package/dist/8183.js.map +1 -0
  215. package/dist/8196.js +1 -1
  216. package/dist/8196.js.map +1 -1
  217. package/dist/820.js +1 -0
  218. package/dist/820.js.map +1 -0
  219. package/dist/8240.js +1 -1
  220. package/dist/8240.js.map +1 -1
  221. package/dist/8472.js +1 -0
  222. package/dist/8472.js.map +1 -0
  223. package/dist/8521.js +1 -0
  224. package/dist/8521.js.map +1 -0
  225. package/dist/8602.js +1 -0
  226. package/dist/8602.js.map +1 -0
  227. package/dist/8607.js +1 -0
  228. package/dist/8607.js.map +1 -0
  229. package/dist/867.js +1 -0
  230. package/dist/867.js.map +1 -0
  231. package/dist/8743.js +1 -0
  232. package/dist/8743.js.map +1 -0
  233. package/dist/8762.js +1 -0
  234. package/dist/8762.js.map +1 -0
  235. package/dist/8812.js +1 -0
  236. package/dist/8812.js.map +1 -0
  237. package/dist/8860.js +1 -0
  238. package/dist/8860.js.map +1 -0
  239. package/dist/8985.js +1 -0
  240. package/dist/8985.js.map +1 -0
  241. package/dist/8990.js +1 -0
  242. package/dist/8990.js.map +1 -0
  243. package/dist/9011.js +1 -1
  244. package/dist/9011.js.map +1 -1
  245. package/dist/9061.js +1 -0
  246. package/dist/9061.js.map +1 -0
  247. package/dist/9087.js +1 -0
  248. package/dist/9087.js.map +1 -0
  249. package/dist/9134.js +1 -0
  250. package/dist/9134.js.map +1 -0
  251. package/dist/9148.js +1 -0
  252. package/dist/9148.js.map +1 -0
  253. package/dist/9168.js +1 -0
  254. package/dist/9168.js.map +1 -0
  255. package/dist/9197.js +1 -0
  256. package/dist/9197.js.map +1 -0
  257. package/dist/9267.js +1 -0
  258. package/dist/9267.js.map +1 -0
  259. package/dist/935.js +1 -0
  260. package/dist/935.js.map +1 -0
  261. package/dist/9425.js +1 -1
  262. package/dist/9520.js +1 -1
  263. package/dist/9520.js.map +1 -1
  264. package/dist/9547.js +1 -0
  265. package/dist/9547.js.map +1 -0
  266. package/dist/9549.js +1 -0
  267. package/dist/9549.js.map +1 -0
  268. package/dist/9612.js +1 -0
  269. package/dist/9612.js.map +1 -0
  270. package/dist/9621.js +1 -0
  271. package/dist/9621.js.map +1 -0
  272. package/dist/9771.js +1 -0
  273. package/dist/9771.js.map +1 -0
  274. package/dist/9774.js +1 -0
  275. package/dist/9774.js.map +1 -0
  276. package/dist/9800.js +1 -0
  277. package/dist/9800.js.map +1 -0
  278. package/dist/9806.js +1 -0
  279. package/dist/9806.js.map +1 -0
  280. package/dist/9885.js +1 -0
  281. package/dist/9885.js.map +1 -0
  282. package/dist/992.js +1 -0
  283. package/dist/992.js.map +1 -0
  284. package/dist/995.js +1 -0
  285. package/dist/995.js.map +1 -0
  286. package/dist/kenyaemr-esm-care-panel-app.js +6 -5
  287. package/dist/kenyaemr-esm-care-panel-app.js.buildmanifest.json +1573 -672
  288. package/dist/kenyaemr-esm-care-panel-app.js.map +1 -1
  289. package/dist/main.js +6 -5
  290. package/dist/main.js.map +1 -1
  291. package/dist/routes.json +1 -1
  292. package/hivStatus/fr.json +1 -0
  293. package/package.json +4 -6
  294. package/src/care-panel/care-panel.component.tsx +1 -1
  295. package/src/care-panel-dashboard/care-panel-dashboard.component.tsx +8 -4
  296. package/src/care-programs/care-program-form-translation-keys.ts +121 -0
  297. package/src/care-programs/care-program.resource.ts +12 -6
  298. package/src/care-programs/care-programs.component.tsx +66 -31
  299. package/src/care-programs/link-patient-to-peer-action.component.tsx +38 -26
  300. package/src/care-programs/program-form-overflow-menu-item.component.tsx +40 -12
  301. package/src/care-programs/program.workspace.tsx +108 -96
  302. package/src/config-schema.ts +90 -14
  303. package/src/iit-risk-score/iit-risk-score-plot.tsx +5 -4
  304. package/src/index.ts +0 -4
  305. package/src/patient-discharge/patient-discharge.workspace.test.tsx +5 -10
  306. package/src/patient-discharge/patient-discharge.workspace.tsx +2 -2
  307. package/src/program-enrollment/program-enrollment.component.tsx +75 -67
  308. package/src/regimen-editor/regimen-button.component.tsx +12 -7
  309. package/src/regimen-editor/regimen-form.component.tsx +111 -107
  310. package/src/routes.json +19 -22
  311. package/translations/am.json +137 -0
  312. package/translations/en.json +137 -0
  313. package/translations/fr.json +138 -0
  314. package/translations/sw.json +272 -135
  315. package/treatmentNumber/fr.json +1 -0
  316. package/tsconfig.json +1 -1
  317. package/dist/1091.js +0 -1
  318. package/dist/1091.js.map +0 -1
  319. package/dist/1172.js +0 -1
  320. package/dist/1172.js.map +0 -1
  321. package/dist/121.js +0 -1
  322. package/dist/121.js.map +0 -1
  323. package/dist/132.js +0 -1
  324. package/dist/132.js.map +0 -1
  325. package/dist/1525.js +0 -1
  326. package/dist/1525.js.map +0 -1
  327. package/dist/1660.js +0 -1
  328. package/dist/1660.js.map +0 -1
  329. package/dist/1729.js +0 -17
  330. package/dist/1729.js.map +0 -1
  331. package/dist/1809.js +0 -7
  332. package/dist/1809.js.map +0 -1
  333. package/dist/1866.js +0 -1
  334. package/dist/1866.js.map +0 -1
  335. package/dist/1881.js +0 -1
  336. package/dist/1881.js.map +0 -1
  337. package/dist/1962.js +0 -1
  338. package/dist/1962.js.map +0 -1
  339. package/dist/1978.js +0 -1
  340. package/dist/1978.js.map +0 -1
  341. package/dist/2045.js +0 -1
  342. package/dist/2045.js.map +0 -1
  343. package/dist/2163.js +0 -1
  344. package/dist/2163.js.map +0 -1
  345. package/dist/2267.js +0 -1
  346. package/dist/2267.js.map +0 -1
  347. package/dist/2398.js +0 -1
  348. package/dist/2398.js.map +0 -1
  349. package/dist/2561.js +0 -1
  350. package/dist/2561.js.map +0 -1
  351. package/dist/2564.js +0 -1
  352. package/dist/2564.js.map +0 -1
  353. package/dist/2810.js +0 -2
  354. package/dist/2810.js.map +0 -1
  355. package/dist/2867.js +0 -1
  356. package/dist/2867.js.map +0 -1
  357. package/dist/3040.js +0 -1
  358. package/dist/3228.js +0 -1
  359. package/dist/3228.js.map +0 -1
  360. package/dist/3472.js +0 -1
  361. package/dist/3472.js.map +0 -1
  362. package/dist/3491.js +0 -1
  363. package/dist/3491.js.map +0 -1
  364. package/dist/3509.js +0 -1
  365. package/dist/3509.js.map +0 -1
  366. package/dist/3576.js +0 -1
  367. package/dist/3576.js.map +0 -1
  368. package/dist/3901.js +0 -1
  369. package/dist/3901.js.map +0 -1
  370. package/dist/399.js +0 -1
  371. package/dist/399.js.map +0 -1
  372. package/dist/4007.js +0 -66
  373. package/dist/4007.js.map +0 -1
  374. package/dist/4146.js +0 -1
  375. package/dist/4146.js.map +0 -1
  376. package/dist/4187.js +0 -1
  377. package/dist/4187.js.map +0 -1
  378. package/dist/4224.js +0 -1
  379. package/dist/4224.js.map +0 -1
  380. package/dist/4280.js +0 -1
  381. package/dist/4280.js.map +0 -1
  382. package/dist/4308.js +0 -1
  383. package/dist/4308.js.map +0 -1
  384. package/dist/4335.js +0 -1
  385. package/dist/4335.js.map +0 -1
  386. package/dist/4402.js +0 -1
  387. package/dist/4402.js.map +0 -1
  388. package/dist/4539.js +0 -1
  389. package/dist/4539.js.map +0 -1
  390. package/dist/4619.js +0 -1
  391. package/dist/4619.js.map +0 -1
  392. package/dist/4717.js +0 -1
  393. package/dist/4717.js.map +0 -1
  394. package/dist/4724.js +0 -1
  395. package/dist/4724.js.map +0 -1
  396. package/dist/4972.js +0 -1
  397. package/dist/4972.js.map +0 -1
  398. package/dist/509.js +0 -1
  399. package/dist/509.js.map +0 -1
  400. package/dist/5096.js +0 -1
  401. package/dist/5096.js.map +0 -1
  402. package/dist/5119.js +0 -1
  403. package/dist/5119.js.map +0 -1
  404. package/dist/5159.js +0 -13
  405. package/dist/5159.js.map +0 -1
  406. package/dist/5341.js +0 -1
  407. package/dist/5341.js.map +0 -1
  408. package/dist/5361.js +0 -1
  409. package/dist/5361.js.map +0 -1
  410. package/dist/5733.js +0 -1
  411. package/dist/5733.js.map +0 -1
  412. package/dist/5882.js +0 -1
  413. package/dist/5939.js +0 -5
  414. package/dist/5939.js.map +0 -1
  415. package/dist/6004.js +0 -1
  416. package/dist/6004.js.map +0 -1
  417. package/dist/6121.js +0 -3
  418. package/dist/6121.js.map +0 -1
  419. package/dist/6137.js +0 -1
  420. package/dist/6137.js.map +0 -1
  421. package/dist/623.js +0 -1
  422. package/dist/623.js.map +0 -1
  423. package/dist/6232.js +0 -1
  424. package/dist/6232.js.map +0 -1
  425. package/dist/6356.js +0 -1
  426. package/dist/6356.js.map +0 -1
  427. package/dist/6479.js +0 -1
  428. package/dist/6479.js.map +0 -1
  429. package/dist/6548.js +0 -1
  430. package/dist/6548.js.map +0 -1
  431. package/dist/6571.js +0 -1
  432. package/dist/6571.js.map +0 -1
  433. package/dist/6626.js +0 -1
  434. package/dist/6626.js.map +0 -1
  435. package/dist/6643.js +0 -1
  436. package/dist/6643.js.map +0 -1
  437. package/dist/6721.js +0 -1
  438. package/dist/6721.js.map +0 -1
  439. package/dist/6868.js +0 -1
  440. package/dist/6868.js.map +0 -1
  441. package/dist/6925.js +0 -1
  442. package/dist/6925.js.map +0 -1
  443. package/dist/7085.js +0 -1
  444. package/dist/7085.js.map +0 -1
  445. package/dist/7091.js +0 -1
  446. package/dist/7091.js.map +0 -1
  447. package/dist/7127.js +0 -1
  448. package/dist/7329.js +0 -1
  449. package/dist/7329.js.map +0 -1
  450. package/dist/7419.js +0 -1
  451. package/dist/7419.js.map +0 -1
  452. package/dist/7428.js +0 -1
  453. package/dist/7428.js.map +0 -1
  454. package/dist/7544.js +0 -1
  455. package/dist/7544.js.map +0 -1
  456. package/dist/7560.js +0 -1
  457. package/dist/7560.js.map +0 -1
  458. package/dist/774.js +0 -1
  459. package/dist/774.js.map +0 -1
  460. package/dist/8179.js +0 -6
  461. package/dist/8179.js.map +0 -1
  462. package/dist/8189.js +0 -1
  463. package/dist/8189.js.map +0 -1
  464. package/dist/8249.js +0 -1
  465. package/dist/8249.js.map +0 -1
  466. package/dist/8470.js +0 -1
  467. package/dist/8470.js.map +0 -1
  468. package/dist/8488.js +0 -1
  469. package/dist/8488.js.map +0 -1
  470. package/dist/8502.js +0 -1
  471. package/dist/8502.js.map +0 -1
  472. package/dist/8522.js +0 -1
  473. package/dist/8522.js.map +0 -1
  474. package/dist/8775.js +0 -11
  475. package/dist/8775.js.map +0 -1
  476. package/dist/887.js +0 -1
  477. package/dist/887.js.map +0 -1
  478. package/dist/916.js +0 -1
  479. package/dist/9466.js +0 -1
  480. package/dist/9466.js.map +0 -1
  481. package/dist/9675.js +0 -1
  482. package/dist/9675.js.map +0 -1
  483. package/dist/982.js +0 -1
  484. package/dist/982.js.map +0 -1
  485. package/dist/9931.js +0 -1
  486. package/dist/9931.js.map +0 -1
  487. package/jest.config.js +0 -3
@@ -1,14 +1,9 @@
1
1
  import React from 'react';
2
2
  import { render, screen } from '@testing-library/react';
3
3
  import { PatientDischargeWorkspace } from './patient-discharge.workspace';
4
- import { useVisitOrOfflineVisit } from '@openmrs/esm-patient-common-lib';
5
- import { usePatient, useEmrConfiguration } from '@openmrs/esm-framework';
4
+ import { usePatient, useEmrConfiguration, useVisit } from '@openmrs/esm-framework';
6
5
  import { usePatientDischarge } from './patient-discharge.resource';
7
6
 
8
- jest.mock('@openmrs/esm-patient-common-lib', () => ({
9
- useVisitOrOfflineVisit: jest.fn(),
10
- }));
11
-
12
7
  jest.mock('@openmrs/esm-framework', () => ({
13
8
  usePatient: jest.fn(),
14
9
  useEmrConfiguration: jest.fn(),
@@ -89,7 +84,7 @@ describe('PatientDischargeWorkspace', () => {
89
84
 
90
85
  beforeEach(() => {
91
86
  jest.clearAllMocks();
92
- (useVisitOrOfflineVisit as jest.Mock).mockReturnValue({
87
+ (useVisit as jest.Mock).mockReturnValue({
93
88
  isLoading: false,
94
89
  currentVisit: mockVisit,
95
90
  error: null,
@@ -110,7 +105,7 @@ describe('PatientDischargeWorkspace', () => {
110
105
  });
111
106
 
112
107
  test('renders loading state when data is being fetched', () => {
113
- (useVisitOrOfflineVisit as jest.Mock).mockReturnValue({
108
+ (useVisit as jest.Mock).mockReturnValue({
114
109
  isLoading: true,
115
110
  currentVisit: null,
116
111
  error: null,
@@ -122,7 +117,7 @@ describe('PatientDischargeWorkspace', () => {
122
117
  });
123
118
 
124
119
  test('renders error state when there is an error', () => {
125
- (useVisitOrOfflineVisit as jest.Mock).mockReturnValue({
120
+ (useVisit as jest.Mock).mockReturnValue({
126
121
  isLoading: false,
127
122
  currentVisit: null,
128
123
  error: new Error('Test error'),
@@ -148,7 +143,7 @@ describe('PatientDischargeWorkspace', () => {
148
143
  });
149
144
 
150
145
  test('handles missing visit data gracefully', () => {
151
- (useVisitOrOfflineVisit as jest.Mock).mockReturnValue({
146
+ (useVisit as jest.Mock).mockReturnValue({
152
147
  isLoading: false,
153
148
  currentVisit: null,
154
149
  error: null,
@@ -7,8 +7,8 @@ import {
7
7
  ExtensionSlot,
8
8
  useEmrConfiguration,
9
9
  usePatient,
10
+ useVisit,
10
11
  } from '@openmrs/esm-framework';
11
- import { useVisitOrOfflineVisit } from '@openmrs/esm-patient-common-lib';
12
12
  import { usePatientDischarge } from './patient-discharge.resource';
13
13
  import { WardPatient } from '../types';
14
14
 
@@ -23,7 +23,7 @@ export function PatientDischargeWorkspace(props: PatientDischargeWorkspaceProps)
23
23
  const { t } = useTranslation();
24
24
  const { patientUuid, closeWorkspace, closeWorkspaceWithSavedChanges, wardPatient, promptBeforeClosing } = props;
25
25
 
26
- const { isLoading: isLoadingVisit, currentVisit, error: visitError } = useVisitOrOfflineVisit(patientUuid);
26
+ const { isLoading: isLoadingVisit, activeVisit: currentVisit, error: visitError } = useVisit(patientUuid);
27
27
  const { patient, isLoading: isLoadingPatient, error: patientError } = usePatient(patientUuid);
28
28
  const { emrConfiguration, isLoadingEmrConfiguration, errorFetchingEmrConfiguration } = useEmrConfiguration();
29
29
 
@@ -17,11 +17,12 @@ import {
17
17
  import styles from './program-enrollment.scss';
18
18
  import isEmpty from 'lodash/isEmpty';
19
19
  import dayjs from 'dayjs';
20
- import { formatDate, launchWorkspace, restBaseUrl, useVisit } from '@openmrs/esm-framework';
20
+ import { formatDate, launchWorkspace2, restBaseUrl, useVisit } from '@openmrs/esm-framework';
21
21
  import orderBy from 'lodash/orderBy';
22
22
  import { mutate } from 'swr';
23
- import { getPatientUuidFromStore } from '@openmrs/esm-patient-common-lib';
24
23
  import { useHeiOutcome } from '../hooks/useHeiOutcome';
24
+ import { usePatientChartStore } from '@openmrs/esm-patient-common-lib';
25
+ import { TFunction } from 'i18next';
25
26
 
26
27
  export interface ProgramEnrollmentProps {
27
28
  patientUuid: string;
@@ -29,53 +30,57 @@ export interface ProgramEnrollmentProps {
29
30
  enrollments: Array<any>;
30
31
  formEntrySub: any;
31
32
  }
32
- const shareObjProperty = { dateEnrolled: 'Enrolled on', dateCompleted: 'Date Completed' };
33
- const programDetailsMap = {
33
+ const shareObjProperty = (t: TFunction) => ({
34
+ dateEnrolled: t('enrolledOn', 'Enrolled on'),
35
+ dateCompleted: t('dateCompleted', 'Date Completed'),
36
+ });
37
+ const programDetailsMap = (t: TFunction) => ({
34
38
  HIV: {
35
- dateEnrolled: 'Enrolled on',
36
- whoStage: 'WHO Stage',
37
- entryPoint: 'Entry Point',
38
- reason: 'Reason for discontinuation',
39
+ dateEnrolled: t('enrolledOn', 'Enrolled on'),
40
+ whoStage: t('whoStage', 'WHO Stage'),
41
+ entryPoint: t('entryPoint', 'Entry Point'),
42
+ reason: t('reasonOfDiscontinuation', 'Reason for discontinuation'),
39
43
  },
40
44
  TB: {
41
- ...shareObjProperty,
42
- startDate: 'Date started regimen',
43
- regimenShortName: 'Regimen',
45
+ ...shareObjProperty(t),
46
+ startDate: t('dateStartedRegimen', 'Date started regimen'),
47
+ regimenShortName: t('regimen', 'Regimen'),
44
48
  },
45
49
  TPT: {
46
- ...shareObjProperty,
47
- tptDrugName: 'Regimen',
48
- tptDrugStartDate: 'Date started regimen',
49
- tptIndication: 'Indication for TPT',
50
+ ...shareObjProperty(t),
51
+ tptDrugName: t('regimen', 'Regimen'),
52
+ tptDrugStartDate: t('dateStartedRegimen', 'Date started regimen'),
53
+ tptIndication: t('indicationForTpt', 'Indication for TPT'),
50
54
  },
51
55
  'MCH - Mother Services': {
52
- ...shareObjProperty,
53
- lmp: 'LMP',
54
- eddLmp: 'EDD',
55
- gravida: 'Gravida',
56
- parity: 'Parity',
57
- gestationInWeeks: 'Gestation in weeks',
56
+ ...shareObjProperty(t),
57
+ lmp: t('lmp', 'LMP'),
58
+ eddLmp: t('edd', 'EDD'),
59
+ gravida: t('gravida', 'Gravida'),
60
+ parity: t('parity', 'Parity'),
61
+ gestationInWeeks: t('gestationInWeeks', 'Gestation in weeks'),
58
62
  },
59
- 'MCH - Child Services': { ...shareObjProperty, entryPoint: 'Entry Point' },
63
+ 'MCH - Child Services': { ...shareObjProperty(t), entryPoint: t('entryPoint', 'Entry Point') },
60
64
  mchMother: {},
61
65
  mchChild: {},
62
66
  VMMC: {
63
- ...shareObjProperty,
67
+ ...shareObjProperty(t),
64
68
  },
65
- };
69
+ });
66
70
 
67
- const ProgramEnrollment: React.FC<ProgramEnrollmentProps> = ({ enrollments = [], programName }) => {
71
+ const ProgramEnrollment: React.FC<ProgramEnrollmentProps> = ({ enrollments = [], programName, patientUuid }) => {
68
72
  const { t } = useTranslation();
69
- const { currentVisit } = useVisit(getPatientUuidFromStore());
70
- const { heiOutcome } = useHeiOutcome(currentVisit?.patient?.uuid);
73
+ const { mutateVisitContext, visitContext, patient: fhirPatient } = usePatientChartStore(patientUuid);
74
+ const { currentVisit } = useVisit(patientUuid);
75
+ const { heiOutcome } = useHeiOutcome(currentVisit?.patient?.uuid as string);
71
76
  const orderedEnrollments = orderBy(enrollments, 'dateEnrolled', 'desc');
72
77
  const headers: Array<DataTableHeader> = useMemo(
73
78
  () =>
74
- Object.entries(programDetailsMap[programName] ?? { ...shareObjProperty }).map(([key, value]) => ({
79
+ Object.entries(programDetailsMap(t)[programName] ?? { ...shareObjProperty(t) }).map(([key, value]) => ({
75
80
  key,
76
81
  header: value as ReactNode,
77
82
  })),
78
- [programName],
83
+ [programName, t],
79
84
  );
80
85
  const rows = useMemo(
81
86
  () =>
@@ -104,61 +109,64 @@ const ProgramEnrollment: React.FC<ProgramEnrollmentProps> = ({ enrollments = [],
104
109
  });
105
110
  };
106
111
 
112
+ const groupProps = useMemo(() => {
113
+ return {
114
+ patientUuid,
115
+ patient: fhirPatient,
116
+ mutateVisitContext: () => {
117
+ handleMutation();
118
+ },
119
+ visitContext,
120
+ };
121
+ }, [patientUuid, fhirPatient, mutateVisitContext, visitContext]);
122
+
107
123
  const handleDiscontinue = (enrollment) => {
108
- launchWorkspace('patient-form-entry-workspace', {
109
- workspaceTitle: enrollment?.discontinuationFormName,
110
- mutateForm: handleMutation,
111
- formInfo: {
124
+ launchWorkspace2(
125
+ 'patient-form-entry-workspace',
126
+ {
127
+ form: {
128
+ uuid: enrollment?.discontinuationFormUuid,
129
+ },
112
130
  encounterUuid: '',
113
- visitTypeUuid: currentVisit?.visitType?.uuid ?? '',
114
- visitUuid: currentVisit?.uuid ?? '',
115
- formUuid: enrollment?.discontinuationFormUuid,
116
131
  additionalProps: {
117
132
  enrollmentDetails: { dateEnrolled: new Date(enrollment.dateEnrolled), uuid: enrollment.enrollmentUuid },
118
133
  },
119
134
  },
120
- });
135
+ {},
136
+ groupProps,
137
+ );
121
138
  };
122
139
 
123
140
  const handleHeiOutcome = () => {
124
- launchWorkspace('patient-form-entry-workspace', {
125
- workspaceTitle: 'HEI Outcome',
126
- mutateForm: () => {
127
- mutate((key) => true, undefined, {
128
- revalidate: true,
129
- });
130
- },
131
- formInfo: {
132
- encounterUuid: '',
133
- visitTypeUuid: currentVisit?.visitType?.uuid ?? '',
134
- visitUuid: currentVisit?.uuid ?? '',
135
- formUuid: 'd823f1ef-0973-44ee-b113-7090dc23257b',
136
- additionalProps: {},
141
+ launchWorkspace2(
142
+ 'patient-form-entry-workspace',
143
+ {
144
+ form: {
145
+ uuid: 'd823f1ef-0973-44ee-b113-7090dc23257b',
146
+ },
147
+ encounterUuid: 'enrollmentEncounterUuid',
137
148
  },
138
- });
149
+ {},
150
+ groupProps,
151
+ );
139
152
  };
140
153
 
141
154
  const handleEditEnrollment = (enrollment) => {
142
- launchWorkspace('patient-form-entry-workspace', {
143
- workspaceTitle: enrollment?.enrollmentFormName,
144
- mutateForm: () => {
145
- mutate(
146
- (key) =>
147
- typeof key === 'string' && key.startsWith('/ws/rest/v1/kenyaemr/patientHistoricalEnrollment?patientUuid='),
148
- undefined,
149
- { revalidate: true },
150
- );
151
- },
152
- formInfo: {
153
- encounterUuid: enrollment?.enrollmentEncounterUuid,
154
- formUuid: enrollment?.enrollmentFormUuid,
155
- visitTypeUuid: currentVisit?.visitType?.uuid ?? '',
156
- visitUuid: currentVisit?.uuid ?? '',
155
+ launchWorkspace2(
156
+ 'patient-form-entry-workspace',
157
+ {
158
+ workspaceTitle: enrollment?.enrollmentFormName,
159
+ form: {
160
+ uuid: enrollment?.enrollmentFormUuid,
161
+ },
157
162
  additionalProps: {
158
163
  enrollmentDetails: { dateEnrolled: new Date(enrollment.dateEnrolled), uuid: enrollment.enrollmentUuid },
159
164
  },
165
+ encounterUuid: enrollment?.enrollmentEncounterUuid,
160
166
  },
161
- });
167
+ {},
168
+ groupProps,
169
+ );
162
170
  };
163
171
 
164
172
  if (orderedEnrollments?.length === 0) {
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
+ import { launchWorkspace2 } from '@openmrs/esm-framework';
2
3
  import { Link } from '@carbon/react';
3
4
  import { useTranslation } from 'react-i18next';
4
5
  import { RegimenType } from '../types';
5
6
  import styles from './standard-regimen.scss';
6
- import { launchWorkspace } from '@openmrs/esm-framework';
7
7
 
8
8
  interface RegimenButtonProps {
9
9
  patientUuid: string;
@@ -23,12 +23,17 @@ const RegimenButton: React.FC<RegimenButtonProps> = ({ category, patientUuid, on
23
23
  <Link
24
24
  className={styles.linkName}
25
25
  onClick={() =>
26
- launchWorkspace('patient-regimen-workspace', {
27
- category: RegimenType[category],
28
- patientUuid: patientUuid,
29
- onRegimen: onRegimen,
30
- lastRegimenEncounter: lastRegimenEncounter,
31
- })
26
+ launchWorkspace2(
27
+ 'patient-regimen-workspace',
28
+ {
29
+ category: RegimenType[category],
30
+ patientUuid: patientUuid,
31
+ onRegimen: onRegimen,
32
+ lastRegimenEncounter: lastRegimenEncounter,
33
+ },
34
+ {},
35
+ {},
36
+ )
32
37
  }>
33
38
  {t('editRegimen', 'Edit')}
34
39
  </Link>
@@ -20,6 +20,8 @@ import {
20
20
  useConfig,
21
21
  showModal,
22
22
  showSnackbar,
23
+ type Workspace2DefinitionProps,
24
+ Workspace2,
23
25
  } from '@openmrs/esm-framework';
24
26
  import styles from './standard-regimen.scss';
25
27
  import StandardRegimen from './standard-regimen.component';
@@ -98,12 +100,9 @@ const getRegimenFormSchema = (regimenEvent: string, selectedRegimenType: string)
98
100
  return schema;
99
101
  };
100
102
 
101
- const RegimenForm: React.FC<RegimenFormProps> = ({
102
- patientUuid,
103
- category,
104
- onRegimen,
105
- lastRegimenEncounter,
103
+ const RegimenForm: React.FC<Workspace2DefinitionProps<RegimenFormProps, {}, {}>> = ({
106
104
  closeWorkspace,
105
+ workspaceProps: { patientUuid, category, onRegimen, lastRegimenEncounter },
107
106
  }) => {
108
107
  const { t } = useTranslation();
109
108
  const [errors, setErrors] = useState<Record<string, string>>({});
@@ -121,6 +120,7 @@ const RegimenForm: React.FC<RegimenFormProps> = ({
121
120
  const [selectedRegimenType, setSelectedRegimenType] = useState('');
122
121
  const [obsArray, setObsArray] = useState([]);
123
122
  const [obsArrayForPrevEncounter, setObsArrayForPrevEncounter] = useState([]);
123
+ const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);
124
124
 
125
125
  useEffect(() => {
126
126
  const regimenLineObs = {
@@ -353,108 +353,112 @@ const RegimenForm: React.FC<RegimenFormProps> = ({
353
353
  );
354
354
 
355
355
  return (
356
- <Form className={styles.form} onSubmit={handleSubmit}>
357
- <div>
358
- <Stack gap={8} className={styles.container}>
359
- <h4 className={styles.regimenTitle}>Current Regimen: {onRegimen}</h4>
360
- <section className={styles.section}>
361
- <div className={styles.sectionTitle}>{t('regimenEvent', 'Regimen event')}</div>
362
- <RadioButtonGroup
363
- className={styles.radioButtonWrapper}
364
- name="regimenEvent"
365
- onChange={(uuid) => setRegimenEvent(uuid as string)}>
366
- <RadioButton
367
- key={'start-regimen'}
368
- labelText={t('startRegimen', 'Start')}
369
- value={Regimen.startOrRestartConcept}
370
- disabled={!!lastRegimenEncounter.uuid}
371
- />
372
- <RadioButton
373
- key={'restart-regimen'}
374
- labelText={t('restartRegimen', 'Restart')}
375
- value={Regimen.startOrRestartConcept}
376
- disabled={!lastRegimenEncounter.endDate && lastRegimenEncounter.event !== 'STOP ALL'}
377
- />
378
- <RadioButton
379
- key={'change-regimen'}
380
- labelText={t('changeRegimen', 'Change')}
381
- value={Regimen.changeRegimenConcept}
382
- disabled={!lastRegimenEncounter.startDate || lastRegimenEncounter.event === 'STOP ALL'}
383
- />
384
- <RadioButton
385
- key={'stop-regimen'}
386
- labelText={t('stopRegimen', 'Stop')}
387
- value={Regimen.stopRegimenConcept}
388
- disabled={
389
- !!lastRegimenEncounter.endDate || (!lastRegimenEncounter.uuid && !lastRegimenEncounter.endDate)
390
- }
391
- />
392
- <RadioButton
393
- key={'undo-regimen'}
394
- labelText={t('undoRegimen', 'Undo')}
395
- value={'undo'}
396
- disabled={!lastRegimenEncounter.uuid}
397
- onClick={launchDeleteRegimenDialog}
398
- />
399
- </RadioButtonGroup>
400
- {errors.regimenEvent && <div className={styles.errorText}>{errors.regimenEvent}</div>}
401
- {regimenEvent ? (
402
- <>
403
- {regimenEvent !== 'undo' && regimenDatePicker}
404
- {regimenEvent && regimenEvent !== Regimen.stopRegimenConcept && regimenEvent !== 'undo' ? (
405
- <>
406
- <RadioButtonGroup
407
- className={styles.radioButtonWrapper}
408
- name="regimenType"
409
- onChange={(uuid) => setSelectedRegimenType(uuid as string)}>
410
- <RadioButton key={'standardUuid'} labelText={'Use standard regimen'} value={'standardUuid'} />
411
- <RadioButton
412
- key={'nonStandardUuid'}
413
- labelText={'Use non standard regimen'}
414
- value={'nonStandardUuid'}
415
- disabled={category !== 'ARV'}
416
- />
417
- </RadioButtonGroup>
418
- {errors.selectedRegimenType && <div className={styles.errorText}>{errors.selectedRegimenType}</div>}
419
- {selectedRegimenType === 'standardUuid' ? (
420
- <StandardRegimen
421
- category={category}
422
- setStandardRegimen={setStandardRegimen}
423
- setStandardRegimenLine={setStandardRegimenLine}
424
- selectedRegimenType={selectedRegimenType}
425
- visitDate={visitDate}
426
- errors={errors}
427
- />
428
- ) : (
429
- <NonStandardRegimen
430
- category={category}
431
- setNonStandardRegimens={setNonStandardRegimens}
432
- setStandardRegimenLine={setStandardRegimenLine}
433
- selectedRegimenType={selectedRegimenType}
434
- visitDate={visitDate}
435
- errors={errors}
436
- />
437
- )}
438
- </>
439
- ) : null}
440
- {(regimenEvent === Regimen.stopRegimenConcept ||
441
- (regimenEvent === Regimen.changeRegimenConcept && selectedRegimenType)) && (
442
- <RegimenReason category={category} setRegimenReason={setRegimenReason} errors={errors} />
443
- )}
444
- </>
445
- ) : null}
446
- </section>
447
- </Stack>
448
- </div>
449
- <ButtonSet className={isTablet ? styles.tablet : styles.desktop}>
450
- <Button className={styles.button} kind="secondary" onClick={closeWorkspace}>
451
- {t('discard', 'Discard')}
452
- </Button>
453
- <Button className={styles.button} disabled={isSubmitting} kind="primary" type="submit">
454
- {t('save', 'Save')}
455
- </Button>
456
- </ButtonSet>
457
- </Form>
356
+ <Workspace2 hasUnsavedChanges={hasUnsavedChanges} title={t('regimenForm', 'Regimen Form')}>
357
+ <Form className={styles.form} onSubmit={handleSubmit}>
358
+ <div>
359
+ <Stack gap={8} className={styles.container}>
360
+ <h4 className={styles.regimenTitle}>Current Regimen: {onRegimen}</h4>
361
+ <section className={styles.section}>
362
+ <div className={styles.sectionTitle}>{t('regimenEvent', 'Regimen event')}</div>
363
+ <RadioButtonGroup
364
+ className={styles.radioButtonWrapper}
365
+ name="regimenEvent"
366
+ onChange={(uuid) => setRegimenEvent(uuid as string)}>
367
+ <RadioButton
368
+ key={'start-regimen'}
369
+ labelText={t('startRegimen', 'Start')}
370
+ value={Regimen.startOrRestartConcept}
371
+ disabled={!!lastRegimenEncounter.uuid}
372
+ />
373
+ <RadioButton
374
+ key={'restart-regimen'}
375
+ labelText={t('restartRegimen', 'Restart')}
376
+ value={Regimen.startOrRestartConcept}
377
+ disabled={!lastRegimenEncounter.endDate && lastRegimenEncounter.event !== 'STOP ALL'}
378
+ />
379
+ <RadioButton
380
+ key={'change-regimen'}
381
+ labelText={t('changeRegimen', 'Change')}
382
+ value={Regimen.changeRegimenConcept}
383
+ disabled={!lastRegimenEncounter.startDate || lastRegimenEncounter.event === 'STOP ALL'}
384
+ />
385
+ <RadioButton
386
+ key={'stop-regimen'}
387
+ labelText={t('stopRegimen', 'Stop')}
388
+ value={Regimen.stopRegimenConcept}
389
+ disabled={
390
+ !!lastRegimenEncounter.endDate || (!lastRegimenEncounter.uuid && !lastRegimenEncounter.endDate)
391
+ }
392
+ />
393
+ <RadioButton
394
+ key={'undo-regimen'}
395
+ labelText={t('undoRegimen', 'Undo')}
396
+ value={'undo'}
397
+ disabled={!lastRegimenEncounter.uuid}
398
+ onClick={launchDeleteRegimenDialog}
399
+ />
400
+ </RadioButtonGroup>
401
+ {errors.regimenEvent && <div className={styles.errorText}>{errors.regimenEvent}</div>}
402
+ {regimenEvent ? (
403
+ <>
404
+ {regimenEvent !== 'undo' && regimenDatePicker}
405
+ {regimenEvent && regimenEvent !== Regimen.stopRegimenConcept && regimenEvent !== 'undo' ? (
406
+ <>
407
+ <RadioButtonGroup
408
+ className={styles.radioButtonWrapper}
409
+ name="regimenType"
410
+ onChange={(uuid) => setSelectedRegimenType(uuid as string)}>
411
+ <RadioButton key={'standardUuid'} labelText={'Use standard regimen'} value={'standardUuid'} />
412
+ <RadioButton
413
+ key={'nonStandardUuid'}
414
+ labelText={'Use non standard regimen'}
415
+ value={'nonStandardUuid'}
416
+ disabled={category !== 'ARV'}
417
+ />
418
+ </RadioButtonGroup>
419
+ {errors.selectedRegimenType && (
420
+ <div className={styles.errorText}>{errors.selectedRegimenType}</div>
421
+ )}
422
+ {selectedRegimenType === 'standardUuid' ? (
423
+ <StandardRegimen
424
+ category={category}
425
+ setStandardRegimen={setStandardRegimen}
426
+ setStandardRegimenLine={setStandardRegimenLine}
427
+ selectedRegimenType={selectedRegimenType}
428
+ visitDate={visitDate}
429
+ errors={errors}
430
+ />
431
+ ) : (
432
+ <NonStandardRegimen
433
+ category={category}
434
+ setNonStandardRegimens={setNonStandardRegimens}
435
+ setStandardRegimenLine={setStandardRegimenLine}
436
+ selectedRegimenType={selectedRegimenType}
437
+ visitDate={visitDate}
438
+ errors={errors}
439
+ />
440
+ )}
441
+ </>
442
+ ) : null}
443
+ {(regimenEvent === Regimen.stopRegimenConcept ||
444
+ (regimenEvent === Regimen.changeRegimenConcept && selectedRegimenType)) && (
445
+ <RegimenReason category={category} setRegimenReason={setRegimenReason} errors={errors} />
446
+ )}
447
+ </>
448
+ ) : null}
449
+ </section>
450
+ </Stack>
451
+ </div>
452
+ <ButtonSet className={isTablet ? styles.tablet : styles.desktop}>
453
+ <Button className={styles.button} kind="secondary" onClick={() => closeWorkspace()}>
454
+ {t('discard', 'Discard')}
455
+ </Button>
456
+ <Button className={styles.button} disabled={isSubmitting} kind="primary" type="submit">
457
+ {t('save', 'Save')}
458
+ </Button>
459
+ </ButtonSet>
460
+ </Form>
461
+ </Workspace2>
458
462
  );
459
463
  };
460
464
 
package/src/routes.json CHANGED
@@ -64,38 +64,35 @@
64
64
  "slot": "action-menu-ward-patient-items-slot"
65
65
  }
66
66
  ],
67
- "workspaces": [
67
+ "workspaces2": [
68
68
  {
69
69
  "name": "patient-regimen-workspace",
70
- "title": "Patient Regimen",
71
70
  "component": "regimenFormWorkspace",
72
- "type": "form",
73
- "canMaximize": true,
74
- "canHide": true,
75
- "width": "wider"
76
- },
77
- {
78
- "name": "patient-care-discharge-workspace",
79
- "title": "Patient Discharge",
80
- "component": "patientDischargeWorkspace",
81
- "type": "workspace",
82
- "canMaximize": true,
83
- "canHide": true,
84
- "width": "extra-wide",
85
- "groups": ["ward-patient"]
71
+ "window": "care-panel-workspace-window"
86
72
  },
87
-
88
73
  {
89
74
  "name": "mch-program-form-workspace",
90
75
  "component": "mchProgramForm",
91
- "title": "Program Form",
92
- "type": "workspace"
76
+ "window": "care-panel-workspace-window"
93
77
  },
94
78
  {
95
79
  "name": "kvp-peer-linkage-form-workspace",
96
80
  "component": "kvpPeerLinkageForm",
97
- "title": "Program Form",
98
- "type": "workspace"
81
+ "window": "care-panel-workspace-window"
82
+ }
83
+ ],
84
+ "workspaceWindows2": [
85
+ {
86
+ "name": "care-panel-workspace-window",
87
+ "canMaximize": true,
88
+ "group": "care-panel-workspace-group",
89
+ "canHide": true,
90
+ "width": "wider"
91
+ }
92
+ ],
93
+ "workspaceGroups2": [
94
+ {
95
+ "name": "care-panel-workspace-group"
99
96
  }
100
97
  ]
101
- }
98
+ }