@openmrs/esm-appointments-app 8.5.1-pre.5752 → 8.5.1-pre.5756
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 +18 -18
- package/dist/1119.js +1 -1
- package/dist/1197.js +1 -1
- package/dist/1431.js +1 -0
- package/dist/1431.js.map +1 -0
- package/dist/1559.js +2 -0
- package/dist/1559.js.map +1 -0
- package/dist/2146.js +1 -1
- package/dist/2690.js +1 -1
- package/dist/3099.js +1 -1
- package/dist/3379.js +1 -0
- package/dist/3379.js.map +1 -0
- package/dist/3584.js +1 -1
- package/dist/4055.js +1 -1
- package/dist/4132.js +1 -1
- package/dist/4300.js +1 -1
- package/dist/4335.js +1 -1
- package/dist/4599.js +1 -0
- package/dist/4599.js.map +1 -0
- package/dist/4618.js +1 -1
- package/dist/4652.js +1 -1
- package/dist/4863.js +1 -0
- package/dist/4863.js.map +1 -0
- package/dist/4889.js +1 -1
- package/dist/4889.js.map +1 -1
- package/dist/4944.js +1 -1
- package/dist/5160.js +1 -0
- package/dist/5160.js.map +1 -0
- package/dist/5173.js +1 -1
- package/dist/5241.js +1 -1
- package/dist/525.js +1 -0
- package/dist/525.js.map +1 -0
- package/dist/5442.js +1 -1
- package/dist/5449.js +1 -1
- package/dist/5449.js.map +1 -1
- package/dist/5661.js +1 -1
- package/dist/5755.js +1 -0
- package/dist/5755.js.map +1 -0
- package/dist/592.js +1 -1
- package/dist/592.js.map +1 -1
- package/dist/6022.js +1 -1
- package/dist/6467.js +1 -0
- package/dist/6467.js.map +1 -0
- package/dist/6468.js +1 -1
- package/dist/66.js +2 -0
- package/dist/66.js.LICENSE.txt +9 -0
- package/dist/66.js.map +1 -0
- package/dist/6679.js +1 -1
- package/dist/6766.js +2 -0
- package/dist/{7881.js.LICENSE.txt → 6766.js.LICENSE.txt} +0 -10
- package/dist/6766.js.map +1 -0
- package/dist/6840.js +1 -1
- package/dist/6859.js +1 -1
- package/dist/7097.js +1 -1
- package/dist/7159.js +1 -1
- package/dist/723.js +1 -1
- package/dist/7617.js +1 -1
- package/dist/7698.js +1 -1
- package/dist/7698.js.map +1 -1
- package/dist/795.js +1 -1
- package/dist/8163.js +1 -1
- package/dist/8349.js +1 -1
- package/dist/8618.js +1 -1
- package/dist/8784.js +1 -0
- package/dist/8784.js.map +1 -0
- package/dist/890.js +1 -1
- package/dist/9214.js +1 -1
- package/dist/9538.js +1 -1
- package/dist/9569.js +1 -1
- package/dist/986.js +1 -1
- package/dist/9879.js +1 -1
- package/dist/9895.js +1 -1
- package/dist/9900.js +1 -1
- package/dist/9913.js +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-appointments-app.js +1 -1
- package/dist/openmrs-esm-appointments-app.js.buildmanifest.json +389 -265
- package/dist/openmrs-esm-appointments-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/appointments/common-components/appointments-table.component.tsx +1 -0
- package/src/appointments/scheduled/scheduled-appointments.component.tsx +2 -2
- package/src/appointments.component.tsx +7 -12
- package/src/appointments.test.tsx +1 -3
- package/src/calendar/appointments-calendar-view.component.tsx +8 -10
- package/src/calendar/header/calendar-header.component.tsx +2 -2
- package/src/calendar/monthly/monthly-calendar-view.component.tsx +2 -2
- package/src/calendar/monthly/monthly-header.component.tsx +4 -4
- package/src/calendar/monthly/monthly-workload-view.component.tsx +2 -2
- package/src/form/appointments-form.workspace.tsx +2 -2
- package/src/header/appointments-header.component.tsx +12 -18
- package/src/hooks/useAppointmentList.ts +3 -3
- package/src/hooks/useClinicalMetrics.ts +3 -3
- package/src/hooks/usePatientAppointmentHistory.ts +2 -2
- package/src/hooks/useUnscheduledAppointments.ts +2 -2
- package/src/index.ts +15 -0
- package/src/metrics/metrics-cards/highest-volume-service.extension.tsx +26 -0
- package/src/metrics/metrics-cards/metrics-card.component.tsx +47 -0
- package/src/metrics/{metrics-card.scss → metrics-cards/metrics-card.scss} +0 -7
- package/src/metrics/metrics-cards/metrics-error-card.component.tsx +30 -0
- package/src/metrics/metrics-cards/metrics-error-card.scss +33 -0
- package/src/metrics/metrics-cards/providers-booked.extension.tsx +21 -0
- package/src/metrics/metrics-cards/scheduled-appointments.extension.tsx +33 -0
- package/src/metrics/metrics-container.component.tsx +19 -0
- package/src/metrics/metrics-container.scss +22 -0
- package/src/metrics/metrics-header.component.tsx +2 -2
- package/src/routes.json +18 -0
- package/src/store.ts +46 -0
- package/src/workload/monthly-view-workload/monthly-view.component.tsx +2 -2
- package/translations/am.json +3 -1
- package/translations/ar.json +3 -1
- package/translations/ar_SY.json +3 -1
- package/translations/bn.json +3 -1
- package/translations/de.json +3 -1
- package/translations/en.json +3 -1
- package/translations/en_US.json +3 -1
- package/translations/es.json +3 -1
- package/translations/es_MX.json +3 -1
- package/translations/fr.json +3 -1
- package/translations/he.json +3 -1
- package/translations/hi.json +3 -1
- package/translations/hi_IN.json +3 -1
- package/translations/id.json +3 -1
- package/translations/it.json +3 -1
- package/translations/ka.json +3 -1
- package/translations/km.json +3 -1
- package/translations/ku.json +3 -1
- package/translations/ky.json +3 -1
- package/translations/lg.json +3 -1
- package/translations/ne.json +3 -1
- package/translations/pl.json +3 -1
- package/translations/pt.json +3 -1
- package/translations/pt_BR.json +4 -2
- package/translations/qu.json +3 -1
- package/translations/ro_RO.json +3 -1
- package/translations/ru_RU.json +3 -1
- package/translations/si.json +3 -1
- package/translations/sw.json +3 -1
- package/translations/sw_KE.json +3 -1
- package/translations/tr.json +3 -1
- package/translations/tr_TR.json +3 -1
- package/translations/uk.json +3 -1
- package/translations/uz.json +3 -1
- package/translations/uz@Latn.json +3 -1
- package/translations/uz_UZ.json +3 -1
- package/translations/vi.json +3 -1
- package/translations/zh.json +3 -1
- package/translations/zh_CN.json +3 -1
- package/dist/1293.js +0 -1
- package/dist/1293.js.map +0 -1
- package/dist/1625.js +0 -1
- package/dist/1625.js.map +0 -1
- package/dist/2164.js +0 -2
- package/dist/2164.js.map +0 -1
- package/dist/2694.js +0 -1
- package/dist/2694.js.map +0 -1
- package/dist/6708.js +0 -1
- package/dist/6708.js.map +0 -1
- package/dist/7881.js +0 -2
- package/dist/7881.js.map +0 -1
- package/dist/8963.js +0 -1
- package/dist/8963.js.map +0 -1
- package/src/hooks/selected-date-context.ts +0 -23
- package/src/metrics/appointments-metrics.component.tsx +0 -72
- package/src/metrics/appointments-metrics.scss +0 -14
- package/src/metrics/appointments-metrics.test.tsx +0 -42
- package/src/metrics/metrics-card.component.tsx +0 -49
- /package/dist/{2164.js.LICENSE.txt → 1559.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openmrs-esm-appointments-app.js","mappings":"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","sources":["webpack://@openmrs/esm-appointments-app/webpack/runtime/create fake namespace object","webpack://@openmrs/esm-appointments-app/webpack/runtime/load script","webpack://@openmrs/esm-appointments-app/webpack/runtime/consumes","webpack://@openmrs/esm-appointments-app/webpack/container-entry","webpack://@openmrs/esm-appointments-app/webpack/bootstrap","webpack://@openmrs/esm-appointments-app/webpack/runtime/compat get default export","webpack://@openmrs/esm-appointments-app/webpack/runtime/define property getters","webpack://@openmrs/esm-appointments-app/webpack/runtime/ensure chunk","webpack://@openmrs/esm-appointments-app/webpack/runtime/get javascript chunk filename","webpack://@openmrs/esm-appointments-app/webpack/runtime/global","webpack://@openmrs/esm-appointments-app/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-appointments-app/webpack/runtime/make namespace object","webpack://@openmrs/esm-appointments-app/webpack/runtime/sharing","webpack://@openmrs/esm-appointments-app/webpack/runtime/publicPath","webpack://@openmrs/esm-appointments-app/webpack/runtime/jsonp chunk loading","webpack://@openmrs/esm-appointments-app/webpack/runtime/nonce","webpack://@openmrs/esm-appointments-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-appointments-app.js","mappings":"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","sources":["webpack://@openmrs/esm-appointments-app/webpack/runtime/create fake namespace object","webpack://@openmrs/esm-appointments-app/webpack/runtime/load script","webpack://@openmrs/esm-appointments-app/webpack/runtime/consumes","webpack://@openmrs/esm-appointments-app/webpack/container-entry","webpack://@openmrs/esm-appointments-app/webpack/bootstrap","webpack://@openmrs/esm-appointments-app/webpack/runtime/compat get default export","webpack://@openmrs/esm-appointments-app/webpack/runtime/define property getters","webpack://@openmrs/esm-appointments-app/webpack/runtime/ensure chunk","webpack://@openmrs/esm-appointments-app/webpack/runtime/get javascript chunk filename","webpack://@openmrs/esm-appointments-app/webpack/runtime/global","webpack://@openmrs/esm-appointments-app/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-appointments-app/webpack/runtime/make namespace object","webpack://@openmrs/esm-appointments-app/webpack/runtime/sharing","webpack://@openmrs/esm-appointments-app/webpack/runtime/publicPath","webpack://@openmrs/esm-appointments-app/webpack/runtime/jsonp chunk loading","webpack://@openmrs/esm-appointments-app/webpack/runtime/nonce","webpack://@openmrs/esm-appointments-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","backendDependencies":{"webservices.rest":"^2.2.0"},"extensions":[{"name":"home-appointments","slot":"homepage-widgets-slot","component":"homeAppointments","order":1},{"name":"clinical-appointments-dashboard-link","slot":"homepage-dashboard-slot","component":"appointmentsDashboardLink","meta":{"name":"appointments","slot":"clinical-appointments-dashboard-slot","title":"Appointments"},"order":2},{"component":"root","name":"clinical-appointments-dashboard","slot":"clinical-appointments-dashboard-slot"},{"name":"appointments-dashboard","slot":"appointments-dashboard-slot","component":"appointmentsDashboard"},{"name":"appointments-calendar-dashboard-link","slot":"calendar-dashboard-slot","component":"appointmentsCalendarDashboardLink"},{"name":"todays-appointments-dashboard","slot":"todays-appointment-slot","component":"homeAppointments"},{"name":"expected-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"checked-in-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"completed-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"missed-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"cancelled-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"early-appointments-panel","component":"earlyAppointments"},{"name":"patient-appointments-summary-dashboard","component":"patientAppointmentsSummaryDashboardLink","slot":"patient-chart-dashboard-slot","order":11,"meta":{"columns":1,"columnSpan":1,"hideDashboardTitle":true,"path":"Appointments","slot":"patient-chart-appointments-dashboard-slot","title":"Appointments"}},{"name":"appointments-details-widget","component":"patientAppointmentsDetailedSummary","slot":"patient-chart-appointments-dashboard-slot","meta":{"columnSpan":1}},{"name":"patient-upcoming-appointment-widget","component":"patientUpcomingAppointmentsWidget","slot":"visit-form-top-slot"},{"name":"search-patient","component":"searchPatient"},{"name":"home-appointments-tile","slot":"home-metrics-tiles-slot","component":"homeAppointmentsTile"}],"modals":[{"name":"end-appointment-modal","component":"endAppointmentModal"},{"name":"cancel-appointment-modal","component":"cancelAppointmentModal"}],"workspaces":[{"name":"appointments-form-workspace","component":"appointmentsFormWorkspace","title":"createNewAppointment","type":"form"}],"version":"8.5.1-pre.
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":"^2.2.0"},"extensions":[{"name":"home-appointments","slot":"homepage-widgets-slot","component":"homeAppointments","order":1},{"name":"clinical-appointments-dashboard-link","slot":"homepage-dashboard-slot","component":"appointmentsDashboardLink","meta":{"name":"appointments","slot":"clinical-appointments-dashboard-slot","title":"Appointments"},"order":2},{"component":"root","name":"clinical-appointments-dashboard","slot":"clinical-appointments-dashboard-slot"},{"name":"appointments-dashboard","slot":"appointments-dashboard-slot","component":"appointmentsDashboard"},{"name":"appointments-calendar-dashboard-link","slot":"calendar-dashboard-slot","component":"appointmentsCalendarDashboardLink"},{"name":"todays-appointments-dashboard","slot":"todays-appointment-slot","component":"homeAppointments"},{"name":"expected-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"checked-in-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"completed-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"missed-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"cancelled-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"early-appointments-panel","component":"earlyAppointments"},{"name":"patient-appointments-summary-dashboard","component":"patientAppointmentsSummaryDashboardLink","slot":"patient-chart-dashboard-slot","order":11,"meta":{"columns":1,"columnSpan":1,"hideDashboardTitle":true,"path":"Appointments","slot":"patient-chart-appointments-dashboard-slot","title":"Appointments"}},{"name":"appointments-details-widget","component":"patientAppointmentsDetailedSummary","slot":"patient-chart-appointments-dashboard-slot","meta":{"columnSpan":1}},{"name":"patient-upcoming-appointment-widget","component":"patientUpcomingAppointmentsWidget","slot":"visit-form-top-slot"},{"name":"search-patient","component":"searchPatient"},{"name":"home-appointments-tile","slot":"home-metrics-tiles-slot","component":"homeAppointmentsTile"},{"name":"metrics-card-scheduled-appointments","component":"metricsCardScheduledAppointments","slot":"appointments-metrics-slot","order":1},{"name":"metrics-card-highest-volume-service","component":"metricsCardHighestVolumeService","slot":"appointments-metrics-slot","order":2},{"name":"metrics-card-providers-booked","component":"metricsCardProvidersBooked","slot":"appointments-metrics-slot","order":3}],"modals":[{"name":"end-appointment-modal","component":"endAppointmentModal"},{"name":"cancel-appointment-modal","component":"cancelAppointmentModal"}],"workspaces":[{"name":"appointments-form-workspace","component":"appointmentsFormWorkspace","title":"createNewAppointment","type":"form"}],"version":"8.5.1-pre.5756"}
|
package/package.json
CHANGED
|
@@ -143,6 +143,7 @@ const AppointmentsTable: React.FC<AppointmentsTableProps> = ({
|
|
|
143
143
|
? t('appointmentsScheduledForToday', 'appointments scheduled for today')
|
|
144
144
|
: `${t(tableHeading)} ${t('appointments_lower', 'appointments')}`
|
|
145
145
|
}
|
|
146
|
+
// TODO @brandones: Make this a workspace, not an extension
|
|
146
147
|
launchForm={() => launchWorkspace('search-patient')}
|
|
147
148
|
/>
|
|
148
149
|
);
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
useLayoutType,
|
|
13
13
|
isDesktop,
|
|
14
14
|
} from '@openmrs/esm-framework';
|
|
15
|
-
import {
|
|
15
|
+
import { useAppointmentsStore } from '../../store';
|
|
16
16
|
import styles from './scheduled-appointments.scss';
|
|
17
17
|
|
|
18
18
|
dayjs.extend(isSameOrBefore);
|
|
@@ -27,7 +27,7 @@ const scheduledAppointmentsPanelsSlot = 'scheduled-appointments-panels-slot';
|
|
|
27
27
|
|
|
28
28
|
const ScheduledAppointments: React.FC<ScheduledAppointmentsProps> = ({ appointmentServiceTypes }) => {
|
|
29
29
|
const { t } = useTranslation();
|
|
30
|
-
const { selectedDate } =
|
|
30
|
+
const { selectedDate } = useAppointmentsStore();
|
|
31
31
|
const layout = useLayoutType();
|
|
32
32
|
const responsiveSize = isDesktop(layout) ? 'sm' : 'md';
|
|
33
33
|
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import React, { useEffect
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { useParams } from 'react-router-dom';
|
|
5
5
|
import { omrsDateFormat } from './constants';
|
|
6
|
-
import { SelectedDateContextProvider } from './hooks/selected-date-context';
|
|
7
6
|
import AppointmentTabs from './appointments/appointment-tabs.component';
|
|
8
7
|
import AppointmentsHeader from './header/appointments-header.component';
|
|
9
|
-
import AppointmentMetrics from './metrics/
|
|
8
|
+
import AppointmentMetrics from './metrics/metrics-container.component';
|
|
9
|
+
import { useAppointmentsStore, setAppointmentServiceTypes, setSelectedDate } from './store';
|
|
10
10
|
|
|
11
11
|
const Appointments: React.FC = () => {
|
|
12
12
|
const { t } = useTranslation();
|
|
13
|
-
const
|
|
14
|
-
const [selectedDate, setSelectedDate] = useState(dayjs().startOf('day').format(omrsDateFormat));
|
|
13
|
+
const { appointmentServiceTypes } = useAppointmentsStore();
|
|
15
14
|
|
|
16
15
|
const params = useParams();
|
|
17
16
|
|
|
@@ -28,15 +27,11 @@ const Appointments: React.FC = () => {
|
|
|
28
27
|
}, [params.serviceType]);
|
|
29
28
|
|
|
30
29
|
return (
|
|
31
|
-
|
|
32
|
-
<AppointmentsHeader
|
|
33
|
-
appointmentServiceTypes={appointmentServiceTypes}
|
|
34
|
-
onChange={setAppointmentServiceTypes}
|
|
35
|
-
title={t('appointments', 'Appointments')}
|
|
36
|
-
/>
|
|
30
|
+
<>
|
|
31
|
+
<AppointmentsHeader title={t('appointments', 'Appointments')} showServiceTypeFilter />
|
|
37
32
|
<AppointmentMetrics appointmentServiceTypes={appointmentServiceTypes} />
|
|
38
33
|
<AppointmentTabs appointmentServiceTypes={appointmentServiceTypes} />
|
|
39
|
-
|
|
34
|
+
</>
|
|
40
35
|
);
|
|
41
36
|
};
|
|
42
37
|
|
|
@@ -11,8 +11,6 @@ describe('Appointments', () => {
|
|
|
11
11
|
|
|
12
12
|
expect(screen.getByRole('button', { name: /appointments calendar/i })).toBeInTheDocument();
|
|
13
13
|
expect(screen.getByText(/filter appointments by service type/i)).toBeInTheDocument();
|
|
14
|
-
expect(screen.getByText(/
|
|
15
|
-
expect(screen.getByText(/highest volume service/i)).toBeInTheDocument();
|
|
16
|
-
expect(screen.getByText(/providers booked/i)).toBeInTheDocument();
|
|
14
|
+
expect(screen.getByText(/appointments calendar/i)).toBeInTheDocument();
|
|
17
15
|
});
|
|
18
16
|
});
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import React, { useEffect
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import { useParams } from 'react-router-dom';
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
5
|
import { omrsDateFormat } from '../constants';
|
|
6
6
|
import { useAppointmentsCalendar } from '../hooks/useAppointmentsCalendar';
|
|
7
|
-
import { SelectedDateContextProvider } from '../hooks/selected-date-context';
|
|
8
7
|
import AppointmentsHeader from '../header/appointments-header.component';
|
|
9
8
|
import CalendarHeader from './header/calendar-header.component';
|
|
10
9
|
import MonthlyCalendarView from './monthly/monthly-calendar-view.component';
|
|
10
|
+
import { useAppointmentsStore, setSelectedDate } from '../store';
|
|
11
11
|
|
|
12
12
|
const AppointmentsCalendarView: React.FC = () => {
|
|
13
13
|
const { t } = useTranslation();
|
|
14
|
-
const
|
|
14
|
+
const { selectedDate } = useAppointmentsStore();
|
|
15
15
|
const { calendarEvents } = useAppointmentsCalendar(dayjs(selectedDate).toISOString(), 'monthly');
|
|
16
16
|
|
|
17
17
|
let params = useParams();
|
|
@@ -23,13 +23,11 @@ const AppointmentsCalendarView: React.FC = () => {
|
|
|
23
23
|
}, [params.date]);
|
|
24
24
|
|
|
25
25
|
return (
|
|
26
|
-
<
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
</div>
|
|
32
|
-
</SelectedDateContextProvider>
|
|
26
|
+
<div data-testid="appointments-calendar">
|
|
27
|
+
<AppointmentsHeader title={t('calendar', 'Calendar')} />
|
|
28
|
+
<CalendarHeader />
|
|
29
|
+
<MonthlyCalendarView events={calendarEvents} />
|
|
30
|
+
</div>
|
|
33
31
|
);
|
|
34
32
|
};
|
|
35
33
|
|
|
@@ -5,12 +5,12 @@ import { Button } from '@carbon/react';
|
|
|
5
5
|
import { ArrowLeft } from '@carbon/react/icons';
|
|
6
6
|
import { navigate } from '@openmrs/esm-framework';
|
|
7
7
|
import { spaHomePage } from '../../constants';
|
|
8
|
-
import {
|
|
8
|
+
import { useAppointmentsStore } from '../../store';
|
|
9
9
|
import styles from './calendar-header.scss';
|
|
10
10
|
|
|
11
11
|
const CalendarHeader: React.FC = () => {
|
|
12
12
|
const { t } = useTranslation();
|
|
13
|
-
const { selectedDate } =
|
|
13
|
+
const { selectedDate } = useAppointmentsStore();
|
|
14
14
|
|
|
15
15
|
const handleClick = () => {
|
|
16
16
|
navigate({ to: `${spaHomePage}/appointments/${dayjs(selectedDate).format('YYYY-MM-DD')}` });
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import isBetween from 'dayjs/plugin/isBetween';
|
|
4
4
|
import { type DailyAppointmentsCountByService } from '../../types';
|
|
5
|
-
import {
|
|
5
|
+
import { useAppointmentsStore } from '../../store';
|
|
6
6
|
import { monthDays } from '../../helpers';
|
|
7
7
|
import MonthlyViewWorkload from './monthly-workload-view.component';
|
|
8
8
|
import MonthlyHeader from './monthly-header.component';
|
|
@@ -15,7 +15,7 @@ interface MonthlyCalendarViewProps {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
const MonthlyCalendarView: React.FC<MonthlyCalendarViewProps> = ({ events }) => {
|
|
18
|
-
const { selectedDate } =
|
|
18
|
+
const { selectedDate } = useAppointmentsStore();
|
|
19
19
|
|
|
20
20
|
return (
|
|
21
21
|
<div className={styles.calendarViewContainer}>
|
|
@@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
4
4
|
import { Button } from '@carbon/react';
|
|
5
5
|
import { formatDate } from '@openmrs/esm-framework';
|
|
6
6
|
import { omrsDateFormat } from '../../constants';
|
|
7
|
-
import {
|
|
7
|
+
import { useAppointmentsStore, setSelectedDate } from '../../store';
|
|
8
8
|
import DaysOfWeekCard from './days-of-week.component';
|
|
9
9
|
import styles from './monthly-header.scss';
|
|
10
10
|
|
|
@@ -12,15 +12,15 @@ const DAYS_IN_WEEK = ['SUN', 'MON', 'TUE', 'WED', 'THUR', 'FRI', 'SAT'];
|
|
|
12
12
|
|
|
13
13
|
const MonthlyHeader: React.FC = () => {
|
|
14
14
|
const { t } = useTranslation();
|
|
15
|
-
const { selectedDate
|
|
15
|
+
const { selectedDate } = useAppointmentsStore();
|
|
16
16
|
|
|
17
17
|
const handleSelectPrevMonth = useCallback(() => {
|
|
18
18
|
setSelectedDate(dayjs(selectedDate).subtract(1, 'month').format(omrsDateFormat));
|
|
19
|
-
}, [selectedDate
|
|
19
|
+
}, [selectedDate]);
|
|
20
20
|
|
|
21
21
|
const handleSelectNextMonth = useCallback(() => {
|
|
22
22
|
setSelectedDate(dayjs(selectedDate).add(1, 'month').format(omrsDateFormat));
|
|
23
|
-
}, [selectedDate
|
|
23
|
+
}, [selectedDate]);
|
|
24
24
|
|
|
25
25
|
return (
|
|
26
26
|
<>
|
|
@@ -6,7 +6,7 @@ import { navigate, useLayoutType } from '@openmrs/esm-framework';
|
|
|
6
6
|
import { spaHomePage } from '../../constants';
|
|
7
7
|
import { isSameMonth } from '../../helpers';
|
|
8
8
|
import { type DailyAppointmentsCountByService } from '../../types';
|
|
9
|
-
import {
|
|
9
|
+
import { useAppointmentsStore } from '../../store';
|
|
10
10
|
import MonthlyWorkloadViewExpanded from './monthly-workload-view-expanded.component';
|
|
11
11
|
import styles from './monthly-view-workload.scss';
|
|
12
12
|
|
|
@@ -18,7 +18,7 @@ export interface MonthlyWorkloadViewProps {
|
|
|
18
18
|
|
|
19
19
|
const MonthlyWorkloadView: React.FC<MonthlyWorkloadViewProps> = ({ dateTime, events, showAllServices = false }) => {
|
|
20
20
|
const layout = useLayoutType();
|
|
21
|
-
const { selectedDate } =
|
|
21
|
+
const { selectedDate } = useAppointmentsStore();
|
|
22
22
|
|
|
23
23
|
const currentData = useMemo(
|
|
24
24
|
() =>
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
} from '../constants';
|
|
56
56
|
import { useProviders } from '../hooks/useProviders';
|
|
57
57
|
import type { Appointment, AppointmentPayload, RecurringPattern } from '../types';
|
|
58
|
-
import {
|
|
58
|
+
import { useAppointmentsStore } from '../store';
|
|
59
59
|
import Workload from '../workload/workload.component';
|
|
60
60
|
import styles from './appointments-form.scss';
|
|
61
61
|
|
|
@@ -91,7 +91,7 @@ const AppointmentsForm: React.FC<AppointmentsFormProps & DefaultWorkspaceProps>
|
|
|
91
91
|
const locations = useLocations(appointmentLocationTagName);
|
|
92
92
|
const providers = useProviders();
|
|
93
93
|
const session = useSession();
|
|
94
|
-
const { selectedDate } =
|
|
94
|
+
const { selectedDate } = useAppointmentsStore();
|
|
95
95
|
const { data: services, isLoading } = useAppointmentService();
|
|
96
96
|
const { appointmentStatuses, appointmentTypes, allowAllDayAppointments } = useConfig<ConfigObject>();
|
|
97
97
|
|
|
@@ -1,34 +1,27 @@
|
|
|
1
|
-
import React, { useCallback, useMemo
|
|
1
|
+
import React, { useCallback, useMemo } from 'react';
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { MultiSelect } from '@carbon/react';
|
|
5
5
|
import { PageHeader, PageHeaderContent, AppointmentsPictogram, OpenmrsDatePicker } from '@openmrs/esm-framework';
|
|
6
6
|
import { omrsDateFormat } from '../constants';
|
|
7
7
|
import { useAppointmentServices } from '../hooks/useAppointmentService';
|
|
8
|
-
import {
|
|
8
|
+
import { useAppointmentsStore, setSelectedDate, setAppointmentServiceTypes } from '../store';
|
|
9
9
|
import styles from './appointments-header.scss';
|
|
10
10
|
|
|
11
11
|
interface AppointmentHeaderProps {
|
|
12
12
|
title: string;
|
|
13
|
-
|
|
14
|
-
onChange?: (evt) => void;
|
|
13
|
+
showServiceTypeFilter?: boolean;
|
|
15
14
|
}
|
|
16
15
|
|
|
17
|
-
const AppointmentsHeader: React.FC<AppointmentHeaderProps> = ({ title,
|
|
16
|
+
const AppointmentsHeader: React.FC<AppointmentHeaderProps> = ({ title, showServiceTypeFilter }) => {
|
|
18
17
|
const { t } = useTranslation();
|
|
19
|
-
const { selectedDate,
|
|
18
|
+
const { selectedDate, appointmentServiceTypes } = useAppointmentsStore();
|
|
20
19
|
const { serviceTypes } = useAppointmentServices();
|
|
21
20
|
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const selectedUuids = selectedItems.map((item) => item.id);
|
|
27
|
-
setSelectedItems(selectedUuids);
|
|
28
|
-
onChange?.(selectedUuids);
|
|
29
|
-
},
|
|
30
|
-
[onChange],
|
|
31
|
-
);
|
|
21
|
+
const handleChangeServiceTypeFilter = useCallback(({ selectedItems }) => {
|
|
22
|
+
const selectedUuids = selectedItems.map((item) => item.id);
|
|
23
|
+
setAppointmentServiceTypes(selectedUuids);
|
|
24
|
+
}, []);
|
|
32
25
|
|
|
33
26
|
const serviceTypeOptions = useMemo(
|
|
34
27
|
() => serviceTypes?.map((item) => ({ id: item.uuid, label: item.name })) ?? [],
|
|
@@ -46,14 +39,15 @@ const AppointmentsHeader: React.FC<AppointmentHeaderProps> = ({ title, onChange
|
|
|
46
39
|
onChange={(date) => setSelectedDate(dayjs(date).startOf('day').format(omrsDateFormat))}
|
|
47
40
|
value={dayjs(selectedDate).toDate()}
|
|
48
41
|
/>
|
|
49
|
-
{
|
|
42
|
+
{showServiceTypeFilter && (
|
|
50
43
|
<MultiSelect
|
|
51
44
|
id="serviceTypeMultiSelect"
|
|
52
45
|
items={serviceTypeOptions}
|
|
53
46
|
itemToString={(item) => (item ? item.label : '')}
|
|
54
47
|
label={t('filterAppointmentsByServiceType', 'Filter appointments by service type')}
|
|
55
|
-
onChange={
|
|
48
|
+
onChange={handleChangeServiceTypeFilter}
|
|
56
49
|
type="inline"
|
|
50
|
+
selectedItems={serviceTypeOptions.filter((item) => appointmentServiceTypes.includes(item.id))}
|
|
57
51
|
/>
|
|
58
52
|
)}
|
|
59
53
|
</div>
|
|
@@ -2,10 +2,10 @@ import dayjs from 'dayjs';
|
|
|
2
2
|
import useSWR from 'swr';
|
|
3
3
|
import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
|
|
4
4
|
import { type AppointmentsFetchResponse } from '../types';
|
|
5
|
-
import {
|
|
5
|
+
import { useAppointmentsStore } from '../store';
|
|
6
6
|
|
|
7
7
|
export const useAppointmentList = (appointmentStatus: string, date?: string) => {
|
|
8
|
-
const { selectedDate } =
|
|
8
|
+
const { selectedDate } = useAppointmentsStore();
|
|
9
9
|
const startDate = date ? date : selectedDate;
|
|
10
10
|
const endDate = dayjs(startDate).endOf('day').format('YYYY-MM-DDTHH:mm:ss.SSSZZ'); // TODO: fix? is this correct?
|
|
11
11
|
const searchUrl = `${restBaseUrl}/appointments/search`;
|
|
@@ -35,7 +35,7 @@ export const useAppointmentList = (appointmentStatus: string, date?: string) =>
|
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
export const useEarlyAppointmentList = (startDate?: string) => {
|
|
38
|
-
const { selectedDate } =
|
|
38
|
+
const { selectedDate } = useAppointmentsStore();
|
|
39
39
|
const forDate = startDate ? startDate : selectedDate;
|
|
40
40
|
const url = `${restBaseUrl}/appointment/earlyAppointment?forDate=${forDate}`;
|
|
41
41
|
|
|
@@ -4,7 +4,7 @@ import dayjs from 'dayjs';
|
|
|
4
4
|
import useSWR from 'swr';
|
|
5
5
|
import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
|
|
6
6
|
import { omrsDateFormat } from '../constants';
|
|
7
|
-
import {
|
|
7
|
+
import { useAppointmentsStore } from '../store';
|
|
8
8
|
import {
|
|
9
9
|
flattenAppointmentSummary,
|
|
10
10
|
getHighestAppointmentServiceLoad,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import { type Appointment, type AppointmentSummary } from '../types';
|
|
14
14
|
|
|
15
15
|
export const useClinicalMetrics = () => {
|
|
16
|
-
const { selectedDate } =
|
|
16
|
+
const { selectedDate } = useAppointmentsStore();
|
|
17
17
|
const endDate = dayjs(new Date(selectedDate).setHours(23, 59, 59, 59)).format(omrsDateFormat);
|
|
18
18
|
const url = `${restBaseUrl}/appointment/appointmentSummary?startDate=${selectedDate}&endDate=${endDate}`;
|
|
19
19
|
const { data, error, isLoading } = useSWR<{
|
|
@@ -37,7 +37,7 @@ export const useClinicalMetrics = () => {
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
export const useAppointmentsForDate = () => {
|
|
40
|
-
const { selectedDate } =
|
|
40
|
+
const { selectedDate } = useAppointmentsStore();
|
|
41
41
|
const url = selectedDate ? `${restBaseUrl}/appointment/all?forDate=${selectedDate}` : null;
|
|
42
42
|
|
|
43
43
|
const { data, error, isLoading, isValidating, mutate } = useSWR<{ data: Array<Appointment> }, Error>(
|
|
@@ -2,12 +2,12 @@ import dayjs from 'dayjs';
|
|
|
2
2
|
import useSWR from 'swr';
|
|
3
3
|
import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
|
|
4
4
|
import { type AppointmentsFetchResponse } from '../types';
|
|
5
|
-
import {
|
|
5
|
+
import { useAppointmentsStore } from '../store';
|
|
6
6
|
|
|
7
7
|
export function usePatientAppointmentHistory(patientUuid: string) {
|
|
8
8
|
const abortController = new AbortController();
|
|
9
9
|
const appointmentsSearchUrl = `${restBaseUrl}/appointments/search`;
|
|
10
|
-
const { selectedDate } =
|
|
10
|
+
const { selectedDate } = useAppointmentsStore();
|
|
11
11
|
|
|
12
12
|
const fetcher = () =>
|
|
13
13
|
openmrsFetch(appointmentsSearchUrl, {
|
|
@@ -2,7 +2,7 @@ import useSWR from 'swr';
|
|
|
2
2
|
import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
|
|
3
3
|
import { type Identifier } from '../types';
|
|
4
4
|
import { configSchema } from '../config-schema';
|
|
5
|
-
import {
|
|
5
|
+
import { useAppointmentsStore } from '../store';
|
|
6
6
|
|
|
7
7
|
export interface Response {
|
|
8
8
|
age: number;
|
|
@@ -20,7 +20,7 @@ export interface Response {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export function useUnscheduledAppointments() {
|
|
23
|
-
const { selectedDate } =
|
|
23
|
+
const { selectedDate } = useAppointmentsStore();
|
|
24
24
|
// TODO/NOTE: this endpoint is not implemented in main Bahmni Appointments backend
|
|
25
25
|
const url = `${restBaseUrl}/appointment/unScheduledAppointment?forDate=${selectedDate}`;
|
|
26
26
|
const { data, error, isLoading } = useSWR<{ data: Array<Response> }>(url, openmrsFetch, { errorRetryCount: 2 });
|
package/src/index.ts
CHANGED
|
@@ -75,6 +75,21 @@ export const earlyAppointments = getAsyncLifecycle(
|
|
|
75
75
|
options,
|
|
76
76
|
);
|
|
77
77
|
|
|
78
|
+
export const metricsCardScheduledAppointments = getAsyncLifecycle(
|
|
79
|
+
() => import('./metrics/metrics-cards/scheduled-appointments.extension'),
|
|
80
|
+
options,
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
export const metricsCardHighestVolumeService = getAsyncLifecycle(
|
|
84
|
+
() => import('./metrics/metrics-cards/highest-volume-service.extension'),
|
|
85
|
+
options,
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
export const metricsCardProvidersBooked = getAsyncLifecycle(
|
|
89
|
+
() => import('./metrics/metrics-cards/providers-booked.extension'),
|
|
90
|
+
options,
|
|
91
|
+
);
|
|
92
|
+
|
|
78
93
|
export const searchPatient = getAsyncLifecycle(() => import('./patient-search/patient-search.component'), options);
|
|
79
94
|
|
|
80
95
|
// t('Appointments', 'Appointments')
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useTranslation } from 'react-i18next';
|
|
3
|
+
import MetricsCard from './metrics-card.component';
|
|
4
|
+
import MetricsErrorCard from './metrics-error-card.component';
|
|
5
|
+
import { useClinicalMetrics } from '../../hooks/useClinicalMetrics';
|
|
6
|
+
import { formatDate, parseDate } from '@openmrs/esm-framework';
|
|
7
|
+
import { useAppointmentsStore } from '../../store';
|
|
8
|
+
|
|
9
|
+
export default function HighestVolumeServiceExtension() {
|
|
10
|
+
const { t } = useTranslation();
|
|
11
|
+
const { highestServiceLoad, error } = useClinicalMetrics();
|
|
12
|
+
const { selectedDate } = useAppointmentsStore();
|
|
13
|
+
const formattedStartDate = formatDate(parseDate(selectedDate), { mode: 'standard', time: false });
|
|
14
|
+
|
|
15
|
+
if (error) {
|
|
16
|
+
return <MetricsErrorCard headerLabel={t('highestServiceVolumeCardTitle', 'Highest volume service')} />;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<MetricsCard
|
|
21
|
+
headerLabel={t('highestServiceVolume', 'Highest volume service: {{time}}', { time: formattedStartDate })}
|
|
22
|
+
label={highestServiceLoad?.count !== 0 ? t(highestServiceLoad?.serviceName) : t('serviceName', 'Service name')}
|
|
23
|
+
value={highestServiceLoad?.count ?? '--'}
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
|
+
import { isEmpty } from 'lodash-es';
|
|
6
|
+
import { useAppointmentsStore } from '../../store';
|
|
7
|
+
import styles from './metrics-card.scss';
|
|
8
|
+
dayjs.extend(isSameOrBefore);
|
|
9
|
+
|
|
10
|
+
interface MetricsCardProps {
|
|
11
|
+
label: string;
|
|
12
|
+
value: number;
|
|
13
|
+
headerLabel: string;
|
|
14
|
+
count?: { pendingAppointments: Array<any>; arrivedAppointments: Array<any> };
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const MetricsCard: React.FC<MetricsCardProps> = ({ label, value, headerLabel, count }) => {
|
|
18
|
+
const { t } = useTranslation();
|
|
19
|
+
const { selectedDate } = useAppointmentsStore();
|
|
20
|
+
const isSelectedDateInPast = useMemo(() => dayjs(selectedDate).isBefore(dayjs(), 'date'), [selectedDate]);
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<article className={styles.tileContainer}>
|
|
24
|
+
<div className={styles.tileHeader}>
|
|
25
|
+
<div className={styles.headerLabelContainer}>
|
|
26
|
+
<span className={styles.headerLabel}>{headerLabel}</span>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<div className={styles.metricsGrid}>
|
|
30
|
+
<div>
|
|
31
|
+
<span className={styles.totalsLabel}>{label}</span>
|
|
32
|
+
<p className={styles.totalsValue}>{value}</p>
|
|
33
|
+
</div>
|
|
34
|
+
{!isEmpty(count) && (
|
|
35
|
+
<div className={styles.countGrid}>
|
|
36
|
+
<span>{t('checkedIn', 'Checked in')}</span>
|
|
37
|
+
<span>{isSelectedDateInPast ? t('missed', 'Missed') : t('notArrived', 'Not arrived')}</span>
|
|
38
|
+
<p style={{ color: '#22651B' }}>{count.arrivedAppointments?.length}</p>
|
|
39
|
+
<p style={{ color: '#da1e28' }}>{count.pendingAppointments?.length}</p>
|
|
40
|
+
</div>
|
|
41
|
+
)}
|
|
42
|
+
</div>
|
|
43
|
+
</article>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default MetricsCard;
|
|
@@ -3,17 +3,10 @@
|
|
|
3
3
|
@use '@carbon/type';
|
|
4
4
|
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
5
5
|
|
|
6
|
-
.container {
|
|
7
|
-
flex-grow: 1;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
6
|
.tileContainer {
|
|
11
7
|
border: 1px solid $ui-03;
|
|
12
8
|
height: 7.875rem;
|
|
13
9
|
padding: layout.$spacing-05;
|
|
14
|
-
display: flex;
|
|
15
|
-
justify-content: space-between;
|
|
16
|
-
flex-direction: column;
|
|
17
10
|
}
|
|
18
11
|
|
|
19
12
|
.tileHeader {
|