@uxland/primary-shell 7.26.4 → 7.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{component-OjDyol8O.js → component-Dk1hmoTY.js} +2 -2
- package/dist/{component-OjDyol8O.js.map → component-Dk1hmoTY.js.map} +1 -1
- package/dist/{index-uA2lHdFS.js → index-DSoZpzbx.js} +1291 -1084
- package/dist/index-DSoZpzbx.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +70 -54
- package/dist/index.umd.cjs.map +1 -1
- package/dist/primary/shell/src/UI/components/navigation-tooltip/index.d.ts +2 -0
- package/dist/primary/shell/src/UI/components/navigation-tooltip/navigation-tooltip.d.ts +8 -0
- package/dist/primary/shell/src/UI/components/navigation-tooltip/tooltip-manager.d.ts +1 -0
- package/dist/primary/shell/src/UI/components/primaria-shell/primaria-shell.d.ts +1 -0
- package/dist/primary/shell/src/UI/internal-views/common-nav-menu.d.ts +7 -1
- package/dist/primary/shell/src/UI/shared-components/typings.d.ts +3 -1
- package/dist/primary/shell/src/events.d.ts +2 -0
- package/dist/primary/shell/src/features/navigate-to-ecap/navigate-to-ecap.d.ts +1 -0
- package/dist/primary/shell/src/locales.d.ts +1 -0
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/UI/components/navigation-tooltip/index.ts +2 -0
- package/src/UI/components/navigation-tooltip/navigation-tooltip.tsx +64 -0
- package/src/UI/components/navigation-tooltip/styles.css +63 -0
- package/src/UI/components/navigation-tooltip/tooltip-manager.ts +31 -0
- package/src/UI/components/primaria-shell/primaria-shell.ts +90 -0
- package/src/UI/internal-views/administrative-nav-menu.ts +157 -65
- package/src/UI/internal-views/common-nav-menu.ts +7 -1
- package/src/UI/internal-views/doctor-nav-menu.ts +26 -30
- package/src/UI/internal-views/doctor-quick-action-menu.ts +2 -2
- package/src/UI/shared-components/primaria-nav-tree-menu/template.ts +27 -7
- package/src/UI/shared-components/typings.ts +3 -1
- package/src/api/pdf-viewer-manager/handle-views.ts +8 -0
- package/src/api/pdf-viewer-manager/pdf-viewer-manager.test.ts +53 -0
- package/src/api/pdf-viewer-manager/pdf-viewer-manager.ts +11 -4
- package/src/events.ts +2 -0
- package/src/features/navigate-to-ecap/navigate-to-ecap.ts +18 -0
- package/src/locales.ts +5 -4
- package/dist/index-uA2lHdFS.js.map +0 -1
- package/dist/primary/shell/src/features/navigate-to-ecap/navigate-without-closing-and-with-cip.d.ts +0 -1
- package/src/features/navigate-to-ecap/navigate-without-closing-and-with-cip.ts +0 -7
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { getPatientCip } from "../../features/get-patient-cip/action";
|
|
2
|
-
import {
|
|
2
|
+
import { navigateToEcap } from "../../features/navigate-to-ecap/navigate-to-ecap";
|
|
3
3
|
import { GetVisitId } from "../../features/visit/get-visit-id/request";
|
|
4
4
|
import { shellApi } from "../../api/api";
|
|
5
5
|
import { QuickActionItem } from "../shared-components/quick-action-item/quick-action-item";
|
|
6
6
|
import { ClinicalPathwaysActionMenu } from "../components/clinical-pathways-action-menu/clinical-pathways-action-menu";
|
|
7
|
-
import {
|
|
8
|
-
MenuItemConfig,
|
|
9
|
-
registerNavMenuViews,
|
|
10
|
-
registerCommunicationNavMenu,
|
|
11
|
-
} from "./common-nav-menu";
|
|
7
|
+
import { MenuItemConfig, registerNavMenuViews, registerCommunicationNavMenu } from "./common-nav-menu";
|
|
12
8
|
|
|
13
9
|
const doctorNavMenuItems: MenuItemConfig[] = [
|
|
14
10
|
{
|
|
@@ -17,7 +13,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
17
13
|
label: "Monitoratge dinàmic",
|
|
18
14
|
type: "item",
|
|
19
15
|
sortHint: "0030",
|
|
20
|
-
callbackFn: () =>
|
|
16
|
+
callbackFn: () => navigateToEcap("IA_DEV"),
|
|
21
17
|
},
|
|
22
18
|
{
|
|
23
19
|
id: "unique-petition",
|
|
@@ -29,22 +25,22 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
29
25
|
{
|
|
30
26
|
icon: "open_in_new",
|
|
31
27
|
label: "Analítiques",
|
|
32
|
-
callbackFn: () =>
|
|
28
|
+
callbackFn: () => navigateToEcap("LABORATORI"),
|
|
33
29
|
},
|
|
34
30
|
{
|
|
35
31
|
icon: "open_in_new",
|
|
36
32
|
label: "Ordres Clíniques",
|
|
37
|
-
callbackFn: () =>
|
|
33
|
+
callbackFn: () => navigateToEcap("RESULT_OC"),
|
|
38
34
|
},
|
|
39
35
|
{
|
|
40
36
|
icon: "open_in_new",
|
|
41
37
|
label: "OC Exprés",
|
|
42
|
-
callbackFn: () =>
|
|
38
|
+
callbackFn: () => navigateToEcap("OC_EXPRES"),
|
|
43
39
|
},
|
|
44
40
|
{
|
|
45
41
|
icon: "open_in_new",
|
|
46
42
|
label: "Sol·licitud de trasllat",
|
|
47
|
-
callbackFn: () =>
|
|
43
|
+
callbackFn: () => navigateToEcap("TRANSPORT"),
|
|
48
44
|
},
|
|
49
45
|
],
|
|
50
46
|
},
|
|
@@ -54,7 +50,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
54
50
|
label: "Seguiment analític",
|
|
55
51
|
type: "item",
|
|
56
52
|
sortHint: "0060",
|
|
57
|
-
callbackFn: () =>
|
|
53
|
+
callbackFn: () => navigateToEcap("SEGUIMENT_ANALITIC"),
|
|
58
54
|
},
|
|
59
55
|
{
|
|
60
56
|
id: "results-reports",
|
|
@@ -66,21 +62,21 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
66
62
|
{
|
|
67
63
|
icon: "open_in_new",
|
|
68
64
|
label: "Resultats i informes",
|
|
69
|
-
callbackFn: () =>
|
|
65
|
+
callbackFn: () => navigateToEcap("RESULTAT_INFORMES"),
|
|
70
66
|
},
|
|
71
67
|
{
|
|
72
68
|
icon: "open_in_new",
|
|
73
69
|
label: "Documents usuari",
|
|
74
70
|
callbackFn: () => {
|
|
75
71
|
setTimeout(() => {
|
|
76
|
-
|
|
72
|
+
navigateToEcap("CRIDA_DOCS_USU");
|
|
77
73
|
}, 0);
|
|
78
74
|
},
|
|
79
75
|
},
|
|
80
76
|
{
|
|
81
77
|
icon: "open_in_new",
|
|
82
78
|
label: "Informes clínics",
|
|
83
|
-
callbackFn: () =>
|
|
79
|
+
callbackFn: () => navigateToEcap("INFORME_CLINIC_NET"),
|
|
84
80
|
},
|
|
85
81
|
],
|
|
86
82
|
},
|
|
@@ -90,7 +86,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
90
86
|
label: "Gabinets de proves",
|
|
91
87
|
type: "item",
|
|
92
88
|
sortHint: "0080",
|
|
93
|
-
callbackFn: () =>
|
|
89
|
+
callbackFn: () => navigateToEcap("GABINETS_PROVES"),
|
|
94
90
|
},
|
|
95
91
|
{
|
|
96
92
|
id: "prescriptions",
|
|
@@ -102,22 +98,22 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
102
98
|
{
|
|
103
99
|
icon: "open_in_new",
|
|
104
100
|
label: "Prescripció",
|
|
105
|
-
callbackFn: () =>
|
|
101
|
+
callbackFn: () => navigateToEcap("PRESCRIPCIO_ACTIVA"),
|
|
106
102
|
},
|
|
107
103
|
{
|
|
108
104
|
icon: "open_in_new",
|
|
109
105
|
label: "Ordres de tractament",
|
|
110
|
-
callbackFn: () =>
|
|
106
|
+
callbackFn: () => navigateToEcap("ORDRE_TRACTAMENT"),
|
|
111
107
|
},
|
|
112
108
|
{
|
|
113
109
|
icon: "open_in_new",
|
|
114
110
|
label: "Dispensació material sanitari",
|
|
115
|
-
callbackFn: () =>
|
|
111
|
+
callbackFn: () => navigateToEcap("DISPENSACIO_MATERIAL_PACIENT"),
|
|
116
112
|
},
|
|
117
113
|
{
|
|
118
114
|
icon: "open_in_new",
|
|
119
115
|
label: "Prescripció social",
|
|
120
|
-
callbackFn: () =>
|
|
116
|
+
callbackFn: () => navigateToEcap("PRESCRIPCIO_SOCIAL"),
|
|
121
117
|
},
|
|
122
118
|
],
|
|
123
119
|
},
|
|
@@ -127,7 +123,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
127
123
|
label: "Immunitzacions",
|
|
128
124
|
type: "item",
|
|
129
125
|
sortHint: "0100",
|
|
130
|
-
callbackFn: () =>
|
|
126
|
+
callbackFn: () => navigateToEcap("IMMUNITZACIONS"),
|
|
131
127
|
},
|
|
132
128
|
{
|
|
133
129
|
id: "it",
|
|
@@ -135,7 +131,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
135
131
|
label: "Incapacitat temporal",
|
|
136
132
|
type: "item",
|
|
137
133
|
sortHint: "0100",
|
|
138
|
-
callbackFn: () =>
|
|
134
|
+
callbackFn: () => navigateToEcap("REV_IT"),
|
|
139
135
|
},
|
|
140
136
|
{
|
|
141
137
|
id: "visits",
|
|
@@ -143,7 +139,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
|
|
|
143
139
|
label: "Visites",
|
|
144
140
|
type: "item",
|
|
145
141
|
sortHint: "0130",
|
|
146
|
-
callbackFn: () =>
|
|
142
|
+
callbackFn: () => navigateToEcap("CONSULTA_VISITES"),
|
|
147
143
|
},
|
|
148
144
|
];
|
|
149
145
|
|
|
@@ -206,7 +202,7 @@ export const registerDoctorCommunicationMenuActions = () => {
|
|
|
206
202
|
sortHint: "0030",
|
|
207
203
|
icon: "open_in_new",
|
|
208
204
|
label: "Veu IP",
|
|
209
|
-
callbackFn: () =>
|
|
205
|
+
callbackFn: () => navigateToEcap("VOIP"),
|
|
210
206
|
},
|
|
211
207
|
// { id: "5", sortHint: "0040", icon: "open_in_new", label: "Videoconsulta", callbackFn: () => {} },
|
|
212
208
|
];
|
|
@@ -229,42 +225,42 @@ export const registerDoctorClinicalPathwaysMenuActions = () => {
|
|
|
229
225
|
sortHint: "0010",
|
|
230
226
|
icon: "open_in_new",
|
|
231
227
|
label: "Proces d'atenció - ARES",
|
|
232
|
-
callbackFn: () =>
|
|
228
|
+
callbackFn: () => navigateToEcap("PROCES_ATENCIO"),
|
|
233
229
|
},
|
|
234
230
|
{
|
|
235
231
|
id: "3",
|
|
236
232
|
sortHint: "0030",
|
|
237
233
|
icon: "open_in_new",
|
|
238
234
|
label: "Nen sa",
|
|
239
|
-
callbackFn: () =>
|
|
235
|
+
callbackFn: () => navigateToEcap("NEN_SA"),
|
|
240
236
|
},
|
|
241
237
|
{
|
|
242
238
|
id: "4",
|
|
243
239
|
sortHint: "0040",
|
|
244
240
|
icon: "open_in_new",
|
|
245
241
|
label: "ASSIR",
|
|
246
|
-
callbackFn: () =>
|
|
242
|
+
callbackFn: () => navigateToEcap("NAVEGACIO_ASSIR"),
|
|
247
243
|
},
|
|
248
244
|
{
|
|
249
245
|
id: "5",
|
|
250
246
|
sortHint: "0050",
|
|
251
247
|
icon: "open_in_new",
|
|
252
248
|
label: "Odontologia",
|
|
253
|
-
callbackFn: () =>
|
|
249
|
+
callbackFn: () => navigateToEcap("ODONTOLOGO"),
|
|
254
250
|
},
|
|
255
251
|
{
|
|
256
252
|
id: "6",
|
|
257
253
|
sortHint: "0060",
|
|
258
254
|
icon: "open_in_new",
|
|
259
255
|
label: "Situació d'especial cura",
|
|
260
|
-
callbackFn: () =>
|
|
256
|
+
callbackFn: () => navigateToEcap("SIT_ESPEC_CURA_DEV"),
|
|
261
257
|
},
|
|
262
258
|
{
|
|
263
259
|
id: "7",
|
|
264
260
|
sortHint: "0070",
|
|
265
261
|
icon: "open_in_new",
|
|
266
262
|
label: "Valoració social",
|
|
267
|
-
callbackFn: () =>
|
|
263
|
+
callbackFn: () => navigateToEcap("VALORACIO_SOCIAL"),
|
|
268
264
|
},
|
|
269
265
|
];
|
|
270
266
|
for (const item of clinicalPathwaysItems) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { shellApi } from "../../api/api";
|
|
2
2
|
import { QuickActionItem } from "../shared-components/quick-action-item/quick-action-item";
|
|
3
|
-
import {
|
|
3
|
+
import { navigateToEcap } from "../../features/navigate-to-ecap/navigate-to-ecap";
|
|
4
4
|
|
|
5
5
|
export const registerDoctorQuickActionViews = () => {
|
|
6
6
|
shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.quickActions, {
|
|
@@ -8,7 +8,7 @@ export const registerDoctorQuickActionViews = () => {
|
|
|
8
8
|
sortHint: "0011",
|
|
9
9
|
factory: () => {
|
|
10
10
|
const quickActionItem = new QuickActionItem("", "Cita", () => {
|
|
11
|
-
|
|
11
|
+
navigateToEcap("CREAR_VISITA");
|
|
12
12
|
});
|
|
13
13
|
return Promise.resolve(quickActionItem);
|
|
14
14
|
},
|
|
@@ -14,13 +14,33 @@ export const template = (props: PrimariaNavTreeMenu) => html`
|
|
|
14
14
|
? html`
|
|
15
15
|
<dss-action-menu @onCloseActionMenu=${props.handleCloseMenu}>
|
|
16
16
|
${props.config.actionMenuItems?.map(
|
|
17
|
-
(item) =>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
(item) => item.hasNestedMenu
|
|
18
|
+
? html`
|
|
19
|
+
<dss-action-menu-item
|
|
20
|
+
righticon=${item.icon}
|
|
21
|
+
.label=${item.label}
|
|
22
|
+
hasnestedmenu
|
|
23
|
+
>
|
|
24
|
+
<dss-action-menu>
|
|
25
|
+
${item.nestedMenuItems?.map(
|
|
26
|
+
(nestedItem) => html`
|
|
27
|
+
<dss-action-menu-item
|
|
28
|
+
righticon=${nestedItem.icon}
|
|
29
|
+
.label=${nestedItem.label}
|
|
30
|
+
@click=${nestedItem.callbackFn}
|
|
31
|
+
></dss-action-menu-item>
|
|
32
|
+
`,
|
|
33
|
+
)}
|
|
34
|
+
</dss-action-menu>
|
|
35
|
+
</dss-action-menu-item>
|
|
36
|
+
`
|
|
37
|
+
: html`
|
|
38
|
+
<dss-action-menu-item
|
|
39
|
+
righticon=${item.icon}
|
|
40
|
+
.label=${item.label}
|
|
41
|
+
@click=${item.callbackFn}
|
|
42
|
+
></dss-action-menu-item>
|
|
43
|
+
`,
|
|
24
44
|
)}
|
|
25
45
|
</dss-action-menu>
|
|
26
46
|
`
|
|
@@ -4,10 +4,12 @@ interface MenuItem {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
export interface PrimariaNavItemConfig extends MenuItem {
|
|
7
|
-
callbackFn
|
|
7
|
+
callbackFn?: () => void;
|
|
8
8
|
showArrow?: boolean;
|
|
9
9
|
fill?: boolean;
|
|
10
10
|
rotateIcon?: boolean;
|
|
11
|
+
hasNestedMenu?: boolean;
|
|
12
|
+
nestedMenuItems?: PrimariaNavItemConfig[];
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export interface PrimariaNavTreeMenuConfig {
|
|
@@ -3,6 +3,8 @@ import { translate } from "../../locales";
|
|
|
3
3
|
import { PrimariaNavItem } from "../../UI/shared-components/primaria-nav-item/primaria-nav-item";
|
|
4
4
|
import { shellApi } from "../api";
|
|
5
5
|
import { PdfVisor } from "./pdf-visor/pdf-visor";
|
|
6
|
+
import { showNavItemTooltip } from "../../UI/components/navigation-tooltip/tooltip-manager";
|
|
7
|
+
import { primariaShellId } from "../../constants";
|
|
6
8
|
|
|
7
9
|
export const registerPdfViewerNavItem = () => {
|
|
8
10
|
shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu, {
|
|
@@ -18,6 +20,12 @@ export const registerPdfViewerNavItem = () => {
|
|
|
18
20
|
return Promise.resolve(menuItem);
|
|
19
21
|
},
|
|
20
22
|
});
|
|
23
|
+
|
|
24
|
+
// Show tooltip when PDF viewer is registered
|
|
25
|
+
setTimeout(() => {
|
|
26
|
+
const navItemKey = `${primariaShellId}::${pdfViewerId}`;
|
|
27
|
+
showNavItemTooltip(navItemKey, translate("pdfManager.tooltipMessage"));
|
|
28
|
+
}, 100);
|
|
21
29
|
};
|
|
22
30
|
|
|
23
31
|
export const registerPDFVisorMainView = () => {
|
|
@@ -2,6 +2,7 @@ import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
|
2
2
|
import { createPdfViewerManager } from "./pdf-viewer-manager";
|
|
3
3
|
import { pdfViwerEvents } from "./events";
|
|
4
4
|
import { registerPdfViewerNavItem } from "./handle-views";
|
|
5
|
+
import { showNavItemTooltip } from "../../UI/components/navigation-tooltip";
|
|
5
6
|
|
|
6
7
|
vi.mock("@primaria/plugins-core", () => ({
|
|
7
8
|
generateId: () => "generated-id",
|
|
@@ -15,6 +16,10 @@ vi.mock("../../locales", () => ({
|
|
|
15
16
|
translate: (key: string) => key,
|
|
16
17
|
}));
|
|
17
18
|
|
|
19
|
+
vi.mock("../../UI/components/navigation-tooltip", () => ({
|
|
20
|
+
showNavItemTooltip: vi.fn(),
|
|
21
|
+
}));
|
|
22
|
+
|
|
18
23
|
describe("PdfViewerManager", () => {
|
|
19
24
|
let manager: ReturnType<typeof createPdfViewerManager>;
|
|
20
25
|
let broker: any;
|
|
@@ -60,6 +65,22 @@ describe("PdfViewerManager", () => {
|
|
|
60
65
|
});
|
|
61
66
|
});
|
|
62
67
|
|
|
68
|
+
it("should show tooltip when adding a valid pdf", async () => {
|
|
69
|
+
vi.useFakeTimers();
|
|
70
|
+
|
|
71
|
+
manager.add("Doc1", { url: "https://test.com/doc1.pdf" });
|
|
72
|
+
|
|
73
|
+
// Fast-forward the setTimeout(100ms)
|
|
74
|
+
vi.advanceTimersByTime(100);
|
|
75
|
+
|
|
76
|
+
expect(showNavItemTooltip).toHaveBeenCalledWith(
|
|
77
|
+
"primaria-shell::pdf-viewer",
|
|
78
|
+
"pdfManager.tooltipMessage"
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
vi.useRealTimers();
|
|
82
|
+
});
|
|
83
|
+
|
|
63
84
|
it("should warn if pdf with same name already exists", () => {
|
|
64
85
|
manager.add("Doc1", { b64: "xxx" });
|
|
65
86
|
manager.add("Doc1", { b64: "xxx" });
|
|
@@ -68,6 +89,38 @@ describe("PdfViewerManager", () => {
|
|
|
68
89
|
expect(manager.getPdfs()).toHaveLength(1); // solo el primero
|
|
69
90
|
});
|
|
70
91
|
|
|
92
|
+
it("should not show tooltip when pdf with same name already exists", () => {
|
|
93
|
+
vi.useFakeTimers();
|
|
94
|
+
|
|
95
|
+
// First add succeeds and shows tooltip
|
|
96
|
+
manager.add("Doc1", { b64: "xxx" });
|
|
97
|
+
vi.advanceTimersByTime(100);
|
|
98
|
+
|
|
99
|
+
// Clear mocks after first add
|
|
100
|
+
vi.clearAllMocks();
|
|
101
|
+
|
|
102
|
+
// Second add with same name should show warning but NOT tooltip
|
|
103
|
+
manager.add("Doc1", { b64: "xxx" });
|
|
104
|
+
vi.advanceTimersByTime(100);
|
|
105
|
+
|
|
106
|
+
expect(notificationService.warning).toHaveBeenCalledWith("pdfManager.alreadyUploaded");
|
|
107
|
+
expect(showNavItemTooltip).not.toHaveBeenCalled();
|
|
108
|
+
|
|
109
|
+
vi.useRealTimers();
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("should not show tooltip when pdf data is invalid", () => {
|
|
113
|
+
vi.useFakeTimers();
|
|
114
|
+
|
|
115
|
+
manager.add("Doc1", {});
|
|
116
|
+
vi.advanceTimersByTime(100);
|
|
117
|
+
|
|
118
|
+
expect(notificationService.error).toHaveBeenCalledWith("pdfManager.missingData");
|
|
119
|
+
expect(showNavItemTooltip).not.toHaveBeenCalled();
|
|
120
|
+
|
|
121
|
+
vi.useRealTimers();
|
|
122
|
+
});
|
|
123
|
+
|
|
71
124
|
it("should call registerNavButton only once", () => {
|
|
72
125
|
manager.add("Doc1", { url: "u" });
|
|
73
126
|
manager.add("Doc2", { url: "u2" });
|
|
@@ -7,6 +7,9 @@ import { PrimariaNotificationService } from "../notification-service/notificatio
|
|
|
7
7
|
import { pdfViwerEvents } from "./events";
|
|
8
8
|
import { PdfSelector } from "./pdf-visor/pdf-selector/pdf-selector";
|
|
9
9
|
import { PdfVisor } from "./pdf-visor/pdf-visor";
|
|
10
|
+
import { showNavItemTooltip } from "../../UI/components/navigation-tooltip";
|
|
11
|
+
import { pdfViewerId } from "./constants";
|
|
12
|
+
import { primariaShellId } from "../../constants";
|
|
10
13
|
|
|
11
14
|
export interface IPdfDocument {
|
|
12
15
|
pdfName: string;
|
|
@@ -59,6 +62,12 @@ export class PdfViewerManager {
|
|
|
59
62
|
this.broker.publish(pdfViwerEvents.added, pdf);
|
|
60
63
|
|
|
61
64
|
this.notificationService.success(translate("pdfManager.uploaded"));
|
|
65
|
+
|
|
66
|
+
// Show tooltip to guide user to the PDF viewer
|
|
67
|
+
setTimeout(() => {
|
|
68
|
+
const navItemKey = `${primariaShellId}::${pdfViewerId}`;
|
|
69
|
+
showNavItemTooltip(navItemKey, translate("pdfManager.tooltipMessage"));
|
|
70
|
+
}, 100);
|
|
62
71
|
}
|
|
63
72
|
}
|
|
64
73
|
|
|
@@ -81,7 +90,5 @@ export class PdfViewerManager {
|
|
|
81
90
|
}
|
|
82
91
|
}
|
|
83
92
|
|
|
84
|
-
export const createPdfViewerManager = (
|
|
85
|
-
broker
|
|
86
|
-
notificationService: PrimariaNotificationService,
|
|
87
|
-
) => new PdfViewerManager(broker, notificationService);
|
|
93
|
+
export const createPdfViewerManager = (broker: PrimariaBroker, notificationService: PrimariaNotificationService) =>
|
|
94
|
+
new PdfViewerManager(broker, notificationService);
|
package/src/events.ts
CHANGED
|
@@ -4,4 +4,6 @@ export const shellEvents = {
|
|
|
4
4
|
refreshTokenFailed: "refreshTokenFailed",
|
|
5
5
|
mpidHeaderInvalid: "mpidHeaderInvalid",
|
|
6
6
|
quickActionBusyChanged: "quickActionBusyChanged",
|
|
7
|
+
scrollToNavItemRequested: "scrollToNavItemRequested",
|
|
8
|
+
scrollToNavItemCompleted: "scrollToNavItemCompleted",
|
|
7
9
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { shellApi } from "../../api/api";
|
|
2
|
+
import { getPatientCip } from "../get-patient-cip/action";
|
|
3
|
+
|
|
4
|
+
export const navigateToEcap = async (
|
|
5
|
+
eventName: string,
|
|
6
|
+
closeAction = "NO_TANCAR",
|
|
7
|
+
additionalParams: Record<string, string> = {},
|
|
8
|
+
includeCip = true,
|
|
9
|
+
) => {
|
|
10
|
+
const params = { ...additionalParams };
|
|
11
|
+
|
|
12
|
+
if (includeCip) {
|
|
13
|
+
const CIP = await getPatientCip(shellApi);
|
|
14
|
+
params.CIP = CIP;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
shellApi.ecapEventManager.publish(eventName, closeAction, params);
|
|
18
|
+
};
|
package/src/locales.ts
CHANGED
|
@@ -41,7 +41,7 @@ export const locales = {
|
|
|
41
41
|
errors: {
|
|
42
42
|
session: "Hi ha hagut un error amb la sessió. Siusplau, tanca i torna a obrir l'aplicació.",
|
|
43
43
|
invalidPatient: "El pacient actual no és vàlid. Siusplau, tanca i torna a obrir l'aplicació.",
|
|
44
|
-
exit: "Hi ha hagut un error en sortir de l'ETC"
|
|
44
|
+
exit: "Hi ha hagut un error en sortir de l'ETC",
|
|
45
45
|
},
|
|
46
46
|
header: {
|
|
47
47
|
workCenter: "Centre treball",
|
|
@@ -57,17 +57,18 @@ export const locales = {
|
|
|
57
57
|
navButtonLabel: "Visor PDF",
|
|
58
58
|
missingData: "Es necesita un document o URL per enviar al visor de resultats",
|
|
59
59
|
duplicatedSource: "Només pots envar un document o URL a la vegada",
|
|
60
|
+
tooltipMessage: "S'ha generat el PDF al visor",
|
|
60
61
|
},
|
|
61
62
|
pdfVisor: {
|
|
62
63
|
noPdfSelected: "No hi ha cap PDF seleccionat",
|
|
63
64
|
},
|
|
64
|
-
importDataManager:{
|
|
65
|
+
importDataManager: {
|
|
65
66
|
title: "Importar dades",
|
|
66
67
|
actions: {
|
|
67
68
|
cancel: "Cancel·lar",
|
|
68
69
|
import: "Importar dades",
|
|
69
|
-
}
|
|
70
|
-
}
|
|
70
|
+
},
|
|
71
|
+
},
|
|
71
72
|
},
|
|
72
73
|
},
|
|
73
74
|
};
|