@kenyaemr/esm-patient-registration-app 4.6.0 → 5.2.2
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.LICENSE.txt +0 -2
- package/dist/130.js.map +1 -1
- package/dist/152.js +1 -0
- package/dist/152.js.map +1 -0
- package/dist/255.js +2 -0
- package/dist/255.js.map +1 -0
- package/dist/303.js +1 -0
- package/dist/303.js.map +1 -0
- package/dist/319.js +1 -1
- package/dist/330.js +1 -1
- package/dist/388.js +2 -0
- package/dist/388.js.LICENSE.txt +34 -0
- package/dist/388.js.map +1 -0
- package/dist/460.js +1 -1
- package/dist/537.js +1 -1
- package/dist/537.js.map +1 -1
- package/dist/574.js +1 -1
- package/dist/59.js +1 -0
- package/dist/59.js.map +1 -0
- package/dist/598.js +1 -0
- package/dist/598.js.map +1 -0
- package/dist/62.js +1 -1
- package/dist/62.js.map +1 -1
- package/dist/729.js +1 -0
- package/dist/729.js.map +1 -0
- package/dist/735.js +1 -1
- package/dist/757.js +1 -1
- package/dist/788.js +1 -1
- package/dist/807.js +1 -1
- package/dist/833.js +1 -1
- package/dist/840.js +1 -0
- package/dist/840.js.map +1 -0
- package/dist/main.js +1 -1
- package/dist/main.js.LICENSE.txt +35 -0
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-patient-registration-app.js +1 -1
- package/dist/openmrs-esm-patient-registration-app.js.buildmanifest.json +114 -221
- package/dist/openmrs-esm-patient-registration-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +4 -3
- package/src/declarations.d.ts +2 -0
- package/src/index.ts +23 -14
- package/src/patient-registration/field/address/address-field.component.tsx +2 -2
- package/src/patient-registration/field/address/custom-address-field.component.tsx +3 -2
- package/src/patient-registration/field/dob/dob.component.tsx +51 -42
- package/src/patient-registration/field/dob/dob.test.tsx +1 -14
- package/src/patient-registration/field/field.resource.ts +5 -5
- package/src/patient-registration/field/id/id-field.component.tsx +8 -6
- package/src/patient-registration/field/id/{identifier-selection-overlay.tsx → identifier-selection-overlay.component.tsx} +27 -23
- package/src/patient-registration/field/obs/obs-field.component.tsx +4 -3
- package/src/patient-registration/field/person-attributes/coded-attributes.component.tsx +2 -1
- package/src/patient-registration/field/person-attributes/coded-person-attribute-field.component.tsx +4 -3
- package/src/patient-registration/field/person-attributes/person-attribute-field.component.tsx +8 -2
- package/src/patient-registration/field/person-attributes/person-attributes.resource.tsx +1 -1
- package/src/patient-registration/field/person-attributes/text-person-attribute-field.component.tsx +3 -2
- package/src/patient-registration/input/basic-input/input/input.component.tsx +122 -2
- package/src/patient-registration/input/combo-input/combo-input.component.tsx +7 -6
- package/src/patient-registration/input/custom-input/autosuggest/autosuggest.component.tsx +109 -6
- package/src/patient-registration/input/custom-input/autosuggest/autosuggest.scss +9 -0
- package/src/patient-registration/input/custom-input/autosuggest/autosuggest.test.tsx +2 -2
- package/src/patient-registration/input/dummy-data/dummy-data-input.component.tsx +2 -1
- package/src/patient-registration/patient-registration.component.tsx +49 -44
- package/src/patient-registration/patient-registration.resource.tsx +18 -7
- package/src/patient-registration/patient-registration.scss +6 -0
- package/src/patient-registration/patient-registration.test.tsx +19 -21
- package/src/patient-registration/section/death-info/death-info-section.component.tsx +2 -1
- package/src/patient-registration/section/demographics/demographics-section.test.tsx +1 -14
- package/src/patient-registration/section/patient-relationships/relationships-section.component.tsx +27 -20
- package/src/patient-registration/section/patient-relationships/relationships.resource.tsx +1 -1
- package/src/patient-registration/validation/patient-registration-validation.tsx +6 -0
- package/src/root.component.tsx +3 -2
- package/src/routes.json +7 -0
- package/translations/am.json +18 -7
- package/translations/ar.json +17 -6
- package/translations/en.json +16 -5
- package/translations/es.json +17 -6
- package/translations/fr.json +18 -7
- package/translations/he.json +28 -17
- package/translations/km.json +30 -19
- package/dist/117.js +0 -2
- package/dist/117.js.map +0 -1
- package/dist/218.js +0 -1
- package/dist/218.js.map +0 -1
- package/dist/275.js +0 -1
- package/dist/275.js.map +0 -1
- package/dist/317.js +0 -2
- package/dist/317.js.LICENSE.txt +0 -6
- package/dist/317.js.map +0 -1
- package/dist/348.js +0 -1
- package/dist/348.js.map +0 -1
- package/dist/520.js +0 -2
- package/dist/520.js.LICENSE.txt +0 -14
- package/dist/520.js.map +0 -1
- package/dist/635.js +0 -1
- package/dist/635.js.map +0 -1
- package/dist/68.js +0 -1
- package/dist/68.js.map +0 -1
- package/dist/693.js +0 -1
- package/dist/693.js.map +0 -1
- package/dist/742.js +0 -1
- package/dist/742.js.map +0 -1
- package/dist/857.js +0 -1
- package/dist/857.js.map +0 -1
- package/dist/975.js +0 -1
- package/dist/975.js.map +0 -1
- /package/dist/{117.js.LICENSE.txt → 255.js.LICENSE.txt} +0 -0
- /package/src/patient-registration/ui-components/overlay/{index.tsx → overlay.component.tsx} +0 -0
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { BrowserRouter as Router, useParams } from 'react-router-dom';
|
|
3
3
|
import { render, screen, waitFor, within } from '@testing-library/react';
|
|
4
4
|
import userEvent from '@testing-library/user-event';
|
|
5
|
-
import {
|
|
5
|
+
import { showSnackbar, useConfig, usePatient } from '@openmrs/esm-framework';
|
|
6
6
|
import { FormManager } from './form-manager';
|
|
7
7
|
import { saveEncounter, savePatient } from './patient-registration.resource';
|
|
8
8
|
import type { Encounter } from './patient-registration.types';
|
|
@@ -11,13 +11,12 @@ import { PatientRegistration } from './patient-registration.component';
|
|
|
11
11
|
import { RegistrationConfig } from '../config-schema';
|
|
12
12
|
import { mockedAddressTemplate } from './field/address/tests/mocks';
|
|
13
13
|
import { mockPatient } from '../../../../tools/test-helpers';
|
|
14
|
-
import { OpenmrsDatePicker } from '@openmrs/esm-styleguide/src/public';
|
|
15
14
|
|
|
16
15
|
const mockedUseConfig = useConfig as jest.Mock;
|
|
17
16
|
const mockedUsePatient = usePatient as jest.Mock;
|
|
18
17
|
const mockedSaveEncounter = saveEncounter as jest.Mock;
|
|
19
18
|
const mockedSavePatient = savePatient as jest.Mock;
|
|
20
|
-
const
|
|
19
|
+
const mockedShowSnackbar = showSnackbar as jest.Mock;
|
|
21
20
|
|
|
22
21
|
jest.setTimeout(10000);
|
|
23
22
|
|
|
@@ -59,17 +58,6 @@ jest.mock('@openmrs/esm-framework', () => {
|
|
|
59
58
|
...originalModule,
|
|
60
59
|
validator: jest.fn(),
|
|
61
60
|
getLocale: jest.fn().mockReturnValue('en'),
|
|
62
|
-
OpenmrsDatePicker: (datePickerProps) => (
|
|
63
|
-
<OpenmrsDatePicker
|
|
64
|
-
id={datePickerProps.id}
|
|
65
|
-
dateFormat={datePickerProps.dateFormat}
|
|
66
|
-
onChange={datePickerProps.onChange}
|
|
67
|
-
maxDate={datePickerProps.maxDate}
|
|
68
|
-
labelText={datePickerProps.labelText}
|
|
69
|
-
value={datePickerProps.value}
|
|
70
|
-
carbonOptions={datePickerProps.carbonOptions}
|
|
71
|
-
/>
|
|
72
|
-
),
|
|
73
61
|
};
|
|
74
62
|
});
|
|
75
63
|
|
|
@@ -93,6 +81,14 @@ let mockOpenmrsConfig: RegistrationConfig = {
|
|
|
93
81
|
],
|
|
94
82
|
fieldDefinitions: [],
|
|
95
83
|
fieldConfigurations: {
|
|
84
|
+
dateOfBirth: {
|
|
85
|
+
allowEstimatedDateOfBirth: true,
|
|
86
|
+
useEstimatedDateOfBirth: {
|
|
87
|
+
enabled: true,
|
|
88
|
+
dayOfMonth: new Date().getDay(),
|
|
89
|
+
month: new Date().getMonth(),
|
|
90
|
+
},
|
|
91
|
+
},
|
|
96
92
|
name: {
|
|
97
93
|
displayMiddleName: true,
|
|
98
94
|
allowUnidentifiedPatients: true,
|
|
@@ -192,7 +188,7 @@ describe('patient registration component', () => {
|
|
|
192
188
|
mockedUseConfig.mockReturnValue(mockOpenmrsConfig);
|
|
193
189
|
mockedSavePatient.mockReturnValue({ data: { uuid: 'new-pt-uuid' }, ok: true });
|
|
194
190
|
mockedSaveEncounter.mockClear();
|
|
195
|
-
|
|
191
|
+
mockedShowSnackbar.mockClear();
|
|
196
192
|
jest.clearAllMocks();
|
|
197
193
|
});
|
|
198
194
|
|
|
@@ -339,15 +335,17 @@ describe('patient registration component', () => {
|
|
|
339
335
|
await waitFor(() => expect(mockedSavePatient).toHaveBeenCalledTimes(1));
|
|
340
336
|
await waitFor(() => expect(mockedSaveEncounter).toHaveBeenCalledTimes(1));
|
|
341
337
|
await waitFor(() =>
|
|
342
|
-
expect(
|
|
338
|
+
expect(mockedShowSnackbar).toHaveBeenCalledWith(expect.objectContaining({ subtitle: 'an error message' })),
|
|
343
339
|
);
|
|
344
340
|
|
|
345
341
|
mockedSaveEncounter.mockResolvedValue({});
|
|
346
342
|
|
|
347
|
-
await user.click(screen.getByText('Register Patient'));
|
|
343
|
+
await waitFor(() => user.click(screen.getByText('Register Patient')));
|
|
348
344
|
await waitFor(() => expect(mockedSavePatient).toHaveBeenCalledTimes(2));
|
|
349
345
|
await waitFor(() => expect(mockedSaveEncounter).toHaveBeenCalledTimes(2));
|
|
350
|
-
await waitFor(() =>
|
|
346
|
+
await waitFor(() =>
|
|
347
|
+
expect(mockedShowSnackbar).toHaveBeenCalledWith(expect.objectContaining({ kind: 'success' })),
|
|
348
|
+
);
|
|
351
349
|
});
|
|
352
350
|
});
|
|
353
351
|
|
|
@@ -356,11 +354,11 @@ describe('patient registration component', () => {
|
|
|
356
354
|
mockedUseConfig.mockReturnValue(mockOpenmrsConfig);
|
|
357
355
|
mockedSavePatient.mockReturnValue({ data: { uuid: 'new-pt-uuid' }, ok: true });
|
|
358
356
|
mockedSaveEncounter.mockClear();
|
|
359
|
-
|
|
357
|
+
mockedShowSnackbar.mockClear();
|
|
360
358
|
jest.clearAllMocks();
|
|
361
359
|
});
|
|
362
360
|
|
|
363
|
-
|
|
361
|
+
it('edits patient demographics', async () => {
|
|
364
362
|
const user = userEvent.setup();
|
|
365
363
|
|
|
366
364
|
mockedSavePatient.mockResolvedValue({});
|
|
@@ -394,7 +392,7 @@ describe('patient registration component', () => {
|
|
|
394
392
|
expect(givenNameInput.value).toBe('John');
|
|
395
393
|
expect(familyNameInput.value).toBe('Wilson');
|
|
396
394
|
expect(middleNameInput.value).toBeFalsy();
|
|
397
|
-
expect(dateOfBirthInput.value).toBe('
|
|
395
|
+
expect(dateOfBirthInput.value).toBe('4/4/1972');
|
|
398
396
|
expect(genderInput.value).toBe('Male');
|
|
399
397
|
|
|
400
398
|
// do some edits
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
2
3
|
import { useTranslation } from 'react-i18next';
|
|
3
4
|
import { Input } from '../../input/basic-input/input/input.component';
|
|
4
5
|
import { SelectInput } from '../../input/basic-input/select/select-input.component';
|
|
@@ -11,7 +12,7 @@ export const DeathInfoSection = () => {
|
|
|
11
12
|
|
|
12
13
|
return (
|
|
13
14
|
<section className={styles.formSection} aria-label="Death Info Section">
|
|
14
|
-
<h5 className={
|
|
15
|
+
<h5 className={classNames('omrs-type-title-5', styles.formSectionTitle)}>Death Info</h5>
|
|
15
16
|
<section className={styles.fieldGroup}>
|
|
16
17
|
<Input labelText={t('isDeadInputLabel', 'Is Dead')} name="isDead" id="isDead" />
|
|
17
18
|
{values.isDead && (
|
|
@@ -4,8 +4,7 @@ import { Formik, Form } from 'formik';
|
|
|
4
4
|
import { initialFormValues } from '../../patient-registration.component';
|
|
5
5
|
import { DemographicsSection } from './demographics-section.component';
|
|
6
6
|
import { PatientRegistrationContext } from '../../patient-registration-context';
|
|
7
|
-
import { FormValues } from '../../patient-registration
|
|
8
|
-
import { OpenmrsDatePicker } from '@openmrs/esm-styleguide/src/public';
|
|
7
|
+
import { FormValues } from '../../patient-registration.types';
|
|
9
8
|
|
|
10
9
|
jest.mock('@openmrs/esm-framework', () => {
|
|
11
10
|
const originalModule = jest.requireActual('@openmrs/esm-framework');
|
|
@@ -16,18 +15,6 @@ jest.mock('@openmrs/esm-framework', () => {
|
|
|
16
15
|
useConfig: jest.fn().mockImplementation(() => ({
|
|
17
16
|
fieldConfigurations: { dateOfBirth: { useEstimatedDateOfBirth: { enabled: true, dayOfMonth: 0, month: 0 } } },
|
|
18
17
|
})),
|
|
19
|
-
getLocale: jest.fn().mockReturnValue('en'),
|
|
20
|
-
OpenmrsDatePicker: (datePickerProps) => (
|
|
21
|
-
<OpenmrsDatePicker
|
|
22
|
-
id={datePickerProps.id}
|
|
23
|
-
dateFormat={datePickerProps.dateFormat}
|
|
24
|
-
onChange={datePickerProps.onChange}
|
|
25
|
-
maxDate={datePickerProps.maxDate}
|
|
26
|
-
labelText={datePickerProps.labelText}
|
|
27
|
-
value={datePickerProps.value}
|
|
28
|
-
carbonOptions={datePickerProps.carbonOptions}
|
|
29
|
-
/>
|
|
30
|
-
),
|
|
31
18
|
};
|
|
32
19
|
});
|
|
33
20
|
|
package/src/patient-registration/section/patient-relationships/relationships-section.component.tsx
CHANGED
|
@@ -40,27 +40,33 @@ const RelationshipView: React.FC<RelationshipViewProps> = ({
|
|
|
40
40
|
}) => {
|
|
41
41
|
const { t } = useTranslation();
|
|
42
42
|
const { setFieldValue } = React.useContext(PatientRegistrationContext);
|
|
43
|
-
|
|
43
|
+
const [isInvalid, setIsInvalid] = useState<boolean>(false);
|
|
44
44
|
const newRelationship = !relationship.uuid;
|
|
45
45
|
|
|
46
|
-
const handleRelationshipTypeChange = useCallback(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
46
|
+
const handleRelationshipTypeChange = useCallback(
|
|
47
|
+
(event) => {
|
|
48
|
+
const { target } = event;
|
|
49
|
+
const field = target.name;
|
|
50
|
+
const value = target.options[target.selectedIndex].value;
|
|
51
|
+
setFieldValue(field, value);
|
|
52
|
+
if (!relationship?.action) {
|
|
53
|
+
setFieldValue(`relationships[${index}].action`, 'UPDATE');
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
[index, relationship?.action, setFieldValue],
|
|
57
|
+
);
|
|
55
58
|
|
|
56
|
-
const handleSuggestionSelected = useCallback(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
const handleSuggestionSelected = useCallback(
|
|
60
|
+
(field: string, selectedSuggestion: string) => {
|
|
61
|
+
setIsInvalid(!selectedSuggestion);
|
|
62
|
+
setFieldValue(field, selectedSuggestion);
|
|
63
|
+
},
|
|
64
|
+
[setFieldValue],
|
|
65
|
+
);
|
|
59
66
|
|
|
60
67
|
const searchPerson = async (query: string) => {
|
|
61
68
|
const abortController = new AbortController();
|
|
62
|
-
|
|
63
|
-
return searchResults.data.results;
|
|
69
|
+
return await fetchPerson(query, abortController);
|
|
64
70
|
};
|
|
65
71
|
|
|
66
72
|
const deleteRelationship = useCallback(() => {
|
|
@@ -69,7 +75,7 @@ const RelationshipView: React.FC<RelationshipViewProps> = ({
|
|
|
69
75
|
} else {
|
|
70
76
|
setFieldValue(`relationships[${index}].action`, 'DELETE');
|
|
71
77
|
}
|
|
72
|
-
}, [relationship, index]);
|
|
78
|
+
}, [relationship, index, remove, setFieldValue]);
|
|
73
79
|
|
|
74
80
|
const restoreRelationship = useCallback(() => {
|
|
75
81
|
setFieldValue(`relationships[${index}]`, {
|
|
@@ -77,7 +83,7 @@ const RelationshipView: React.FC<RelationshipViewProps> = ({
|
|
|
77
83
|
action: undefined,
|
|
78
84
|
relationshipType: relationship.initialrelationshipTypeValue,
|
|
79
85
|
});
|
|
80
|
-
}, [index]);
|
|
86
|
+
}, [index, setFieldValue, relationship]);
|
|
81
87
|
|
|
82
88
|
return relationship.action !== 'DELETE' ? (
|
|
83
89
|
<div className={styles.relationship}>
|
|
@@ -95,15 +101,16 @@ const RelationshipView: React.FC<RelationshipViewProps> = ({
|
|
|
95
101
|
<div>
|
|
96
102
|
{newRelationship ? (
|
|
97
103
|
<Autosuggest
|
|
98
|
-
|
|
104
|
+
id={`relationships[${index}].relatedPersonUuid`}
|
|
99
105
|
labelText={t('relativeFullNameLabelText', 'Full name')}
|
|
100
106
|
placeholder={t('relativeNamePlaceholder', 'Firstname Familyname')}
|
|
101
107
|
defaultValue={relationship.relatedPersonName}
|
|
102
108
|
onSuggestionSelected={handleSuggestionSelected}
|
|
109
|
+
invalid={isInvalid}
|
|
110
|
+
invalidText={t('relationshipPersonMustExist', 'Related person must be an existing person')}
|
|
103
111
|
getSearchResults={searchPerson}
|
|
104
112
|
getDisplayValue={(item) => item.display}
|
|
105
113
|
getFieldValue={(item) => item.uuid}
|
|
106
|
-
required
|
|
107
114
|
/>
|
|
108
115
|
) : (
|
|
109
116
|
<>
|
|
@@ -113,7 +120,7 @@ const RelationshipView: React.FC<RelationshipViewProps> = ({
|
|
|
113
120
|
)}
|
|
114
121
|
</div>
|
|
115
122
|
</div>
|
|
116
|
-
<div className={
|
|
123
|
+
<div className={styles.selectRelationshipType} style={{ marginBottom: '1rem' }}>
|
|
117
124
|
<Layer>
|
|
118
125
|
<Select
|
|
119
126
|
id="select"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FetchResponse, openmrsFetch
|
|
1
|
+
import { FetchResponse, openmrsFetch } from '@openmrs/esm-framework';
|
|
2
2
|
import { RelationshipValue } from '../../patient-registration.types';
|
|
3
3
|
import useSWR from 'swr';
|
|
4
4
|
import { useMemo } from 'react';
|
package/src/root.component.tsx
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import useSWRImmutable from 'swr/immutable';
|
|
2
4
|
import { BrowserRouter, Route, Routes } from 'react-router-dom';
|
|
3
5
|
import { Grid, Row } from '@carbon/react';
|
|
4
6
|
import { ExtensionSlot, useConnectivity, useSession } from '@openmrs/esm-framework';
|
|
@@ -10,7 +12,6 @@ import {
|
|
|
10
12
|
} from './offline.resources';
|
|
11
13
|
import { FormManager } from './patient-registration/form-manager';
|
|
12
14
|
import { PatientRegistration } from './patient-registration/patient-registration.component';
|
|
13
|
-
import useSWRImmutable from 'swr/immutable';
|
|
14
15
|
import styles from './root.scss';
|
|
15
16
|
|
|
16
17
|
export default function Root() {
|
|
@@ -31,7 +32,7 @@ export default function Root() {
|
|
|
31
32
|
);
|
|
32
33
|
|
|
33
34
|
return (
|
|
34
|
-
<main className={
|
|
35
|
+
<main className={classNames('omrs-main-content', styles.root)}>
|
|
35
36
|
<Grid className={styles.grid}>
|
|
36
37
|
<Row>
|
|
37
38
|
<ExtensionSlot name="breadcrumbs-slot" />
|
package/src/routes.json
CHANGED
|
@@ -45,6 +45,13 @@
|
|
|
45
45
|
"online": true,
|
|
46
46
|
"offline": true
|
|
47
47
|
},
|
|
48
|
+
{
|
|
49
|
+
"component": "editPatientDetailsButton",
|
|
50
|
+
"name": "edit-patient-details-button",
|
|
51
|
+
"slot": "patient-search-actions-slot",
|
|
52
|
+
"online": true,
|
|
53
|
+
"offline": true
|
|
54
|
+
},
|
|
48
55
|
{
|
|
49
56
|
"component": "deleteIdentifierConfirmationModal",
|
|
50
57
|
"name": "delete-identifier-confirmation-modal",
|
package/translations/am.json
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
"birthFieldLabelText": "Birth",
|
|
9
9
|
"cancel": "Cancel",
|
|
10
10
|
"causeOfDeathInputLabel": "Cause of Death",
|
|
11
|
+
"closeOverlay": "Close overlay",
|
|
11
12
|
"configure": "Configure",
|
|
13
|
+
"configureIdentifiers": "Configure identifiers",
|
|
12
14
|
"contactSection": "Contact Details",
|
|
13
15
|
"createNew": "Create New",
|
|
14
16
|
"dateOfBirthLabelText": "Date of Birth",
|
|
@@ -25,6 +27,7 @@
|
|
|
25
27
|
"edit": "Edit",
|
|
26
28
|
"editIdentifierTooltip": "Edit",
|
|
27
29
|
"editPatientDetails": "Edit patient details",
|
|
30
|
+
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
28
31
|
"error": "Error",
|
|
29
32
|
"errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
|
|
30
33
|
"estimatedAgeInMonthsLabelText": "Estimated age in months",
|
|
@@ -32,7 +35,6 @@
|
|
|
32
35
|
"familyNameLabelText": "Family Name",
|
|
33
36
|
"familyNameRequired": "",
|
|
34
37
|
"female": "Female",
|
|
35
|
-
"fieldErrorTitleMessage": "The following fields have errors:",
|
|
36
38
|
"fullNameLabelText": "Full Name",
|
|
37
39
|
"genderLabelText": "Sex",
|
|
38
40
|
"genderRequired": "",
|
|
@@ -41,6 +43,7 @@
|
|
|
41
43
|
"givenNameRequired": "",
|
|
42
44
|
"identifierValueRequired": "Identifier value is required",
|
|
43
45
|
"idFieldLabelText": "Identifiers",
|
|
46
|
+
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
44
47
|
"incompleteForm": "Incomplete form",
|
|
45
48
|
"invalidEmail": "",
|
|
46
49
|
"invalidInput": "Invalid Input",
|
|
@@ -58,27 +61,35 @@
|
|
|
58
61
|
"other": "Other",
|
|
59
62
|
"patient": "Patient",
|
|
60
63
|
"patientNameKnown": "Patient's Name is Known?",
|
|
64
|
+
"patientRegistrationBreadcrumb": "Patient Registration",
|
|
61
65
|
"registerPatient": "Register Patient",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
66
|
+
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
67
|
+
"registerPatientSuccessSnackbarTitle": "New Patient Created",
|
|
68
|
+
"registrationErrorSnackbarTitle": "Patient Registration Failed",
|
|
64
69
|
"relationship": "Relationship",
|
|
70
|
+
"relationshipPersonMustExist": "Related person must be an existing person",
|
|
65
71
|
"relationshipPlaceholder": "Relationship",
|
|
66
72
|
"relationshipRemovedText": "Relationship removed",
|
|
67
73
|
"relationshipsSection": "Relationships",
|
|
68
74
|
"relationshipToPatient": "Relationship to patient",
|
|
69
|
-
"relativeFullNameLabelText": "
|
|
75
|
+
"relativeFullNameLabelText": "Related person",
|
|
70
76
|
"relativeNamePlaceholder": "Firstname Familyname",
|
|
71
77
|
"resetIdentifierTooltip": "Reset",
|
|
72
78
|
"restoreRelationshipActionButton": "Undo",
|
|
73
79
|
"searchAddress": "Search address",
|
|
80
|
+
"searchIdentifierPlaceholder": "Search identifier",
|
|
74
81
|
"selectAnOption": "Select an option",
|
|
75
82
|
"sexFieldLabelText": "Sex",
|
|
83
|
+
"source": "Source",
|
|
76
84
|
"stroke": "Stroke",
|
|
77
|
-
"
|
|
85
|
+
"submitting": "Submitting",
|
|
86
|
+
"unableToFetch": "Unable to fetch person attribute type - {{personattributetype}}",
|
|
78
87
|
"unknown": "Unknown",
|
|
88
|
+
"unknownPatientAttributeType": "Patient attribute type has unknown format {{personAttributeTypeFormat}}",
|
|
79
89
|
"updatePatient": "Update Patient",
|
|
80
|
-
"
|
|
81
|
-
"
|
|
90
|
+
"updatePatientErrorSnackbarTitle": "Patient Details Update Failed",
|
|
91
|
+
"updatePatientSuccessSnackbarSubtitle": "The patient's information has been successfully updated",
|
|
92
|
+
"updatePatientSuccessSnackbarTitle": "Patient Details Updated",
|
|
82
93
|
"yearsEstimateRequired": "",
|
|
83
94
|
"yes": "Yes"
|
|
84
95
|
}
|
package/translations/ar.json
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
"birthFieldLabelText": "الميلاد",
|
|
9
9
|
"cancel": "إلغاء",
|
|
10
10
|
"causeOfDeathInputLabel": "سبب الوفاة",
|
|
11
|
+
"closeOverlay": "Close overlay",
|
|
11
12
|
"configure": "تكوين",
|
|
13
|
+
"configureIdentifiers": "Configure identifiers",
|
|
12
14
|
"contactSection": "تفاصيل الاتصال",
|
|
13
15
|
"createNew": "أنشئ جديد",
|
|
14
16
|
"dateOfBirthLabelText": "تاريخ الميلاد",
|
|
@@ -25,6 +27,7 @@
|
|
|
25
27
|
"edit": "تعديل",
|
|
26
28
|
"editIdentifierTooltip": "تعديل",
|
|
27
29
|
"editPatientDetails": "تعديل تفاصيل المريض",
|
|
30
|
+
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
28
31
|
"error": "خطأ",
|
|
29
32
|
"errorFetchingOrderedFields": "حدث خطأ أثناء جلب الحقول المرتبة لتسلسل العنوان",
|
|
30
33
|
"estimatedAgeInMonthsLabelText": "العمر المقدر بالشهور",
|
|
@@ -32,7 +35,6 @@
|
|
|
32
35
|
"familyNameLabelText": "اسم العائلة",
|
|
33
36
|
"familyNameRequired": "",
|
|
34
37
|
"female": "أنثى",
|
|
35
|
-
"fieldErrorTitleMessage": "الحقول التالية بها أخطاء:",
|
|
36
38
|
"fullNameLabelText": "الاسم الكامل",
|
|
37
39
|
"genderLabelText": "الجنس",
|
|
38
40
|
"genderRequired": "",
|
|
@@ -41,6 +43,7 @@
|
|
|
41
43
|
"givenNameRequired": "",
|
|
42
44
|
"identifierValueRequired": "قيمة المعرف مطلوبة",
|
|
43
45
|
"idFieldLabelText": "المعرفات",
|
|
46
|
+
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
44
47
|
"incompleteForm": "نموذج غير مكتمل",
|
|
45
48
|
"invalidEmail": "",
|
|
46
49
|
"invalidInput": "إدخال غير صالح",
|
|
@@ -58,10 +61,13 @@
|
|
|
58
61
|
"other": "آخر",
|
|
59
62
|
"patient": "المريض",
|
|
60
63
|
"patientNameKnown": "هل اسم المريض معروف؟",
|
|
64
|
+
"patientRegistrationBreadcrumb": "Patient Registration",
|
|
61
65
|
"registerPatient": "تسجيل المريض",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
66
|
+
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
67
|
+
"registerPatientSuccessSnackbarTitle": "New Patient Created",
|
|
68
|
+
"registrationErrorSnackbarTitle": "Patient Registration Failed",
|
|
64
69
|
"relationship": "العلاقة",
|
|
70
|
+
"relationshipPersonMustExist": "Related person must be an existing person",
|
|
65
71
|
"relationshipPlaceholder": "العلاقة",
|
|
66
72
|
"relationshipRemovedText": "تمت إزالة العلاقة",
|
|
67
73
|
"relationshipsSection": "العلاقات",
|
|
@@ -71,14 +77,19 @@
|
|
|
71
77
|
"resetIdentifierTooltip": "إعادة تعيين",
|
|
72
78
|
"restoreRelationshipActionButton": "تراجع",
|
|
73
79
|
"searchAddress": "ابحث عن العنوان",
|
|
80
|
+
"searchIdentifierPlaceholder": "Search identifier",
|
|
74
81
|
"selectAnOption": "اختر خيارًا",
|
|
75
82
|
"sexFieldLabelText": "الجنس",
|
|
83
|
+
"source": "Source",
|
|
76
84
|
"stroke": "جلطة",
|
|
77
|
-
"
|
|
85
|
+
"submitting": "Submitting",
|
|
86
|
+
"unableToFetch": "تعذر الجلب نوع السمة الشخصية - {{personattributetype}}",
|
|
78
87
|
"unknown": "غير معروف",
|
|
88
|
+
"unknownPatientAttributeType": "Patient attribute type has unknown format {{personAttributeTypeFormat}}",
|
|
79
89
|
"updatePatient": "تحديث المريض",
|
|
80
|
-
"
|
|
81
|
-
"
|
|
90
|
+
"updatePatientErrorSnackbarTitle": "Patient Details Update Failed",
|
|
91
|
+
"updatePatientSuccessSnackbarSubtitle": "The patient's information has been successfully updated",
|
|
92
|
+
"updatePatientSuccessSnackbarTitle": "Patient Details Updated",
|
|
82
93
|
"yearsEstimateRequired": "",
|
|
83
94
|
"yes": "نعم"
|
|
84
95
|
}
|
package/translations/en.json
CHANGED
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
"birthFieldLabelText": "Birth",
|
|
10
10
|
"cancel": "Cancel",
|
|
11
11
|
"causeOfDeathInputLabel": "Cause of Death",
|
|
12
|
+
"closeOverlay": "Close overlay",
|
|
12
13
|
"configure": "Configure",
|
|
14
|
+
"configureIdentifiers": "Configure identifiers",
|
|
13
15
|
"contactSection": "Contact Details",
|
|
14
16
|
"cityVillage": "City",
|
|
15
17
|
"clientRegistryEmpty": "Create & Post Patient",
|
|
@@ -33,6 +35,7 @@
|
|
|
33
35
|
"edit": "Edit",
|
|
34
36
|
"editIdentifierTooltip": "Edit",
|
|
35
37
|
"editPatientDetails": "Edit patient details",
|
|
38
|
+
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
36
39
|
"error": "Error",
|
|
37
40
|
"errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
|
|
38
41
|
"estimatedAgeInMonthsLabelText": "Estimated age in months",
|
|
@@ -40,7 +43,6 @@
|
|
|
40
43
|
"familyNameLabelText": "Family Name",
|
|
41
44
|
"familyNameRequired": "Family name is required",
|
|
42
45
|
"female": "Female",
|
|
43
|
-
"fieldErrorTitleMessage": "The following fields have errors:",
|
|
44
46
|
"fullNameLabelText": "Full Name",
|
|
45
47
|
"gender": "Gender",
|
|
46
48
|
"genderLabelText": "Sex",
|
|
@@ -50,6 +52,7 @@
|
|
|
50
52
|
"givenNameRequired": "Given name is required",
|
|
51
53
|
"identifierValueRequired": "Identifier value is required",
|
|
52
54
|
"idFieldLabelText": "Identifiers",
|
|
55
|
+
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
53
56
|
"incompleteForm": "Incomplete form",
|
|
54
57
|
"invalidEmail": "A valid email has to be given",
|
|
55
58
|
"invalidInput": "Invalid Input",
|
|
@@ -75,14 +78,16 @@
|
|
|
75
78
|
"postalCode": "Postcode",
|
|
76
79
|
"postToRegistry": "Post to registry",
|
|
77
80
|
"registerPatient": "Register Patient",
|
|
78
|
-
"
|
|
79
|
-
"
|
|
81
|
+
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
82
|
+
"registerPatientSuccessSnackbarTitle": "New Patient Created",
|
|
83
|
+
"registrationErrorSnackbarTitle": "Patient Registration Failed",
|
|
80
84
|
"relationship": "Relationship",
|
|
85
|
+
"relationshipPersonMustExist": "Related person must be an existing person",
|
|
81
86
|
"relationshipPlaceholder": "Relationship",
|
|
82
87
|
"relationshipRemovedText": "Relationship removed",
|
|
83
88
|
"relationshipsSection": "Relationships",
|
|
84
89
|
"relationshipToPatient": "Relationship to patient",
|
|
85
|
-
"relativeFullNameLabelText": "
|
|
90
|
+
"relativeFullNameLabelText": "Related person",
|
|
86
91
|
"relativeNamePlaceholder": "Firstname Familyname",
|
|
87
92
|
"resetIdentifierTooltip": "Reset",
|
|
88
93
|
"restoreRelationshipActionButton": "Undo",
|
|
@@ -91,10 +96,16 @@
|
|
|
91
96
|
"selectCountry": "Select country",
|
|
92
97
|
"selectIdentifierType": "Select identifier type",
|
|
93
98
|
"sexFieldLabelText": "Sex",
|
|
99
|
+
"source": "Source",
|
|
94
100
|
"stroke": "Stroke",
|
|
95
|
-
"
|
|
101
|
+
"submitting": "Submitting",
|
|
102
|
+
"unableToFetch": "Unable to fetch person attribute type {{personattributetype}}",
|
|
96
103
|
"unknown": "Unknown",
|
|
104
|
+
"unknownPatientAttributeType": "Patient attribute type has unknown format {{personAttributeTypeFormat}}",
|
|
97
105
|
"updatePatient": "Update Patient",
|
|
106
|
+
"updatePatientErrorSnackbarTitle": "Patient Details Update Failed",
|
|
107
|
+
"updatePatientSuccessSnackbarSubtitle": "The patient's information has been successfully updated",
|
|
108
|
+
"updatePatientSuccessSnackbarTitle": "Patient Details Updated",
|
|
98
109
|
"updationSuccessToastDescription": "The patient's information has been successfully updated",
|
|
99
110
|
"updationSuccessToastTitle": "Patient Details Updated",
|
|
100
111
|
"useValues": "Use values",
|
package/translations/es.json
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
"birthFieldLabelText": "Nacimiento",
|
|
9
9
|
"cancel": "Cancelar",
|
|
10
10
|
"causeOfDeathInputLabel": "Causa de defunción",
|
|
11
|
+
"closeOverlay": "Close overlay",
|
|
11
12
|
"configure": "Configurar",
|
|
13
|
+
"configureIdentifiers": "Configure identifiers",
|
|
12
14
|
"contactSection": "Detalles de Contacto",
|
|
13
15
|
"createNew": "Crear Nuevo/a",
|
|
14
16
|
"dateOfBirthLabelText": "Fecha de Nacimiento",
|
|
@@ -25,6 +27,7 @@
|
|
|
25
27
|
"edit": "Editar",
|
|
26
28
|
"editIdentifierTooltip": "Editar",
|
|
27
29
|
"editPatientDetails": "Modificar los datos del paciente",
|
|
30
|
+
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
28
31
|
"error": "Error",
|
|
29
32
|
"errorFetchingOrderedFields": "Error ocurrió al obtener campos ordenados para la jerarquía de direcciones",
|
|
30
33
|
"estimatedAgeInMonthsLabelText": "Edad estimada en meses",
|
|
@@ -32,7 +35,6 @@
|
|
|
32
35
|
"familyNameLabelText": "Apellidos",
|
|
33
36
|
"familyNameRequired": "Apellidos es obligatorio",
|
|
34
37
|
"female": "Femenino",
|
|
35
|
-
"fieldErrorTitleMessage": "Los siguientes campos tienen errores:",
|
|
36
38
|
"fullNameLabelText": "Nombre y Apellidos",
|
|
37
39
|
"genderLabelText": "Sexo",
|
|
38
40
|
"genderRequired": "El sexo es obligatorio",
|
|
@@ -41,6 +43,7 @@
|
|
|
41
43
|
"givenNameRequired": "El nombre es obligatorio",
|
|
42
44
|
"identifierValueRequired": "El valor del identificador es obligatorio",
|
|
43
45
|
"idFieldLabelText": "Identificadores",
|
|
46
|
+
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
44
47
|
"incompleteForm": "Formulario incompleto",
|
|
45
48
|
"invalidEmail": "Debe indicar un email válido",
|
|
46
49
|
"invalidInput": "Entrada no válida",
|
|
@@ -58,10 +61,13 @@
|
|
|
58
61
|
"other": "Otro",
|
|
59
62
|
"patient": "Paciente",
|
|
60
63
|
"patientNameKnown": "¿Se sabe el nombre del paciente?",
|
|
64
|
+
"patientRegistrationBreadcrumb": "Patient Registration",
|
|
61
65
|
"registerPatient": "Registrar paciente",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
66
|
+
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
67
|
+
"registerPatientSuccessSnackbarTitle": "New Patient Created",
|
|
68
|
+
"registrationErrorSnackbarTitle": "Patient Registration Failed",
|
|
64
69
|
"relationship": "Relación",
|
|
70
|
+
"relationshipPersonMustExist": "Related person must be an existing person",
|
|
65
71
|
"relationshipPlaceholder": "Relación",
|
|
66
72
|
"relationshipRemovedText": "Relación eliminada",
|
|
67
73
|
"relationshipsSection": "Relaciones",
|
|
@@ -71,14 +77,19 @@
|
|
|
71
77
|
"resetIdentifierTooltip": "resetear",
|
|
72
78
|
"restoreRelationshipActionButton": "Deshacer",
|
|
73
79
|
"searchAddress": "Buscar dirección",
|
|
80
|
+
"searchIdentifierPlaceholder": "Search identifier",
|
|
74
81
|
"selectAnOption": "Seleccionar una opción",
|
|
75
82
|
"sexFieldLabelText": "Sexo",
|
|
83
|
+
"source": "Source",
|
|
76
84
|
"stroke": "Ictus",
|
|
77
|
-
"
|
|
85
|
+
"submitting": "Submitting",
|
|
86
|
+
"unableToFetch": "No se puede obtener el tipo de atributo de persona {{personattributetype}}",
|
|
78
87
|
"unknown": "Desconocido",
|
|
88
|
+
"unknownPatientAttributeType": "Patient attribute type has unknown format {{personAttributeTypeFormat}}",
|
|
79
89
|
"updatePatient": "Paciente Actualizado",
|
|
80
|
-
"
|
|
81
|
-
"
|
|
90
|
+
"updatePatientErrorSnackbarTitle": "Patient Details Update Failed",
|
|
91
|
+
"updatePatientSuccessSnackbarSubtitle": "The patient's information has been successfully updated",
|
|
92
|
+
"updatePatientSuccessSnackbarTitle": "Patient Details Updated",
|
|
82
93
|
"yearsEstimateRequired": "Estimación de años obligatoria",
|
|
83
94
|
"yes": "Sí"
|
|
84
95
|
}
|