@openmrs/esm-patient-chart-app 11.3.0 → 11.3.1-patch.9064

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 (143) hide show
  1. package/.turbo/turbo-build.log +23 -23
  2. package/dist/1119.js +1 -1
  3. package/dist/1197.js +1 -1
  4. package/dist/1568.js +2 -0
  5. package/dist/1568.js.map +1 -0
  6. package/dist/2146.js +1 -1
  7. package/dist/2442.js +1 -0
  8. package/dist/2442.js.map +1 -0
  9. package/dist/2690.js +1 -1
  10. package/dist/3042.js +1 -1
  11. package/dist/3042.js.map +1 -1
  12. package/dist/3099.js +1 -1
  13. package/dist/3584.js +1 -1
  14. package/dist/4055.js +1 -1
  15. package/dist/4132.js +1 -1
  16. package/dist/4300.js +1 -1
  17. package/dist/4335.js +1 -1
  18. package/dist/4618.js +1 -1
  19. package/dist/4632.js +1 -1
  20. package/dist/4632.js.map +1 -1
  21. package/dist/4652.js +1 -1
  22. package/dist/4713.js +1 -1
  23. package/dist/4713.js.map +1 -1
  24. package/dist/4944.js +1 -1
  25. package/dist/5048.js +1 -0
  26. package/dist/5048.js.map +1 -0
  27. package/dist/5173.js +1 -1
  28. package/dist/5241.js +1 -1
  29. package/dist/5442.js +1 -1
  30. package/dist/5661.js +1 -1
  31. package/dist/5670.js +1 -0
  32. package/dist/5670.js.map +1 -0
  33. package/dist/6022.js +1 -1
  34. package/dist/6468.js +1 -1
  35. package/dist/6650.js +2 -0
  36. package/dist/6650.js.map +1 -0
  37. package/dist/6679.js +1 -1
  38. package/dist/68.js +2 -0
  39. package/dist/68.js.map +1 -0
  40. package/dist/6840.js +1 -1
  41. package/dist/6859.js +1 -1
  42. package/dist/7097.js +1 -1
  43. package/dist/7159.js +1 -1
  44. package/dist/723.js +1 -1
  45. package/dist/7617.js +1 -1
  46. package/dist/7822.js +1 -0
  47. package/dist/7822.js.map +1 -0
  48. package/dist/795.js +1 -1
  49. package/dist/8163.js +1 -1
  50. package/dist/8349.js +1 -1
  51. package/dist/8454.js +1 -1
  52. package/dist/8454.js.map +1 -1
  53. package/dist/8618.js +1 -1
  54. package/dist/8709.js +1 -1
  55. package/dist/8709.js.map +1 -1
  56. package/dist/890.js +1 -1
  57. package/dist/9007.js +1 -1
  58. package/dist/9007.js.map +1 -1
  59. package/dist/9214.js +1 -1
  60. package/dist/9538.js +1 -1
  61. package/dist/9569.js +1 -1
  62. package/dist/986.js +1 -1
  63. package/dist/9879.js +1 -1
  64. package/dist/9895.js +1 -1
  65. package/dist/9900.js +1 -1
  66. package/dist/9913.js +1 -1
  67. package/dist/main.js +1 -1
  68. package/dist/main.js.map +1 -1
  69. package/dist/openmrs-esm-patient-chart-app.js +1 -1
  70. package/dist/openmrs-esm-patient-chart-app.js.buildmanifest.json +309 -330
  71. package/dist/openmrs-esm-patient-chart-app.js.map +1 -1
  72. package/dist/routes.json +1 -1
  73. package/package.json +4 -3
  74. package/src/clinical-views/encounter-tile/encounter-tile.component.tsx +7 -6
  75. package/src/clinical-views/encounter-tile/tile.scss +0 -1
  76. package/src/clinical-views/hooks/useEncountersByVisit.ts +13 -0
  77. package/src/clinical-views/hooks/useLastEncounter.ts +1 -1
  78. package/src/clinical-views/types.ts +2 -1
  79. package/src/clinical-views/utils/concept-utils.ts +24 -0
  80. package/src/clinical-views/utils/index.ts +4 -1
  81. package/src/config-schema.ts +42 -2
  82. package/src/dashboard.meta.ts +4 -2
  83. package/src/visit/visits-widget/past-visits-components/medications-summary.component.tsx +2 -3
  84. package/src/visit/visits-widget/past-visits-components/visit-summary.component.tsx +8 -1
  85. package/src/visit/visits-widget/past-visits-components/visit-summary.scss +1 -1
  86. package/src/visit/visits-widget/single-visit-details/visit-timeline/visit-timeline.component.tsx +94 -0
  87. package/src/visit/visits-widget/single-visit-details/visit-timeline/visit-timeline.scss +60 -0
  88. package/translations/am.json +6 -0
  89. package/translations/ar.json +6 -0
  90. package/translations/ar_SY.json +6 -0
  91. package/translations/bn.json +6 -0
  92. package/translations/de.json +6 -0
  93. package/translations/en.json +6 -0
  94. package/translations/en_US.json +6 -0
  95. package/translations/es.json +6 -0
  96. package/translations/es_MX.json +6 -0
  97. package/translations/fr.json +6 -0
  98. package/translations/he.json +6 -0
  99. package/translations/hi.json +6 -0
  100. package/translations/hi_IN.json +6 -0
  101. package/translations/id.json +6 -0
  102. package/translations/it.json +24 -18
  103. package/translations/ka.json +6 -0
  104. package/translations/km.json +6 -0
  105. package/translations/ku.json +6 -0
  106. package/translations/ky.json +6 -0
  107. package/translations/lg.json +6 -0
  108. package/translations/ne.json +6 -0
  109. package/translations/pl.json +6 -0
  110. package/translations/pt.json +6 -0
  111. package/translations/pt_BR.json +6 -0
  112. package/translations/qu.json +6 -0
  113. package/translations/ro_RO.json +6 -0
  114. package/translations/ru_RU.json +6 -0
  115. package/translations/si.json +6 -0
  116. package/translations/sw.json +6 -0
  117. package/translations/sw_KE.json +6 -0
  118. package/translations/tr.json +6 -0
  119. package/translations/tr_TR.json +6 -0
  120. package/translations/uk.json +6 -0
  121. package/translations/uz.json +6 -0
  122. package/translations/uz@Latn.json +6 -0
  123. package/translations/uz_UZ.json +6 -0
  124. package/translations/vi.json +6 -0
  125. package/translations/zh.json +6 -0
  126. package/translations/zh_CN.json +6 -0
  127. package/dist/2735.js +0 -2
  128. package/dist/2735.js.map +0 -1
  129. package/dist/3184.js +0 -1
  130. package/dist/3184.js.map +0 -1
  131. package/dist/385.js +0 -2
  132. package/dist/385.js.map +0 -1
  133. package/dist/717.js +0 -1
  134. package/dist/717.js.map +0 -1
  135. package/dist/9162.js +0 -2
  136. package/dist/9162.js.map +0 -1
  137. package/dist/9206.js +0 -1
  138. package/dist/9206.js.map +0 -1
  139. package/dist/9615.js +0 -1
  140. package/dist/9615.js.map +0 -1
  141. /package/dist/{9162.js.LICENSE.txt → 1568.js.LICENSE.txt} +0 -0
  142. /package/dist/{2735.js.LICENSE.txt → 6650.js.LICENSE.txt} +0 -0
  143. /package/dist/{385.js.LICENSE.txt → 68.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"openmrs-esm-patient-chart-app.js","mappings":"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","sources":["webpack://@openmrs/esm-patient-chart-app/webpack/runtime/create fake namespace object","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/load script","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/consumes","webpack://@openmrs/esm-patient-chart-app/webpack/container-entry","webpack://@openmrs/esm-patient-chart-app/webpack/bootstrap","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/compat get default export","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/define property getters","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/ensure chunk","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/get javascript chunk filename","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/global","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/make namespace object","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/sharing","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/publicPath","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/jsonp chunk loading","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/nonce","webpack://@openmrs/esm-patient-chart-app/webpack/startup"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","parseVersion","versionLt","rangeToString","satisfy","exists","get","eagerOnly","findSingletonVersionKey","getInvalidSingletonVersionMessage","fail","warn","useFallback","loadSingletonVersion","installedModules","moduleToHandlerMapping","chunkMapping","startedInstallModules","moduleMap","Promise","all","__webpack_require__","e","then","module","getScope","R","o","resolve","Error","undefined","init","shareScope","initScope","S","name","oldScope","I","d","exports","__webpack_module_cache__","moduleId","cachedModule","id","__webpack_modules__","call","m","c","n","getter","__esModule","a","Object","getPrototypeOf","obj","t","value","mode","this","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","definition","defineProperty","enumerable","f","chunkId","keys","reduce","promises","u","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","fn","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","initPromises","initTokens","initToken","scope","uniqueName","register","version","factory","eager","versions","activeVersion","loaded","from","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","replace","p","str","split","map","exec","apply","b","range","pop","entry","filtered","requiredVersion","msg","console","scopeName","fallback","failAsNotExist","promise","consumes","onFactory","onError","error","installedChunks","j","installedChunkData","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
1
+ {"version":3,"file":"openmrs-esm-patient-chart-app.js","mappings":"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","sources":["webpack://@openmrs/esm-patient-chart-app/webpack/runtime/create fake namespace object","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/load script","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/consumes","webpack://@openmrs/esm-patient-chart-app/webpack/container-entry","webpack://@openmrs/esm-patient-chart-app/webpack/bootstrap","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/compat get default export","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/define property getters","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/ensure chunk","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/get javascript chunk filename","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/global","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/make namespace object","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/sharing","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/publicPath","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/jsonp chunk loading","webpack://@openmrs/esm-patient-chart-app/webpack/runtime/nonce","webpack://@openmrs/esm-patient-chart-app/webpack/startup"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","parseVersion","versionLt","rangeToString","satisfy","exists","get","eagerOnly","findSingletonVersionKey","getInvalidSingletonVersionMessage","fail","warn","useFallback","loadSingletonVersion","installedModules","moduleToHandlerMapping","chunkMapping","startedInstallModules","moduleMap","Promise","all","__webpack_require__","e","then","module","getScope","R","o","resolve","Error","undefined","init","shareScope","initScope","S","name","oldScope","I","d","exports","__webpack_module_cache__","moduleId","cachedModule","id","__webpack_modules__","call","m","c","n","getter","__esModule","a","Object","getPrototypeOf","obj","t","value","mode","this","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","definition","defineProperty","enumerable","f","chunkId","keys","reduce","promises","u","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","fn","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","initPromises","initTokens","initToken","scope","uniqueName","register","version","factory","eager","versions","activeVersion","loaded","from","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","replace","p","str","split","map","exec","apply","b","range","pop","entry","filtered","requiredVersion","msg","console","scopeName","fallback","failAsNotExist","promise","consumes","onFactory","onError","error","installedChunks","j","installedChunkData","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
package/dist/routes.json CHANGED
@@ -1 +1 @@
1
- {"$schema":"https://json.openmrs.org/routes.schema.json","optionalBackendDependencies":{"emrapi":{"version":"^2.0.0","feature":{"flagName":"emrapi-module","label":"EMR API Module","description":"This module, if installed, provides core EMR business logic."}}},"extensions":[{"name":"charts-summary-dashboard","component":"patientSummaryDashboardLink","slot":"patient-chart-dashboard-slot","order":0,"meta":{"slot":"patient-chart-summary-dashboard-slot","path":"Patient Summary"},"online":true,"offline":true},{"name":"encounter-list","component":"encounterListTableTabs","online":true,"offline":true},{"name":"start-visit-button","component":"startVisitActionButton","slot":"patient-actions-slot","online":true,"offline":true},{"name":"clinical-views-summary","component":"clinicalViewsSummary","online":true,"offline":true},{"name":"stop-visit-button","component":"stopVisitActionButton","slot":"patient-actions-slot","online":true,"offline":true},{"name":"mark-alive-button","slot":"patient-actions-slot","component":"markPatientAliveActionButton","online":true,"offline":true},{"name":"stop-visit-button-patient-search","slot":"patient-search-actions-slot","component":"stopVisitPatientSearchActionButton","online":true,"offline":true},{"name":"delete-visit-button","slot":"patient-actions-slot","component":"deleteVisitActionMenuButton","online":true,"offline":true},{"name":"delete-visit-button","slot":"patient-search-actions-slot","component":"deleteVisitActionMenuButton","online":true,"offline":true},{"name":"mark-patient-deceased-button","slot":"patient-actions-slot","component":"markPatientDeceasedActionButton","online":true,"offline":true},{"name":"encounters-summary-dashboard","slot":"patient-chart-dashboard-slot","component":"encountersSummaryDashboardLink","meta":{"slot":"patient-chart-encounters-dashboard-slot","path":"Visits","layoutMode":"anchored"},"order":5,"online":true,"offline":true},{"name":"past-visits-detail-overview","slot":"patient-chart-encounters-dashboard-slot","component":"pastVisitsDetailOverview","order":1,"meta":{"title":"Visits","view":"visits"},"online":true,"offline":true},{"name":"patient-details-tile","slot":"visit-form-header-slot","component":"patientDetailsTile","order":1,"online":true,"offline":true},{"name":"start-visit-button-patient-search","slot":"start-visit-button-slot","component":"startVisitPatientSearchActionButton","online":true,"offline":true},{"name":"visit-attribute-tags","slot":"patient-banner-tags-slot","component":"visitAttributeTags","online":true,"offline":true},{"name":"current-visit-summary","component":"currentVisitSummary","online":true,"offline":true,"meta":{"fullWidth":true}},{"name":"edit-visit-action-button","slot":"visit-detail-overview-actions","component":"editVisitDetailsActionButton","online":true,"offline":true,"order":0},{"name":"delete-visit-action-button","slot":"visit-detail-overview-actions","component":"deleteVisitActionButton","online":true,"offline":true,"order":1},{"name":"active-visit-action-button","slot":"active-visit-actions","component":"activeVisitActionsComponent","online":true,"offline":true,"order":1},{"name":"visit-context-header","slot":"visit-context-header-slot","component":"visitContextHeader"},{"name":"retrospective-date-time-picker","slot":"restrospective-date-time-picker-slot","component":"retrospectiveDateTimePicker"}],"featureFlags":[{"description":"Features to enter data for past visits. Includes the 'Edit Past Visit' button in the start visit dialog, and the 'Add Past Visit' button in the patient header","flagName":"rde","label":"Retrospective Data Entry"},{"description":"When enabled, encounter summaries will display the full form layout instead of a simple observation list.","flagName":"enable-embedded-form-view","label":"Enable Embedded Form View"}],"modals":[{"name":"delete-encounter-modal","component":"deleteEncounterModal"},{"name":"delete-visit-dialog","component":"deleteVisitModal"},{"name":"end-visit-dialog","component":"endVisitModal"},{"name":"mark-patient-alive-modal","component":"markPatientAliveModal"},{"name":"modify-visit-date-dialog","component":"modifyVisitDateModal"},{"name":"start-visit-dialog","component":"startVisitModal"},{"name":"visit-context-switcher","component":"visitContextSwitcherModal"}],"pages":[{"component":"root","routeRegex":"^patient/.+/chart","online":true,"offline":true}],"workspaces":[{"name":"mark-patient-deceased-workspace-form","component":"markPatientDeceasedForm","title":"Mark patient deceased","type":"form"},{"name":"start-visit-workspace-form","component":"startVisitWorkspace","title":"startVisitWorkspaceTitle","type":"start-visit"}],"version":"11.3.0"}
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","optionalBackendDependencies":{"emrapi":{"version":"^2.0.0","feature":{"flagName":"emrapi-module","label":"EMR API Module","description":"This module, if installed, provides core EMR business logic."}}},"extensions":[{"name":"charts-summary-dashboard","component":"patientSummaryDashboardLink","slot":"patient-chart-dashboard-slot","order":0,"meta":{"slot":"patient-chart-summary-dashboard-slot","path":"Patient Summary"},"online":true,"offline":true},{"name":"encounter-list","component":"encounterListTableTabs","online":true,"offline":true},{"name":"start-visit-button","component":"startVisitActionButton","slot":"patient-actions-slot","online":true,"offline":true},{"name":"clinical-views-summary","component":"clinicalViewsSummary","online":true,"offline":true},{"name":"stop-visit-button","component":"stopVisitActionButton","slot":"patient-actions-slot","online":true,"offline":true},{"name":"mark-alive-button","slot":"patient-actions-slot","component":"markPatientAliveActionButton","online":true,"offline":true},{"name":"stop-visit-button-patient-search","slot":"patient-search-actions-slot","component":"stopVisitPatientSearchActionButton","online":true,"offline":true},{"name":"delete-visit-button","slot":"patient-actions-slot","component":"deleteVisitActionMenuButton","online":true,"offline":true},{"name":"delete-visit-button","slot":"patient-search-actions-slot","component":"deleteVisitActionMenuButton","online":true,"offline":true},{"name":"mark-patient-deceased-button","slot":"patient-actions-slot","component":"markPatientDeceasedActionButton","online":true,"offline":true},{"name":"encounters-summary-dashboard","slot":"patient-chart-dashboard-slot","component":"encountersSummaryDashboardLink","meta":{"slot":"patient-chart-encounters-dashboard-slot","path":"Visits","layoutMode":"anchored"},"order":5,"online":true,"offline":true},{"name":"past-visits-detail-overview","slot":"patient-chart-encounters-dashboard-slot","component":"pastVisitsDetailOverview","order":1,"meta":{"title":"Visits","view":"visits"},"online":true,"offline":true},{"name":"patient-details-tile","slot":"visit-form-header-slot","component":"patientDetailsTile","order":1,"online":true,"offline":true},{"name":"start-visit-button-patient-search","slot":"start-visit-button-slot","component":"startVisitPatientSearchActionButton","online":true,"offline":true},{"name":"visit-attribute-tags","slot":"patient-banner-tags-slot","component":"visitAttributeTags","online":true,"offline":true},{"name":"current-visit-summary","component":"currentVisitSummary","online":true,"offline":true,"meta":{"fullWidth":true}},{"name":"edit-visit-action-button","slot":"visit-detail-overview-actions","component":"editVisitDetailsActionButton","online":true,"offline":true,"order":0},{"name":"delete-visit-action-button","slot":"visit-detail-overview-actions","component":"deleteVisitActionButton","online":true,"offline":true,"order":1},{"name":"active-visit-action-button","slot":"active-visit-actions","component":"activeVisitActionsComponent","online":true,"offline":true,"order":1},{"name":"visit-context-header","slot":"visit-context-header-slot","component":"visitContextHeader"},{"name":"retrospective-date-time-picker","slot":"restrospective-date-time-picker-slot","component":"retrospectiveDateTimePicker"}],"featureFlags":[{"description":"Features to enter data for past visits. Includes the 'Edit Past Visit' button in the start visit dialog, and the 'Add Past Visit' button in the patient header","flagName":"rde","label":"Retrospective Data Entry"},{"description":"When enabled, encounter summaries will display the full form layout instead of a simple observation list.","flagName":"enable-embedded-form-view","label":"Enable Embedded Form View"}],"modals":[{"name":"delete-encounter-modal","component":"deleteEncounterModal"},{"name":"delete-visit-dialog","component":"deleteVisitModal"},{"name":"end-visit-dialog","component":"endVisitModal"},{"name":"mark-patient-alive-modal","component":"markPatientAliveModal"},{"name":"modify-visit-date-dialog","component":"modifyVisitDateModal"},{"name":"start-visit-dialog","component":"startVisitModal"},{"name":"visit-context-switcher","component":"visitContextSwitcherModal"}],"pages":[{"component":"root","routeRegex":"^patient/.+/chart","online":true,"offline":true}],"workspaces":[{"name":"mark-patient-deceased-workspace-form","component":"markPatientDeceasedForm","title":"Mark patient deceased","type":"form"},{"name":"start-visit-workspace-form","component":"startVisitWorkspace","title":"startVisitWorkspaceTitle","type":"start-visit"}],"version":"11.3.1-patch.9064"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-patient-chart-app",
3
- "version": "11.3.0",
3
+ "version": "11.3.1-patch.9064",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Patient dashboard microfrontend for the OpenMRS SPA",
6
6
  "browser": "dist/openmrs-esm-patient-chart-app.js",
@@ -55,8 +55,9 @@
55
55
  "swr": "2.x"
56
56
  },
57
57
  "devDependencies": {
58
- "@openmrs/esm-patient-common-lib": "11.3.0",
58
+ "@openmrs/esm-patient-common-lib": "11.3.1-patch.9064",
59
59
  "@types/uuid": "^9.0.4",
60
60
  "webpack": "^5.99.9"
61
- }
61
+ },
62
+ "stableVersion": "11.3.0"
62
63
  }
@@ -5,6 +5,7 @@ import { isNil } from 'lodash-es';
5
5
  import { useLayoutType } from '@openmrs/esm-framework';
6
6
  import { useLastEncounter } from '../hooks';
7
7
  import type { EncounterTileColumn, EncounterTileProps } from '../types';
8
+ import { withUnit, getConceptUnitsFromEncounter } from '../utils/concept-utils';
8
9
  import styles from './tile.scss';
9
10
 
10
11
  export const EncounterTile = memo(({ patientUuid, columns, headerTitle }: EncounterTileProps) => {
@@ -41,6 +42,10 @@ const EncounterData: React.FC<{
41
42
  }> = ({ patientUuid, column }) => {
42
43
  const { t } = useTranslation();
43
44
  const { lastEncounter, isLoading, error, isValidating } = useLastEncounter(patientUuid, column.encounterTypeUuid);
45
+ const units = getConceptUnitsFromEncounter(lastEncounter, column.concept);
46
+ const summaryUnits = column.summaryConcept?.primaryConcept
47
+ ? getConceptUnitsFromEncounter(lastEncounter, column.summaryConcept.primaryConcept)
48
+ : null;
44
49
  const obsValue = column.getObsValue(lastEncounter);
45
50
  const summaryValue =
46
51
  column.hasSummary === true && column.getSummaryObsValue && typeof column.getSummaryObsValue === 'function'
@@ -64,15 +69,11 @@ const EncounterData: React.FC<{
64
69
  <>
65
70
  <span className={styles.tileTitle}>{t(column.header)}</span>
66
71
  {!(obsValue === '--' && summaryValue !== '--' && !isNil(summaryValue)) && (
67
- <span className={styles.tileValue}>
68
- <p>{obsValue}</p>
69
- </span>
72
+ <div className={styles.tileValue}>{withUnit(obsValue, units)}</div>
70
73
  )}
71
74
 
72
75
  {!isNil(summaryValue) && summaryValue !== '--' && (
73
- <span className={styles.tileValue}>
74
- <p>{summaryValue}</p>
75
- </span>
76
+ <div className={styles.tileValue}>{withUnit(summaryValue, summaryUnits)}</div>
76
77
  )}
77
78
  </>
78
79
  );
@@ -22,7 +22,6 @@
22
22
  }
23
23
 
24
24
  .tileValue {
25
- @include type.type-style('label-01');
26
25
  margin: layout.$spacing-04 0 layout.$spacing-04;
27
26
  display: block;
28
27
  }
@@ -0,0 +1,13 @@
1
+ import { type Encounter, restBaseUrl, useOpenmrsFetchAll } from '@openmrs/esm-framework';
2
+
3
+ export function useEncountersByVisit(patientUuid: string, visitUuid: string) {
4
+ const customRepresentation =
5
+ 'custom:(uuid,encounterType:(uuid,display),encounterProviders:(provider:(person:(display))),encounterDatetime,visit:(uuid))';
6
+ const url = `${restBaseUrl}/encounter?patient=${patientUuid}&order=desc&visit=${visitUuid}&v=${customRepresentation}`;
7
+ const { data: encounters, ...rest } = useOpenmrsFetchAll<Encounter>(url);
8
+
9
+ return {
10
+ encounters,
11
+ ...rest,
12
+ };
13
+ }
@@ -5,7 +5,7 @@ import useSWR from 'swr';
5
5
  const encounterRepresentation =
6
6
  'custom:(uuid,encounterDatetime,encounterType,location:(uuid,name),' +
7
7
  'patient:(uuid,display,age,identifiers,person),encounterProviders:(uuid,provider:(uuid,name)),' +
8
- 'obs:(uuid,obsDatetime,voided,groupMembers,concept:(uuid,display,name:(uuid,name)),value:(uuid,name:(uuid,name,display),' +
8
+ 'obs:(uuid,obsDatetime,voided,groupMembers,concept:(uuid,display,units,name:(uuid,name)),value:(uuid,name:(uuid,name,display),' +
9
9
  'names:(uuid,conceptNameType,name,display))),form:(uuid,name))';
10
10
 
11
11
  export function useLastEncounter(patientUuid: string, encounterType: string) {
@@ -38,7 +38,7 @@ export interface Encounter extends OpenmrsResource {
38
38
 
39
39
  export interface Observation {
40
40
  uuid: string;
41
- concept: { uuid: string; name: string };
41
+ concept: { uuid: string; name: string; units?: string };
42
42
  value:
43
43
  | {
44
44
  uuid: string;
@@ -245,6 +245,7 @@ export interface EncounterTileColumn {
245
245
  getSummaryObsValue?: (encounter: Encounter) => string;
246
246
  encounter?: Encounter;
247
247
  hasSummary?: boolean;
248
+ summaryConcept?: SummaryConcept;
248
249
  }
249
250
  export interface EncounterTileProps {
250
251
  patientUuid: string;
@@ -0,0 +1,24 @@
1
+ import type { Encounter } from '../types';
2
+
3
+ /**
4
+ * Helper function to extract units from an encounter for a specific concept
5
+ * @param encounter The encounter containing observations
6
+ * @param conceptUuid The concept UUID to find
7
+ * @returns The units string if found
8
+ */
9
+ export function getConceptUnitsFromEncounter(encounter: Encounter | null, conceptUuid: string): string {
10
+ if (!encounter || !encounter.obs || !conceptUuid) {
11
+ return '';
12
+ }
13
+
14
+ // Find the observation for this concept
15
+ const obs = encounter.obs.find((o) => o.concept?.uuid === conceptUuid);
16
+
17
+ // Return the units if found
18
+ return obs?.concept?.units || '';
19
+ }
20
+
21
+ export const withUnit = (value: string | number, unit: string | null | undefined) => {
22
+ if (!value || value === '--') return value;
23
+ return unit ? `${value} ${unit}` : value;
24
+ };
@@ -13,6 +13,7 @@ export const getEncounterTileColumns = (tileDefinition: MenuCardProps, config: C
13
13
  concept: column.concept,
14
14
  encounterTypeUuid: column.encounterType,
15
15
  hasSummary: column.hasSummary || false,
16
+ summaryConcept: column.summaryConcept,
16
17
  getObsValue: (encounter: Encounter) => {
17
18
  let obsValue;
18
19
  if (column.conceptMappings) {
@@ -35,7 +36,9 @@ export const getEncounterTileColumns = (tileDefinition: MenuCardProps, config: C
35
36
  config: config,
36
37
  });
37
38
  }
38
- return typeof obsValue === 'string' || (typeof obsValue === 'number' && !isNaN(obsValue)) ? obsValue : obsValue?.name?.name ?? '--';
39
+ return typeof obsValue === 'string' || (typeof obsValue === 'number' && !isNaN(obsValue))
40
+ ? obsValue
41
+ : obsValue?.name?.name ?? '--';
39
42
  },
40
43
  getSummaryObsValue: column.hasSummary
41
44
  ? (encounter: Encounter) => {
@@ -19,7 +19,8 @@ export const esmPatientChartSchema = {
19
19
  encounterEditableDuration: {
20
20
  _type: Type.Number,
21
21
  _default: 0,
22
- _description: 'The number of minutes an encounter is editable after it is created. 0 means the encounter is editable forever.',
22
+ _description:
23
+ 'The number of minutes an encounter is editable after it is created. 0 means the encounter is editable forever.',
23
24
  },
24
25
  encounterEditableDurationOverridePrivileges: {
25
26
  _type: Type.Array,
@@ -27,7 +28,8 @@ export const esmPatientChartSchema = {
27
28
  _type: Type.String,
28
29
  },
29
30
  _default: [],
30
- _description: 'The privileges that allow users to edit encounters even after the editable duration (set by `encounterEditableDuration`) has expired. Any privilege in the list is sufficient to edit the encounter.',
31
+ _description:
32
+ 'The privileges that allow users to edit encounters even after the editable duration (set by `encounterEditableDuration`) has expired. Any privilege in the list is sufficient to edit the encounter.',
31
33
  },
32
34
  freeTextFieldConceptUuid: {
33
35
  _type: Type.ConceptUuid,
@@ -160,11 +162,39 @@ export const esmPatientChartSchema = {
160
162
  _description: 'Default concept uuid for other in forms',
161
163
  _default: '5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
162
164
  },
165
+ tileDefinitions: {
166
+ _type: Type.Array,
167
+ _default: [
168
+ {
169
+ title: 'Weight and Height',
170
+ columns: [
171
+ {
172
+ title: 'Weight',
173
+ concept: '5089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
174
+ encounterType: '67a71486-1a54-468f-ac3e-7091a9a79584',
175
+ hasSummary: true,
176
+ },
177
+ {
178
+ title: 'Height',
179
+ concept: '5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
180
+ encounterType: '67a71486-1a54-468f-ac3e-7091a9a79584',
181
+ hasSummary: true,
182
+ },
183
+ ],
184
+ },
185
+ ],
186
+ _description: 'Definitions for clinical summary tiles with their concepts and encounter types',
187
+ },
163
188
  requireActiveVisitForEncounterTile: {
164
189
  _type: Type.Boolean,
165
190
  _description: 'Whether to require an active visit for the encounter tile',
166
191
  _default: true,
167
192
  },
193
+ drugOrderTypeUUID: {
194
+ _type: Type.UUID,
195
+ _description: "UUID for the 'Drug' order type to fetch medications",
196
+ _default: '131168f4-15f5-102d-96e4-000c29c2a5d7',
197
+ },
168
198
  };
169
199
 
170
200
  export interface ChartConfig {
@@ -198,5 +228,15 @@ export interface ChartConfig {
198
228
  requireActiveVisitForEncounterTile: boolean;
199
229
  trueConceptUuid: string;
200
230
  falseConceptUuid: string;
231
+ tileDefinitions: Array<{
232
+ title: string;
233
+ columns: Array<{
234
+ title: string;
235
+ concept: string;
236
+ encounterType: string;
237
+ hasSummary?: boolean;
238
+ }>;
239
+ }>;
201
240
  otherConceptUuid: string;
241
+ drugOrderTypeUUID: string;
202
242
  }
@@ -1,11 +1,13 @@
1
- export const summaryDashboardMeta = {
1
+ import { type DashboardLinkConfig } from '@openmrs/esm-patient-common-lib';
2
+
3
+ export const summaryDashboardMeta: DashboardLinkConfig & { slot: string } = {
2
4
  slot: 'patient-chart-summary-dashboard-slot',
3
5
  path: 'Patient Summary',
4
6
  title: 'Patient Summary',
5
7
  icon: 'omrs-icon-report',
6
8
  };
7
9
 
8
- export const encountersDashboardMeta = {
10
+ export const encountersDashboardMeta: DashboardLinkConfig & { slot: string } = {
9
11
  slot: 'patient-chart-encounters-dashboard-slot',
10
12
  path: 'Visits',
11
13
  title: 'Visits',
@@ -6,6 +6,7 @@ import { Tag, Tooltip } from '@carbon/react';
6
6
  import { formatDate, useConfig } from '@openmrs/esm-framework';
7
7
  import type { OrderItem } from '../visit.resource';
8
8
  import styles from '../visit-detail-overview.scss';
9
+ import { type ChartConfig } from '../../../config-schema';
9
10
 
10
11
  interface MedicationSummaryProps {
11
12
  medications: Array<OrderItem>;
@@ -13,9 +14,7 @@ interface MedicationSummaryProps {
13
14
 
14
15
  const MedicationSummary: React.FC<MedicationSummaryProps> = ({ medications }) => {
15
16
  const { t } = useTranslation();
16
- const { drugOrderTypeUUID } = useConfig({
17
- externalModuleName: '@openmrs/esm-patient-medications-app',
18
- });
17
+ const { drugOrderTypeUUID } = useConfig<ChartConfig>();
19
18
 
20
19
  const isPastMedication = (order: OrderItem['order']) => {
21
20
  if (!order) {
@@ -19,8 +19,9 @@ import MedicationSummary from './medications-summary.component';
19
19
  import NotesSummary from './notes-summary.component';
20
20
  import TestsSummary from './tests-summary.component';
21
21
  import VisitEncountersTable from './encounters-table/visit-encounters-table.component';
22
- import styles from './visit-summary.scss';
22
+ import VisitTimeline from '../single-visit-details/visit-timeline/visit-timeline.component';
23
23
  import { type ChartConfig } from '../../../config-schema';
24
+ import styles from './visit-summary.scss';
24
25
 
25
26
  interface VisitSummaryProps {
26
27
  visit: Visit;
@@ -112,6 +113,9 @@ const VisitSummary: React.FC<VisitSummaryProps> = ({ visit, patientUuid }) => {
112
113
  </div>
113
114
  <Tabs>
114
115
  <TabList aria-label="Visit summary tabs" className={styles.tablist}>
116
+ <Tab className={classNames(styles.tab, styles.bodyLong01)} id="timeline-tab">
117
+ {t('timeline', 'Timeline')}
118
+ </Tab>
115
119
  <Tab
116
120
  className={classNames(styles.tab, styles.bodyLong01)}
117
121
  id="notes-tab"
@@ -146,6 +150,9 @@ const VisitSummary: React.FC<VisitSummaryProps> = ({ visit, patientUuid }) => {
146
150
  ))}
147
151
  </TabList>
148
152
  <TabPanels>
153
+ <TabPanel>
154
+ <VisitTimeline visitUuid={visit.uuid} patientUuid={patientUuid} />
155
+ </TabPanel>
149
156
  <TabPanel>
150
157
  <NotesSummary notes={notes} />
151
158
  </TabPanel>
@@ -24,7 +24,7 @@
24
24
  padding: layout.$spacing-05;
25
25
 
26
26
  :global(.cds--tabs) {
27
- min-height: 8rem;
27
+ min-height: 10rem;
28
28
  }
29
29
  }
30
30
 
@@ -0,0 +1,94 @@
1
+ import React from 'react';
2
+ import dayjs from 'dayjs';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { SkeletonText } from '@carbon/react';
5
+ import { formatDate } from '@openmrs/esm-framework';
6
+ import { CardHeader, EmptyState } from '@openmrs/esm-patient-common-lib';
7
+ import { useEncountersByVisit } from '../../../../clinical-views/hooks/useEncountersByVisit';
8
+ import styles from './visit-timeline.scss';
9
+
10
+ interface VisitTimelineProps {
11
+ patientUuid: string;
12
+ visitUuid: string;
13
+ }
14
+
15
+ function VisitTimeline({ patientUuid, visitUuid }: VisitTimelineProps) {
16
+ const { t } = useTranslation();
17
+ const { encounters, isLoading } = useEncountersByVisit(patientUuid, visitUuid);
18
+
19
+ if (isLoading) {
20
+ return (
21
+ <div className={styles.visitTimeline}>
22
+ <CardHeader title={t('timeline', 'Timeline')}>{null}</CardHeader>
23
+ <p className={styles.timelineHeader}>
24
+ <span>{t('encounter', 'Encounter')}</span> <span>&middot;</span>
25
+ <span>{t('provider', 'Provider')}</span> <span>&middot;</span>{' '}
26
+ <span>
27
+ {t('timeStarted', 'Time started')} <span>&mdash;</span> {t('timeCompleted', 'Time completed')}{' '}
28
+ </span>
29
+ </p>
30
+ <div className={styles.timelineEntries}>
31
+ {Array.from({ length: 3 }).map((_, index) => (
32
+ <p className={styles.timelineEntry} key={index}>
33
+ <div className={styles.timelineDot} />
34
+ <SkeletonText className={styles.skeleton} />
35
+ <span>&middot;</span>
36
+ <SkeletonText className={styles.skeleton} />
37
+ <span>&middot;</span>
38
+ <SkeletonText className={styles.skeleton} />
39
+ <span>&mdash;</span>
40
+ <SkeletonText className={styles.skeleton} />
41
+ </p>
42
+ ))}
43
+ <div className={styles.timelineLine} />
44
+ </div>
45
+ </div>
46
+ );
47
+ }
48
+
49
+ if (encounters?.length === 0) {
50
+ return (
51
+ <EmptyState
52
+ displayText={t('encountersForThisVisit', 'encounters for this visit')}
53
+ headerTitle={t('timeline', 'Timeline')}
54
+ />
55
+ );
56
+ }
57
+
58
+ return (
59
+ <div className={styles.visitTimeline}>
60
+ <p className={styles.timelineHeader}>
61
+ <span>{t('encounter', 'Encounter')}</span> <span>&middot;</span>
62
+ <span>{t('provider', 'Provider')}</span> <span>&middot;</span>
63
+ <span>{t('timeStarted', 'Time started')}</span>
64
+ </p>
65
+ <div className={styles.timelineEntries}>
66
+ {encounters?.map((encounter) => (
67
+ <p className={styles.timelineEntry} key={encounter.uuid}>
68
+ <div className={styles.timelineDot} />
69
+ <span className={styles.encounterType}>{encounter.encounterType.display}</span>
70
+ <span>&middot;</span>
71
+ {encounter.encounterProviders.length === 0 ? (
72
+ <span>{t('noProvider', 'No provider')}</span>
73
+ ) : (
74
+ <span>
75
+ {encounter.encounterProviders
76
+ .map((encounterProvider) => encounterProvider.provider.person.display)
77
+ .join(', ')}
78
+ </span>
79
+ )}
80
+ <span>&middot;</span>{' '}
81
+ <span>
82
+ {formatDate(new Date(encounter.encounterDatetime), {
83
+ time: dayjs(encounter.encounterDatetime).isSame(dayjs(), 'day') ? 'for today' : true,
84
+ })}
85
+ </span>
86
+ </p>
87
+ ))}
88
+ <div className={styles.timelineLine} />
89
+ </div>
90
+ </div>
91
+ );
92
+ }
93
+
94
+ export default VisitTimeline;
@@ -0,0 +1,60 @@
1
+ @use '@carbon/colors';
2
+ @use '@carbon/layout';
3
+ @use '@carbon/type';
4
+
5
+ .visitTimeline {
6
+ border: 1px solid colors.$gray-20;
7
+ background-color: colors.$white;
8
+ padding-top: layout.$spacing-05;
9
+ }
10
+
11
+ .timelineHeader {
12
+ padding: 0 layout.$spacing-10;
13
+ @include type.type-style('helper-text-01');
14
+ display: flex;
15
+ gap: layout.$spacing-03;
16
+ }
17
+
18
+ .timelineEntries {
19
+ margin: 0 layout.$spacing-08;
20
+ margin-top: layout.$spacing-04;
21
+ display: flex;
22
+ flex-direction: column;
23
+ gap: layout.$spacing-05;
24
+ margin-bottom: layout.$spacing-05;
25
+ position: relative;
26
+ }
27
+
28
+ .timelineEntry {
29
+ display: flex;
30
+ gap: layout.$spacing-03;
31
+ align-items: center;
32
+ }
33
+
34
+ .encounterType {
35
+ font-weight: 700;
36
+ }
37
+
38
+ .timelineDot {
39
+ height: 8px;
40
+ width: 8px;
41
+ background-color: colors.$blue-30;
42
+ border-radius: 50%;
43
+ display: inline-block;
44
+ margin-right: layout.$spacing-03;
45
+ z-index: 10;
46
+ }
47
+
48
+ .timelineLine {
49
+ position: absolute;
50
+ border-left: 1px solid colors.$blue-20;
51
+ height: 100%;
52
+ left: 3.4px;
53
+ top: 4px;
54
+ z-index: 9;
55
+ }
56
+
57
+ .skeleton {
58
+ width: 5% !important; // using hardcoded px values could be a bad idea.
59
+ margin-bottom: 0 !important;
60
+ }
@@ -41,8 +41,10 @@
41
41
  "editVisitDetails": "Edit visit details",
42
42
  "emptyStateText": "There are no {{displayText}} to display for this patient",
43
43
  "enable": "Enable",
44
+ "encounter": "Encounter",
44
45
  "encounterDeleted": "Encounter deleted",
45
46
  "encounters_title": "Encounters",
47
+ "encountersForThisVisit": "encounters for this visit",
46
48
  "encounterSuccessfullyDeleted": "The encounter has been deleted successfully",
47
49
  "encounterTableActionsMenu": "Encounter table actions menu",
48
50
  "encounterType": "Encounter type",
@@ -105,6 +107,7 @@
105
107
  "nonCodedCauseOfDeath": "Non-coded cause of death",
106
108
  "nonCodedCauseOfDeathRequired": "Please enter the non-coded cause of death",
107
109
  "noObservationsFound": "No observations found",
110
+ "noProvider": "No provider",
108
111
  "notes": "Notes",
109
112
  "notes__lower": "notes",
110
113
  "noVisitsToDisplay": "No visits to display",
@@ -156,7 +159,10 @@
156
159
  "tests": "Tests",
157
160
  "theVisitIs": "The visit is",
158
161
  "time": "Time",
162
+ "timeCompleted": "Time completed",
159
163
  "timeFormat ": "Time Format",
164
+ "timeline": "Timeline",
165
+ "timeStarted": "Time started",
160
166
  "undo": "Undo",
161
167
  "unknownError": "Unknown error",
162
168
  "updateVisit": "Update visit",