@openmrs/esm-user-onboarding-app 4.0.1-pre.76 → 4.0.1-pre.77
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/.tx/config +11 -0
- package/dist/1119.js +1 -0
- package/dist/1197.js +1 -0
- package/dist/2146.js +1 -0
- package/dist/2690.js +1 -0
- package/dist/282.js +2 -0
- package/dist/282.js.LICENSE.txt +32 -0
- package/dist/282.js.map +1 -0
- package/dist/3099.js +1 -0
- package/dist/3184.js +2 -0
- package/dist/3184.js.LICENSE.txt +14 -0
- package/dist/3184.js.map +1 -0
- package/dist/3584.js +1 -0
- package/dist/3950.js +2 -0
- package/dist/3950.js.LICENSE.txt +24 -0
- package/dist/3950.js.map +1 -0
- package/dist/4055.js +1 -0
- package/dist/4132.js +1 -0
- package/dist/4300.js +1 -0
- package/dist/4335.js +1 -0
- package/dist/4353.js +1 -0
- package/dist/4353.js.map +1 -0
- package/dist/4618.js +1 -0
- package/dist/4652.js +1 -0
- package/dist/4944.js +1 -0
- package/dist/5059.js +1 -0
- package/dist/5059.js.map +1 -0
- package/dist/5173.js +1 -0
- package/dist/5241.js +1 -0
- package/dist/5442.js +1 -0
- package/dist/553.js +2 -0
- package/dist/{534.js.LICENSE.txt → 553.js.LICENSE.txt} +7 -13
- package/dist/553.js.map +1 -0
- package/dist/5661.js +1 -0
- package/dist/6022.js +1 -0
- package/dist/6399.js +1 -0
- package/dist/6399.js.map +1 -0
- package/dist/6468.js +1 -0
- package/dist/6540.js +2 -0
- package/dist/6540.js.map +1 -0
- package/dist/6679.js +1 -0
- package/dist/6840.js +1 -0
- package/dist/6859.js +1 -0
- package/dist/6920.js +1 -0
- package/dist/6920.js.map +1 -0
- package/dist/7097.js +1 -0
- package/dist/7159.js +1 -0
- package/dist/723.js +1 -0
- package/dist/7617.js +1 -0
- package/dist/795.js +1 -0
- package/dist/8163.js +1 -0
- package/dist/8349.js +1 -0
- package/dist/844.js +1 -0
- package/dist/844.js.map +1 -0
- package/dist/8618.js +1 -0
- package/dist/8690.js +1 -0
- package/dist/8690.js.map +1 -0
- package/dist/890.js +1 -0
- package/dist/9214.js +1 -0
- package/dist/9538.js +1 -0
- package/dist/9569.js +1 -0
- package/dist/961.js +2 -0
- package/dist/961.js.LICENSE.txt +19 -0
- package/dist/961.js.map +1 -0
- package/dist/986.js +1 -0
- package/dist/9879.js +1 -0
- package/dist/9895.js +1 -0
- package/dist/9900.js +1 -0
- package/dist/9913.js +1 -0
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-user-onboarding-app.js +1 -1
- package/dist/openmrs-esm-user-onboarding-app.js.buildmanifest.json +980 -108
- package/dist/openmrs-esm-user-onboarding-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/e2e/specs/onboarding-test.spec.ts +3 -3
- package/jest.config.js +2 -2
- package/package.json +8 -7
- package/src/config-schema.ts +455 -91
- package/src/declarations.d.ts +2 -0
- package/src/root.component.tsx +26 -17
- package/src/tooltip/tooltip.component.tsx +35 -30
- package/src/tooltip/tooltip.scss +52 -23
- package/src/tutorial/modal.component.tsx +6 -4
- package/src/tutorial/styles.scss +35 -1
- package/src/tutorial/tutorial.tsx +1 -0
- package/tools/update-openmrs-deps.mjs +43 -0
- package/translations/am.json +9 -1
- package/translations/ar.json +9 -0
- package/translations/ar_SY.json +9 -0
- package/translations/bn.json +9 -0
- package/translations/de.json +9 -0
- package/translations/en_US.json +9 -0
- package/translations/es.json +9 -1
- package/translations/es_MX.json +9 -0
- package/translations/fr.json +9 -1
- package/translations/he.json +9 -1
- package/translations/hi.json +9 -0
- package/translations/hi_IN.json +9 -0
- package/translations/id.json +9 -0
- package/translations/it.json +9 -0
- package/translations/ka.json +9 -0
- package/translations/km.json +9 -1
- package/translations/ku.json +9 -0
- package/translations/ky.json +9 -0
- package/translations/lg.json +9 -0
- package/translations/ne.json +9 -0
- package/translations/pl.json +9 -0
- package/translations/pt.json +9 -0
- package/translations/pt_BR.json +9 -0
- package/translations/qu.json +9 -0
- package/translations/ro_RO.json +9 -0
- package/translations/ru_RU.json +9 -0
- package/translations/si.json +9 -0
- package/translations/sw.json +9 -0
- package/translations/sw_KE.json +9 -0
- package/translations/tr.json +9 -0
- package/translations/tr_TR.json +9 -0
- package/translations/uk.json +9 -0
- package/translations/uz.json +9 -0
- package/translations/uz@Latn.json +9 -0
- package/translations/uz_UZ.json +9 -0
- package/translations/vi.json +9 -0
- package/translations/zh.json +9 -0
- package/translations/zh_CN.json +9 -0
- package/tsconfig.json +2 -1
- package/dist/151.js +0 -2
- package/dist/151.js.LICENSE.txt +0 -3
- package/dist/151.js.map +0 -1
- package/dist/197.js +0 -1
- package/dist/300.js +0 -1
- package/dist/335.js +0 -1
- package/dist/422.js +0 -1
- package/dist/422.js.map +0 -1
- package/dist/438.js +0 -1
- package/dist/438.js.map +0 -1
- package/dist/534.js +0 -2
- package/dist/534.js.map +0 -1
- package/dist/540.js +0 -2
- package/dist/540.js.map +0 -1
- package/dist/55.js +0 -1
- package/dist/570.js +0 -1
- package/dist/570.js.map +0 -1
- package/dist/652.js +0 -1
- package/dist/743.js +0 -1
- package/dist/743.js.map +0 -1
- package/dist/917.js +0 -1
- package/dist/917.js.map +0 -1
- package/dist/99.js +0 -1
- /package/dist/{540.js.LICENSE.txt → 6540.js.LICENSE.txt} +0 -0
package/src/config-schema.ts
CHANGED
|
@@ -11,12 +11,11 @@ export const configSchema = {
|
|
|
11
11
|
_description: 'List of tutorials to be displayed in the modal',
|
|
12
12
|
_default: [
|
|
13
13
|
{
|
|
14
|
-
title: 'Basic
|
|
15
|
-
description: '
|
|
14
|
+
title: 'Basic Overview',
|
|
15
|
+
description: 'This guide provides a quick look at the essential components that shape the layout and user experience of our homepage.',
|
|
16
16
|
steps: [{
|
|
17
17
|
target: '[aria-label="OpenMRS"]',
|
|
18
18
|
content: 'Welcome to OpenMRS! This is the main dashboard where you can navigate to various features of the system.',
|
|
19
|
-
disableBeacon: true
|
|
20
19
|
},
|
|
21
20
|
{
|
|
22
21
|
target: '[name="SearchPatientIcon"]',
|
|
@@ -41,79 +40,12 @@ export const configSchema = {
|
|
|
41
40
|
],
|
|
42
41
|
},
|
|
43
42
|
{
|
|
44
|
-
title: '
|
|
45
|
-
description: 'This tutorial is for demo / debugging purposes only',
|
|
46
|
-
steps: [
|
|
47
|
-
{
|
|
48
|
-
target: '[aria-label="OpenMRS"]',
|
|
49
|
-
title: 'Let us walk through the tutorial features together.',
|
|
50
|
-
disableBeacon: true,
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
target: '[data-extension-id="clinical-appointments-dashboard-link"]',
|
|
54
|
-
title:
|
|
55
|
-
'Click on this link. This step is configured to be automatic and will take you to the next step. Once the given query selector resolves an element on the page, it will proceed automatically.',
|
|
56
|
-
hideCloseButton: true,
|
|
57
|
-
hideNextButton: true,
|
|
58
|
-
disableOverlayClose: true,
|
|
59
|
-
spotlightClicks: true,
|
|
60
|
-
data: {
|
|
61
|
-
autoNextOn: '[data-extension-id="clinical-appointments-dashboard"]',
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
target: '[data-extension-id="clinical-appointments-dashboard"]',
|
|
66
|
-
title: 'Congrats! You have reached the clinical appointments dashboard.',
|
|
67
|
-
disableOverlayClose: true,
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
target: '[aria-label="OpenMRS"]',
|
|
71
|
-
title:
|
|
72
|
-
'Now, let’s see how this behaves when elements take a bit longer to load. Set your network throttling to "Slow 3G" and hit "Next".',
|
|
73
|
-
disableOverlayClose: true,
|
|
74
|
-
hideBackButton: true,
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
target: '[data-extension-id="laboratory-dashboard-link"]',
|
|
78
|
-
title:
|
|
79
|
-
'Let\'s navigate to the laboratory page. Our next target is the "Tests Ordered" table. I’ll disappear once you reach the laboratory page and reappear when the table is loaded. See you there!',
|
|
80
|
-
hideCloseButton: true,
|
|
81
|
-
hideNextButton: true,
|
|
82
|
-
disableOverlayClose: true,
|
|
83
|
-
spotlightClicks: true,
|
|
84
|
-
data: {
|
|
85
|
-
autoNextOn: '[data-extension-id="laboratory-dashboard"]',
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
target: '[data-extension-id="all-lab-requests-table"] table',
|
|
90
|
-
title:
|
|
91
|
-
"It's me again. By default, I'll wait for the element to appear, so you don't have to worry about slow components when writing a new tutorial.",
|
|
92
|
-
disableOverlayClose: true,
|
|
93
|
-
hideBackButton: true,
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
target: '[aria-label="OpenMRS"]',
|
|
97
|
-
title:
|
|
98
|
-
"Now let's do a fun exercise. Can you find out how to view a patient's allergies on your own? Feel free to turn off network throttling. ;) ",
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
target: '[data-extension-slot-name="patient-chart-allergies-dashboard-slot"]',
|
|
102
|
-
title:
|
|
103
|
-
'Great job! You found the allergies section! This is the end of the tutorial. Feel free to explore the system on your own or check out the other tutorials.',
|
|
104
|
-
},
|
|
105
|
-
],
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
title: 'Patient Registration Tutorial',
|
|
43
|
+
title: 'Registering a Patient',
|
|
109
44
|
description: 'Learn how to register a new patient into the system.',
|
|
110
45
|
steps: [
|
|
111
46
|
{
|
|
112
47
|
target: '[name="AddPatientIcon"]',
|
|
113
|
-
title: 'Add Patient',
|
|
114
48
|
content: 'Click here to add a patient to the system.',
|
|
115
|
-
disableBeacon: true,
|
|
116
|
-
disableOverlayClose: true,
|
|
117
49
|
spotlightClicks: true,
|
|
118
50
|
hideCloseButton: true,
|
|
119
51
|
hideNextButton: true,
|
|
@@ -127,41 +59,33 @@ export const configSchema = {
|
|
|
127
59
|
title: 'Demographics',
|
|
128
60
|
content:
|
|
129
61
|
'This is the Demographics section. Here you can find various fields and information related to the patient.',
|
|
130
|
-
disableBeacon: true,
|
|
131
62
|
hideBackButton: true,
|
|
132
63
|
},
|
|
133
64
|
{
|
|
134
65
|
target: '#contact',
|
|
135
66
|
title: 'Contact Details',
|
|
136
67
|
content: "Here you can update the patient's contact information.",
|
|
137
|
-
disableBeacon: true,
|
|
138
68
|
},
|
|
139
69
|
{
|
|
140
70
|
target: '#relationships',
|
|
141
71
|
title: 'Relationships',
|
|
142
72
|
content: "In this section, you can manage the patient's relationships.",
|
|
143
|
-
disableBeacon: true,
|
|
144
73
|
},
|
|
145
74
|
{
|
|
146
75
|
target: 'button[type="submit"]',
|
|
147
|
-
title: 'Register Patient',
|
|
148
76
|
content: "Click this button to register the patient's information into the system.",
|
|
149
|
-
disableBeacon: true,
|
|
150
77
|
},
|
|
151
78
|
],
|
|
152
79
|
},
|
|
153
80
|
{
|
|
154
|
-
title: 'Patient Chart
|
|
81
|
+
title: 'Patient Chart',
|
|
155
82
|
description:
|
|
156
83
|
'Patient chart is the main point of interaction between healthcare professionals and patient data, where you can manage everything related to a single patient.',
|
|
157
84
|
steps: [
|
|
158
85
|
{
|
|
159
86
|
target: '[data-testid="searchPatientIcon"]',
|
|
160
|
-
title: 'Search icon',
|
|
161
87
|
content:
|
|
162
88
|
'To access the patient chart, first, you need to select a patient. To start, click here to open the search box so that we can search for a patient.',
|
|
163
|
-
disableBeacon: true,
|
|
164
|
-
disableOverlayClose: true,
|
|
165
89
|
spotlightClicks: true,
|
|
166
90
|
hideNextButton: true,
|
|
167
91
|
data: {
|
|
@@ -170,12 +94,10 @@ export const configSchema = {
|
|
|
170
94
|
},
|
|
171
95
|
{
|
|
172
96
|
target: '[data-testid="patientSearchBar"]',
|
|
173
|
-
title: 'Search box',
|
|
174
97
|
content:
|
|
175
98
|
'Now, enter the name or the ID of the patient here. Some example patient names that you can search for are: John, Smith, Mary.',
|
|
176
99
|
hideNextButton: true,
|
|
177
100
|
hideBackButton: true,
|
|
178
|
-
disableOverlayClose: true,
|
|
179
101
|
spotlightClicks: true,
|
|
180
102
|
data: {
|
|
181
103
|
autoNextOn: '[data-testid="floatingSearchResultsContainer"]',
|
|
@@ -183,10 +105,8 @@ export const configSchema = {
|
|
|
183
105
|
},
|
|
184
106
|
{
|
|
185
107
|
target: '[data-testid="floatingSearchResultsContainer"]',
|
|
186
|
-
title: 'Search results',
|
|
187
108
|
content: 'Click on the patient you want to go to their patient chart.',
|
|
188
109
|
spotlightClicks: true,
|
|
189
|
-
disableOverlayClose: true,
|
|
190
110
|
disableOverlay : true,
|
|
191
111
|
placement: 'left',
|
|
192
112
|
hideNextButton: true,
|
|
@@ -200,7 +120,6 @@ export const configSchema = {
|
|
|
200
120
|
title: 'Patient Chart',
|
|
201
121
|
content: "Welcome to the Patient Chart View! Here, you can quickly see everything about your patient's health history, visits, medications, allergies, and test results—all in one place. It's designed to help you provide the best care efficiently.",
|
|
202
122
|
spotlightClicks: true,
|
|
203
|
-
disableOverlayClose: true,
|
|
204
123
|
hideBackButton: true,
|
|
205
124
|
placement: 'center',
|
|
206
125
|
},
|
|
@@ -209,7 +128,6 @@ export const configSchema = {
|
|
|
209
128
|
title: 'Patient header',
|
|
210
129
|
content:
|
|
211
130
|
'The patient header contains all the key information you need to identify the patient you are currently viewing. You can click on the "Show Details" button to see additional patient information.',
|
|
212
|
-
disableOverlayClose: true,
|
|
213
131
|
spotlightClicks: true,
|
|
214
132
|
hideBackButton: true,
|
|
215
133
|
},
|
|
@@ -218,7 +136,6 @@ export const configSchema = {
|
|
|
218
136
|
title: 'Left panel',
|
|
219
137
|
content:
|
|
220
138
|
'The left panel shows the sections of the patient chart. Currently, we are on the patient summary page.',
|
|
221
|
-
disableOverlayClose: true,
|
|
222
139
|
spotlightClicks: true,
|
|
223
140
|
placement: 'right',
|
|
224
141
|
},
|
|
@@ -227,7 +144,6 @@ export const configSchema = {
|
|
|
227
144
|
title: 'Patient summary widgets',
|
|
228
145
|
content:
|
|
229
146
|
'Patient Summary is a personalized view made up of widgets that show essential features and information for quick access.',
|
|
230
|
-
disableOverlayClose: true,
|
|
231
147
|
},
|
|
232
148
|
{
|
|
233
149
|
target: '[data-extension-slot-name="action-menu-patient-chart-items-slot"]',
|
|
@@ -237,13 +153,462 @@ export const configSchema = {
|
|
|
237
153
|
},
|
|
238
154
|
{
|
|
239
155
|
target: 'body',
|
|
240
|
-
|
|
156
|
+
content:
|
|
241
157
|
"Great job! You've completed the tutorial. Now, take a moment to explore the Patient Chart View and discover all its features. Feel free to navigate around and get comfortable with the layout. If you need to return to the home page, just click the close button in the top right corner. Happy exploring!",
|
|
242
|
-
disableOverlayClose: true,
|
|
243
158
|
placement: 'center',
|
|
244
159
|
},
|
|
245
160
|
],
|
|
246
161
|
},
|
|
162
|
+
{
|
|
163
|
+
title: 'Finding a Patient',
|
|
164
|
+
description: 'Learn how to find a patient in the system using basic and advanced search features, including the use of filters to refine results.',
|
|
165
|
+
steps: [
|
|
166
|
+
{
|
|
167
|
+
target: '[data-testid="searchPatientIcon"]',
|
|
168
|
+
content: 'Click on the search icon to open the search box so that we can search for a patient.',
|
|
169
|
+
spotlightClicks: true,
|
|
170
|
+
hideNextButton: true,
|
|
171
|
+
data: {
|
|
172
|
+
autoNextOn: '[data-testid="patientSearchBar"]',
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
target: '[data-testid="patientSearchBar"]',
|
|
177
|
+
content:
|
|
178
|
+
'Now, enter the name of the patient here. If you know the patient ID, you can use that as well. You will see the results if the patient you entered exists in the system. Some example patient names that you can search for are: John, Smith, Mary.',
|
|
179
|
+
hideNextButton: true,
|
|
180
|
+
hideBackButton: true,
|
|
181
|
+
spotlightClicks: true,
|
|
182
|
+
data: {
|
|
183
|
+
autoNextOn: '[data-testid="floatingSearchResultsContainer"]',
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
target: 'button[type="submit"]',
|
|
188
|
+
content:
|
|
189
|
+
'If there are a lot of patients in the system, you may need additional fields to search other than the name. Also, the patient you are looking for may not be displayed in the top results if there are multiple patients with the same name. In these scenarios, you can click here to open the advanced search.',
|
|
190
|
+
spotlightClicks: true,
|
|
191
|
+
placement: 'bottom',
|
|
192
|
+
hideNextButton: true,
|
|
193
|
+
hideBackButton: true,
|
|
194
|
+
data: {
|
|
195
|
+
autoNextOn: '[data-openmrs-role="Refine Search"]',
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
target: '[data-openmrs-role="Refine Search"]',
|
|
200
|
+
title: 'Filters section',
|
|
201
|
+
content:
|
|
202
|
+
'You can refine your search by applying filters such as date of birth, age, sex, and phone number here.',
|
|
203
|
+
spotlightClicks: true,
|
|
204
|
+
hideBackButton: true,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
target: '[data-openmrs-role="Search Results"]',
|
|
208
|
+
content:
|
|
209
|
+
'Here you can see all the patients who match the search criteria. Clicking on a patient will open the patient’s patient chart.',
|
|
210
|
+
placement: 'right',
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
target: '[data-testid="closeSearchIcon"]',
|
|
214
|
+
content: 'That’s the end of the tutorial. Click on the close button to go back to the home page.',
|
|
215
|
+
spotlightClicks: true,
|
|
216
|
+
placement: 'bottom',
|
|
217
|
+
hideNextButton: true,
|
|
218
|
+
hideBackButton: true,
|
|
219
|
+
data: {
|
|
220
|
+
autoNextOn: '[data-extension-id="page-header"]',
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
title: 'Patient Lists',
|
|
227
|
+
description:
|
|
228
|
+
'This tutorial will guide you through creating and managing patient lists to help organize and track your patients more effectively.',
|
|
229
|
+
steps: [
|
|
230
|
+
{
|
|
231
|
+
target: '[data-extension-id="patient-lists-dashboard-link"]',
|
|
232
|
+
content:
|
|
233
|
+
'Creating a patient list is a great way to keep a group of patients organized for easier management. Click here to go to the patient lists view',
|
|
234
|
+
spotlightClicks: true,
|
|
235
|
+
hideNextButton: true,
|
|
236
|
+
data: {
|
|
237
|
+
autoNextOn: '[title="All lists"]',
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
target: '[title="All lists"]',
|
|
242
|
+
content: 'Click here to see all the patient lists we have in the system.',
|
|
243
|
+
hideNextButton: true,
|
|
244
|
+
hideBackButton: true,
|
|
245
|
+
spotlightClicks: true,
|
|
246
|
+
spotlightPadding: 20,
|
|
247
|
+
data: {
|
|
248
|
+
autoNextOn: '[data-testid="patientListsTable"]',
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
target: '[data-openmrs-role="New List"]',
|
|
253
|
+
content: "Now, let's try creating a new list. Click here to open the new patient list form.",
|
|
254
|
+
spotlightClicks: true,
|
|
255
|
+
placement: 'left',
|
|
256
|
+
hideNextButton: true,
|
|
257
|
+
hideBackButton: true,
|
|
258
|
+
data: {
|
|
259
|
+
autoNextOn: '[data-openmrs-role="Patient List Form"]',
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
target: '[data-openmrs-role="Patient List Form"]',
|
|
264
|
+
content: 'Enter the necessary details and click on "Create List" to create the list.',
|
|
265
|
+
spotlightClicks: true,
|
|
266
|
+
hideBackButton: true,
|
|
267
|
+
hideNextButton: true,
|
|
268
|
+
placement: 'left',
|
|
269
|
+
data: {
|
|
270
|
+
autoNextOn: '.omrs-snackbars-container div',
|
|
271
|
+
},
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
target: '[data-testid="patientListsTable"]',
|
|
275
|
+
content:
|
|
276
|
+
'Great! We have successfully created a new patient list. Find and click on the patient list you created to proceed. You can use the search option at the top right if needed.',
|
|
277
|
+
disableOverlay: true,
|
|
278
|
+
spotlightClicks: true,
|
|
279
|
+
spotlightPadding: 40,
|
|
280
|
+
hideBackButton: true,
|
|
281
|
+
hideNextButton: true,
|
|
282
|
+
data: {
|
|
283
|
+
autoNextOn: '[data-openmrs-role="Patient Empty tile"]',
|
|
284
|
+
},
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
target: '[data-openmrs-role="Patient Empty tile"]',
|
|
288
|
+
content: "You can see the patient list is empty since we haven't added any patients to the list yet.",
|
|
289
|
+
hideBackButton: true,
|
|
290
|
+
disableOverlay: true,
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
target: '[data-testid="searchPatientIcon"]',
|
|
294
|
+
content:
|
|
295
|
+
'To add a patient to the list, we have to go to the respective patient’s chart view. Click here to open the search box so that we can search for a patient.',
|
|
296
|
+
spotlightClicks: true,
|
|
297
|
+
hideNextButton: true,
|
|
298
|
+
hideBackButton: true,
|
|
299
|
+
data: {
|
|
300
|
+
autoNextOn: '[data-testid="patientSearchBar"]',
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
target: '[data-testid="patientSearchBar"]',
|
|
305
|
+
content:
|
|
306
|
+
'Now, enter the name or the ID of the patient here. Some example patient names that you can search for are: John, Smith, Mary.',
|
|
307
|
+
hideNextButton: true,
|
|
308
|
+
hideBackButton: true,
|
|
309
|
+
spotlightClicks: true,
|
|
310
|
+
data: {
|
|
311
|
+
autoNextOn: '[data-testid="floatingSearchResultsContainer"]',
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
target: '[data-testid="floatingSearchResultsContainer"]',
|
|
316
|
+
content:
|
|
317
|
+
'Click on the patient to go to the patient chart, where we can add the patient to our newly created list.',
|
|
318
|
+
spotlightClicks: true,
|
|
319
|
+
disableOverlay: true,
|
|
320
|
+
placement: 'left',
|
|
321
|
+
hideNextButton: true,
|
|
322
|
+
hideBackButton: true,
|
|
323
|
+
data: {
|
|
324
|
+
autoNextOn: '[data-extension-slot-name="action-menu-patient-chart-items-slot"]',
|
|
325
|
+
},
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
target: '#custom-actions-overflow-menu-trigger',
|
|
329
|
+
content: 'Click on "Action" and select "Add to List" from the drop-down menu.',
|
|
330
|
+
disableOverlay: true,
|
|
331
|
+
placement: 'left',
|
|
332
|
+
spotlightClicks: true,
|
|
333
|
+
hideBackButton: true,
|
|
334
|
+
hideNextButton: true,
|
|
335
|
+
data: {
|
|
336
|
+
autoNextOn: '.cds--modal-container',
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
target: '.cds--modal-container',
|
|
341
|
+
content:
|
|
342
|
+
'You can see the list of patient lists here. Search for our newly created patient list using the filter, and mark the checkbox beside the patient list name. You can add the patient to multiple lists at once by selecting multiple checkboxes.',
|
|
343
|
+
disableOverlay: true,
|
|
344
|
+
spotlightClicks: true,
|
|
345
|
+
hideBackButton: true,
|
|
346
|
+
hideNextButton: true,
|
|
347
|
+
placement: 'left',
|
|
348
|
+
data: {
|
|
349
|
+
autoNextOn: '.omrs-snackbars-container div',
|
|
350
|
+
},
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
target: '[aria-label="Close"]',
|
|
354
|
+
content:
|
|
355
|
+
"We have successfully added a patient to the patient list. Let's go back to the patient lists by closing the patient chart by clicking here.",
|
|
356
|
+
spotlightClicks: true,
|
|
357
|
+
hideBackButton: true,
|
|
358
|
+
hideNextButton: true,
|
|
359
|
+
data: {
|
|
360
|
+
autoNextOn: '[data-testid="patientsTable"]',
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
target: '[data-testid="patientsTable"]',
|
|
365
|
+
title: 'Patients List',
|
|
366
|
+
content: 'You can see the added patient on the list of patients.',
|
|
367
|
+
spotlightClicks: true,
|
|
368
|
+
hideBackButton: true,
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
target: 'body',
|
|
372
|
+
content:
|
|
373
|
+
'Congrats! You have now completed the tutorial on creating patient lists and adding patients to the lists.',
|
|
374
|
+
placement: 'center',
|
|
375
|
+
hideBackButton: true,
|
|
376
|
+
},
|
|
377
|
+
],
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
title: 'Recording Vitals',
|
|
381
|
+
description:
|
|
382
|
+
'Learn how to record a patient\'s vitals and biometric data, and review the records through the patient chart.',
|
|
383
|
+
steps: [
|
|
384
|
+
{
|
|
385
|
+
target: '[data-testid="searchPatientIcon"]',
|
|
386
|
+
content:
|
|
387
|
+
'To capture the vitals of a patient, you need to start by going to the patient chart view of the respective patient. Click on the search icon to open the search box so that you can search for the patient.',
|
|
388
|
+
spotlightClicks: true,
|
|
389
|
+
hideNextButton: true,
|
|
390
|
+
data: {
|
|
391
|
+
autoNextOn: '[data-testid="patientSearchBar"]'
|
|
392
|
+
},
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
target: '[data-testid="patientSearchBar"]',
|
|
396
|
+
content:
|
|
397
|
+
'Now, enter the name or the ID of the patient here. Some example patient names you can search for are: John, Smith, Mary.',
|
|
398
|
+
hideNextButton: true,
|
|
399
|
+
hideBackButton: true,
|
|
400
|
+
spotlightClicks: true,
|
|
401
|
+
data: {
|
|
402
|
+
autoNextOn: '[data-testid="floatingSearchResultsContainer"]'
|
|
403
|
+
},
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
target: '[data-testid="floatingSearchResultsContainer"]',
|
|
407
|
+
content: 'Click on the patient to go to their patient chart.',
|
|
408
|
+
placement: 'left',
|
|
409
|
+
spotlightClicks: true,
|
|
410
|
+
hideBackButton: true,
|
|
411
|
+
hideNextButton: true,
|
|
412
|
+
data: {
|
|
413
|
+
autoNextOn: '[data-extension-slot-name="action-menu-patient-chart-items-slot"]',
|
|
414
|
+
},
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
target: '[data-extension-id="patient-vitals-info"] button',
|
|
418
|
+
content:
|
|
419
|
+
'Click on the "Record Vitals" button to open the vitals form. If the selected patient doesn\'t have an active visit, you will be prompted to start one. In that case, submit the start visit form in order to the next step.',
|
|
420
|
+
disableOverlay: true,
|
|
421
|
+
spotlightClicks: true,
|
|
422
|
+
hideBackButton: true,
|
|
423
|
+
hideNextButton: true,
|
|
424
|
+
data: {
|
|
425
|
+
autoNextOn: '[aria-label="Workspace header"]',
|
|
426
|
+
},
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
target: '[data-openmrs-role="Vitals and Biometrics Form"]',
|
|
430
|
+
title: 'Vitals form',
|
|
431
|
+
content:
|
|
432
|
+
'In this form, you can enter the vitals and biometrics you have captured. If any value entered is out of the normal range, you will see ↑ (High), ↓ (Low), ↑↑ (Very High) or ↓↓ (Very Low) indicators next to the respective field. After entering all necessary details, click on the "Save and Close" button to submit the data.',
|
|
433
|
+
disableOverlay: true,
|
|
434
|
+
spotlightClicks: true,
|
|
435
|
+
placement: 'left',
|
|
436
|
+
hideBackButton: true,
|
|
437
|
+
hideNextButton: true,
|
|
438
|
+
data: {
|
|
439
|
+
autoNextOn: '.omrs-snackbars-container div'
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
target: '[data-extension-id="patient-vitals-info"]',
|
|
444
|
+
content: 'The latest vitals and biometrics data of the patient can be viewed in this section.',
|
|
445
|
+
hideBackButton: true,
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
target: '[data-extension-id="results-summary-dashboard"]',
|
|
449
|
+
content:
|
|
450
|
+
'Click here to go to the Vitals and Biometrics page, where you can view the past records of vitals and biometrics.',
|
|
451
|
+
hideBackButton: true,
|
|
452
|
+
hideNextButton: true,
|
|
453
|
+
spotlightClicks: true,
|
|
454
|
+
data: {
|
|
455
|
+
autoNextOn: '[data-extension-slot-name="patient-chart-vitals-biometrics-dashboard-slot"]'
|
|
456
|
+
},
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
target: '[data-extension-slot-name="patient-chart-vitals-biometrics-dashboard-slot"]',
|
|
460
|
+
content:
|
|
461
|
+
'These tables display the history of vitals and biometrics. Indicators may be present here to show measurements that are higher or lower than the typical range.',
|
|
462
|
+
hideBackButton: true,
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
target: '[aria-label="Chart view"]',
|
|
466
|
+
content: 'You can click on the "Chart" button for a graphical representation of the vitals history.',
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
target: 'body',
|
|
470
|
+
content:
|
|
471
|
+
'You have now successfully completed the tutorial. You can continue with the rest of the patient visit by recording additional information or performing other necessary actions within the patient chart view, or you can return to the homepage.',
|
|
472
|
+
placement: 'center',
|
|
473
|
+
hideBackButton: true,
|
|
474
|
+
},
|
|
475
|
+
],
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
title: 'Starting a Patient Visit',
|
|
479
|
+
description:
|
|
480
|
+
'Learn how to start a visit for a patient.',
|
|
481
|
+
steps: [
|
|
482
|
+
{
|
|
483
|
+
target: '[data-testid="searchPatientIcon"]',
|
|
484
|
+
content:
|
|
485
|
+
'To fill out any forms or encounters of a patient, you have to start a visit. To start a patient visit, first you need to go to the patient chart view of the respective patient. Click on the search icon to open the search box so that we can search for the patient. ',
|
|
486
|
+
disableBeacon: true,
|
|
487
|
+
spotlightClicks: true,
|
|
488
|
+
hideNextButton: true,
|
|
489
|
+
data: {
|
|
490
|
+
autoNextOn: '[data-testid="patientSearchBar"]',
|
|
491
|
+
},
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
target: '[data-testid="patientSearchBar"]',
|
|
495
|
+
content:
|
|
496
|
+
'Now, enter the name or the ID of the patient here. Some example patient names that you can search for are: John, Smith, Mary.',
|
|
497
|
+
hideNextButton: true,
|
|
498
|
+
hideBackButton: true,
|
|
499
|
+
spotlightClicks: true,
|
|
500
|
+
data: {
|
|
501
|
+
autoNextOn: '[data-testid="floatingSearchResultsContainer"]',
|
|
502
|
+
},
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
target: '[data-testid="floatingSearchResultsContainer"]',
|
|
506
|
+
content:
|
|
507
|
+
'Click on the patient whose chart you want to access. Make sure to select a patient without the "Active visit" label, as we will start a visit in the next steps of the tutorial.',
|
|
508
|
+
spotlightClicks: true,
|
|
509
|
+
disableOverlay: true,
|
|
510
|
+
placement: 'left',
|
|
511
|
+
hideNextButton: true,
|
|
512
|
+
hideBackButton: true,
|
|
513
|
+
data: {
|
|
514
|
+
autoNextOn: '[data-extension-slot-name="action-menu-patient-chart-items-slot"]',
|
|
515
|
+
},
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
target: '[aria-label="Start a visit"]',
|
|
519
|
+
content:
|
|
520
|
+
'Welcome to the patient chart view! Here, you can find detailed patient information, records of clinical visits, demographic information, graphs, and medical forms. Click on the "Start Visit" button to open the Start Visit form.',
|
|
521
|
+
spotlightClicks: true,
|
|
522
|
+
hideNextButton: true,
|
|
523
|
+
hideBackButton: true,
|
|
524
|
+
data: {
|
|
525
|
+
autoNextOn: '[data-openmrs-role="Start Visit Form"]',
|
|
526
|
+
},
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
target: '[data-openmrs-role="Start Visit Form"]',
|
|
530
|
+
title: 'Start Visit Form',
|
|
531
|
+
content:
|
|
532
|
+
'Fill out the necessary information here and click on the "Start Visit" button at the bottom of this form to start the visit. You can click on "Discard" if you don\'t want to start a visit at the moment.',
|
|
533
|
+
disableOverlay: true,
|
|
534
|
+
spotlightClicks: true,
|
|
535
|
+
hideNextButton: true,
|
|
536
|
+
hideBackButton: true,
|
|
537
|
+
placement: 'left',
|
|
538
|
+
data: {
|
|
539
|
+
autoNextOn: '.omrs-snackbars-container div',
|
|
540
|
+
},
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
target: 'body',
|
|
544
|
+
content:
|
|
545
|
+
'That\'s the end of this tutorial! If you have already started a visit, you will see an "Active Visit" tag near the patient\'s name. After the visit is started, you can do things like capturing vitals, biometrics, and more through this patient chart view.',
|
|
546
|
+
hideBackButton: true,
|
|
547
|
+
placement: 'center',
|
|
548
|
+
},
|
|
549
|
+
],
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
title: 'Tutorial for demo purposes',
|
|
553
|
+
description: 'This tutorial is for demo / debugging purposes only',
|
|
554
|
+
steps: [
|
|
555
|
+
{
|
|
556
|
+
target: '[aria-label="OpenMRS"]',
|
|
557
|
+
content: 'Let us walk through the tutorial features together.',
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
target: '[data-extension-id="clinical-appointments-dashboard-link"]',
|
|
561
|
+
content:
|
|
562
|
+
'Click on this link. This step is configured to be automatic and will take you to the next step. Once the given query selector resolves an element on the page, it will proceed automatically.',
|
|
563
|
+
hideCloseButton: true,
|
|
564
|
+
hideNextButton: true,
|
|
565
|
+
spotlightClicks: true,
|
|
566
|
+
data: {
|
|
567
|
+
autoNextOn: '[data-extension-id="clinical-appointments-dashboard"]',
|
|
568
|
+
},
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
target: '[data-extension-id="clinical-appointments-dashboard"]',
|
|
572
|
+
content: 'Congrats! You have reached the clinical appointments dashboard.',
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
target: '[aria-label="OpenMRS"]',
|
|
576
|
+
content:
|
|
577
|
+
'Now, let’s see how this behaves when elements take a bit longer to load. Set your network throttling to "Slow 3G" and hit "Next".',
|
|
578
|
+
|
|
579
|
+
hideBackButton: true,
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
target: '[data-extension-id="laboratory-dashboard-link"]',
|
|
583
|
+
content:
|
|
584
|
+
'Let\'s navigate to the laboratory page. Our next target is the "Tests Ordered" table. I’ll disappear once you reach the laboratory page and reappear when the table is loaded. See you there!',
|
|
585
|
+
hideCloseButton: true,
|
|
586
|
+
hideNextButton: true,
|
|
587
|
+
|
|
588
|
+
spotlightClicks: true,
|
|
589
|
+
data: {
|
|
590
|
+
autoNextOn: '[data-extension-id="laboratory-dashboard"]',
|
|
591
|
+
},
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
target: '[data-extension-id="all-lab-requests-table"] table',
|
|
595
|
+
content:
|
|
596
|
+
"It's me again. By default, I'll wait for the element to appear, so you don't have to worry about slow components when writing a new tutorial.",
|
|
597
|
+
|
|
598
|
+
hideBackButton: true,
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
target: '[aria-label="OpenMRS"]',
|
|
602
|
+
content:
|
|
603
|
+
"Now let's do a fun exercise. Can you find out how to view a patient's allergies on your own? Feel free to turn off network throttling. ;) ",
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
target: '[data-extension-slot-name="patient-chart-allergies-dashboard-slot"]',
|
|
607
|
+
content:
|
|
608
|
+
'Great job! You found the allergies section! This is the end of the tutorial. Feel free to explore the system on your own or check out the other tutorials.',
|
|
609
|
+
},
|
|
610
|
+
],
|
|
611
|
+
}
|
|
247
612
|
],
|
|
248
613
|
},
|
|
249
614
|
};
|
|
@@ -257,7 +622,6 @@ export type Config = {
|
|
|
257
622
|
target: string;
|
|
258
623
|
title: string;
|
|
259
624
|
content: string;
|
|
260
|
-
disableBeacon: boolean;
|
|
261
625
|
data?: {
|
|
262
626
|
autoNextOn?: boolean;
|
|
263
627
|
};
|