@kenyaemr/esm-patient-registration-app 6.0.1-pre.1.0.1 → 6.0.1-pre.1.0.3
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/130.js +1 -1
- package/dist/130.js.map +1 -1
- package/dist/481.js +1 -0
- package/dist/481.js.map +1 -0
- package/dist/574.js +1 -1
- package/dist/59.js +1 -1
- package/dist/59.js.map +1 -1
- package/dist/676.js +1 -0
- package/dist/676.js.map +1 -0
- package/dist/762.js +2 -0
- package/dist/{895.js.LICENSE.txt → 762.js.LICENSE.txt} +0 -7
- package/dist/762.js.map +1 -0
- package/dist/788.js +1 -1
- package/dist/816.js +1 -0
- package/dist/816.js.map +1 -0
- package/dist/kenyaemr-esm-patient-registration-app.js +1 -1
- package/dist/kenyaemr-esm-patient-registration-app.js.buildmanifest.json +95 -95
- package/dist/kenyaemr-esm-patient-registration-app.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.LICENSE.txt +0 -7
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -4
- package/src/config-schema.ts +2 -11
- package/src/index.ts +2 -2
- package/src/patient-photo.extension.tsx +9 -0
- package/src/patient-registration/field/address/custom-address-field.component.tsx +1 -1
- package/src/patient-registration/field/person-attributes/coded-person-attribute-field.component.tsx +3 -0
- package/src/patient-registration/field/person-attributes/person-attribute-field.component.tsx +1 -0
- package/src/patient-registration/field/phone/phone-field.component.tsx +1 -1
- package/src/patient-registration/form-manager.ts +4 -2
- package/src/patient-registration/patient-registration.component.tsx +8 -2
- package/src/patient-registration/patient-registration.resource.ts +1 -47
- package/src/patient-registration/patient-registration.test.tsx +0 -9
- package/src/patient-verification/patient-verification-hook.tsx +5 -5
- package/src/patient-verification/patient-verification-utils.ts +4 -4
- package/src/patient-verification/patient-verification.component.tsx +14 -7
- package/src/patient-verification/verification-modal/confirm-prompt.component.tsx +2 -2
- package/src/routes.json +1 -1
- package/translations/en.json +2 -2
- package/dist/619.js +0 -1
- package/dist/619.js.map +0 -1
- package/dist/62.js +0 -1
- package/dist/62.js.map +0 -1
- package/dist/840.js +0 -1
- package/dist/840.js.map +0 -1
- package/dist/895.js +0 -2
- package/dist/895.js.map +0 -1
- package/src/patient-registration/field/person-attributes/coded-attributes.component.tsx +0 -60
- package/src/widgets/display-photo.component.tsx +0 -30
- package/src/widgets/display-photo.test.tsx +0 -37
package/dist/routes.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":"^2.24.0"},"pages":[{"component":"root","route":"patient-registration","online":true,"offline":true},{"component":"editPatient","routeRegex":"patient\\/([a-zA-Z0-9\\-]+)\\/edit","online":true,"offline":true}],"extensions":[{"component":"addPatientLink","name":"add-patient-action","slot":"top-nav-actions-slot","online":true,"offline":true},{"component":"cancelPatientEditModal","name":"cancel-patient-edit-modal","online":true,"offline":true},{"component":"
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":"^2.24.0"},"pages":[{"component":"root","route":"patient-registration","online":true,"offline":true},{"component":"editPatient","routeRegex":"patient\\/([a-zA-Z0-9\\-]+)\\/edit","online":true,"offline":true}],"extensions":[{"component":"addPatientLink","name":"add-patient-action","slot":"top-nav-actions-slot","online":true,"offline":true},{"component":"cancelPatientEditModal","name":"cancel-patient-edit-modal","online":true,"offline":true},{"component":"patientPhotoExtension","name":"patient-photo-widget","slot":"patient-photo-slot","online":true,"offline":true},{"component":"editPatientDetailsButton","name":"edit-patient-details-button","slot":"patient-actions-slot","online":true,"offline":true},{"component":"editPatientDetailsButton","name":"edit-patient-details-button","slot":"patient-search-actions-slot","online":true,"offline":true},{"component":"deleteIdentifierConfirmationModal","name":"delete-identifier-confirmation-modal","online":true,"offline":true},{"component":"emptyClientRegistryModal","name":"empty-client-registry-modal","online":true,"offline":true},{"component":"confirmClientRegistryModal","name":"confirm-client-registry-modal","online":true,"offline":true}],"version":"6.0.1-pre.1.0.2"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kenyaemr/esm-patient-registration-app",
|
|
3
|
-
"version": "6.0.1-pre.1.0.
|
|
3
|
+
"version": "6.0.1-pre.1.0.3",
|
|
4
4
|
"description": "Patient registration microfrontend for the OpenMRS SPA",
|
|
5
5
|
"browser": "dist/kenyaemr-esm-patient-registration-app.js",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -38,11 +38,8 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@carbon/react": "~1.37.0",
|
|
41
|
-
"core-js-pure": "^3.34.0",
|
|
42
41
|
"formik": "^2.1.5",
|
|
43
|
-
"geopattern": "^1.2.3",
|
|
44
42
|
"lodash-es": "^4.17.15",
|
|
45
|
-
"react-avatar": "^5.0.3",
|
|
46
43
|
"uuid": "^8.3.2",
|
|
47
44
|
"yup": "^0.29.1"
|
|
48
45
|
},
|
package/src/config-schema.ts
CHANGED
|
@@ -60,18 +60,15 @@ export interface RegistrationConfig {
|
|
|
60
60
|
};
|
|
61
61
|
phone: {
|
|
62
62
|
personAttributeUuid: string;
|
|
63
|
-
validation
|
|
63
|
+
validation?: {
|
|
64
64
|
required: boolean;
|
|
65
|
-
matches
|
|
65
|
+
matches?: string;
|
|
66
66
|
};
|
|
67
67
|
};
|
|
68
68
|
};
|
|
69
69
|
links: {
|
|
70
70
|
submitButton: string;
|
|
71
71
|
};
|
|
72
|
-
concepts: {
|
|
73
|
-
patientPhotoUuid: string;
|
|
74
|
-
};
|
|
75
72
|
defaultPatientIdentifierTypes: Array<string>;
|
|
76
73
|
registrationObs: {
|
|
77
74
|
encounterTypeUuid: string | null;
|
|
@@ -333,12 +330,6 @@ export const esmPatientRegistrationSchema = {
|
|
|
333
330
|
_validators: [validators.isUrlWithTemplateParameters(['patientUuid'])],
|
|
334
331
|
},
|
|
335
332
|
},
|
|
336
|
-
concepts: {
|
|
337
|
-
patientPhotoUuid: {
|
|
338
|
-
_type: Type.ConceptUuid,
|
|
339
|
-
_default: '736e8771-e501-4615-bfa7-570c03f4bef5',
|
|
340
|
-
},
|
|
341
|
-
},
|
|
342
333
|
defaultPatientIdentifierTypes: {
|
|
343
334
|
_type: Type.Array,
|
|
344
335
|
_elements: {
|
package/src/index.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { moduleName, patientRegistration } from './constants';
|
|
|
4
4
|
import { setupOffline } from './offline';
|
|
5
5
|
import rootComponent from './root.component';
|
|
6
6
|
import addPatientLinkComponent from './add-patient-link';
|
|
7
|
-
import patientPhotoComponent from './widgets/display-photo.component';
|
|
8
7
|
import editPatientDetailsButtonComponent from './widgets/edit-patient-details-button.component';
|
|
8
|
+
import { PatientPhotoExtension } from './patient-photo.extension';
|
|
9
9
|
|
|
10
10
|
export const importTranslation = require.context('../translations', false, /.json$/, 'lazy');
|
|
11
11
|
|
|
@@ -55,7 +55,7 @@ export const cancelPatientEditModal = getAsyncLifecycle(
|
|
|
55
55
|
options,
|
|
56
56
|
);
|
|
57
57
|
|
|
58
|
-
export const
|
|
58
|
+
export const patientPhotoExtension = getSyncLifecycle(PatientPhotoExtension, options);
|
|
59
59
|
|
|
60
60
|
export const editPatientDetailsButton = getSyncLifecycle(editPatientDetailsButtonComponent, {
|
|
61
61
|
featureName: 'edit-patient-details',
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PatientPhoto, type PatientPhotoProps } from '@openmrs/esm-framework';
|
|
3
|
+
|
|
4
|
+
export function PatientPhotoExtension(props: PatientPhotoProps) {
|
|
5
|
+
console.warn(
|
|
6
|
+
'Using the patient-photo extension (or patient-photo-slot slot) is deprecated. Please use the PatientPhoto component from @openmrs/esm-framework.',
|
|
7
|
+
);
|
|
8
|
+
return <PatientPhoto {...props} />;
|
|
9
|
+
}
|
|
@@ -21,8 +21,8 @@ export const AddressField: React.FC<AddressFieldProps> = ({ fieldDefinition }) =
|
|
|
21
21
|
<Input
|
|
22
22
|
id={fieldDefinition.id}
|
|
23
23
|
labelText={t(`${fieldDefinition.label}`, `${fieldDefinition.label}`)}
|
|
24
|
+
required={fieldDefinition?.validation?.required ?? false}
|
|
24
25
|
{...field}
|
|
25
|
-
required={fieldDefinition?.validation?.required}
|
|
26
26
|
/>
|
|
27
27
|
);
|
|
28
28
|
}}
|
package/src/patient-registration/field/person-attributes/coded-person-attribute-field.component.tsx
CHANGED
|
@@ -14,6 +14,7 @@ export interface CodedPersonAttributeFieldProps {
|
|
|
14
14
|
answerConceptSetUuid: string;
|
|
15
15
|
label?: string;
|
|
16
16
|
customConceptAnswers: Array<{ uuid: string; label?: string }>;
|
|
17
|
+
required: boolean;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
export function CodedPersonAttributeField({
|
|
@@ -22,6 +23,7 @@ export function CodedPersonAttributeField({
|
|
|
22
23
|
answerConceptSetUuid,
|
|
23
24
|
label,
|
|
24
25
|
customConceptAnswers,
|
|
26
|
+
required,
|
|
25
27
|
}: CodedPersonAttributeFieldProps) {
|
|
26
28
|
const { data: conceptAnswers, isLoading: isLoadingConceptAnswers } = useConceptAnswers(
|
|
27
29
|
customConceptAnswers.length ? '' : answerConceptSetUuid,
|
|
@@ -100,6 +102,7 @@ export function CodedPersonAttributeField({
|
|
|
100
102
|
name={`person-attribute-${personAttributeType.uuid}`}
|
|
101
103
|
labelText={label ?? personAttributeType?.display}
|
|
102
104
|
invalid={errors[fieldName] && touched[fieldName]}
|
|
105
|
+
required={required}
|
|
103
106
|
{...field}>
|
|
104
107
|
<SelectItem value={''} text={t('selectAnOption', 'Select an option')} />
|
|
105
108
|
{answers.map((answer) => (
|
package/src/patient-registration/field/person-attributes/person-attribute-field.component.tsx
CHANGED
|
@@ -38,6 +38,7 @@ export function PersonAttributeField({ fieldDefinition }: PersonAttributeFieldPr
|
|
|
38
38
|
label={fieldDefinition.label}
|
|
39
39
|
id={fieldDefinition?.id}
|
|
40
40
|
customConceptAnswers={fieldDefinition.customConceptAnswers ?? []}
|
|
41
|
+
required={fieldDefinition.validation?.required ?? false}
|
|
41
42
|
/>
|
|
42
43
|
);
|
|
43
44
|
default:
|
|
@@ -10,8 +10,8 @@ export function PhoneField() {
|
|
|
10
10
|
id: 'phone',
|
|
11
11
|
type: 'person attribute',
|
|
12
12
|
uuid: config.fieldConfigurations.phone.personAttributeUuid,
|
|
13
|
+
validation: config.fieldConfigurations.phone.validation,
|
|
13
14
|
showHeading: false,
|
|
14
|
-
validation: config.fieldConfigurations.phone?.validation,
|
|
15
15
|
};
|
|
16
16
|
return <PersonAttributeField fieldDefinition={fieldDefinition} />;
|
|
17
17
|
}
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
queueSynchronizationItem,
|
|
5
5
|
type Session,
|
|
6
6
|
restBaseUrl,
|
|
7
|
+
getConfig,
|
|
7
8
|
} from '@openmrs/esm-framework';
|
|
8
9
|
import { patientRegistration } from '../constants';
|
|
9
10
|
import {
|
|
@@ -130,13 +131,14 @@ export class FormManager {
|
|
|
130
131
|
|
|
131
132
|
await this.saveObservations(values.obs, savePatientResponse, currentLocation, currentUser, config);
|
|
132
133
|
|
|
133
|
-
|
|
134
|
+
const { patientPhotoUuid } = await getConfig('@openmrs/esm-styleguide');
|
|
135
|
+
if (patientPhotoUuid && capturePhotoProps?.imageData) {
|
|
134
136
|
await savePatientPhoto(
|
|
135
137
|
savePatientResponse.data.uuid,
|
|
136
138
|
capturePhotoProps.imageData,
|
|
137
139
|
`${restBaseUrl}/obs`,
|
|
138
140
|
capturePhotoProps.dateTime || new Date().toISOString(),
|
|
139
|
-
|
|
141
|
+
patientPhotoUuid,
|
|
140
142
|
);
|
|
141
143
|
}
|
|
142
144
|
}
|
|
@@ -5,12 +5,18 @@ import { XAxis, ShareKnowledge } from '@carbon/react/icons';
|
|
|
5
5
|
import { useLocation, useParams } from 'react-router-dom';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
7
7
|
import { Formik, Form, type FormikHelpers } from 'formik';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
createErrorHandler,
|
|
10
|
+
showSnackbar,
|
|
11
|
+
useConfig,
|
|
12
|
+
interpolateUrl,
|
|
13
|
+
usePatient,
|
|
14
|
+
usePatientPhoto,
|
|
15
|
+
} from '@openmrs/esm-framework';
|
|
9
16
|
import { getValidationSchema } from './validation/patient-registration-validation';
|
|
10
17
|
import { type FormValues, type CapturePhotoProps } from './patient-registration.types';
|
|
11
18
|
import { PatientRegistrationContext } from './patient-registration-context';
|
|
12
19
|
import { type SavePatientForm, SavePatientTransactionManager } from './form-manager';
|
|
13
|
-
import { usePatientPhoto } from './patient-registration.resource';
|
|
14
20
|
import { DummyDataInput } from './input/dummy-data/dummy-data-input.component';
|
|
15
21
|
import {
|
|
16
22
|
cancelRegistration,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { openmrsFetch, restBaseUrl, useConfig } from '@openmrs/esm-framework';
|
|
1
|
+
import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
|
|
3
2
|
import { type Patient, type Relationship, type PatientIdentifier, type Encounter } from './patient-registration.types';
|
|
4
3
|
|
|
5
4
|
export const uuidIdentifier = '05a29f94-c0ed-11e2-94be-8c13b969e334';
|
|
@@ -134,51 +133,6 @@ export async function savePatientPhoto(
|
|
|
134
133
|
});
|
|
135
134
|
}
|
|
136
135
|
|
|
137
|
-
interface ObsFetchResponse {
|
|
138
|
-
results: Array<PhotoObs>;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
interface PhotoObs {
|
|
142
|
-
display: string;
|
|
143
|
-
obsDatetime: string;
|
|
144
|
-
uuid: string;
|
|
145
|
-
value: {
|
|
146
|
-
display: string;
|
|
147
|
-
links: {
|
|
148
|
-
rel: string;
|
|
149
|
-
uri: string;
|
|
150
|
-
};
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
interface UsePatientPhotoResult {
|
|
155
|
-
data: { dateTime: string; imageSrc: string } | null;
|
|
156
|
-
isError: Error;
|
|
157
|
-
isLoading: boolean;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export function usePatientPhoto(patientUuid: string): UsePatientPhotoResult {
|
|
161
|
-
const {
|
|
162
|
-
concepts: { patientPhotoUuid },
|
|
163
|
-
} = useConfig();
|
|
164
|
-
const url = `${restBaseUrl}/obs?patient=${patientUuid}&concept=${patientPhotoUuid}&v=full`;
|
|
165
|
-
|
|
166
|
-
const { data, error, isLoading } = useSWR<{ data: ObsFetchResponse }, Error>(patientUuid ? url : null, openmrsFetch);
|
|
167
|
-
|
|
168
|
-
const item = data?.data?.results[0];
|
|
169
|
-
|
|
170
|
-
return {
|
|
171
|
-
data: item
|
|
172
|
-
? {
|
|
173
|
-
dateTime: item?.obsDatetime,
|
|
174
|
-
imageSrc: item?.value?.links?.uri,
|
|
175
|
-
}
|
|
176
|
-
: null,
|
|
177
|
-
isError: error,
|
|
178
|
-
isLoading,
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
|
|
182
136
|
export async function fetchPerson(query: string, abortController: AbortController) {
|
|
183
137
|
const [patientsRes, personsRes] = await Promise.all([
|
|
184
138
|
openmrsFetch(`${restBaseUrl}/patient?q=${query}`, {
|
|
@@ -75,15 +75,6 @@ jest.mock('./field/field.resource', () => ({
|
|
|
75
75
|
}),
|
|
76
76
|
}));
|
|
77
77
|
|
|
78
|
-
jest.mock('@openmrs/esm-framework', () => {
|
|
79
|
-
const originalModule = jest.requireActual('@openmrs/esm-framework');
|
|
80
|
-
|
|
81
|
-
return {
|
|
82
|
-
...originalModule,
|
|
83
|
-
validator: jest.fn(),
|
|
84
|
-
};
|
|
85
|
-
});
|
|
86
|
-
|
|
87
78
|
jest.mock('react-router-dom', () => ({
|
|
88
79
|
...(jest.requireActual('react-router-dom') as any),
|
|
89
80
|
useLocation: () => ({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FetchResponse, openmrsFetch, showNotification, showToast } from '@openmrs/esm-framework';
|
|
1
|
+
import { type FetchResponse, openmrsFetch, showNotification, showToast, showSnackbar } from '@openmrs/esm-framework';
|
|
2
2
|
import { generateNUPIPayload, handleClientRegistryResponse } from './patient-verification-utils';
|
|
3
3
|
import useSWR from 'swr';
|
|
4
4
|
import useSWRImmutable from 'swr/immutable';
|
|
@@ -47,12 +47,12 @@ export async function handleSavePatientToClientRegistry(
|
|
|
47
47
|
postToRegistry(formValues, setValues);
|
|
48
48
|
}
|
|
49
49
|
} catch (error) {
|
|
50
|
-
|
|
50
|
+
showSnackbar({
|
|
51
51
|
title: 'Client registry error',
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
subtitle: `${error}`,
|
|
53
|
+
timeoutInMs: 10000,
|
|
54
54
|
kind: 'error',
|
|
55
|
-
|
|
55
|
+
isLowContrast: true,
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
return;
|
|
@@ -62,7 +62,7 @@ export function handleClientRegistryResponse(
|
|
|
62
62
|
required: false,
|
|
63
63
|
identifierTypeUuid: '49af6cdc-7968-4abb-bf46-de10d7f4859f',
|
|
64
64
|
identifierName: 'National ID',
|
|
65
|
-
identifierValue: identifications !== undefined && identifications[0]?.identificationNumber,
|
|
65
|
+
identifierValue: identifications !== undefined && identifications[0]?.identificationNumber?.trim(),
|
|
66
66
|
},
|
|
67
67
|
|
|
68
68
|
['nationalUniquePatientIdentifier']: {
|
|
@@ -81,9 +81,9 @@ export function handleClientRegistryResponse(
|
|
|
81
81
|
onConfirm: () => {
|
|
82
82
|
props.setValues({
|
|
83
83
|
...props.values,
|
|
84
|
-
familyName: lastName,
|
|
85
|
-
middleName: middleName,
|
|
86
|
-
givenName: firstName,
|
|
84
|
+
familyName: lastName?.trim() ?? '',
|
|
85
|
+
middleName: middleName?.trim() ?? '',
|
|
86
|
+
givenName: firstName.trim() ?? '',
|
|
87
87
|
gender: clientResponse.client.gender,
|
|
88
88
|
birthdate: new Date(dateOfBirth),
|
|
89
89
|
isDead: !isAlive,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { useTranslation } from 'react-i18next';
|
|
3
|
-
import { Tile, ComboBox, Layer, Button, Search, InlineLoading } from '@carbon/react';
|
|
3
|
+
import { Tile, ComboBox, Layer, Button, Search, InlineLoading, InlineNotification } from '@carbon/react';
|
|
4
4
|
import styles from './patient-verification.scss';
|
|
5
5
|
import { countries, verificationIdentifierTypes } from './assets/verification-assets';
|
|
6
6
|
import { searchClientRegistry, useGlobalProperties } from './patient-verification-hook';
|
|
7
|
-
import {
|
|
7
|
+
import { showSnackbar } from '@openmrs/esm-framework';
|
|
8
8
|
import { handleClientRegistryResponse } from './patient-verification-utils';
|
|
9
9
|
import { type FormikProps } from 'formik';
|
|
10
10
|
import { type FormValues } from '../patient-registration/patient-registration.types';
|
|
@@ -37,12 +37,12 @@ const PatientVerification: React.FC<PatientVerificationProps> = ({ props }) => {
|
|
|
37
37
|
|
|
38
38
|
handleClientRegistryResponse(clientRegistryResponse, props, verificationCriteria.searchTerm);
|
|
39
39
|
} catch (error) {
|
|
40
|
-
|
|
40
|
+
showSnackbar({
|
|
41
41
|
title: 'Client registry error',
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
subtitle: `Please reload the registration page and re-try again, if the issue persist contact system administrator`,
|
|
43
|
+
timeoutInMs: 10000,
|
|
44
44
|
kind: 'error',
|
|
45
|
-
|
|
45
|
+
isLowContrast: true,
|
|
46
46
|
});
|
|
47
47
|
setIsLoadingSearch(false);
|
|
48
48
|
}
|
|
@@ -51,7 +51,14 @@ const PatientVerification: React.FC<PatientVerificationProps> = ({ props }) => {
|
|
|
51
51
|
if (error) {
|
|
52
52
|
return (
|
|
53
53
|
<Tile className={styles.errorWrapper}>
|
|
54
|
-
<
|
|
54
|
+
<InlineNotification
|
|
55
|
+
aria-label="closes notification"
|
|
56
|
+
kind="error"
|
|
57
|
+
statusIconDescription="notification"
|
|
58
|
+
subtitle="Access to national client registry may be blocked by a proxy server. Please proceed with registration and try again later. Contact your system administrator if the issue persists."
|
|
59
|
+
title="Error: Failed to reach client registry."
|
|
60
|
+
lowContrast={true}
|
|
61
|
+
/>
|
|
55
62
|
</Tile>
|
|
56
63
|
);
|
|
57
64
|
}
|
|
@@ -54,8 +54,8 @@ const ConfirmPrompt: React.FC<ConfirmPromptProps> = ({ close, onConfirm, patient
|
|
|
54
54
|
<PatientInfo label={t('age', 'Age')} value={age(patient?.dateOfBirth)} />
|
|
55
55
|
<PatientInfo label={t('dateOfBirth', 'Date of birth')} value={formatDate(new Date(patient?.dateOfBirth))} />
|
|
56
56
|
<PatientInfo label={t('gender', 'Gender')} value={capitalize(patient?.gender)} />
|
|
57
|
-
<PatientInfo label={t('
|
|
58
|
-
<PatientInfo label={t('
|
|
57
|
+
<PatientInfo label={t('NUPI')} value={patient?.clientNumber} />
|
|
58
|
+
<PatientInfo label={t('SHA Number')} value={'--'} />
|
|
59
59
|
</div>
|
|
60
60
|
</div>
|
|
61
61
|
</div>
|
package/src/routes.json
CHANGED
package/translations/en.json
CHANGED
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"negativeYears": "Negative years",
|
|
66
66
|
"no": "No",
|
|
67
67
|
"numberInNameDubious": "Number in name is dubious",
|
|
68
|
-
"
|
|
68
|
+
"NUPI": "",
|
|
69
69
|
"obsFieldUnknownDatatype": "Concept for obs field '{{fieldDefinitionId}}' has unknown datatype '{{datatypeName}}'",
|
|
70
70
|
"optional": "optional",
|
|
71
71
|
"other": "Other",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"selectCountry": "Select country",
|
|
98
98
|
"selectIdentifierType": "Select identifier type",
|
|
99
99
|
"sexFieldLabelText": "Sex",
|
|
100
|
-
"
|
|
100
|
+
"SHA Number": "",
|
|
101
101
|
"source": "Source",
|
|
102
102
|
"stroke": "Stroke",
|
|
103
103
|
"submitting": "Submitting",
|