@openmrs/esm-dispensing-app 1.6.2 → 1.6.3-pre.10
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/cache/6dd55fe02e848786-meta.json +1 -0
- package/.turbo/cache/6dd55fe02e848786.tar.zst +0 -0
- package/.turbo/turbo-build.log +44 -0
- package/README.md +1 -0
- package/dist/1616.js +2 -0
- package/dist/{524.js.LICENSE.txt → 1616.js.LICENSE.txt} +9 -14
- package/dist/1616.js.map +1 -0
- package/dist/1637.js +1 -0
- package/dist/1637.js.map +1 -0
- package/dist/1644.js +1 -0
- package/dist/1901.js +1 -0
- package/dist/1905.js +1 -0
- package/dist/1905.js.map +1 -0
- package/dist/2016.js +1 -0
- package/dist/2511.js +1 -0
- package/dist/2511.js.map +1 -0
- package/dist/2757.js +1 -0
- package/dist/3574.js +1 -0
- package/dist/3652.js +1 -0
- package/dist/3935.js +2 -0
- package/dist/3935.js.map +1 -0
- package/dist/4272.js +1 -0
- package/dist/4378.js +1 -0
- package/dist/4460.js +1 -0
- package/dist/4705.js +1 -0
- package/dist/5240.js +1 -0
- package/dist/5336.js +1 -0
- package/dist/5673.js +1 -0
- package/dist/5711.js +1 -0
- package/dist/5737.js +1 -0
- package/dist/5833.js +1 -0
- package/dist/5962.js +1 -0
- package/dist/6497.js +1 -0
- package/dist/6566.js +1 -0
- package/dist/6582.js +1 -0
- package/dist/6582.js.map +1 -0
- package/dist/6727.js +1 -0
- package/dist/6868.js +2 -0
- package/dist/6868.js.LICENSE.txt +14 -0
- package/dist/6868.js.map +1 -0
- package/dist/6936.js +1 -0
- package/dist/6936.js.map +1 -0
- package/dist/6973.js +1 -0
- package/dist/6973.js.map +1 -0
- package/dist/7294.js +2 -0
- package/dist/7294.js.map +1 -0
- package/dist/7484.js +1 -0
- package/dist/7484.js.map +1 -0
- package/dist/7626.js +1 -0
- package/dist/7626.js.map +1 -0
- package/dist/7687.js +1 -0
- package/dist/7687.js.map +1 -0
- package/dist/7807.js +1 -0
- package/dist/7998.js +1 -0
- package/dist/8077.js +1 -0
- package/dist/8077.js.map +1 -0
- package/dist/8271.js +1 -0
- package/dist/8319.js +1 -0
- package/dist/8323.js +1 -0
- package/dist/8788.js +1 -0
- package/dist/8949.js +1 -0
- package/dist/8949.js.map +1 -0
- package/dist/9204.js +2 -0
- package/dist/{204.js.LICENSE.txt → 9204.js.LICENSE.txt} +2 -0
- package/dist/9204.js.map +1 -0
- package/dist/9261.js +1 -0
- package/dist/9579.js +1 -0
- package/dist/9870.js +2 -0
- package/dist/9870.js.LICENSE.txt +9 -0
- package/dist/9870.js.map +1 -0
- package/dist/main.js +1 -1
- package/dist/main.js.LICENSE.txt +21 -11
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-dispensing-app.js +1 -1
- package/dist/openmrs-esm-dispensing-app.js.buildmanifest.json +455 -244
- package/dist/openmrs-esm-dispensing-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/jest.config.js +3 -1
- package/package.json +7 -4
- package/src/components/action-buttons.component.tsx +7 -0
- package/src/components/{action-buttons.component.test.tsx → action-buttons.test.tsx} +8 -7
- package/src/components/medication-card.component.tsx +3 -3
- package/src/components/medication-card.scss +8 -8
- package/src/components/medication-dispense-review.scss +16 -10
- package/src/components/medication-event.component.tsx +4 -4
- package/src/components/medication-event.scss +10 -5
- package/src/components/patient-details.component.tsx +4 -4
- package/src/components/patient-details.scss +12 -12
- package/src/components/prescription-actions/close-action-button.component.tsx +1 -1
- package/src/components/prescription-actions/dispense-action-button.component.tsx +4 -1
- package/src/components/prescription-actions/pause-action-button.component.tsx +1 -1
- package/src/conditions/conditions.component.tsx +93 -0
- package/src/conditions/conditions.resource.ts +100 -0
- package/src/conditions/conditions.scss +9 -0
- package/src/config-schema.ts +8 -0
- package/src/dashboard/dispensing-dashboard-link.component.tsx +1 -1
- package/src/dashboard/dispensing-dashboard.component.tsx +10 -4
- package/src/declarations.d.ts +0 -1
- package/src/diagnoses/diagnoses.component.tsx +92 -0
- package/src/diagnoses/diagnoses.resource.ts +30 -0
- package/src/diagnoses/diagnoses.scss +9 -0
- package/src/dispensing-tiles/dispensing-tile.component.tsx +20 -17
- package/src/dispensing-tiles/dispensing-tile.scss +8 -8
- package/src/dispensing-tiles/dispensing-tiles.scss +4 -5
- package/src/forms/close-dispense-form.workspace.tsx +25 -23
- package/src/forms/dispense-form.workspace.tsx +3 -0
- package/src/forms/forms.scss +5 -9
- package/src/forms/medication-dispense-review.component.tsx +235 -204
- package/src/forms/{medication-dispense-review.component.test.tsx → medication-dispense-review.test.tsx} +2 -1
- package/src/forms/pause-dispense-form.workspace.tsx +25 -23
- package/src/forms/stock-dispense/stock-dispense.component.tsx +10 -10
- package/src/history/history-and-comments.component.tsx +8 -1
- package/src/history/history-and-comments.scss +17 -15
- package/src/index.ts +3 -0
- package/src/location/location.resource.test.tsx +1 -0
- package/src/medication/medication.resource.tsx +1 -1
- package/src/patient/patient-info-cell.component.tsx +1 -1
- package/src/pharmacy-header/pharmacy-header.scss +11 -11
- package/src/prescriptions/prescription-actions.scss +0 -1
- package/src/prescriptions/prescription-details.component.tsx +6 -6
- package/src/prescriptions/prescription-details.scss +10 -10
- package/src/prescriptions/prescription-expanded.component.tsx +5 -9
- package/src/prescriptions/prescription-expanded.scss +6 -7
- package/src/prescriptions/prescription-tab-lists.component.tsx +5 -5
- package/src/prescriptions/prescriptions.scss +15 -29
- package/src/print-prescription/prescription-printout.component.tsx +1 -1
- package/src/routes.json +14 -0
- package/src/utils.ts +1 -1
- package/tools/setup-tests.ts +1 -0
- package/tools/update-openmrs-deps.mjs +42 -0
- package/translations/en.json +9 -1
- package/translations/es.json +23 -23
- package/translations/it.json +87 -87
- package/translations/ky.json +92 -0
- package/tsconfig.json +3 -2
- package/dist/16.js +0 -1
- package/dist/204.js +0 -2
- package/dist/204.js.map +0 -1
- package/dist/240.js +0 -1
- package/dist/261.js +0 -1
- package/dist/271.js +0 -1
- package/dist/272.js +0 -1
- package/dist/294.js +0 -2
- package/dist/294.js.map +0 -1
- package/dist/319.js +0 -1
- package/dist/323.js +0 -1
- package/dist/336.js +0 -1
- package/dist/378.js +0 -1
- package/dist/460.js +0 -1
- package/dist/484.js +0 -1
- package/dist/484.js.map +0 -1
- package/dist/497.js +0 -1
- package/dist/524.js +0 -2
- package/dist/524.js.map +0 -1
- package/dist/566.js +0 -1
- package/dist/574.js +0 -1
- package/dist/579.js +0 -1
- package/dist/626.js +0 -1
- package/dist/626.js.map +0 -1
- package/dist/637.js +0 -1
- package/dist/637.js.map +0 -1
- package/dist/644.js +0 -1
- package/dist/652.js +0 -1
- package/dist/673.js +0 -1
- package/dist/705.js +0 -1
- package/dist/711.js +0 -1
- package/dist/727.js +0 -1
- package/dist/737.js +0 -1
- package/dist/749.js +0 -1
- package/dist/749.js.map +0 -1
- package/dist/757.js +0 -1
- package/dist/77.js +0 -1
- package/dist/77.js.map +0 -1
- package/dist/788.js +0 -1
- package/dist/803.js +0 -1
- package/dist/803.js.map +0 -1
- package/dist/807.js +0 -1
- package/dist/833.js +0 -1
- package/dist/888.js +0 -1
- package/dist/888.js.map +0 -1
- package/dist/890.js +0 -1
- package/dist/890.js.map +0 -1
- package/dist/901.js +0 -1
- package/dist/905.js +0 -1
- package/dist/905.js.map +0 -1
- package/dist/935.js +0 -2
- package/dist/935.js.map +0 -1
- package/dist/962.js +0 -1
- package/src/root.scss +0 -50
- package/src/setup-tests.ts +0 -1
- /package/dist/{935.js.LICENSE.txt → 3935.js.LICENSE.txt} +0 -0
- /package/dist/{294.js.LICENSE.txt → 7294.js.LICENSE.txt} +0 -0
- /package/src/components/{medication-card.component.test.tsx → medication-card.test.tsx} +0 -0
- /package/{i18next-parser.config.js → tools/i18next-parser.config.js} +0 -0
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
getUuidFromReference,
|
|
32
32
|
revalidate,
|
|
33
33
|
sortMedicationDispensesByWhenHandedOver,
|
|
34
|
+
computeTotalQuantityDispensed,
|
|
34
35
|
} from '../utils';
|
|
35
36
|
import { type PharmacyConfig } from '../config-schema';
|
|
36
37
|
|
|
@@ -81,12 +82,18 @@ const HistoryAndComments: React.FC<{
|
|
|
81
82
|
(medicationDispense?.quantity ? medicationDispense.quantity.value : 0);
|
|
82
83
|
}
|
|
83
84
|
|
|
85
|
+
let quantityDispensed = 0;
|
|
86
|
+
if (medicationRequestBundle.dispenses) {
|
|
87
|
+
quantityDispensed = computeTotalQuantityDispensed(medicationRequestBundle.dispenses);
|
|
88
|
+
}
|
|
89
|
+
|
|
84
90
|
const dispenseFormProps = {
|
|
85
91
|
patientUuid,
|
|
86
92
|
encounterUuid,
|
|
87
93
|
medicationDispense,
|
|
88
94
|
medicationRequestBundle,
|
|
89
95
|
quantityRemaining,
|
|
96
|
+
quantityDispensed,
|
|
90
97
|
mode: 'edit',
|
|
91
98
|
};
|
|
92
99
|
|
|
@@ -231,11 +238,11 @@ const HistoryAndComments: React.FC<{
|
|
|
231
238
|
{formatDatetime(parseDate(dispense.whenHandedOver))}
|
|
232
239
|
</h5>
|
|
233
240
|
<Tile className={styles.dispenseTile} data-floating-menu-container>
|
|
241
|
+
<MedicationEvent medicationEvent={dispense} status={generateDispenseTag(dispense)} />
|
|
234
242
|
{generateMedicationDispenseActionMenu(
|
|
235
243
|
dispense,
|
|
236
244
|
getMedicationRequestBundleContainingMedicationDispense(medicationRequestBundles, dispense),
|
|
237
245
|
)}
|
|
238
|
-
<MedicationEvent medicationEvent={dispense} status={generateDispenseTag(dispense)} />
|
|
239
246
|
</Tile>
|
|
240
247
|
</div>
|
|
241
248
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
@use '@carbon/
|
|
2
|
-
@use '@carbon/
|
|
3
|
-
@
|
|
1
|
+
@use '@carbon/layout';
|
|
2
|
+
@use '@carbon/type';
|
|
3
|
+
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
4
4
|
|
|
5
5
|
.historyAndCommentsContainer {
|
|
6
6
|
max-width: 80%;
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
|
|
14
14
|
form input {
|
|
15
15
|
vertical-align: middle;
|
|
16
|
-
margin: 0
|
|
17
|
-
padding:
|
|
16
|
+
margin: 0 0.625rem 0 0;
|
|
17
|
+
padding: 0.625rem;
|
|
18
18
|
border: 1px solid #8d8d8d !important;
|
|
19
19
|
background-color: white;
|
|
20
20
|
}
|
|
21
21
|
form button {
|
|
22
22
|
width: 90px;
|
|
23
|
-
height:
|
|
24
|
-
min-height:
|
|
23
|
+
height: 1.25rem;
|
|
24
|
+
min-height: layout.$spacing-08 !important;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
form :global(.cds--btn--ghost) {
|
|
@@ -30,22 +30,24 @@
|
|
|
30
30
|
|
|
31
31
|
.requestTile {
|
|
32
32
|
width: 100%;
|
|
33
|
-
margin:
|
|
34
|
-
padding: 0
|
|
33
|
+
margin: layout.$spacing-01 0 layout.$spacing-03;
|
|
34
|
+
padding: 0 layout.$spacing-03 0 layout.$spacing-03;
|
|
35
35
|
background-color: #fff;
|
|
36
|
-
border-left:
|
|
36
|
+
border-left: layout.$spacing-03 solid var(--brand-03);
|
|
37
37
|
color: $text-02;
|
|
38
|
-
margin-bottom:
|
|
38
|
+
margin-bottom: layout.$spacing-05 !important;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.dispenseTile {
|
|
42
|
+
display: flex;
|
|
43
|
+
justify-content: space-between;
|
|
42
44
|
width: 100%;
|
|
43
|
-
margin:
|
|
44
|
-
padding: 0
|
|
45
|
+
margin: layout.$spacing-01 0 layout.$spacing-03;
|
|
46
|
+
padding: 0 layout.$spacing-03 0 layout.$spacing-03;
|
|
45
47
|
background-color: #fff;
|
|
46
|
-
border-left:
|
|
48
|
+
border-left: layout.$spacing-03 solid red;
|
|
47
49
|
color: $text-02;
|
|
48
|
-
margin-bottom:
|
|
50
|
+
margin-bottom: layout.$spacing-05 !important;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
.medicationEventActionMenu {
|
package/src/index.ts
CHANGED
|
@@ -44,3 +44,6 @@ export const dispenseWorkspace = getAsyncLifecycle(() => import('./forms/dispens
|
|
|
44
44
|
export const pauseDispenseWorkspace = getAsyncLifecycle(() => import('./forms/pause-dispense-form.workspace'), options);
|
|
45
45
|
|
|
46
46
|
export const printPrescriptionPreviewModal = getSyncLifecycle(PrescriptionPrintPreviewModal, options);
|
|
47
|
+
|
|
48
|
+
export const patientDiagnoses = getAsyncLifecycle(() => import('./diagnoses/diagnoses.component'), options);
|
|
49
|
+
export const patientConditions = getAsyncLifecycle(() => import('./conditions/conditions.component'), options);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
@use '@carbon/
|
|
2
|
-
@use '@carbon/
|
|
3
|
-
@
|
|
1
|
+
@use '@carbon/layout';
|
|
2
|
+
@use '@carbon/type';
|
|
3
|
+
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
4
4
|
|
|
5
5
|
.header {
|
|
6
6
|
@include type.type-style('body-compact-02');
|
|
7
7
|
color: $text-02;
|
|
8
|
-
height:
|
|
8
|
+
height: layout.$spacing-12;
|
|
9
9
|
background-color: $ui-02;
|
|
10
10
|
display: flex;
|
|
11
11
|
justify-content: space-between;
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
display: flex;
|
|
16
16
|
flex-direction: row;
|
|
17
17
|
align-items: center;
|
|
18
|
-
margin-left:
|
|
18
|
+
margin-left: layout.$spacing-05;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.rightJustifiedItems {
|
|
22
22
|
@include type.type-style('body-compact-02');
|
|
23
23
|
color: $text-02;
|
|
24
|
-
padding-top:
|
|
24
|
+
padding-top: layout.$spacing-05;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
.pageName {
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
.pageLabels {
|
|
32
|
-
margin-left:
|
|
32
|
+
margin-left: layout.$spacing-05;
|
|
33
33
|
p:first-of-type {
|
|
34
|
-
margin-bottom:
|
|
34
|
+
margin-bottom: layout.$spacing-02;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -39,15 +39,15 @@
|
|
|
39
39
|
display: flex;
|
|
40
40
|
justify-content: flex-end;
|
|
41
41
|
align-items: center;
|
|
42
|
-
margin-right:
|
|
42
|
+
margin-right: layout.$spacing-05;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
.value {
|
|
46
|
-
margin-left:
|
|
46
|
+
margin-left: layout.$spacing-02;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
.middot {
|
|
50
|
-
margin: 0
|
|
50
|
+
margin: 0 layout.$spacing-03;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
.view {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { useTranslation } from 'react-i18next';
|
|
3
1
|
import { DataTableSkeleton, Tag, Tile } from '@carbon/react';
|
|
4
2
|
import { WarningFilled } from '@carbon/react/icons';
|
|
5
3
|
import { type PatientUuid, useConfig, UserHasAccess } from '@openmrs/esm-framework';
|
|
4
|
+
import React, { useEffect, useState } from 'react';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
6
|
+
import ActionButtons from '../components/action-buttons.component';
|
|
7
|
+
import MedicationEvent from '../components/medication-event.component';
|
|
6
8
|
import { type PharmacyConfig } from '../config-schema';
|
|
7
|
-
import { type AllergyIntolerance, type MedicationRequest, MedicationRequestCombinedStatus } from '../types';
|
|
8
|
-
import { computeMedicationRequestCombinedStatus, getConceptCodingDisplay } from '../utils';
|
|
9
9
|
import { PRIVILEGE_CREATE_DISPENSE } from '../constants';
|
|
10
10
|
import { usePatientAllergies, usePrescriptionDetails } from '../medication-request/medication-request.resource';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
11
|
+
import { type AllergyIntolerance, type MedicationRequest, MedicationRequestCombinedStatus } from '../types';
|
|
12
|
+
import { computeMedicationRequestCombinedStatus, getConceptCodingDisplay } from '../utils';
|
|
13
13
|
import PrescriptionsActionsFooter from './prescription-actions.component';
|
|
14
14
|
import styles from './prescription-details.scss';
|
|
15
15
|
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
@use '@carbon/
|
|
2
|
-
@use '@carbon/
|
|
3
|
-
@
|
|
1
|
+
@use '@carbon/layout';
|
|
2
|
+
@use '@carbon/type';
|
|
3
|
+
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
4
4
|
|
|
5
5
|
.prescriptionTile {
|
|
6
6
|
width: 100%;
|
|
7
|
-
margin:
|
|
7
|
+
margin: layout.$spacing-01 0 layout.$spacing-03;
|
|
8
8
|
padding: 0;
|
|
9
9
|
background-color: #fff;
|
|
10
|
-
border-left:
|
|
10
|
+
border-left: layout.$spacing-02 solid var(--brand-03);
|
|
11
11
|
color: $text-02;
|
|
12
|
-
margin-bottom:
|
|
12
|
+
margin-bottom: layout.$spacing-05 !important;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.prescriptionContainer {
|
|
16
16
|
display: flex;
|
|
17
17
|
flex-direction: column;
|
|
18
18
|
max-width: 80%;
|
|
19
|
-
margin-bottom:
|
|
19
|
+
margin-bottom: layout.$spacing-05;
|
|
20
20
|
|
|
21
21
|
&:global(.cds--tile) {
|
|
22
22
|
min-height: 3rem !important;
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.allergiesTile {
|
|
34
|
-
height:
|
|
35
|
-
padding: 0
|
|
36
|
-
border-left:
|
|
34
|
+
height: layout.$spacing-06;
|
|
35
|
+
padding: 0 layout.$spacing-03 0 0;
|
|
36
|
+
border-left: layout.$spacing-02 solid #f1c21b;
|
|
37
37
|
background-color: rgba(253, 209, 58, 0.3);
|
|
38
38
|
margin: auto;
|
|
39
39
|
width: 100%;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type PatientUuid } from '@openmrs/esm-framework';
|
|
2
|
+
import { ExtensionSlot, type PatientUuid } from '@openmrs/esm-framework';
|
|
3
3
|
import { Tab, Tabs, TabList, TabPanels, TabPanel } from '@carbon/react';
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
5
|
import HistoryAndComments from '../history/history-and-comments.component';
|
|
@@ -23,18 +23,14 @@ const PrescriptionExpanded: React.FC<{
|
|
|
23
23
|
name: t('prescriptionDetails', 'Prescription details'),
|
|
24
24
|
component: <PrescriptionDetails encounterUuid={encounterUuid} patientUuid={patientUuid} />,
|
|
25
25
|
},
|
|
26
|
+
{
|
|
27
|
+
name: t('conditionsAndDiagnoses', 'Conditions and diagnoses'),
|
|
28
|
+
component: <ExtensionSlot name="dispensing-condition-and-diagnoses" state={{ patientUuid, encounterUuid }} />,
|
|
29
|
+
},
|
|
26
30
|
{
|
|
27
31
|
name: t('historyComments', 'History and comments'),
|
|
28
32
|
component: <HistoryAndComments encounterUuid={encounterUuid} patientUuid={patientUuid} />,
|
|
29
33
|
},
|
|
30
|
-
/* {
|
|
31
|
-
name: t("patientDetails", "Patient details"),
|
|
32
|
-
component: <PatientDetails patientUuid={patientUuid} />,
|
|
33
|
-
},*/
|
|
34
|
-
// {
|
|
35
|
-
// name: t("billing", "Billing"),
|
|
36
|
-
// component: <div>Billing</div>,
|
|
37
|
-
// },
|
|
38
34
|
];
|
|
39
35
|
|
|
40
36
|
return (
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
@use '@carbon/
|
|
2
|
-
@use '@
|
|
3
|
-
@import '~@openmrs/esm-styleguide/src/vars';
|
|
1
|
+
@use '@carbon/layout';
|
|
2
|
+
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
4
3
|
|
|
5
4
|
.expandedTabsParentContainer {
|
|
6
5
|
display: flex;
|
|
7
6
|
flex-direction: column;
|
|
8
|
-
margin-bottom:
|
|
7
|
+
margin-bottom: layout.$spacing-05;
|
|
9
8
|
}
|
|
10
9
|
|
|
11
10
|
.expandedTabsContainer {
|
|
@@ -13,7 +12,7 @@
|
|
|
13
12
|
flex-direction: row;
|
|
14
13
|
|
|
15
14
|
:global(.cds--tabs) {
|
|
16
|
-
margin:
|
|
15
|
+
margin: layout.$spacing-05 0;
|
|
17
16
|
width: 20%;
|
|
18
17
|
max-height: 8rem !important;
|
|
19
18
|
}
|
|
@@ -23,7 +22,7 @@
|
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
:global(.cds--tab-content) {
|
|
26
|
-
margin:
|
|
25
|
+
margin: layout.$spacing-05 0;
|
|
27
26
|
width: 100% !important;
|
|
28
27
|
}
|
|
29
28
|
|
|
@@ -38,7 +37,7 @@
|
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
&:global(.cds--tabs--scrollable .cds--tabs--scrollable__nav-item + .cds--tabs--scrollable__nav-item) {
|
|
41
|
-
margin-left:
|
|
40
|
+
margin-left: 0 !important;
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
> ul {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { Tab, Tabs, TabList, TabPanels
|
|
2
|
+
import { ComboBox, Search, Tab, Tabs, TabList, TabPanels } from '@carbon/react';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
|
-
import PrescriptionTabPanel from './prescription-tab-panel.component';
|
|
5
|
-
import styles from './prescriptions.scss';
|
|
6
|
-
import { useLocationForFiltering } from '../location/location.resource';
|
|
7
4
|
import { useConfig } from '@openmrs/esm-framework';
|
|
5
|
+
import { useLocationForFiltering } from '../location/location.resource';
|
|
8
6
|
import { type SimpleLocation } from '../types';
|
|
9
7
|
import { type PharmacyConfig } from '../config-schema';
|
|
8
|
+
import PrescriptionTabPanel from './prescription-tab-panel.component';
|
|
9
|
+
import styles from './prescriptions.scss';
|
|
10
10
|
|
|
11
11
|
const PrescriptionTabLists: React.FC = () => {
|
|
12
12
|
const { t } = useTranslation();
|
|
@@ -45,7 +45,7 @@ const PrescriptionTabLists: React.FC = () => {
|
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
return (
|
|
48
|
-
<main className=
|
|
48
|
+
<main className="omrs-main-content">
|
|
49
49
|
<section className={styles.prescriptionTabsContainer}>
|
|
50
50
|
<Tabs
|
|
51
51
|
className={styles.prescriptionTabs}
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
@use '@carbon/
|
|
2
|
-
@use '@carbon/
|
|
3
|
-
@
|
|
4
|
-
@import '../root.scss';
|
|
5
|
-
|
|
6
|
-
title {
|
|
7
|
-
width: 6.938rem;
|
|
8
|
-
height: 1.75rem;
|
|
9
|
-
margin: 0.438rem 22.875rem 0.813rem 0;
|
|
10
|
-
font-family: IBMPlexSans;
|
|
11
|
-
font-size: 1.25rem;
|
|
12
|
-
font-weight: normal;
|
|
13
|
-
font-stretch: normal;
|
|
14
|
-
font-style: normal;
|
|
15
|
-
line-height: 1.4;
|
|
16
|
-
letter-spacing: normal;
|
|
17
|
-
}
|
|
1
|
+
@use '@carbon/layout';
|
|
2
|
+
@use '@carbon/type';
|
|
3
|
+
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
18
4
|
|
|
19
5
|
.link {
|
|
20
6
|
text-decoration: none;
|
|
@@ -36,7 +22,7 @@ title {
|
|
|
36
22
|
|
|
37
23
|
.prescriptionTabs {
|
|
38
24
|
grid-column: 'span 2';
|
|
39
|
-
padding: 0
|
|
25
|
+
padding: 0 layout.$spacing-05;
|
|
40
26
|
}
|
|
41
27
|
|
|
42
28
|
.newListButton {
|
|
@@ -47,10 +33,10 @@ title {
|
|
|
47
33
|
|
|
48
34
|
.tabsContainer {
|
|
49
35
|
background-color: $ui-02;
|
|
50
|
-
padding: 0
|
|
36
|
+
padding: 0 layout.$spacing-05;
|
|
51
37
|
|
|
52
38
|
:global(.cds--tabs__nav-item--selected) {
|
|
53
|
-
box-shadow: inset 0
|
|
39
|
+
box-shadow: inset 0 layout.$spacing-01 0 0 var(--brand-03) !important;
|
|
54
40
|
}
|
|
55
41
|
|
|
56
42
|
:global(.cds--tab--list) button {
|
|
@@ -67,7 +53,7 @@ title {
|
|
|
67
53
|
grid-row: 3 / 4;
|
|
68
54
|
grid-column: 1 / 2;
|
|
69
55
|
height: 100%;
|
|
70
|
-
margin: 0
|
|
56
|
+
margin: 0 layout.$spacing-05;
|
|
71
57
|
background-color: $ui-01;
|
|
72
58
|
border: 0.5px solid #e0e0e0;
|
|
73
59
|
|
|
@@ -99,7 +85,7 @@ title {
|
|
|
99
85
|
}
|
|
100
86
|
|
|
101
87
|
:global(.cds--table-expand__button) {
|
|
102
|
-
height:
|
|
88
|
+
height: layout.$spacing-07 !important;
|
|
103
89
|
}
|
|
104
90
|
}
|
|
105
91
|
|
|
@@ -107,7 +93,7 @@ title {
|
|
|
107
93
|
display: flex;
|
|
108
94
|
align-items: center;
|
|
109
95
|
flex-direction: row-reverse;
|
|
110
|
-
padding:
|
|
96
|
+
padding: layout.$spacing-05 layout.$spacing-05 0;
|
|
111
97
|
|
|
112
98
|
:global(.cds--search-magnifier-icon) {
|
|
113
99
|
z-index: 0 !important;
|
|
@@ -119,10 +105,10 @@ title {
|
|
|
119
105
|
}
|
|
120
106
|
|
|
121
107
|
.addPrescriptionBtn {
|
|
122
|
-
width:
|
|
123
|
-
padding:
|
|
124
|
-
margin-left:
|
|
125
|
-
margin-right:
|
|
108
|
+
width: layout.$spacing-13 !important;
|
|
109
|
+
padding: layout.$spacing-05 !important;
|
|
110
|
+
margin-left: layout.$spacing-05;
|
|
111
|
+
margin-right: layout.$spacing-05;
|
|
126
112
|
}
|
|
127
113
|
|
|
128
114
|
.patientSearch {
|
|
@@ -149,7 +135,7 @@ title {
|
|
|
149
135
|
display: flex;
|
|
150
136
|
justify-content: center;
|
|
151
137
|
align-items: center;
|
|
152
|
-
padding:
|
|
138
|
+
padding: layout.$spacing-09;
|
|
153
139
|
text-align: center;
|
|
154
140
|
background-color: $ui-02;
|
|
155
141
|
}
|
|
@@ -162,7 +148,7 @@ title {
|
|
|
162
148
|
.filterEmptyStateContent {
|
|
163
149
|
@include type.type-style('heading-compact-02');
|
|
164
150
|
color: $text-02;
|
|
165
|
-
margin-bottom:
|
|
151
|
+
margin-bottom: layout.$spacing-03;
|
|
166
152
|
}
|
|
167
153
|
|
|
168
154
|
.filterEmptyStateHelper {
|
|
@@ -94,7 +94,7 @@ const PrescriptionsPrintout: React.FC<PrescriptionsPrintoutProps> = ({ medicatio
|
|
|
94
94
|
</p>
|
|
95
95
|
<p>
|
|
96
96
|
<span className={styles.faintText}>{t('datePrescribed', 'Date prescribed')}</span>
|
|
97
|
-
{': '} <span>{formatDate(parseDate(request.request.authoredOn))}</span>
|
|
97
|
+
{': '} <span>{formatDate(parseDate(request.request.authoredOn), { noToday: true })}</span>
|
|
98
98
|
</p>
|
|
99
99
|
<p>
|
|
100
100
|
<span className={styles.faintText}>{t('refills', 'Refills')}</span>
|
package/src/routes.json
CHANGED
|
@@ -20,6 +20,20 @@
|
|
|
20
20
|
"online": true,
|
|
21
21
|
"offline": true
|
|
22
22
|
},
|
|
23
|
+
{
|
|
24
|
+
"name": "patient-diagnoses",
|
|
25
|
+
"component": "patientDiagnoses",
|
|
26
|
+
"slot": "dispensing-condition-and-diagnoses",
|
|
27
|
+
"online": true,
|
|
28
|
+
"offline": true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "patient-conditions",
|
|
32
|
+
"component": "patientConditions",
|
|
33
|
+
"slot": "dispensing-condition-and-diagnoses",
|
|
34
|
+
"online": true,
|
|
35
|
+
"offline": true
|
|
36
|
+
},
|
|
23
37
|
{
|
|
24
38
|
"name": "dispensing-dashboard",
|
|
25
39
|
"slot": "dispensing-dashboard-slot",
|
package/src/utils.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
1
2
|
import { mutate } from 'swr';
|
|
2
3
|
import {
|
|
3
4
|
type Coding,
|
|
@@ -21,7 +22,6 @@ import {
|
|
|
21
22
|
PRESCRIPTION_DETAILS_ENDPOINT,
|
|
22
23
|
PRESCRIPTIONS_TABLE_ENDPOINT,
|
|
23
24
|
} from './constants';
|
|
24
|
-
import dayjs from 'dayjs';
|
|
25
25
|
|
|
26
26
|
const unitsDontMatchErrorMessage =
|
|
27
27
|
"Misconfiguration, please contact your System Administrator: Can't calculate quantity dispensed if units don't match. Likely issue: allowModifyingPrescription and restrictTotalQuantityDispensed configuration parameters both set to true. " +
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
|
|
3
|
+
try {
|
|
4
|
+
execSync(`yarn up --fixed '@openmrs/esm-framework@next' '@openmrs@next' '@openmrs/esm-patient-common-lib'`, {
|
|
5
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
6
|
+
windowsHide: true,
|
|
7
|
+
});
|
|
8
|
+
} catch (error) {
|
|
9
|
+
console.error(`Error while updating dependencies: ${error.message ?? error}`);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
execSync(`yarn dedupe`, {
|
|
15
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
16
|
+
windowsHide: true,
|
|
17
|
+
});
|
|
18
|
+
} catch (error) {
|
|
19
|
+
console.error(`Error while deduplicating dependencies: ${error.message ?? error}`);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
execSync(`git diff-index --quiet HEAD --`, {
|
|
25
|
+
stdio: 'ignore',
|
|
26
|
+
windowsHide: true,
|
|
27
|
+
});
|
|
28
|
+
process.exit(0);
|
|
29
|
+
} catch (error) {
|
|
30
|
+
// git diff-index --quite HEAD --
|
|
31
|
+
// exits with status 1 if there are changes; we only need to run yarn verify if there are changes
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
try {
|
|
35
|
+
execSync(`yarn verify`, {
|
|
36
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
37
|
+
windowsHide: true,
|
|
38
|
+
});
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.error(`Error while running yarn verify: ${error.message ?? error}. Updates require manual intervention.`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
package/translations/en.json
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"active": "Active",
|
|
3
|
+
"activecondition": "Active Condition",
|
|
4
|
+
"activeConditions": "Active Condition",
|
|
3
5
|
"activePrescriptions": "Active prescriptions",
|
|
4
6
|
"age": "Age",
|
|
5
7
|
"allergiesCount_one": "{{count}} allergy",
|
|
@@ -14,9 +16,12 @@
|
|
|
14
16
|
"closedDispense": "closed dispense",
|
|
15
17
|
"closePrescription": "Close prescription",
|
|
16
18
|
"completed": "Completed",
|
|
19
|
+
"conditions": "Condition",
|
|
20
|
+
"conditionsAndDiagnoses": "Conditions and diagnoses",
|
|
17
21
|
"created": "Created",
|
|
18
22
|
"datePrescribed": "Date prescribed",
|
|
19
23
|
"delete": "Delete",
|
|
24
|
+
"diagnosis": "Diagnosis",
|
|
20
25
|
"dispense": "Dispense",
|
|
21
26
|
"dispensed": "Dispensed",
|
|
22
27
|
"dispenseDate": "Date of Dispense",
|
|
@@ -38,6 +43,7 @@
|
|
|
38
43
|
"errorLoadingInventoryItems": "Error fetching inventory items",
|
|
39
44
|
"expired": "Expired",
|
|
40
45
|
"filterByLocation": "Filter by location",
|
|
46
|
+
"finalDiagnoses": "Final Diagnoses",
|
|
41
47
|
"for": "for",
|
|
42
48
|
"frequency": "Frequency",
|
|
43
49
|
"historyComments": "History and comments",
|
|
@@ -54,6 +60,7 @@
|
|
|
54
60
|
"noPrescriptionsToDisplay": "No prescriptions to display",
|
|
55
61
|
"noRefills": "No refills",
|
|
56
62
|
"numberIsNotValid": "Number is not valid",
|
|
63
|
+
"onsetDate": "Onset Date",
|
|
57
64
|
"ordered": "Ordered",
|
|
58
65
|
"orderedMedication ": "ordered medication",
|
|
59
66
|
"orders": "Orders",
|
|
@@ -88,5 +95,6 @@
|
|
|
88
95
|
"substitutionType": "Type of substitution",
|
|
89
96
|
"tabList": "Tab List",
|
|
90
97
|
"today": "Today",
|
|
91
|
-
"view": "View"
|
|
98
|
+
"view": "View",
|
|
99
|
+
"visitFinalDiagnoses": "Visit final diagnoses"
|
|
92
100
|
}
|