@digihmis/esm-patient-registration-app 1.0.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.
Files changed (146) hide show
  1. package/README.md +4 -0
  2. package/dist/117.js +1 -0
  3. package/dist/117.js.map +1 -0
  4. package/dist/131.js +1 -0
  5. package/dist/131.js.map +1 -0
  6. package/dist/132.js +1 -0
  7. package/dist/132.js.map +1 -0
  8. package/dist/152.js +1 -0
  9. package/dist/152.js.map +1 -0
  10. package/dist/209.js +1 -0
  11. package/dist/209.js.map +1 -0
  12. package/dist/247.js +1 -0
  13. package/dist/247.js.map +1 -0
  14. package/dist/28.js +1 -0
  15. package/dist/28.js.map +1 -0
  16. package/dist/317.js +1 -0
  17. package/dist/317.js.map +1 -0
  18. package/dist/349.js +1 -0
  19. package/dist/349.js.map +1 -0
  20. package/dist/371.js +1 -0
  21. package/dist/371.js.map +1 -0
  22. package/dist/378.js +1 -0
  23. package/dist/378.js.map +1 -0
  24. package/dist/442.js +1 -0
  25. package/dist/442.js.map +1 -0
  26. package/dist/45.js +1 -0
  27. package/dist/45.js.map +1 -0
  28. package/dist/459.js +12 -0
  29. package/dist/459.js.map +1 -0
  30. package/dist/466.js +1 -0
  31. package/dist/466.js.map +1 -0
  32. package/dist/508.js +1 -0
  33. package/dist/508.js.map +1 -0
  34. package/dist/61.js +1 -0
  35. package/dist/61.js.map +1 -0
  36. package/dist/640.js +1 -0
  37. package/dist/640.js.map +1 -0
  38. package/dist/689.js +1 -0
  39. package/dist/689.js.map +1 -0
  40. package/dist/709.js +1 -0
  41. package/dist/709.js.map +1 -0
  42. package/dist/712.js +1 -0
  43. package/dist/712.js.map +1 -0
  44. package/dist/720.js +1 -0
  45. package/dist/720.js.map +1 -0
  46. package/dist/742.js +1 -0
  47. package/dist/742.js.map +1 -0
  48. package/dist/771.js +1 -0
  49. package/dist/771.js.map +1 -0
  50. package/dist/806.js +1 -0
  51. package/dist/806.js.map +1 -0
  52. package/dist/912.js +1 -0
  53. package/dist/912.js.map +1 -0
  54. package/dist/913.js +1 -0
  55. package/dist/913.js.map +1 -0
  56. package/dist/940.js +1 -0
  57. package/dist/940.js.map +1 -0
  58. package/dist/957.js +15 -0
  59. package/dist/957.js.map +1 -0
  60. package/dist/digihmis-esm-patient-registration-app.js +6 -0
  61. package/dist/digihmis-esm-patient-registration-app.js.buildmanifest.json +827 -0
  62. package/dist/digihmis-esm-patient-registration-app.js.map +1 -0
  63. package/dist/main.js +17 -0
  64. package/dist/main.js.map +1 -0
  65. package/dist/routes.json +1 -0
  66. package/jest.config.js +26 -0
  67. package/package.json +51 -0
  68. package/rspack.config.js +1 -0
  69. package/src/active-visit-table/active-visit-table.component.tsx +240 -0
  70. package/src/active-visit-table/active-visits.resource.ts +338 -0
  71. package/src/active-visit-table/active-visits.scss +211 -0
  72. package/src/active-visit-table/empty-data-illustration.component.tsx +39 -0
  73. package/src/checkin-form/base-visit-type.component.tsx +102 -0
  74. package/src/checkin-form/base-visit-type.scss +75 -0
  75. package/src/checkin-form/checkin-form.scss +167 -0
  76. package/src/checkin-form/checkin-form.workspace.tsx +703 -0
  77. package/src/checkin-form/hooks/useDefaultFacilityLocation.ts +15 -0
  78. package/src/checkin-form/hooks/useDefaultVisitLocation.ts +24 -0
  79. package/src/checkin-form/hooks/useOfflineVisitType.ts +18 -0
  80. package/src/checkin-form/hooks/usePatientHistory.ts +40 -0
  81. package/src/checkin-form/hooks/useRecommendedVisitTypes.ts +34 -0
  82. package/src/checkin-form/hooks/useVisitAttributeType.ts +102 -0
  83. package/src/checkin-form/location-selector.component.tsx +86 -0
  84. package/src/checkin-form/recommended-visit-type.component.tsx +32 -0
  85. package/src/checkin-form/visit-attribute-type.component.tsx +256 -0
  86. package/src/checkin-form/visit-attribute-type.scss +5 -0
  87. package/src/checkin-form/visit-date-time.component.tsx +201 -0
  88. package/src/checkin-form/visit-form.resource.ts +308 -0
  89. package/src/components/custom-card/compact-patient-banner.component.tsx +70 -0
  90. package/src/components/custom-card/compact-patient-banner.scss +34 -0
  91. package/src/components/custom-card/custom-loader.component.tsx +22 -0
  92. package/src/components/custom-card/patient-search-context.ts +30 -0
  93. package/src/components/custom-input/autosuggest/autosuggest.component.tsx +213 -0
  94. package/src/components/custom-input/autosuggest/autosuggest.scss +158 -0
  95. package/src/components/custom-input/autosuggest/autosuggest.test.tsx +168 -0
  96. package/src/components/custom-patient-banner/custom-patient-banner.component.tsx +39 -0
  97. package/src/components/custom-patient-banner/custom-patient-banner.resource.ts +32 -0
  98. package/src/components/custom-patient-banner/custom-patient-banner.scss +26 -0
  99. package/src/config-schema.ts +511 -0
  100. package/src/constant.ts +6 -0
  101. package/src/constants/index.ts +1 -0
  102. package/src/dashboard.meta.ts +8 -0
  103. package/src/declarations.d.ts +6 -0
  104. package/src/empty-svg/empty-svg.component.tsx +565 -0
  105. package/src/icon-wrapper/icon-wrapper.extension.tsx +17 -0
  106. package/src/identifier-workspace/identifier-configure-form.workspace.tsx +278 -0
  107. package/src/identifier-workspace/identifier-configure.scss +106 -0
  108. package/src/identifier-workspace/identifier.resource.ts +90 -0
  109. package/src/index.ts +33 -0
  110. package/src/left-panel/left-panel.component.tsx +54 -0
  111. package/src/left-panel/left-panel.scss +13 -0
  112. package/src/page-header/page-header.component.tsx +35 -0
  113. package/src/page-header/page-header.scss +76 -0
  114. package/src/patient-tags/deceased-patient-tag.extension.tsx +41 -0
  115. package/src/patient-tags/deceased-patient-tag.scss +15 -0
  116. package/src/patient-tags/patient-tags.resource.ts +30 -0
  117. package/src/patient-tags/visit-tag.extension.tsx +43 -0
  118. package/src/patient-tags/visit-tag.scss +19 -0
  119. package/src/registration-form/form-manager.ts +449 -0
  120. package/src/registration-form/registration-form.component.tsx +1565 -0
  121. package/src/registration-form/registration-form.resource.ts +264 -0
  122. package/src/registration-form/registration-form.scss +282 -0
  123. package/src/routes.json +62 -0
  124. package/src/search-bar/search-bar.component.tsx +285 -0
  125. package/src/search-bar/search-bar.resource.ts +274 -0
  126. package/src/search-bar/search-bar.scss +427 -0
  127. package/src/search-dashboard/search-dashboard.component.tsx +17 -0
  128. package/src/search-dashboard/search-dashboard.scss +13 -0
  129. package/src/setup-tests.ts +1 -0
  130. package/src/type/index.ts +463 -0
  131. package/src/utils/fhir-mapper.ts +73 -0
  132. package/src/visit-summary/visit-summary.component.tsx +32 -0
  133. package/src/visit-summary/visit-summary.resource.ts +56 -0
  134. package/src/visit-summary/visit-summary.scss +74 -0
  135. package/translations/am.json +112 -0
  136. package/translations/ar.json +120 -0
  137. package/translations/en.json +112 -0
  138. package/translations/es.json +114 -0
  139. package/translations/fr.json +114 -0
  140. package/translations/he.json +114 -0
  141. package/translations/km.json +111 -0
  142. package/translations/pt.json +114 -0
  143. package/translations/sw.json +112 -0
  144. package/translations/vi.json +111 -0
  145. package/translations/zh.json +111 -0
  146. package/tsconfig.json +5 -0
@@ -0,0 +1,511 @@
1
+ import { ConfigSchema, Type, validator, validators } from '@openmrs/esm-framework';
2
+
3
+ export interface FieldDefinition {
4
+ id: string;
5
+ type: string;
6
+ uuid?: string;
7
+ label: string;
8
+ validation: {
9
+ required: boolean;
10
+ };
11
+ customConceptAnswers?: Array<{
12
+ uuid: string;
13
+ label: string;
14
+ }>;
15
+ }
16
+
17
+ export const configSchema: ConfigSchema = {
18
+ registrationIcon: {
19
+ src: {
20
+ _type: Type.String,
21
+ _default: '/openmrs/spa/search.svg',
22
+ _description:
23
+ 'The path or URL to the logo image. If set to an empty string, the default OpenMRS SVG sprite will be used.',
24
+ _validators: [validators.isUrl],
25
+ },
26
+ },
27
+ OpenmrsIdentifierTypeUuid: {
28
+ _type: Type.String,
29
+ _default: 'dfacd928-0370-4315-99d7-6ec1c9f7ae76',
30
+ _description: 'The UUID of the OpenMRS Identifier Type to be used as the main patient identifier.',
31
+ },
32
+ fieldConfigurations: {
33
+ _type: Type.Object,
34
+ _default: {},
35
+ _description: 'Configuration for various field settings',
36
+ causeOfDeath: {
37
+ _type: Type.Object,
38
+ _default: {
39
+ conceptUuid: '',
40
+ required: false,
41
+ },
42
+ _description: 'Configuration for cause of death field',
43
+ conceptUuid: {
44
+ _type: Type.String,
45
+ _default: '',
46
+ _description: 'Concept UUID for cause of death',
47
+ },
48
+ required: {
49
+ _type: Type.Boolean,
50
+ _default: false,
51
+ _description: 'Whether cause of death field is required',
52
+ },
53
+ },
54
+ gender: {
55
+ _type: Type.Array,
56
+ _default: [
57
+ {
58
+ value: 'male',
59
+ label: '',
60
+ },
61
+ {
62
+ value: 'female',
63
+ label: '',
64
+ },
65
+ {
66
+ value: 'other',
67
+ label: '',
68
+ },
69
+ {
70
+ value: 'unknown',
71
+ label: '',
72
+ },
73
+ ],
74
+ _description:
75
+ 'The options for sex selection during patient registration. This is Administrative Gender as it is called by FHIR.',
76
+ _elements: {
77
+ value: {
78
+ _type: Type.String,
79
+ _description:
80
+ 'Value that will be sent to the server. Limited to FHIR-supported values for Administrative Gender',
81
+ _validators: [validators.oneOf(['male', 'female', 'other', 'unknown'])],
82
+ },
83
+ label: {
84
+ _type: Type.String,
85
+ _default: '',
86
+ _description: 'The label displayed for the sex option, if it should be different from the value.',
87
+ },
88
+ },
89
+ },
90
+ },
91
+ freeTextFieldConceptUuid: {
92
+ _type: Type.String,
93
+ _default: '',
94
+ _description: 'Concept UUID for free text fields',
95
+ },
96
+ defaultPatientIdentifierTypes: {
97
+ _type: Type.Array,
98
+ _default: [],
99
+ _description: 'Default patient identifier types',
100
+ _elements: {
101
+ _type: Type.String,
102
+ },
103
+ },
104
+ registrationObs: {
105
+ _type: Type.Object,
106
+ _default: {
107
+ encounterTypeUuid: null,
108
+ encounterProviderRoleUuid: 'a0b03050-c99b-11e0-9572-0800200c9a66',
109
+ registrationFormUuid: null,
110
+ },
111
+ _description: 'Configuration for registration encounter observations',
112
+ encounterTypeUuid: {
113
+ _type: Type.String,
114
+ _default: null,
115
+ _description: 'UUID of the encounter type for registration observations',
116
+ },
117
+ encounterProviderRoleUuid: {
118
+ _type: Type.UUID,
119
+ _default: 'a0b03050-c99b-11e0-9572-0800200c9a66',
120
+ _description: "The provider role to use for the registration encounter. Default is 'Unknown'.",
121
+ },
122
+ registrationFormUuid: {
123
+ _type: Type.String,
124
+ _default: null,
125
+ _description: 'UUID of the registration form to use',
126
+ },
127
+ },
128
+ name: {
129
+ displayMiddleName: { _type: Type.Boolean, _default: true },
130
+ defaultUnknownGivenName: {
131
+ _type: Type.String,
132
+ _default: 'UNKNOWN',
133
+ _description: 'The given/first name to record for unidentified patients.',
134
+ },
135
+ defaultUnknownFamilyName: {
136
+ _type: Type.String,
137
+ _default: 'UNKNOWN',
138
+ _description: 'The family/last name to record for unidentified patients.',
139
+ },
140
+ displayCapturePhoto: {
141
+ _type: Type.Boolean,
142
+ _default: true,
143
+ _description: 'Whether to display capture patient photo slot on name field',
144
+ },
145
+ displayReverseFieldOrder: {
146
+ _type: Type.Boolean,
147
+ _default: false,
148
+ _description: "Whether to display the name fields in the order 'Family name' -> 'Middle name' -> 'First name'",
149
+ },
150
+ },
151
+ fieldDefinitions: {
152
+ _type: Type.Array,
153
+ _default: [
154
+ {
155
+ id: 'maritalStatus',
156
+ type: 'obs',
157
+ uuid: '1054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
158
+ label: 'Marital status',
159
+ validation: {
160
+ required: false,
161
+ },
162
+ customConceptAnswers: [
163
+ {
164
+ uuid: '159715AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
165
+ label: 'Married polygamous',
166
+ },
167
+ {
168
+ uuid: '5555AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
169
+ label: 'Married monogamous',
170
+ },
171
+ {
172
+ uuid: '1058AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
173
+ label: 'Divorced',
174
+ },
175
+ {
176
+ uuid: '1059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
177
+ label: 'Widowed',
178
+ },
179
+ {
180
+ uuid: '1060AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
181
+ label: 'Cohabiting',
182
+ },
183
+ {
184
+ uuid: '1057AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
185
+ label: 'Single',
186
+ },
187
+ ],
188
+ },
189
+ {
190
+ id: 'patientVisitType',
191
+ type: 'obs',
192
+ uuid: '164181AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
193
+ label: 'Patient Visit Type',
194
+ validation: {
195
+ required: false,
196
+ },
197
+ customConceptAnswers: [
198
+ {
199
+ uuid: '164180AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
200
+ label: 'New patient',
201
+ },
202
+ {
203
+ uuid: '5555AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
204
+ label: 'Revisit patient',
205
+ },
206
+ ],
207
+ },
208
+ ],
209
+ _description: 'Field definitions for form fields',
210
+ _elements: {
211
+ id: {
212
+ _type: Type.String,
213
+ _description: 'Unique identifier for the field',
214
+ },
215
+ type: {
216
+ _type: Type.String,
217
+ _description: 'Type of field (obs, person, etc.)',
218
+ },
219
+ uuid: {
220
+ _type: Type.String,
221
+ _default: '',
222
+ _description: 'Concept UUID for the field',
223
+ },
224
+ label: {
225
+ _type: Type.String,
226
+ _description: 'Label for the field',
227
+ },
228
+ validation: {
229
+ _type: Type.Object,
230
+ _description: 'Validation rules for the field',
231
+ required: {
232
+ _type: Type.Boolean,
233
+ _default: false,
234
+ _description: 'Whether the field is required',
235
+ },
236
+ },
237
+ customConceptAnswers: {
238
+ _type: Type.Array,
239
+ _default: [],
240
+ _description: 'Custom concept answers for the field',
241
+ _elements: {
242
+ uuid: {
243
+ _type: Type.String,
244
+ _description: 'Concept UUID for the answer',
245
+ },
246
+ label: {
247
+ _type: Type.String,
248
+ _description: 'Display label for the answer',
249
+ },
250
+ },
251
+ },
252
+ },
253
+ },
254
+ visitAttributeTypes: {
255
+ _type: Type.Array,
256
+ _default: [],
257
+ _description: 'Visit attribute types configuration',
258
+ _elements: {
259
+ displayInThePatientBanner: {
260
+ _type: Type.Boolean,
261
+ _default: false,
262
+ _description: 'Whether to display in the patient banner',
263
+ },
264
+ required: {
265
+ _type: Type.Boolean,
266
+ _default: false,
267
+ _description: 'Whether the visit attribute is required',
268
+ },
269
+ showWhenExpression: {
270
+ _type: Type.String,
271
+ _default: '',
272
+ _description: 'Expression to determine when to show the attribute',
273
+ },
274
+ uuid: {
275
+ _type: Type.String,
276
+ _description: 'UUID of the visit attribute type',
277
+ },
278
+ },
279
+ },
280
+ restrictByVisitLocationTag: {
281
+ _type: Type.Boolean,
282
+ _default: false,
283
+ _description: 'Whether to restrict visits by location tag',
284
+ },
285
+ disableChangingVisitLocation: {
286
+ _type: Type.Boolean,
287
+ _default: false,
288
+ _description: 'Whether to disable changing visit location',
289
+ },
290
+ showRecommendedVisitTypeTab: {
291
+ _type: Type.Boolean,
292
+ _default: false,
293
+ _description: 'Whether to show recommended visit type tab',
294
+ },
295
+ showExtraVisitAttributesSlot: {
296
+ _type: Type.Boolean,
297
+ _default: false,
298
+ _description: 'Whether to show extra visit attributes slot',
299
+ },
300
+ visitTypeResourceUrl: {
301
+ _type: Type.String,
302
+ _default: '',
303
+ _description: 'URL for visit type resource',
304
+ },
305
+ offlineVisitTypeUuid: {
306
+ _type: Type.String,
307
+ _default: '',
308
+ _description: 'UUID for offline visit type',
309
+ },
310
+ showUpcomingAppointments: {
311
+ _type: Type.Boolean,
312
+ _default: false,
313
+ _description: 'Whether to show upcoming appointments',
314
+ },
315
+ showVisitLocationField: {
316
+ _type: Type.Boolean,
317
+ _default: false,
318
+ _description: 'Whether to show visit location field during registration',
319
+ },
320
+ defaultFacilityUrl: {
321
+ _type: Type.String,
322
+ _default: '',
323
+ _description: 'URL for fetching default facility',
324
+ },
325
+ visitQueueNumberAttributeUuid: {
326
+ _type: Type.String,
327
+ _default: '',
328
+ _description: 'UUID for visit queue number attribute',
329
+ },
330
+ allowedVisitTypeUuids: {
331
+ _type: Type.Array,
332
+ _default: [],
333
+ _description: 'List of allowed visit type UUIDs. If empty, all visit types are shown.',
334
+ _elements: {
335
+ _type: Type.String,
336
+ },
337
+ },
338
+ activeVisits: {
339
+ identifiers: {
340
+ _type: Type.Array,
341
+ _default: [],
342
+ _description: 'Customizable list of identifiers to display on active visits table',
343
+ _elements: {
344
+ header: {
345
+ key: {
346
+ _type: Type.String,
347
+ _default: '',
348
+ _description: 'Key to be used for translation purposes.',
349
+ },
350
+ default: {
351
+ _type: Type.String,
352
+ _default: '',
353
+ _description: 'Default text to be displayed if no translation is found.',
354
+ },
355
+ },
356
+ identifierName: {
357
+ _type: Type.String,
358
+ _default: '',
359
+ _description: 'Name of the desired identifier to filter data returned from the visit resource.',
360
+ },
361
+ },
362
+ },
363
+ attributes: {
364
+ _type: Type.Array,
365
+ _default: [],
366
+ _description: 'Customizable list of person attributes to display on active visits table',
367
+ _elements: {
368
+ display: {
369
+ _type: Type.String,
370
+ _description: 'Display name of the attribute type',
371
+ },
372
+ header: {
373
+ key: {
374
+ _type: Type.String,
375
+ _default: '',
376
+ _description: 'Key to be used for translation purposes.',
377
+ },
378
+ default: {
379
+ _type: Type.String,
380
+ _default: '',
381
+ _description: 'Default text to be displayed if no translation is found.',
382
+ },
383
+ },
384
+ },
385
+ },
386
+ pageSize: {
387
+ _type: Type.Number,
388
+ _default: 10,
389
+ _description: 'Count of active visits to be shown in a single page.',
390
+ _validators: [validator((v: unknown) => typeof v === 'number' && v > 0, 'Must be greater than zero')],
391
+ },
392
+ pageSizes: {
393
+ _type: Type.Array,
394
+ _default: [10, 20, 50],
395
+ _description: 'Customizable page sizes that user can choose',
396
+ _elements: {
397
+ _type: Type.Number,
398
+ _description: 'Number of entries to be displayed on the active visits table.',
399
+ _validators: [validator((v: unknown) => typeof v === 'number' && v > 0, 'Must be greater than zero')],
400
+ },
401
+ },
402
+ obs: {
403
+ _type: Type.Array,
404
+ _default: [],
405
+ _description: 'Array of observation concept UUIDs to be displayed on the active visits table.',
406
+ _elements: {
407
+ _type: Type.UUID,
408
+ _description: 'UUID of an observation concept.',
409
+ },
410
+ },
411
+ },
412
+ };
413
+
414
+ export interface Gender {
415
+ label?: string;
416
+ value: string;
417
+ }
418
+
419
+ export interface RegistrationConfig {
420
+ fieldConfigurations: {
421
+ causeOfDeath: {
422
+ conceptUuid: string;
423
+ required: boolean;
424
+ };
425
+ gender: Array<Gender>;
426
+ };
427
+ freeTextFieldConceptUuid: string;
428
+ name: {
429
+ displayMiddleName: boolean;
430
+ defaultUnknownGivenName: string;
431
+ defaultUnknownFamilyName: string;
432
+ displayCapturePhoto: boolean;
433
+ displayReverseFieldOrder: boolean;
434
+ };
435
+ defaultPatientIdentifierTypes: Array<string>;
436
+ registrationObs: {
437
+ encounterTypeUuid: string | null;
438
+ encounterProviderRoleUuid: string;
439
+ registrationFormUuid: string | null;
440
+ };
441
+ fieldDefinitions: FieldDefinition[];
442
+ visitAttributeTypes: Array<{
443
+ displayInThePatientBanner: boolean;
444
+ required: boolean;
445
+ showWhenExpression?: string;
446
+ uuid: string;
447
+ }>;
448
+ restrictByVisitLocationTag?: boolean;
449
+ disableChangingVisitLocation?: boolean;
450
+ showRecommendedVisitTypeTab?: boolean;
451
+ showExtraVisitAttributesSlot: boolean;
452
+ visitTypeResourceUrl?: string;
453
+ offlineVisitTypeUuid?: string;
454
+ showUpcomingAppointments: boolean;
455
+ showVisitLocationField: boolean;
456
+ defaultFacilityUrl: string;
457
+ visitQueueNumberAttributeUuid: string;
458
+ allowedVisitTypeUuids: Array<string>;
459
+ }
460
+
461
+ export type ConfigObject = {
462
+ registrationIcon: {
463
+ src: string;
464
+ };
465
+ OpenmrsIdentifierTypeUuid: string;
466
+ };
467
+
468
+ export interface ChartConfig {
469
+ visitAttributeTypes: Array<{
470
+ displayInThePatientBanner: boolean;
471
+ required: boolean;
472
+ showWhenExpression?: string;
473
+ uuid: string;
474
+ }>;
475
+ restrictByVisitLocationTag: boolean;
476
+ disableChangingVisitLocation: boolean;
477
+ showRecommendedVisitTypeTab: boolean;
478
+ showExtraVisitAttributesSlot: boolean;
479
+ visitTypeResourceUrl: string;
480
+ offlineVisitTypeUuid: string;
481
+ showUpcomingAppointments: boolean;
482
+ showVisitLocationField: boolean;
483
+ defaultFacilityUrl: string;
484
+ fieldDefinitions: FieldDefinition[];
485
+ }
486
+
487
+ export interface ActiveVisitsConfigSchema {
488
+ activeVisits: {
489
+ pageSize: Number;
490
+ pageSizes: Array<Number>;
491
+ identifiers: Array<IdentifiersDefinition>;
492
+ obs: Array<string>;
493
+ attributes: Array<AttributeDefinition>;
494
+ };
495
+ }
496
+
497
+ export interface IdentifiersDefinition {
498
+ header: {
499
+ key: string;
500
+ default: string;
501
+ };
502
+ identifierName: string;
503
+ }
504
+
505
+ export interface AttributeDefinition {
506
+ display: string;
507
+ header: {
508
+ key: string;
509
+ default: string;
510
+ };
511
+ }
@@ -0,0 +1,6 @@
1
+ import { omrsOfflineCachingStrategyHttpHeaderName, type OmrsOfflineHttpHeaders } from '@openmrs/esm-framework';
2
+
3
+ export const cacheForOfflineHeaders: OmrsOfflineHttpHeaders = {
4
+ [omrsOfflineCachingStrategyHttpHeaderName]: 'network-first',
5
+ };
6
+ export const patientRegistration = 'patient-registration';
@@ -0,0 +1 @@
1
+ export const baseSpaPath = `${window.spaBase}/home/registration`;
@@ -0,0 +1,8 @@
1
+ import { SearchLocateMirror } from '@carbon/react/icons';
2
+
3
+ export const dashboardMeta = {
4
+ name: '',
5
+ slot: 'registration-dashboard-slot',
6
+ title: 'search',
7
+ icon: SearchLocateMirror,
8
+ };
@@ -0,0 +1,6 @@
1
+ declare module '@carbon/react';
2
+ declare module '*.css';
3
+ declare module '*.scss';
4
+ declare module '*.png';
5
+
6
+ declare type SideNavProps = object;