@kenyaemr/esm-patient-clinical-view-app 5.4.2-pre.2539 → 5.4.2-pre.2543

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.
package/dist/routes.json CHANGED
@@ -1 +1 @@
1
- {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"kenyaemr":"^19.0.0"},"pages":[],"extensions":[{"name":"hiv-care-and-treatment-dashboard-link","component":"hivCareAndTreatmentLink","meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-hiv-care-and-treatment-dashboard-slot","path":"hiv-care-and-treatment-dashboard","layoutMode":"anchored"}},{"name":"hiv-care-and-treatment-dashboard","slot":"patient-chart-hiv-care-and-treatment-dashboard-slot","component":"hivCareAndTreatment","order":0,"online":true,"offline":false},{"name":"relationship-dashboard-link","component":"relationshipsLink","order":24,"online":true,"offline":false,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-relationship-slot","path":"relationships","layoutMode":"anchored"}},{"name":"relationship-dashboard","slot":"patient-chart-relationship-slot","component":"relationships","order":0,"online":true,"offline":false},{"name":"clinical-encounter-dashboard-link","component":"clinicalEncounterLink","order":25,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-clinical-encounter-slot","path":"clinical-encounter","layoutMode":"anchored"}},{"name":"clinical-encounter-dashboard","slot":"patient-chart-clinical-encounter-slot","component":"clinicalEncounter","order":0,"online":true,"offline":false},{"name":"maternal-and-child-health-dashboard-link","component":"maternalAndChildHealthDashboardLink","order":26,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-maternal-and-child-health-slot","path":"maternal-and-child-health","layoutMode":"anchored"}},{"name":"maternal-and-child-health-dashboard","slot":"patient-chart-maternal-and-child-health-slot","component":"maternalAndChildHealthDashboard","order":0,"online":true,"offline":false},{"name":"contact-list-dashboard-link","component":"contactListLink","order":27,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-contact-list-slot","path":"contact-list","layoutMode":"anchored"}},{"name":"contact-list-dashboard","slot":"patient-chart-contact-list-slot","component":"contactList","order":0,"online":true,"offline":false},{"component":"caseManagementDashboardLink","name":"case-management-dashboard-link","meta":{"name":"case-management","title":"Case Management","slot":"case-management-dashboard-slot","path":"/case-management"}},{"name":"in-patient-dashboard-link","component":"inPatientChartLink","order":7,"meta":{"slot":"patient-chart-in-patient-dashboard-slot","path":"in-patient","layoutMode":"anchored","columns":1,"columnSpan":1}},{"name":"in-patient-dashboard","slot":"patient-chart-in-patient-dashboard-slot","component":"inPatientChartDashboard","meta":{"fullWidth":false}},{"name":"wrap-component-view","slot":"case-management-dashboard-slot","component":"wrapComponent","order":2,"online":true,"offline":false},{"name":"case-encounter-link","component":"caseEncounterDashboardLink","order":14,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-case-encounter-slot","path":"case-management-encounters","layoutMode":"anchored"}},{"name":"case-encounter-table","slot":"patient-chart-case-encounter-slot","component":"caseEncounterTable","order":0,"online":true,"offline":false},{"component":"peerCalendarDashboardLink","name":"peer-calendar-dashboard-link","meta":{"name":"peer-calendar","title":"Peer Calendar","slot":"peer-calendar-dashboard-slot","path":"peer-management"}},{"name":"peer-calendar","slot":"peer-calendar-dashboard-slot","component":"peerCalendar","order":0,"online":true,"offline":false},{"name":"special-clinics-dashboard-link","component":"specialClinicsDashboardLink","order":15,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-special-clinics-slot","path":"special-clinics","layoutMode":"anchored"}},{"name":"special-clinics-dashboard","slot":"patient-chart-special-clinics-slot","component":"specialClinicsDashboard","order":0,"online":true,"offline":false}],"modals":[{"name":"birth-date-calculator","component":"birthDateCalculator"},{"name":"relationship-delete-confirm-dialog","component":"relationshipDeleteConfirmialog"},{"name":"end-relationship-dialog","component":"endRelationshipModal"}],"workspaces":[{"name":"contact-list-form","component":"contactListForm","title":"Contact List Form","type":"form"},{"name":"case-management-form","component":"caseManagementForm","title":"Case Management Form","type":"form"},{"name":"family-relationship-form","component":"familyRelationshipForm","title":"Family Relationship Form","type":"form"},{"name":"peers-form","component":"peersForm","title":"Add New Peer","type":"form"},{"name":"kenyaemr-cusom-form-entry-workspace","component":"peerCalendarFormEntry","title":"KVP Peer Educator Outreach Calendar","type":"form","width":"extra-wide","canMaximize":true,"canHide":true},{"name":"contact-list-update-form","component":"contactListUpdateForm","title":"Contact List Update Form","type":"form"},{"name":"other-relationship-form","component":"otherRelationshipsForm","title":"Other Relationships Form","type":"form"},{"name":"end-relationship-form","component":"endRelationshipWorkspace","title":"Discontinue relationship form","type":"form"}],"version":"5.4.2-pre.2539"}
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"kenyaemr":"^19.0.0"},"pages":[],"extensions":[{"name":"hiv-care-and-treatment-dashboard-link","component":"hivCareAndTreatmentLink","slot":"patient-chart-dashboard-slot","meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-hiv-care-and-treatment-dashboard-slot","path":"hiv-care-and-treatment-dashboard","layoutMode":"anchored"}},{"name":"hiv-care-and-treatment-dashboard","slot":"patient-chart-hiv-care-and-treatment-dashboard-slot","component":"hivCareAndTreatment","order":0,"online":true,"offline":false},{"name":"relationship-dashboard-link","component":"relationshipsLink","order":24,"online":true,"offline":false,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-relationship-slot","path":"relationships","layoutMode":"anchored"}},{"name":"relationship-dashboard","slot":"patient-chart-relationship-slot","component":"relationships","order":0,"online":true,"offline":false},{"name":"clinical-encounter-dashboard-link","component":"clinicalEncounterLink","order":25,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-clinical-encounter-slot","path":"clinical-encounter","layoutMode":"anchored"}},{"name":"clinical-encounter-dashboard","slot":"patient-chart-clinical-encounter-slot","component":"clinicalEncounter","order":0,"online":true,"offline":false},{"name":"maternal-and-child-health-dashboard-link","component":"maternalAndChildHealthDashboardLink","order":26,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-maternal-and-child-health-slot","path":"maternal-and-child-health","layoutMode":"anchored"}},{"name":"maternal-and-child-health-dashboard","slot":"patient-chart-maternal-and-child-health-slot","component":"maternalAndChildHealthDashboard","order":0,"online":true,"offline":false},{"name":"maternal-and-child-health-partograph","slot":"maternal-and-child-health-partograph-slot","component":"partograph","order":0,"online":true,"offline":false},{"name":"contact-list-dashboard-link","component":"contactListLink","order":27,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-contact-list-slot","path":"contact-list","layoutMode":"anchored"}},{"name":"contact-list-dashboard","slot":"patient-chart-contact-list-slot","component":"contactList","order":0,"online":true,"offline":false},{"component":"caseManagementDashboardLink","name":"case-management-dashboard-link","meta":{"name":"case-management","title":"Case Management","slot":"case-management-dashboard-slot","path":"/case-management"}},{"name":"in-patient-dashboard-link","component":"inPatientChartLink","order":7,"meta":{"slot":"patient-chart-in-patient-dashboard-slot","path":"in-patient","layoutMode":"anchored","columns":1,"columnSpan":1}},{"name":"in-patient-dashboard","slot":"patient-chart-in-patient-dashboard-slot","component":"inPatientChartDashboard","meta":{"fullWidth":false}},{"name":"wrap-component-view","slot":"case-management-dashboard-slot","component":"wrapComponent","order":2,"online":true,"offline":false},{"name":"case-encounter-link","component":"caseEncounterDashboardLink","order":14,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-case-encounter-slot","path":"case-management-encounters","layoutMode":"anchored"}},{"name":"case-encounter-table","slot":"patient-chart-case-encounter-slot","component":"caseEncounterTable","order":0,"online":true,"offline":false},{"component":"peerCalendarDashboardLink","name":"peer-calendar-dashboard-link","meta":{"name":"peer-calendar","title":"Peer Calendar","slot":"peer-calendar-dashboard-slot","path":"peer-management"}},{"name":"peer-calendar","slot":"peer-calendar-dashboard-slot","component":"peerCalendar","order":0,"online":true,"offline":false},{"name":"special-clinics-dashboard-link","component":"specialClinicsDashboardLink","order":15,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-special-clinics-slot","path":"special-clinics","layoutMode":"anchored"}},{"name":"special-clinics-dashboard","slot":"patient-chart-special-clinics-slot","component":"specialClinicsDashboard","order":0,"online":true,"offline":false}],"modals":[{"name":"birth-date-calculator","component":"birthDateCalculator"},{"name":"relationship-delete-confirm-dialog","component":"relationshipDeleteConfirmialog"},{"name":"end-relationship-dialog","component":"endRelationshipModal"}],"workspaces":[{"name":"contact-list-form","component":"contactListForm","title":"Contact List Form","type":"form"},{"name":"case-management-form","component":"caseManagementForm","title":"Case Management Form","type":"form"},{"name":"family-relationship-form","component":"familyRelationshipForm","title":"Family Relationship Form","type":"form"},{"name":"peers-form","component":"peersForm","title":"Add New Peer","type":"form"},{"name":"kenyaemr-cusom-form-entry-workspace","component":"peerCalendarFormEntry","title":"KVP Peer Educator Outreach Calendar","type":"form","width":"extra-wide","canMaximize":true,"canHide":true},{"name":"contact-list-update-form","component":"contactListUpdateForm","title":"Contact List Update Form","type":"form"},{"name":"other-relationship-form","component":"otherRelationshipsForm","title":"Other Relationships Form","type":"form"},{"name":"end-relationship-form","component":"endRelationshipWorkspace","title":"Discontinue relationship form","type":"form"}],"version":"5.4.2-pre.2543"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenyaemr/esm-patient-clinical-view-app",
3
- "version": "5.4.2-pre.2539",
3
+ "version": "5.4.2-pre.2543",
4
4
  "description": "Patient clinical view microfrontend for the OpenMRS SPA",
5
5
  "browser": "dist/kenyaemr-esm-patient-clinical-view-app.js",
6
6
  "main": "src/index.ts",
@@ -4,8 +4,7 @@ import { useTranslation } from 'react-i18next';
4
4
  import AntenatalCare from './antenatal-care.component';
5
5
  import PostnatalCare from './postnatal-care.component';
6
6
  import LabourDelivery from './labour-delivery.component';
7
- import Partograph from './partography/partograph.component';
8
-
7
+ import { ExtensionSlot } from '@openmrs/esm-framework';
9
8
  type MaternalAndChildDashboardProps = {
10
9
  patientUuid: string;
11
10
  };
@@ -32,7 +31,7 @@ const MaternalAndChildDashboard: React.FC<MaternalAndChildDashboardProps> = ({ p
32
31
  <LabourDelivery patientUuid={patientUuid} />
33
32
  </TabPanel>
34
33
  <TabPanel>
35
- <Partograph patientUuid={patientUuid} />
34
+ <ExtensionSlot name="maternal-and-child-health-partograph-slot" state={{ patientUuid }} />
36
35
  </TabPanel>
37
36
  </TabPanels>
38
37
  </Tabs>
@@ -0,0 +1,16 @@
1
+ import { EmptyState } from '@openmrs/esm-patient-common-lib/src';
2
+ import React from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+
5
+ const CervicalDilation = () => {
6
+ const { t } = useTranslation();
7
+ return (
8
+ <EmptyState
9
+ headerTitle={t('cervicalDilation', 'Cervical Dilation')}
10
+ displayText={t('cervicalDilation', 'Cervical Dilation')}
11
+ launchForm={() => {}}
12
+ />
13
+ );
14
+ };
15
+
16
+ export default CervicalDilation;
@@ -0,0 +1,16 @@
1
+ import { EmptyState } from '@openmrs/esm-patient-common-lib';
2
+ import React from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+
5
+ const ContractionLevel = () => {
6
+ const { t } = useTranslation();
7
+ return (
8
+ <EmptyState
9
+ headerTitle={t('contractionLevel', 'Contraction level')}
10
+ displayText={t('contractionLevel', 'Contraction level')}
11
+ launchForm={() => {}}
12
+ />
13
+ );
14
+ };
15
+
16
+ export default ContractionLevel;
@@ -0,0 +1,16 @@
1
+ import { EmptyState } from '@openmrs/esm-patient-common-lib';
2
+ import React from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+
5
+ const DescentOfHead = () => {
6
+ const { t } = useTranslation();
7
+ return (
8
+ <EmptyState
9
+ headerTitle={t('descentOfHead', 'Descent of Head')}
10
+ displayText={t('descentOfHead', 'Descent of Head')}
11
+ launchForm={() => {}}
12
+ />
13
+ );
14
+ };
15
+
16
+ export default DescentOfHead;
@@ -0,0 +1,17 @@
1
+ import { EmptyState } from '@openmrs/esm-patient-common-lib';
2
+ import React from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+
5
+ const FoetalHeartRate = () => {
6
+ const { t } = useTranslation();
7
+
8
+ return (
9
+ <EmptyState
10
+ headerTitle={t('foetalHeartRate', 'Foetal Heart Rate')}
11
+ displayText={t('foetalHeartRate', 'Foetal Heart Rate')}
12
+ launchForm={() => {}}
13
+ />
14
+ );
15
+ };
16
+
17
+ export default FoetalHeartRate;
@@ -3,6 +3,63 @@
3
3
  @use '@carbon/type';
4
4
  @use '@openmrs/esm-styleguide/src/vars' as *;
5
5
 
6
+
7
+
8
+ .expandedTabsParentContainer {
9
+ display: flex;
10
+ flex-direction: column;
11
+ margin-bottom: layout.$spacing-05;
12
+ }
13
+
14
+ .expandedTabsContainer {
15
+ display: flex;
16
+ flex-direction: row;
17
+
18
+ :global(.cds--tabs) {
19
+ margin: layout.$spacing-05 0;
20
+ width: 20%;
21
+ max-height: 100% !important;
22
+ }
23
+
24
+ :global(.cds--tab--list) {
25
+ flex-direction: column !important;
26
+ }
27
+
28
+ :global(.cds--tab-content) {
29
+ margin: layout.$spacing-05 0;
30
+ width: 100% !important;
31
+ }
32
+
33
+ :global(.cds--tabs__nav-link) {
34
+ border-bottom: 0 !important;
35
+ border-left: 3px solid $ui-03 !important;
36
+ padding: layout.$spacing-05;
37
+
38
+ }
39
+
40
+ :global(.cds--tabs__nav-item--selected) {
41
+ border-bottom: 0px !important;
42
+ border-left: 3px solid var(--brand-03) !important;
43
+ }
44
+
45
+ &:global(.cds--tabs--scrollable .cds--tabs--scrollable__nav-item + .cds--tabs--scrollable__nav-item) {
46
+ margin-left: 0 !important;
47
+ }
48
+
49
+ > ul {
50
+ flex-direction: column !important;
51
+ }
52
+
53
+ > ul > li button {
54
+ width: 12rem !important;
55
+ }
56
+
57
+ :global(.cds--tabs__nav-link) {
58
+ max-width: 12rem !important;
59
+ }
60
+ }
61
+
62
+
6
63
  .widgetContainer {
7
64
  background-color: colors.$white;
8
65
  border: 1px solid #e0e0e0;
@@ -0,0 +1,17 @@
1
+ import { EmptyState } from '@openmrs/esm-patient-common-lib';
2
+ import React from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+
5
+ const MembraneAmnioticFluidAndMoulding = () => {
6
+ const { t } = useTranslation();
7
+
8
+ return (
9
+ <EmptyState
10
+ headerTitle={t('membraneAmnioticFluidAndMoulding', 'Membrane Amniotic Fluid & Moulding')}
11
+ displayText={t('membraneAmnioticFluidAndMoulding', 'Membrane Amniotic Fluid & Moulding')}
12
+ launchForm={() => {}}
13
+ />
14
+ );
15
+ };
16
+
17
+ export default MembraneAmnioticFluidAndMoulding;
@@ -13,6 +13,18 @@ import {
13
13
  TableRow,
14
14
  Tile,
15
15
  Button,
16
+ Checkbox,
17
+ RadioButton,
18
+ RadioButtonGroup,
19
+ Stack,
20
+ Tab,
21
+ TabListVertical,
22
+ TabPanel,
23
+ TabPanels,
24
+ TabsVertical,
25
+ TextInput,
26
+ Tabs,
27
+ TabList,
16
28
  } from '@carbon/react';
17
29
  import { Add, ChartLineSmooth } from '@carbon/react/icons';
18
30
  import { EmptyDataIllustration, ErrorState, CardHeader, EmptyState } from '@openmrs/esm-patient-common-lib';
@@ -21,7 +33,7 @@ import styles from './labour-delivery.scss';
21
33
  import { usePartograph } from '../../hooks/usePartograph';
22
34
  import dayjs from 'dayjs';
23
35
  import {
24
- CervicalDilation,
36
+ CervicalDilation as cervicalDilation,
25
37
  DeviceRecorded,
26
38
  FetalHeartRate,
27
39
  PartographEncounterFormUuid,
@@ -29,6 +41,11 @@ import {
29
41
  descentOfHeadObj,
30
42
  } from '../../utils/constants';
31
43
  import PartographChart from './partograph-chart';
44
+ import FoetalHeartRate from './foetal-heart-rate.component';
45
+ import MembraneAmnioticFluidAndMoulding from './membrane-amniotic-fluid-moulding.component';
46
+ import CervicalDilation from './cervical-dilation.component';
47
+ import DescentOfHead from './descent-of-head.component';
48
+ import ContractionLevel from './contraction-level.component';
32
49
 
33
50
  interface PartographyProps {
34
51
  patientUuid: string;
@@ -77,7 +94,7 @@ const Partograph: React.FC<PartographyProps> = ({ patientUuid }) => {
77
94
  date: formatDate(parseDate(encounter.obsDatetime.toString()), { mode: 'wide', time: true }),
78
95
  timeRecorded: dayjs(new Date(groupmembersObj[DeviceRecorded])).format('HH:mm'),
79
96
  fetalHeartRate: groupmembersObj[FetalHeartRate],
80
- cervicalDilation: groupmembersObj[CervicalDilation],
97
+ cervicalDilation: groupmembersObj[cervicalDilation],
81
98
  descentOfHead: descentOfHeadObj[groupmembersObj[SurgicalProcedure]],
82
99
  contractionFrequency: '--', // TODO: get from obsGroup 163750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
83
100
  contractionDuration: '--', // TODO: get from obsGroup 163750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@@ -96,7 +113,7 @@ const Partograph: React.FC<PartographyProps> = ({ patientUuid }) => {
96
113
  id: `${encounter.uuid}`,
97
114
  date: encounter.obsDatetime,
98
115
  fetalHeartRate: groupmembersObj[FetalHeartRate],
99
- cervicalDilation: groupmembersObj[CervicalDilation],
116
+ cervicalDilation: groupmembersObj[cervicalDilation],
100
117
  descentOfHead: descentOfHeadObj[groupmembersObj[SurgicalProcedure]],
101
118
  };
102
119
  }) ?? [];
@@ -122,110 +139,37 @@ const Partograph: React.FC<PartographyProps> = ({ patientUuid }) => {
122
139
  return <ErrorState headerTitle={headerTitle} error={error} />;
123
140
  }
124
141
 
125
- if (encounters?.length === 0) {
126
- return (
127
- <Layer>
128
- <Tile className={styles.tile}>
129
- <div className={!isDesktop(layout) ? styles.tabletHeading : styles.desktopHeading}>
130
- <h4>{headerTitle}</h4>
131
- </div>
132
- <EmptyDataIllustration />
133
- <p className={styles.content}>There is no partograph data to display for this patient.</p>
134
- <Button onClick={handleAddHistory} renderIcon={Add} kind="ghost">
135
- {t('recordLabourDetails', 'Record labour details')}
136
- </Button>
137
- </Tile>
138
- </Layer>
139
- );
140
- }
141
142
  return (
142
- <>
143
- {(() => {
144
- if (encounters && encounters?.length) {
145
- return (
146
- <div className={styles.widgetCard}>
147
- <CardHeader title={headerTitle}>
148
- <div className={styles.backgroundDataFetchingIndicator}>
149
- <span>{isValidating ? isLoading : null}</span>
150
- </div>
151
- <div className={styles.vitalsHeaderActionItems}>
152
- <div className={styles.toggleButtons}>
153
- <Button
154
- className={styles.tableViewToggle}
155
- size="sm"
156
- kind={chartView ? 'ghost' : 'tertiary'}
157
- hasIconOnly
158
- renderIcon={(props) => <Table {...props} size={16} />}
159
- iconDescription={t('tableView', 'Table View')}
160
- onClick={() => setChartView(false)}
161
- />
162
- <Button
163
- className={styles.chartViewToggle}
164
- size="sm"
165
- kind={chartView ? 'tertiary' : 'ghost'}
166
- hasIconOnly
167
- renderIcon={(props) => <ChartLineSmooth {...props} size={16} />}
168
- iconDescription={t('chartView', 'Chart View')}
169
- onClick={() => setChartView(true)}
170
- />
171
- </div>
172
- <span className={styles.divider}>|</span>
173
-
174
- <Button
175
- kind="ghost"
176
- onClick={handleAddHistory}
177
- renderIcon={(props) => <Add {...props} size={16} />}
178
- iconDescription="Add vitals">
179
- {t('add', 'Add')}
180
- </Button>
181
- </div>
182
- </CardHeader>
183
- {chartView ? (
184
- <PartographChart partograpyComponents={chartData} />
185
- ) : (
186
- <DataTable
187
- useZebraStyles
188
- headers={headers}
189
- rows={tableRows}
190
- size="sm"
191
- render={({ rows, headers, getHeaderProps, getTableProps, getTableContainerProps }) => {
192
- return (
193
- <TableContainer {...getTableContainerProps()}>
194
- <Table {...getTableProps()}>
195
- <TableHead>
196
- <TableRow>
197
- {headers.map((header) => (
198
- <TableHeader
199
- {...getHeaderProps({
200
- header,
201
- isSortable: true,
202
- })}>
203
- {header.header}
204
- </TableHeader>
205
- ))}
206
- </TableRow>
207
- </TableHead>
208
- <TableBody>
209
- {rows.map((row) => (
210
- <TableRow key={row.id}>
211
- {row.cells.map((cell) => (
212
- <TableCell key={cell.id}>{cell.value ?? '--'}</TableCell>
213
- ))}
214
- </TableRow>
215
- ))}
216
- </TableBody>
217
- </Table>
218
- </TableContainer>
219
- );
220
- }}
221
- />
222
- )}
223
- </div>
224
- );
225
- }
226
- return <EmptyState displayText={displayText} headerTitle={headerTitle} />;
227
- })()}
228
- </>
143
+ <div className={styles.expandedTabsParentContainer}>
144
+ <div className={styles.expandedTabsContainer}>
145
+ <Tabs>
146
+ <TabList aria-label={t('tabList', 'Tab List')}>
147
+ <Tab>{t('foetalHeartRate', 'Foetal Heart Rate')}</Tab>
148
+ <Tab>{t('membraneAmnioticFluidAndMoulding', 'Membrane Amniotic Fluid & Moulding')}</Tab>
149
+ <Tab>{t('cervicalDilation', 'Cervical Dilation')}</Tab>
150
+ <Tab>{t('descentOfHead', 'Descent of Head')}</Tab>
151
+ <Tab>{t('contractionLevel', 'Contraction level')}</Tab>
152
+ </TabList>
153
+ <TabPanels>
154
+ <TabPanel className={styles.orderTabs}>
155
+ <FoetalHeartRate />
156
+ </TabPanel>
157
+ <TabPanel className={styles.orderTabs}>
158
+ <MembraneAmnioticFluidAndMoulding />
159
+ </TabPanel>
160
+ <TabPanel className={styles.orderTabs}>
161
+ <CervicalDilation />
162
+ </TabPanel>
163
+ <TabPanel className={styles.orderTabs}>
164
+ <DescentOfHead />
165
+ </TabPanel>
166
+ <TabPanel className={styles.orderTabs}>
167
+ <ContractionLevel />
168
+ </TabPanel>
169
+ </TabPanels>
170
+ </Tabs>
171
+ </div>
172
+ </div>
229
173
  );
230
174
  };
231
175
  export default Partograph;
package/src/routes.json CHANGED
@@ -8,6 +8,7 @@
8
8
  {
9
9
  "name": "hiv-care-and-treatment-dashboard-link",
10
10
  "component": "hivCareAndTreatmentLink",
11
+ "slot": "patient-chart-dashboard-slot",
11
12
  "meta": {
12
13
  "columns": 1,
13
14
  "columnSpan": 1,
@@ -86,6 +87,14 @@
86
87
  "online": true,
87
88
  "offline": false
88
89
  },
90
+ {
91
+ "name": "maternal-and-child-health-partograph",
92
+ "slot": "maternal-and-child-health-partograph-slot",
93
+ "component": "partograph",
94
+ "order": 0,
95
+ "online": true,
96
+ "offline": false
97
+ },
89
98
  {
90
99
  "name": "contact-list-dashboard-link",
91
100
  "component": "contactListLink",