@kenyaemr/esm-patient-clinical-view-app 5.4.2-pre.2351 → 5.4.2-pre.2354

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 (61) hide show
  1. package/.turbo/turbo-build.log +11 -11
  2. package/dist/162.js +1 -1
  3. package/dist/197.js +1 -1
  4. package/dist/294.js +1 -1
  5. package/dist/296.js +1 -1
  6. package/dist/296.js.map +1 -1
  7. package/dist/300.js +1 -1
  8. package/dist/714.js +1 -0
  9. package/dist/714.js.map +1 -0
  10. package/dist/721.js +1 -0
  11. package/dist/721.js.map +1 -0
  12. package/dist/740.js +2 -0
  13. package/dist/740.js.map +1 -0
  14. package/dist/kenyaemr-esm-patient-clinical-view-app.js +1 -1
  15. package/dist/kenyaemr-esm-patient-clinical-view-app.js.buildmanifest.json +92 -92
  16. package/dist/kenyaemr-esm-patient-clinical-view-app.js.map +1 -1
  17. package/dist/main.js +1 -1
  18. package/dist/main.js.map +1 -1
  19. package/dist/routes.json +1 -1
  20. package/package.json +2 -2
  21. package/src/clinical-encounter/clinical-encounter-dashboard-meta.tsx +1 -4
  22. package/src/clinical-encounter/dashboard/clinical-encounter-dashboard.component.tsx +69 -72
  23. package/src/contact-list/contact-dashboard.component.tsx +29 -0
  24. package/src/dashboard/createDashboardLink.tsx +24 -0
  25. package/src/dashboard/dashboard.component.tsx +56 -0
  26. package/src/{dashboard.meta.tsx → dashboard/dashboard.meta.tsx} +12 -52
  27. package/src/dashboard/dashboard.scss +13 -0
  28. package/src/in-patient/in-patient.meta.tsx +1 -1
  29. package/src/index.ts +50 -91
  30. package/src/maternal-and-child-health/labour-delivery.component.tsx +0 -1
  31. package/src/maternal-and-child-health/maternal-and-child.component.tsx +43 -0
  32. package/src/maternal-and-child-health/mch-dashboard.meta.tsx +5 -34
  33. package/src/maternal-and-child-health/partography/labour-delivery.scss +8 -9
  34. package/src/root.scss +2 -66
  35. package/src/routes.json +64 -143
  36. package/src/special-clinics/special-clinic.component.tsx +53 -0
  37. package/src/special-clinics/special-clinics.scss +23 -0
  38. package/src/specialized-clinics/generic-nav-links/generic-dashboard.component.tsx +14 -27
  39. package/src/specialized-clinics/generic-nav-links/useEncounters.tsx +3 -3
  40. package/src/specialized-clinics/hiv-care-and-treatment-services/hiv-care-and-treatment-dashboard.meta.tsx +6 -21
  41. package/src/specialized-clinics/hiv-care-and-treatment-services/hiv-care-and-treatment.component.tsx +38 -0
  42. package/src/ui/encounter-list/encounter-list.component.tsx +3 -12
  43. package/src/ui/encounter-list/encounter-list.scss +5 -6
  44. package/translations/am.json +6 -2
  45. package/translations/en.json +6 -2
  46. package/translations/sw.json +6 -2
  47. package/dist/292.js +0 -1
  48. package/dist/292.js.map +0 -1
  49. package/dist/349.js +0 -2
  50. package/dist/349.js.map +0 -1
  51. package/dist/60.js +0 -1
  52. package/dist/60.js.map +0 -1
  53. package/src/clinical-view-group/clinical-view-section.component.tsx +0 -33
  54. package/src/clinical-view-group/clinical-view-section.scss +0 -15
  55. package/src/clinical-view-group/createDashboardGroup.tsx +0 -61
  56. package/src/clinical-view-group/dashboard-group.component.tsx +0 -35
  57. package/src/clinical-view-group/dashboard-group.scss +0 -21
  58. package/src/left-panel-link.component.tsx +0 -41
  59. package/src/specialized-clinics/special-clinic-dashboard.meta.tsx +0 -5
  60. /package/dist/{349.js.LICENSE.txt → 740.js.LICENSE.txt} +0 -0
  61. /package/src/{clinical-view-group/clinical-view-group.resource.ts → dashboard/useDashboard.tsx} +0 -0
package/src/routes.json CHANGED
@@ -6,185 +6,107 @@
6
6
  "pages": [],
7
7
  "extensions": [
8
8
  {
9
- "name": "clinical-view-section",
10
- "component": "clinicalViewPatientDashboard",
11
- "slot": "patient-chart-dashboard-slot"
12
- },
13
- {
14
- "name": "family-history",
15
- "slot": "patient-chart-family-history-slot",
16
- "component": "familyHistory",
17
- "order": 0,
18
- "online": true,
19
- "offline": false
20
- },
21
- {
22
- "name": "relationships-link",
23
- "component": "relationshipsLink",
9
+ "name": "hiv-care-and-treatment-dashboard-link",
24
10
  "slot": "patient-chart-dashboard-slot",
25
- "order": 14,
11
+ "component": "hivCareAndTreatmentLink",
26
12
  "meta": {
27
13
  "columns": 1,
28
14
  "columnSpan": 1,
29
- "slot": "patient-chart-relationships-slot",
30
- "path": "relationships",
15
+ "slot": "patient-chart-hiv-care-and-treatment-dashboard-slot",
16
+ "path": "hiv-care-and-treatment-dashboard",
31
17
  "layoutMode": "anchored"
32
18
  }
33
19
  },
34
20
  {
35
- "name": "relationships",
36
- "slot": "patient-chart-relationships-slot",
37
- "component": "relationships",
21
+ "name": "hiv-care-and-treatment-dashboard",
22
+ "slot": "patient-chart-hiv-care-and-treatment-dashboard-slot",
23
+ "component": "hivCareAndTreatment",
38
24
  "order": 0,
39
25
  "online": true,
40
26
  "offline": false
41
27
  },
42
28
  {
43
- "name": "contact-list-form",
44
- "component": "contactListForm"
45
- },
46
- {
47
- "name": "maternal-and-child-health-dashboard-group-link",
48
- "slot": "clinical-view-section",
49
- "component": "maternalAndChildHealthSideNavGroup"
50
- },
51
- {
52
- "name": "antenatal-care-dashboard-link",
53
- "component": "antenatalCareLink",
54
- "slot": "maternal-and-child-health-slot",
55
- "meta": {
56
- "columns": 1,
57
- "columnSpan": 1,
58
- "slot": "patient-chart-antenatal-care-dashboard-slot",
59
- "path": "antenatal-care-dashboard",
60
- "layoutMode": "anchored"
61
- }
62
- },
63
- {
64
- "name": "antenatal-care-dashboard",
65
- "slot": "patient-chart-antenatal-care-dashboard-slot",
66
- "component": "antenatalCare"
67
- },
68
- {
69
- "name": "postnatal-care-dashboard-link",
70
- "component": "postnatalCareLink",
71
- "slot": "maternal-and-child-health-slot",
72
- "meta": {
73
- "columns": 1,
74
- "columnSpan": 1,
75
- "slot": "patient-chart-postnatal-care-dashboard-slot",
76
- "path": "postnatal-care-dashboard",
77
- "layoutMode": "anchored"
78
- }
79
- },
80
- {
81
- "name": "postnatal-care-dashboard",
82
- "slot": "patient-chart-postnatal-care-dashboard-slot",
83
- "component": "postnatalCare"
84
- },
85
- {
86
- "name": "labour-and-delivery-dashboard-link",
87
- "component": "labourAndDeliveryLink",
88
- "slot": "maternal-and-child-health-slot",
89
- "meta": {
90
- "fullWidth": true,
91
- "slot": "patient-chart-labour-and-delivery-dashboard-slot",
92
- "path": "labour-and-delivery-dashboard",
93
- "layoutMode": "anchored"
94
- }
95
- },
96
- {
97
- "name": "labour-and-delivery-dashboard",
98
- "slot": "patient-chart-labour-and-delivery-dashboard-slot",
99
- "component": "labourAndDelivery",
100
- "meta": {
101
- "fullWidth": true
102
- }
103
- },
104
- {
105
- "name": "hiv-care-and-treatment-dashboard-group-link",
106
- "slot": "special-clinics-slot",
107
- "component": "hivCareAndTreatMentSideNavGroup"
108
- },
109
- {
110
- "name": "genericNavLinks",
111
- "slot": "special-clinics-slot",
112
- "component": "genericNavLinks",
29
+ "name": "relationship-dashboard-link",
30
+ "slot": "patient-chart-dashboard-slot",
31
+ "component": "relationshipsLink",
32
+ "order": 24,
33
+ "online": true,
34
+ "offline": false,
113
35
  "meta": {
114
36
  "columns": 1,
115
37
  "columnSpan": 1,
116
- "slot": "patient-chart-special-clinic-dashboard-slot",
117
- "path": "special-clinics-dashboard",
38
+ "slot": "patient-chart-relationship-slot",
39
+ "path": "relationships",
118
40
  "layoutMode": "anchored"
119
41
  }
120
42
  },
121
43
  {
122
- "name": "patient-chart-special-clinic-dashboard-slot",
123
- "slot": "patient-chart-special-clinic-dashboard-slot",
124
- "component": "genericDashboard"
44
+ "name": "relationship-dashboard",
45
+ "slot": "patient-chart-relationship-slot",
46
+ "component": "relationships",
47
+ "order": 0,
48
+ "online": true,
49
+ "offline": false
125
50
  },
126
51
  {
127
- "name": "hts-dashboard-link",
128
- "component": "htsDashboardLink",
129
- "slot": "hiv-care-and-treatment-slot",
52
+ "name": "clinical-encounter-dashboard-link",
53
+ "component": "clinicalEncounterLink",
54
+ "slot": "patient-chart-dashboard-slot",
55
+ "order": 25,
130
56
  "meta": {
131
57
  "columns": 1,
132
58
  "columnSpan": 1,
133
- "slot": "patient-chart-hts-dashboard-slot",
134
- "path": "hts-dashboard",
59
+ "slot": "patient-chart-clinical-encounter-slot",
60
+ "path": "clinical-encounter",
135
61
  "layoutMode": "anchored"
136
62
  }
137
63
  },
138
64
  {
139
- "name": "hts-clinical-view",
140
- "slot": "patient-chart-hts-dashboard-slot",
141
- "component": "htsClinicalView",
142
- "order": 2,
65
+ "name": "clinical-encounter-dashboard",
66
+ "slot": "patient-chart-clinical-encounter-slot",
67
+ "component": "clinicalEncounter",
68
+ "order": 0,
143
69
  "online": true,
144
70
  "offline": false
145
71
  },
146
72
  {
147
- "name": "defaulter-tracing-dashboard-link",
148
- "component": "defaulterTracingLink",
149
- "slot": "hiv-care-and-treatment-slot",
73
+ "name": "maternal-and-child-health-dashboard-link",
74
+ "component": "maternalAndChildHealthDashboardLink",
75
+ "slot": "patient-chart-dashboard-slot",
76
+ "order": 26,
150
77
  "meta": {
151
78
  "columns": 1,
152
79
  "columnSpan": 1,
153
- "slot": "patient-chart-defaulter-tracing-dashboard-slot",
154
- "path": "defaulter-tracing-dashboard",
80
+ "slot": "patient-chart-maternal-and-child-health-slot",
81
+ "path": "maternal-and-child-health",
155
82
  "layoutMode": "anchored"
156
83
  }
157
84
  },
158
85
  {
159
- "name": "defaulter-tracing-dashboard",
160
- "slot": "patient-chart-defaulter-tracing-dashboard-slot",
161
- "component": "defaulterTracing",
162
- "order": 3,
86
+ "name": "maternal-and-child-health-dashboard",
87
+ "slot": "patient-chart-maternal-and-child-health-slot",
88
+ "component": "maternalAndChildHealthDashboard",
89
+ "order": 0,
163
90
  "online": true,
164
91
  "offline": false
165
92
  },
166
93
  {
167
- "name": "special-clinics-dashboard-group-link",
168
- "slot": "clinical-view-section",
169
- "component": "specialClinicsSideNavGroup"
170
- },
171
- {
172
- "name": "clinical-encounter-link",
173
- "component": "inPatientClinicalEncounterLink",
174
- "slot": "clinical-view-section",
175
- "order": 40,
94
+ "name": "contact-list-dashboard-link",
95
+ "component": "contactListLink",
96
+ "slot": "patient-chart-dashboard-slot",
97
+ "order": 27,
176
98
  "meta": {
177
99
  "columns": 1,
178
100
  "columnSpan": 1,
179
- "slot": "patient-chart-clinical-encounter-slot",
180
- "path": "clinical-encounter",
101
+ "slot": "patient-chart-contact-list-slot",
102
+ "path": "contact-list",
181
103
  "layoutMode": "anchored"
182
104
  }
183
105
  },
184
106
  {
185
- "name": "clinical-encounter",
186
- "slot": "patient-chart-clinical-encounter-slot",
187
- "component": "inPatientClinicalEncounter",
107
+ "name": "contact-list-dashboard",
108
+ "slot": "patient-chart-contact-list-slot",
109
+ "component": "contactList",
188
110
  "order": 0,
189
111
  "online": true,
190
112
  "offline": false
@@ -252,6 +174,7 @@
252
174
  {
253
175
  "component": "peerCalendarDashboardLink",
254
176
  "name": "peer-calendar-dashboard-link",
177
+ "slot": "homepage-dashboard-slot",
255
178
  "meta": {
256
179
  "name": "peer-calendar",
257
180
  "title": "Peer Calendar",
@@ -268,33 +191,25 @@
268
191
  "offline": false
269
192
  },
270
193
  {
271
- "name": "deceased-panel-dashboard-link",
272
- "component": "deceasedPanelDashboardLink",
194
+ "name": "special-clinics-dashboard-link",
195
+ "component": "specialClinicsDashboardLink",
273
196
  "slot": "patient-chart-dashboard-slot",
274
197
  "order": 15,
275
198
  "meta": {
276
199
  "columns": 1,
277
200
  "columnSpan": 1,
278
- "slot": "patient-chart-deceased-panel-slot",
279
- "path": "deceased-panel",
201
+ "slot": "patient-chart-special-clinics-slot",
202
+ "path": "special-clinics",
280
203
  "layoutMode": "anchored"
281
204
  }
282
205
  },
283
206
  {
284
- "name": "deceased-details-tabs",
285
- "slot": "patient-chart-deceased-panel-slot",
286
- "component": "deceasedDetailsTabs",
207
+ "name": "special-clinics-dashboard",
208
+ "slot": "patient-chart-special-clinics-slot",
209
+ "component": "specialClinicsDashboard",
287
210
  "order": 0,
288
211
  "online": true,
289
212
  "offline": false
290
- },
291
- {
292
- "name": "parto-graph-chart",
293
- "slot": "patient-chart-labour-and-delivery-dashboard-slot",
294
- "component": "partograph",
295
- "meta": {
296
- "fullWidth": true
297
- }
298
213
  }
299
214
  ],
300
215
  "modals": [
@@ -312,6 +227,12 @@
312
227
  }
313
228
  ],
314
229
  "workspaces": [
230
+ {
231
+ "name": "contact-list-form",
232
+ "component": "contactListForm",
233
+ "title": "Contact List Form",
234
+ "type": "form"
235
+ },
315
236
  {
316
237
  "name": "case-management-form",
317
238
  "component": "caseManagementForm",
@@ -0,0 +1,53 @@
1
+ import React, { useMemo, useState } from 'react';
2
+ import { useConfig } from '@openmrs/esm-framework';
3
+ import { ConfigObject } from '../config-schema';
4
+ import GenericDashboard from '../specialized-clinics/generic-nav-links/generic-dashboard.component';
5
+ import { Dropdown, Layer } from '@carbon/react';
6
+ import { useTranslation } from 'react-i18next';
7
+ import styles from './special-clinics.scss';
8
+
9
+ type SpecialClinicDashboardProps = {
10
+ patientUuid: string;
11
+ };
12
+
13
+ type ClinicConfig = {
14
+ title: string;
15
+ encounterTypeUuid: string;
16
+ formUuid: string;
17
+ };
18
+
19
+ const SpecialClinicDashboard: React.FC<SpecialClinicDashboardProps> = ({ patientUuid }) => {
20
+ const { t } = useTranslation();
21
+ const { specialClinics } = useConfig<ConfigObject>();
22
+ const [selectedClinic, setSelectedClinic] = useState<ClinicConfig | null>(specialClinics[0]);
23
+
24
+ const sortedClinics = useMemo(() => specialClinics.sort((a, b) => a.title.localeCompare(b.title)), [specialClinics]);
25
+
26
+ return (
27
+ <Layer>
28
+ <div className={styles.dashboardContainer}>
29
+ <h4 className={styles.dashboardTitle}>{t('specialClinics', 'Special Clinics')}</h4>
30
+ <Dropdown
31
+ id="default"
32
+ itemToString={(item) => item?.title}
33
+ items={sortedClinics}
34
+ label={t('selectClinic', 'Select Clinic')}
35
+ hideLabel={true}
36
+ type="default"
37
+ className={styles.dropdown}
38
+ titleText={t('selectClinic', 'Select Clinic')}
39
+ warnText={t('selectClinic', 'Select Clinic')}
40
+ size="md"
41
+ initialSelectedItem={selectedClinic}
42
+ direction="bottom"
43
+ onChange={(data) => setSelectedClinic(data.selectedItem)}
44
+ />
45
+ </div>
46
+ <Layer level={0}>
47
+ <GenericDashboard patientUuid={patientUuid} clinicConfig={selectedClinic} />
48
+ </Layer>
49
+ </Layer>
50
+ );
51
+ };
52
+
53
+ export default SpecialClinicDashboard;
@@ -0,0 +1,23 @@
1
+ @use '@carbon/type';
2
+ @use '@carbon/layout';
3
+ @use '@carbon/colors';
4
+
5
+ .dashboardContainer {
6
+ height: layout.$layout-04;
7
+ align-content: center;
8
+ display: flex;
9
+ flex-direction: row;
10
+ justify-content: space-between;
11
+ align-items: center;
12
+ background-color: colors.$white;
13
+ margin-bottom: layout.$layout-01;
14
+ padding: layout.$layout-01;
15
+ }
16
+
17
+ .dashboardTitle {
18
+ @include type.type-style('heading-01');
19
+ }
20
+
21
+ .dropdown {
22
+ width: 23rem;
23
+ }
@@ -9,37 +9,24 @@ import { DataTableSkeleton, Button } from '@carbon/react';
9
9
  import GenericTable from './generic-table.component';
10
10
  import { deleteEncounter } from '../../case-management/encounters/case-encounter-table.resource';
11
11
 
12
- type GenericDashboardProps = { patientUuid: string };
12
+ type GenericDashboardProps = {
13
+ patientUuid: string;
14
+ clinicConfig: {
15
+ formUuid: string;
16
+ encounterTypeUuid: string;
17
+ title: string;
18
+ };
19
+ };
13
20
 
14
- const GenericDashboard: React.FC<GenericDashboardProps> = ({ patientUuid }) => {
21
+ const GenericDashboard: React.FC<GenericDashboardProps> = ({ patientUuid, clinicConfig }) => {
15
22
  const { t } = useTranslation();
16
- const { specialClinics } = useConfig<ConfigObject>();
17
- const [clinic, setClinic] = useState('');
18
- const clinicInfo = specialClinics.find(({ id }) => id === clinic);
19
23
  const { encounters, isLoading, error, mutate } = useEncounters(
20
- clinicInfo?.encounterTypeUuid,
21
- clinicInfo?.formUuid,
24
+ clinicConfig.encounterTypeUuid,
25
+ clinicConfig.formUuid,
22
26
  patientUuid,
23
27
  );
24
28
 
25
- useEffect(() => {
26
- const handleURLChange = () => {
27
- const urlParams = new URLSearchParams(window.location.search);
28
- const clinicParam = urlParams.get('clinic');
29
- if (clinicParam) {
30
- setClinic(clinicParam);
31
- }
32
- };
33
-
34
- // Call once on initial load
35
- handleURLChange();
36
- window.onpopstate = handleURLChange;
37
- return () => {
38
- window.onpopstate = null;
39
- };
40
- }, []);
41
-
42
- const clinicalFormTitle = capitalize(clinic.replace('-', ' '));
29
+ const clinicalFormTitle = capitalize(clinicConfig.title.replace('-', ' '));
43
30
 
44
31
  const handleWorkspaceForm = () => {
45
32
  launchWorkspace('patient-form-entry-workspace', {
@@ -47,7 +34,7 @@ const GenericDashboard: React.FC<GenericDashboardProps> = ({ patientUuid }) => {
47
34
  mutateForm: mutate,
48
35
  formInfo: {
49
36
  encounterUuid: '',
50
- formUuid: clinicInfo?.formUuid,
37
+ formUuid: clinicConfig.formUuid,
51
38
  additionalProps: {},
52
39
  },
53
40
  });
@@ -58,7 +45,7 @@ const GenericDashboard: React.FC<GenericDashboardProps> = ({ patientUuid }) => {
58
45
  mutateForm: mutate,
59
46
  formInfo: {
60
47
  encounterUuid: encounterUuid,
61
- formUuid: clinicInfo?.formUuid,
48
+ formUuid: clinicConfig.formUuid,
62
49
  additionalProps: {},
63
50
  },
64
51
  });
@@ -9,10 +9,10 @@ export const useEncounters = (encounterUuid: string, formUuid: string, patientUu
9
9
  openmrsFetch,
10
10
  );
11
11
  const filteredByEncounterTypeUuid =
12
- data?.data?.results.filter(
13
- (encounter) => encounter.encounterType.uuid === encounterUuid && encounter.form.uuid === formUuid,
12
+ data?.data?.results?.filter(
13
+ (encounter) => encounter?.encounterType?.uuid === encounterUuid && encounter.form?.uuid === formUuid,
14
14
  ) ?? [];
15
- return { encounters: filteredByEncounterTypeUuid, isLoading, isValidating, error, mutate };
15
+ return { encounters: filteredByEncounterTypeUuid ?? [], isLoading, isValidating, error, mutate };
16
16
  };
17
17
 
18
18
  export const genericTableHeader = [
@@ -1,24 +1,9 @@
1
- export const htsDashboardMeta = {
2
- slot: 'patient-chart-hts-dashboard-slot',
1
+ export const hivCareAndTreatmentDashboardMeta = {
2
+ slot: 'patient-chart-hiv-care-and-treatment-dashboard-slot',
3
3
  columns: 1,
4
- title: 'HIV Testing Services',
5
- path: 'hts-dashboard',
6
- moduleName: '@kenyaemr/esm-patient-clinical-view-app',
7
- icon: '',
8
- };
9
- export const defaulterTracingDashboardMeta = {
10
- slot: 'patient-chart-defaulter-tracing-dashboard-slot',
11
- columns: 1,
12
- title: 'Defaulter Tracing',
13
- path: 'defaulter-tracing-dashboard',
14
- moduleName: '@kenyaemr/esm-patient-clinical-view-app',
15
- icon: '',
16
- };
17
-
18
- export const hivCareAndTreatmentNavGroup = {
19
4
  title: 'HIV Care & Treatment',
20
- slotName: 'hiv-care-and-treatment-slot',
21
- isExpanded: false,
22
- isChild: true,
23
- showWhenExpression: "enrollment.includes('HIV')",
5
+ path: 'hiv-care-and-treatment-dashboard',
6
+ moduleName: '@kenyaemr/esm-patient-clinical-view-app',
7
+ icon: 'omrs-icon-programs',
8
+ showWhenExpression: 'patientEnrollments.filter(enrollment => enrollment.program.name === "HIV").length > 0',
24
9
  };
@@ -0,0 +1,38 @@
1
+ import { Tabs, TabList, Tab, TabPanels, TabPanel, Layer, Checkbox, Button, TextInput } from '@carbon/react';
2
+ import React from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import DefaulterTracing from './defaulter-tracing/defaulter-tracing.component';
5
+ import HivTestingEncountersList from './hiv-testing-services/views/hiv-testing/hiv-testing-services.component';
6
+ import { ExtensionSlot } from '@openmrs/esm-framework';
7
+
8
+ type HivCareAndTreatmentProps = {
9
+ patientUuid: string;
10
+ };
11
+
12
+ const HivCareAndTreatment = ({ patientUuid }: HivCareAndTreatmentProps) => {
13
+ const { t } = useTranslation();
14
+ return (
15
+ <Layer>
16
+ <Tabs>
17
+ <TabList contained>
18
+ <Tab>{t('defaulterTracing', 'Defaulter Tracing')}</Tab>
19
+ <Tab>{t('hts', 'HIV Testing Services')}</Tab>
20
+ <Tab>{t('hivPatientSummary', 'HIV Patient Summary')}</Tab>
21
+ </TabList>
22
+ <TabPanels>
23
+ <TabPanel>
24
+ <DefaulterTracing patientUuid={patientUuid} />
25
+ </TabPanel>
26
+ <TabPanel>
27
+ <HivTestingEncountersList patientUuid={patientUuid} />
28
+ </TabPanel>
29
+ <TabPanel>
30
+ <ExtensionSlot name="hiv-patient-summary-slot" state={{ patientUuid }} />
31
+ </TabPanel>
32
+ </TabPanels>
33
+ </Tabs>
34
+ </Layer>
35
+ );
36
+ };
37
+
38
+ export default HivCareAndTreatment;
@@ -1,20 +1,11 @@
1
1
  import { ErrorState, isDesktop, navigate, useLayoutType, usePagination } from '@openmrs/esm-framework';
2
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
2
+ import React, { useCallback, useMemo, useState } from 'react';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import styles from './encounter-list.scss';
5
5
  import { OTable } from '../data-table/o-table.component';
6
- import {
7
- Button,
8
- Link,
9
- OverflowMenu,
10
- OverflowMenuItem,
11
- Pagination,
12
- DataTableSkeleton,
13
- Layer,
14
- Tile,
15
- } from '@carbon/react';
6
+ import { Link, OverflowMenu, OverflowMenuItem, Pagination, DataTableSkeleton, Layer } from '@carbon/react';
16
7
  import { useEncounterRows } from '../../hooks/useEncounterRows';
17
- import { EmptyDataIllustration, EmptyState } from '@openmrs/esm-patient-common-lib';
8
+ import { EmptyState } from '@openmrs/esm-patient-common-lib';
18
9
  import { OpenmrsEncounter } from '../../types';
19
10
 
20
11
  export interface O3FormSchema {
@@ -1,5 +1,4 @@
1
- @use '@carbon/styles/scss/spacing';
2
- @use '@carbon/styles/scss/type';
1
+ @use '@carbon/layout';
3
2
  @use '@carbon/colors';
4
3
  @use '@openmrs/esm-styleguide/src/vars' as *;
5
4
  @use '../../root.scss';
@@ -14,7 +13,7 @@
14
13
  display: flex;
15
14
  justify-content: space-between;
16
15
  align-items: center;
17
- padding: spacing.$spacing-04 0 spacing.$spacing-04 spacing.$spacing-05;
16
+ padding: layout.$spacing-04 0 layout.$spacing-04 layout.$spacing-05;
18
17
  }
19
18
 
20
19
  .widgetHeaderContainer > h4:after {
@@ -49,10 +48,10 @@
49
48
  .content {
50
49
  @extend .productiveHeading01;
51
50
  color: $text-02;
52
- margin-top: spacing.$spacing-05;
53
- margin-bottom: spacing.$spacing-03;
51
+ margin-top: layout.$spacing-05;
52
+ margin-bottom: layout.$spacing-03;
54
53
  }
55
54
 
56
55
  .errorContainer {
57
- margin: spacing.$spacing-05;
56
+ margin: layout.$spacing-05;
58
57
  }
@@ -34,15 +34,14 @@
34
34
  "chronicDisease": "ሥር የሰደደ በሽታ",
35
35
  "clientEligibility": "ብቁ",
36
36
  "clinicalEncounter": "ክሊኒካዊ ግኝት",
37
- "clinicalViews": "በዚህ ክፍል ውስጥ ለታካሚዎች ሁኔታ እና ለተመዘገቡ የእንክብካቤ ፕሮግራሞች የተበጁ ክሊኒካዊ እይታዎችን ያገኛሉ።",
38
37
  "completed": "ተጠናቋል",
39
38
  "completedDocumentations": "የተጠናቀቀ ሰነድ",
40
39
  "contact": "እውቂያ",
41
40
  "contactCreated": "እውቂያ ተፈጥሯል",
42
41
  "contacted": "ተገናኝቷል",
42
+ "contactList": "የእውቂያ ዝርዝር",
43
43
  "contactTracingForm": "የእውቂያ ፍለጋ ቅጽ",
44
44
  "contactType": "የእውቂያ አይነት",
45
- "customViews": "በዚህ ክፍል ውስጥ ለታካሚዎች ሁኔታ እና ለተመዘገቡ የእንክብካቤ ፕሮግራሞች የተበጁ ክሊኒካዊ እይታዎችን ያገኛሉ።",
46
45
  "date": "ቀን",
47
46
  "dateDate": "ቀን እና ሰዓት",
48
47
  "dateOfDelivery": "የወሊድ ቀን",
@@ -93,8 +92,10 @@
93
92
  "followUpDate": "ቀጣይ የክትትል ቀን",
94
93
  "formName": "የቅጽ ስም",
95
94
  "gestationalSize": "የእርግዝና መጠን",
95
+ "hivPatientSummary": "የኤችአይቪ ታካሚ ማጠቃለያ",
96
96
  "hivStatus": "የኤችአይቪ ሁኔታ",
97
97
  "hivTestResults": "የኤችአይቪ ሁኔታ",
98
+ "hts": "የኤችአይቪ ምርመራ አገልግሎቶች",
98
99
  "htsClinicalView": "HTS ክሊኒካዊ እይታ",
99
100
  "htsInitial": "HTS የመጀመሪያ ምርመራ",
100
101
  "htsResult": "የመጨረሻ ውጤት",
@@ -111,6 +112,7 @@
111
112
  "labourAndDelivery": "ምጥ እና ወሊድ",
112
113
  "listingDate": "የመዘገብ ቀን",
113
114
  "livingWithClient": "ከታካሚው ጋር የሚኖሩ",
115
+ "loading": "በመጫን ላይ...",
114
116
  "managePeers": "እኩያዎችን አስተዳድር",
115
117
  "maternalCondition": "የእናት ሁኔታ",
116
118
  "maternalSummary": "የእናት ማጠቃለያ",
@@ -162,11 +164,13 @@
162
164
  "reportingYear": "ዓመት",
163
165
  "save": "አስቀምጥ",
164
166
  "savedRelationship": "ግንኙነት በተሳካ ሁኔታ ተቋርጧል",
167
+ "selectClinic": "ክሊኒክ ምረጥ",
165
168
  "sex": "ፆታ",
166
169
  "sexualAssault": "3.እሱ/እሷ sexually ምቾት ያልተሰማሽን/ያልተሰማህን ነገር እንድታደርጊ/እንድታደርግ አስገድዶሽ/አስገድዶሃል?",
167
170
  "smoking": "ማጨስ",
168
171
  "smokingDuration": "የማጨስ ጊዜ",
169
172
  "socialHistory": "ማህበራዊ ታሪክ",
173
+ "specialClinics": "ልዩ ክሊኒኮች",
170
174
  "status": "ሁኔታ",
171
175
  "statusAtDischarge": "በመልቀቂያ ጊዜ ሁኔታ",
172
176
  "successfullyDeleted": "በተሳካ ሁኔታ ተሰርዟል",