@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/.turbo/turbo-build.log +17 -17
- package/dist/313.js +1 -0
- package/dist/313.js.map +1 -0
- package/dist/501.js +1 -0
- package/dist/501.js.map +1 -0
- package/dist/714.js +1 -1
- package/dist/714.js.map +1 -1
- package/dist/kenyaemr-esm-patient-clinical-view-app.js +1 -1
- package/dist/kenyaemr-esm-patient-clinical-view-app.js.buildmanifest.json +55 -55
- package/dist/main.js +1 -1
- package/dist/main.js.LICENSE.txt +0 -2
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/maternal-and-child-health/maternal-and-child.component.tsx +2 -3
- package/src/maternal-and-child-health/partography/cervical-dilation.component.tsx +16 -0
- package/src/maternal-and-child-health/partography/contraction-level.component.tsx +16 -0
- package/src/maternal-and-child-health/partography/descent-of-head.component.tsx +16 -0
- package/src/maternal-and-child-health/partography/foetal-heart-rate.component.tsx +17 -0
- package/src/maternal-and-child-health/partography/labour-delivery.scss +57 -0
- package/src/maternal-and-child-health/partography/membrane-amniotic-fluid-moulding.component.tsx +17 -0
- package/src/maternal-and-child-health/partography/partograph.component.tsx +50 -106
- package/src/routes.json +9 -0
- package/dist/108.js +0 -2
- package/dist/108.js.LICENSE.txt +0 -7
- package/dist/108.js.map +0 -1
- package/dist/400.js +0 -1
- package/dist/400.js.map +0 -1
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.
|
|
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.
|
|
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
|
|
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
|
-
<
|
|
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;
|
package/src/maternal-and-child-health/partography/membrane-amniotic-fluid-moulding.component.tsx
ADDED
|
@@ -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[
|
|
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[
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
<
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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",
|