@olaboot/esm-patient-registration-app 9.2.1 → 10.0.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/1339.js +1 -0
- package/dist/1339.js.map +1 -0
- package/dist/1480.js +1 -0
- package/dist/1480.js.map +1 -0
- package/dist/1646.js +1 -0
- package/dist/1646.js.map +1 -0
- package/dist/1789.js +1 -0
- package/dist/1789.js.map +1 -0
- package/dist/1869.js +1 -0
- package/dist/1869.js.map +1 -0
- package/dist/1877.js +1 -0
- package/dist/1877.js.map +1 -0
- package/dist/2317.js +1 -0
- package/dist/2317.js.map +1 -0
- package/dist/2416.js +1 -0
- package/dist/2416.js.map +1 -0
- package/dist/2747.js +1 -0
- package/dist/2747.js.map +1 -0
- package/dist/282.js +1 -0
- package/dist/282.js.map +1 -0
- package/dist/2881.js +1 -0
- package/dist/2881.js.map +1 -0
- package/dist/3378.js +1 -0
- package/dist/3378.js.map +1 -0
- package/dist/3720.js +1 -0
- package/dist/3720.js.map +1 -0
- package/dist/3906.js +1 -0
- package/dist/3906.js.map +1 -0
- package/dist/3963.js +1 -0
- package/dist/3963.js.map +1 -0
- package/dist/3989.js +1 -0
- package/dist/3989.js.map +1 -0
- package/dist/4106.js +1 -0
- package/dist/4106.js.map +1 -0
- package/dist/4111.js +1 -0
- package/dist/4111.js.map +1 -0
- package/dist/434.js +1 -0
- package/dist/434.js.map +1 -0
- package/dist/4348.js +1 -0
- package/dist/4348.js.map +1 -0
- package/dist/4383.js +1 -0
- package/dist/4383.js.map +1 -0
- package/dist/4658.js +1 -0
- package/dist/4658.js.map +1 -0
- package/dist/466.js +1 -0
- package/dist/466.js.map +1 -0
- package/dist/4928.js +1 -0
- package/dist/4928.js.map +1 -0
- package/dist/5117.js +1 -0
- package/dist/5117.js.map +1 -0
- package/dist/5132.js +1 -0
- package/dist/5132.js.map +1 -0
- package/dist/5145.js +1 -0
- package/dist/5145.js.map +1 -0
- package/dist/5208.js +43 -0
- package/dist/5208.js.map +1 -0
- package/dist/527.js +1 -0
- package/dist/527.js.map +1 -0
- package/dist/5280.js +1 -0
- package/dist/5280.js.map +1 -0
- package/dist/5338.js +6 -0
- package/dist/5338.js.map +1 -0
- package/dist/5503.js +1 -0
- package/dist/5503.js.map +1 -0
- package/dist/555.js +1 -0
- package/dist/555.js.map +1 -0
- package/dist/556.js +1 -0
- package/dist/556.js.map +1 -0
- package/dist/5644.js +1 -0
- package/dist/5644.js.map +1 -0
- package/dist/5697.js +1 -0
- package/dist/{4024.js.map → 5697.js.map} +1 -1
- package/dist/5940.js +1 -0
- package/dist/5940.js.map +1 -0
- package/dist/6047.js +1 -0
- package/dist/6047.js.map +1 -0
- package/dist/6371.js +1 -0
- package/dist/6371.js.map +1 -0
- package/dist/6377.js +1 -0
- package/dist/6377.js.map +1 -0
- package/dist/6388.js +1 -0
- package/dist/6388.js.map +1 -0
- package/dist/6444.js +1 -0
- package/dist/6444.js.map +1 -0
- package/dist/6508.js +1 -0
- package/dist/6508.js.map +1 -0
- package/dist/6724.js +1 -0
- package/dist/6724.js.map +1 -0
- package/dist/689.js +1 -0
- package/dist/689.js.map +1 -0
- package/dist/6904.js +1 -0
- package/dist/6904.js.map +1 -0
- package/dist/7045.js +1 -0
- package/dist/7045.js.map +1 -0
- package/dist/7175.js +1 -0
- package/dist/7175.js.map +1 -0
- package/dist/7182.js +1 -0
- package/dist/7182.js.map +1 -0
- package/dist/7649.js +1 -0
- package/dist/7649.js.map +1 -0
- package/dist/7742.js +1 -0
- package/dist/7742.js.map +1 -0
- package/dist/7912.js +1 -0
- package/dist/7912.js.map +1 -0
- package/dist/8358.js +1 -0
- package/dist/8358.js.map +1 -0
- package/dist/8359.js +1 -0
- package/dist/8359.js.map +1 -0
- package/dist/8695.js +1 -0
- package/dist/8695.js.map +1 -0
- package/dist/903.js +1 -0
- package/dist/903.js.map +1 -0
- package/dist/9061.js +1 -0
- package/dist/9061.js.map +1 -0
- package/dist/9072.js +1 -0
- package/dist/9072.js.map +1 -0
- package/dist/9397.js +1 -0
- package/dist/9397.js.map +1 -0
- package/dist/9712.js +1 -0
- package/dist/9712.js.map +1 -0
- package/dist/9771.js +1 -0
- package/dist/9771.js.map +1 -0
- package/dist/9806.js +1 -0
- package/dist/9806.js.map +1 -0
- package/dist/9816.js +1 -0
- package/dist/9816.js.map +1 -0
- package/dist/main.js +7 -6
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-patient-registration-app.js +6 -0
- package/dist/{olaboot-esm-patient-registration-app.js.buildmanifest.json → openmrs-esm-patient-registration-app.js.buildmanifest.json} +540 -455
- package/dist/openmrs-esm-patient-registration-app.js.map +1 -0
- package/dist/routes.json +1 -1
- package/package.json +8 -9
- package/src/add-patient-link.extension.tsx +3 -2
- package/src/add-patient-link.test.tsx +2 -1
- package/src/config-schema.ts +507 -507
- package/src/constants.ts +1 -1
- package/src/index.ts +2 -24
- package/src/nav-link.test.tsx +1 -0
- package/src/offline.resources.ts +97 -31
- package/src/patient-registration/before-save-prompt.test.tsx +199 -0
- package/src/patient-registration/field/__mocks__/field.resource.ts +8 -7
- package/src/patient-registration/field/address/address-field.component.tsx +183 -186
- package/src/patient-registration/field/address/address-hierarchy-levels.component.tsx +6 -1
- package/src/patient-registration/field/address/address-hierarchy.test.tsx +289 -296
- package/src/patient-registration/field/address/address-search.component.tsx +20 -8
- package/src/patient-registration/field/address/address-search.scss +19 -2
- package/src/patient-registration/field/address/address-search.test.tsx +333 -141
- package/src/patient-registration/field/address/custom-address-field.component.tsx +1 -1
- package/src/patient-registration/field/cause-of-death/cause-of-death.component.tsx +1 -1
- package/src/patient-registration/field/cause-of-death/cause-of-death.test.tsx +251 -0
- package/src/patient-registration/field/custom-field.component.tsx +1 -1
- package/src/patient-registration/field/date-and-time-of-death/date-and-time-of-death.component.tsx +1 -1
- package/src/patient-registration/field/date-and-time-of-death/date-and-time-of-death.test.tsx +144 -0
- package/src/patient-registration/field/dob/dob.component.tsx +2 -2
- package/src/patient-registration/field/dob/dob.test.tsx +370 -54
- package/src/patient-registration/field/field.component.tsx +1 -1
- package/src/patient-registration/field/field.resource.ts +2 -2
- package/src/patient-registration/field/field.test.tsx +333 -330
- package/src/patient-registration/field/gender/gender-field.test.tsx +240 -54
- package/src/patient-registration/field/id/id-field.component.tsx +146 -144
- package/src/patient-registration/field/id/id-field.test.tsx +177 -121
- package/src/patient-registration/field/id/identifier-selection-overlay.component.tsx +200 -200
- package/src/patient-registration/field/id/identifier-selection-overlay.test.tsx +346 -0
- package/src/patient-registration/field/name/name-field.component.tsx +2 -2
- package/src/patient-registration/field/name/name-field.test.tsx +282 -0
- package/src/patient-registration/field/obs/obs-field.test.tsx +294 -118
- package/src/patient-registration/field/person-attributes/coded-person-attribute-field.test.tsx +172 -108
- package/src/patient-registration/field/person-attributes/location-person-attribute-field.component.tsx +3 -3
- package/src/patient-registration/field/person-attributes/location-person-attribute-field.resource.tsx +2 -5
- package/src/patient-registration/field/person-attributes/person-attribute-field.component.tsx +2 -2
- package/src/patient-registration/field/person-attributes/person-attribute-field.test.tsx +249 -131
- package/src/patient-registration/field/person-attributes/person-attributes.resource.ts +1 -1
- package/src/patient-registration/field/person-attributes/text-person-attribute-field.test.tsx +98 -70
- package/src/patient-registration/field/phone/phone-field.test.tsx +100 -0
- package/src/patient-registration/form-manager.test.ts +6 -5
- package/src/patient-registration/form-manager.ts +5 -2
- package/src/patient-registration/input/basic-input/input/input.component.tsx +3 -121
- package/src/patient-registration/input/basic-input/input/input.test.tsx +151 -51
- package/src/patient-registration/input/basic-input/select/select-input.test.tsx +113 -33
- package/src/patient-registration/input/combo-input/combo-input.component.tsx +60 -24
- package/src/patient-registration/input/custom-input/autosuggest/autosuggest.component.tsx +10 -101
- package/src/patient-registration/input/custom-input/autosuggest/autosuggest.test.tsx +144 -108
- package/src/patient-registration/input/custom-input/identifier/identifier-input.test.tsx +241 -177
- package/src/patient-registration/input/custom-input/identifier/utils.test.ts +47 -8
- package/src/patient-registration/input/dummy-data/dummy-data-input.component.tsx +12 -12
- package/src/patient-registration/input/dummy-data/dummy-data-input.test.tsx +52 -20
- package/src/patient-registration/input/input.scss +1 -2
- package/src/patient-registration/patient-registration-context.ts +5 -3
- package/src/patient-registration/patient-registration-hooks.ts +4 -12
- package/src/patient-registration/patient-registration-utils.test.ts +2 -1
- package/src/patient-registration/patient-registration-utils.ts +2 -98
- package/src/patient-registration/patient-registration.component.tsx +50 -46
- package/src/patient-registration/patient-registration.resource.test.tsx +4 -7
- package/src/patient-registration/patient-registration.resource.ts +1 -4
- package/src/patient-registration/patient-registration.scss +16 -3
- package/src/patient-registration/patient-registration.test.tsx +614 -580
- package/src/patient-registration/patient-registration.types.ts +17 -28
- package/src/patient-registration/section/death-info/death-info-section.test.tsx +130 -34
- package/src/patient-registration/section/demographics/demographics-section.test.tsx +122 -68
- package/src/patient-registration/section/patient-relationships/relationships-section.component.tsx +15 -15
- package/src/patient-registration/section/patient-relationships/relationships-section.test.tsx +278 -84
- package/src/patient-registration/section/section-wrapper.component.tsx +1 -1
- package/src/patient-registration/ui-components/overlay/overlay.test.tsx +104 -0
- package/src/patient-registration/validation/patient-registration-validation.test.ts +2 -1
- package/src/patient-registration/validation/patient-registration-validation.ts +9 -3
- package/src/root.component.tsx +2 -5
- package/src/widgets/cancel-patient-edit.test.tsx +48 -11
- package/src/widgets/delete-identifier-confirmation.test.tsx +77 -24
- package/src/widgets/edit-patient-details-button.component.tsx +14 -18
- package/src/widgets/edit-patient-details-button.scss +2 -2
- package/src/widgets/edit-patient-details-button.test.tsx +11 -13
- package/translations/am.json +9 -4
- package/translations/ar.json +9 -4
- package/translations/ar_SY.json +9 -4
- package/translations/bn.json +9 -4
- package/translations/cs.json +9 -4
- package/translations/de.json +120 -115
- package/translations/en.json +10 -4
- package/translations/en_US.json +9 -4
- package/translations/es.json +9 -4
- package/translations/es_MX.json +9 -4
- package/translations/fr.json +9 -4
- package/translations/he.json +9 -4
- package/translations/hi.json +9 -4
- package/translations/hi_IN.json +9 -4
- package/translations/id.json +9 -4
- package/translations/it.json +9 -4
- package/translations/ka.json +9 -4
- package/translations/km.json +9 -4
- package/translations/ku.json +9 -4
- package/translations/ky.json +9 -4
- package/translations/lg.json +9 -4
- package/translations/ne.json +9 -4
- package/translations/pl.json +9 -4
- package/translations/pt.json +9 -4
- package/translations/pt_BR.json +10 -5
- package/translations/qu.json +9 -4
- package/translations/ro_RO.json +9 -4
- package/translations/ru_RU.json +9 -4
- package/translations/si.json +9 -4
- package/translations/sq.json +9 -4
- package/translations/sw.json +9 -4
- package/translations/sw_KE.json +9 -4
- package/translations/tr.json +9 -4
- package/translations/tr_TR.json +9 -4
- package/translations/uk.json +9 -4
- package/translations/uz.json +9 -4
- package/translations/uz@Latn.json +9 -4
- package/translations/uz_UZ.json +9 -4
- package/translations/vi.json +9 -4
- package/translations/zh.json +50 -45
- package/translations/zh_CN.json +9 -4
- package/translations/zh_TW.json +9 -4
- package/vitest.config.ts +4 -0
- package/dist/126.js +0 -1
- package/dist/15.js +0 -1
- package/dist/1564.js +0 -1
- package/dist/1567.js +0 -1
- package/dist/1845.js +0 -1
- package/dist/1953.js +0 -1
- package/dist/200.js +0 -1
- package/dist/200.js.map +0 -1
- package/dist/215.js +0 -1
- package/dist/2178.js +0 -1
- package/dist/250.js +0 -1
- package/dist/250.js.map +0 -1
- package/dist/2523.js +0 -1
- package/dist/2523.js.map +0 -1
- package/dist/2566.js +0 -1
- package/dist/2586.js +0 -1
- package/dist/2586.js.map +0 -1
- package/dist/2716.js +0 -1
- package/dist/2716.js.map +0 -1
- package/dist/2759.js +0 -1
- package/dist/2821.js +0 -6
- package/dist/2821.js.map +0 -1
- package/dist/3089.js +0 -1
- package/dist/3089.js.map +0 -1
- package/dist/3230.js +0 -1
- package/dist/3441.js +0 -1
- package/dist/3565.js +0 -1
- package/dist/3571.js +0 -1
- package/dist/3571.js.map +0 -1
- package/dist/3746.js +0 -1
- package/dist/3925.js +0 -1
- package/dist/3946.js +0 -1
- package/dist/4024.js +0 -1
- package/dist/4744.js +0 -1
- package/dist/4744.js.map +0 -1
- package/dist/4809.js +0 -1
- package/dist/4894.js +0 -1
- package/dist/4970.js +0 -1
- package/dist/4970.js.map +0 -1
- package/dist/5130.js +0 -1
- package/dist/5187.js +0 -1
- package/dist/5491.js +0 -1
- package/dist/5491.js.map +0 -1
- package/dist/5595.js +0 -1
- package/dist/5961.js +0 -1
- package/dist/6133.js +0 -1
- package/dist/634.js +0 -1
- package/dist/634.js.map +0 -1
- package/dist/6456.js +0 -1
- package/dist/6466.js +0 -1
- package/dist/6613.js +0 -1
- package/dist/6783.js +0 -1
- package/dist/7073.js +0 -38
- package/dist/7073.js.map +0 -1
- package/dist/7154.js +0 -1
- package/dist/7154.js.map +0 -1
- package/dist/7348.js +0 -1
- package/dist/7439.js +0 -1
- package/dist/7439.js.map +0 -1
- package/dist/7543.js +0 -1
- package/dist/7607.js +0 -1
- package/dist/772.js +0 -1
- package/dist/7984.js +0 -1
- package/dist/7984.js.map +0 -1
- package/dist/8538.js +0 -1
- package/dist/8538.js.map +0 -1
- package/dist/8599.js +0 -1
- package/dist/8727.js +0 -1
- package/dist/8847.js +0 -1
- package/dist/9015.js +0 -1
- package/dist/906.js +0 -1
- package/dist/9065.js +0 -1
- package/dist/9182.js +0 -1
- package/dist/9339.js +0 -1
- package/dist/9453.js +0 -1
- package/dist/9833.js +0 -1
- package/dist/9833.js.map +0 -1
- package/dist/9856.js +0 -1
- package/dist/9856.js.map +0 -1
- package/dist/9920.js +0 -1
- package/dist/9938.js +0 -1
- package/dist/9943.js +0 -1
- package/dist/9943.js.map +0 -1
- package/dist/olaboot-esm-patient-registration-app.js +0 -5
- package/dist/olaboot-esm-patient-registration-app.js.map +0 -1
- package/jest.config.js +0 -3
- package/src/resource.ts +0 -12
|
@@ -1,32 +1,85 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { vi, describe, it, expect } from 'vitest';
|
|
2
3
|
import userEvent from '@testing-library/user-event';
|
|
3
4
|
import { render, screen } from '@testing-library/react';
|
|
4
5
|
import DeleteIdentifierConfirmationModal from './delete-identifier-confirmation.modal';
|
|
5
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Helper to render DeleteIdentifierConfirmationModal.
|
|
9
|
+
*/
|
|
10
|
+
function renderDeleteIdentifierModal(
|
|
11
|
+
closeModal = vi.fn(),
|
|
12
|
+
deleteIdentifier = vi.fn(),
|
|
13
|
+
identifierName = 'Identifier Name',
|
|
14
|
+
identifierValue = 'Identifier Value',
|
|
15
|
+
) {
|
|
16
|
+
return render(
|
|
17
|
+
<DeleteIdentifierConfirmationModal
|
|
18
|
+
closeModal={closeModal}
|
|
19
|
+
deleteIdentifier={deleteIdentifier}
|
|
20
|
+
identifierName={identifierName}
|
|
21
|
+
identifierValue={identifierValue}
|
|
22
|
+
/>,
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
6
26
|
describe('DeleteIdentifierConfirmationModal', () => {
|
|
7
|
-
const mockDeleteIdentifier =
|
|
8
|
-
const
|
|
9
|
-
const mockIdentifierName = '
|
|
10
|
-
const mockIdentifierValue = '
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
const mockDeleteIdentifier = vi.fn();
|
|
28
|
+
const mockCloseModal = vi.fn();
|
|
29
|
+
const mockIdentifierName = 'OpenMRS ID';
|
|
30
|
+
const mockIdentifierValue = '10001V';
|
|
31
|
+
|
|
32
|
+
describe('Rendering', () => {
|
|
33
|
+
it('renders modal with title', () => {
|
|
34
|
+
renderDeleteIdentifierModal(mockCloseModal, mockDeleteIdentifier, mockIdentifierName, mockIdentifierValue);
|
|
35
|
+
|
|
36
|
+
expect(screen.getByText(/delete identifier\?/i)).toBeInTheDocument();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('displays identifier name and value in the message', () => {
|
|
40
|
+
renderDeleteIdentifierModal(mockCloseModal, mockDeleteIdentifier, mockIdentifierName, mockIdentifierValue);
|
|
41
|
+
|
|
42
|
+
expect(screen.getByText(mockIdentifierName, { exact: false })).toBeInTheDocument();
|
|
43
|
+
expect(screen.getByText(mockIdentifierValue, { exact: false })).toBeInTheDocument();
|
|
44
|
+
expect(screen.getByText(/are you sure you want to delete this identifier\?/i)).toBeInTheDocument();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('renders Cancel and Remove identifier buttons', () => {
|
|
48
|
+
renderDeleteIdentifierModal(mockCloseModal, mockDeleteIdentifier, mockIdentifierName, mockIdentifierValue);
|
|
49
|
+
|
|
50
|
+
expect(screen.getByRole('button', { name: /cancel/i })).toBeInTheDocument();
|
|
51
|
+
expect(screen.getByRole('button', { name: /remove identifier/i })).toBeInTheDocument();
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('handles missing identifier name and value gracefully', () => {
|
|
55
|
+
renderDeleteIdentifierModal(mockCloseModal, mockDeleteIdentifier, '', '');
|
|
56
|
+
|
|
57
|
+
expect(screen.getByText(/are you sure you want to delete this identifier\?/i)).toBeInTheDocument();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
describe('User interaction', () => {
|
|
62
|
+
it('calls closeModal when Cancel button is clicked', async () => {
|
|
63
|
+
const user = userEvent.setup();
|
|
64
|
+
renderDeleteIdentifierModal(mockCloseModal, mockDeleteIdentifier, mockIdentifierName, mockIdentifierValue);
|
|
65
|
+
|
|
66
|
+
const cancelButton = screen.getByRole('button', { name: /cancel/i });
|
|
67
|
+
await user.click(cancelButton);
|
|
68
|
+
|
|
69
|
+
expect(mockCloseModal).toHaveBeenCalledTimes(1);
|
|
70
|
+
expect(mockDeleteIdentifier).not.toHaveBeenCalled();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('calls deleteIdentifier with true when Remove identifier button is clicked', async () => {
|
|
74
|
+
const user = userEvent.setup();
|
|
75
|
+
renderDeleteIdentifierModal(mockCloseModal, mockDeleteIdentifier, mockIdentifierName, mockIdentifierValue);
|
|
76
|
+
|
|
77
|
+
const removeButton = screen.getByRole('button', { name: /remove identifier/i });
|
|
78
|
+
await user.click(removeButton);
|
|
79
|
+
|
|
80
|
+
expect(mockDeleteIdentifier).toHaveBeenCalledWith(true);
|
|
81
|
+
expect(mockDeleteIdentifier).toHaveBeenCalledTimes(1);
|
|
82
|
+
expect(mockCloseModal).not.toHaveBeenCalled();
|
|
83
|
+
});
|
|
31
84
|
});
|
|
32
85
|
});
|
|
@@ -1,32 +1,28 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { navigate } from '@openmrs/esm-framework';
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
3
2
|
import { useTranslation } from 'react-i18next';
|
|
3
|
+
import { OverflowMenuItem } from '@carbon/react';
|
|
4
|
+
import { navigate } from '@openmrs/esm-framework';
|
|
4
5
|
import styles from './edit-patient-details-button.scss';
|
|
5
6
|
|
|
6
7
|
interface EditPatientDetailsButtonProps {
|
|
7
|
-
onTransition?: () => void;
|
|
8
8
|
patientUuid: string;
|
|
9
|
+
closeMenu?: () => void;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
|
-
const EditPatientDetailsButton: React.FC<EditPatientDetailsButtonProps> = ({ patientUuid,
|
|
12
|
+
const EditPatientDetailsButton: React.FC<EditPatientDetailsButtonProps> = ({ patientUuid, closeMenu }) => {
|
|
12
13
|
const { t } = useTranslation();
|
|
13
|
-
|
|
14
|
+
|
|
15
|
+
const handleClick = useCallback(() => {
|
|
14
16
|
navigate({ to: `\${openmrsSpaBase}/patient/${patientUuid}/edit` });
|
|
15
|
-
|
|
16
|
-
}, [onTransition, patientUuid]);
|
|
17
|
+
}, [patientUuid]);
|
|
17
18
|
|
|
18
19
|
return (
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<span className="cds--overflow-menu-options__option-content">
|
|
26
|
-
{t('editPatientDetails', 'Edit patient details')}
|
|
27
|
-
</span>
|
|
28
|
-
</button>
|
|
29
|
-
</li>
|
|
20
|
+
<OverflowMenuItem
|
|
21
|
+
className={styles.menuitem}
|
|
22
|
+
closeMenu={closeMenu}
|
|
23
|
+
itemText={t('editPatientDetails', 'Edit patient details')}
|
|
24
|
+
onClick={handleClick}
|
|
25
|
+
/>
|
|
30
26
|
);
|
|
31
27
|
};
|
|
32
28
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
.
|
|
2
|
-
|
|
1
|
+
.menuitem {
|
|
2
|
+
max-width: none;
|
|
3
3
|
}
|
|
@@ -1,35 +1,33 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { vi, describe, it, expect } from 'vitest';
|
|
2
3
|
import userEvent from '@testing-library/user-event';
|
|
3
4
|
import { render, screen } from '@testing-library/react';
|
|
4
5
|
import { navigate } from '@openmrs/esm-framework';
|
|
5
6
|
import { mockPatient } from '__mocks__';
|
|
6
7
|
import EditPatientDetailsButton from './edit-patient-details-button.component';
|
|
7
8
|
|
|
8
|
-
const mockNavigate =
|
|
9
|
+
const mockNavigate = vi.mocked(navigate);
|
|
9
10
|
|
|
10
11
|
describe('EditPatientDetailsButton', () => {
|
|
11
12
|
const patientUuid = mockPatient.uuid;
|
|
12
13
|
|
|
13
|
-
it('
|
|
14
|
-
const user = userEvent.setup();
|
|
15
|
-
|
|
14
|
+
it('renders button with correct text', () => {
|
|
16
15
|
render(<EditPatientDetailsButton patientUuid={patientUuid} />);
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
expect(mockNavigate).toHaveBeenCalledWith({ to: expect.stringContaining(`/patient/${patientUuid}/edit`) });
|
|
17
|
+
expect(screen.getByRole('menuitem')).toBeInTheDocument();
|
|
18
|
+
expect(screen.getByText(/edit patient details/i)).toBeInTheDocument();
|
|
22
19
|
});
|
|
23
20
|
|
|
24
|
-
it('
|
|
21
|
+
it('navigates to edit page when clicked', async () => {
|
|
25
22
|
const user = userEvent.setup();
|
|
26
|
-
|
|
27
|
-
const onTransitionMock = jest.fn();
|
|
28
|
-
render(<EditPatientDetailsButton patientUuid={patientUuid} onTransition={onTransitionMock} />);
|
|
23
|
+
render(<EditPatientDetailsButton patientUuid={patientUuid} />);
|
|
29
24
|
|
|
30
25
|
const button = screen.getByRole('menuitem');
|
|
31
26
|
await user.click(button);
|
|
32
27
|
|
|
33
|
-
expect(
|
|
28
|
+
expect(mockNavigate).toHaveBeenCalledWith({
|
|
29
|
+
to: expect.stringContaining(`/patient/${patientUuid}/edit`),
|
|
30
|
+
});
|
|
31
|
+
expect(mockNavigate).toHaveBeenCalledTimes(1);
|
|
34
32
|
});
|
|
35
33
|
});
|
package/translations/am.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"deathDateInFuture": "Death date cannot be in future",
|
|
27
27
|
"deathDateInputLabel": "Date of death",
|
|
28
28
|
"deathDateRequired": "Death date is required",
|
|
29
|
-
"
|
|
29
|
+
"deathdayBeforeBirthday": "Death date and time cannot be before the birthday",
|
|
30
30
|
"deathdayIsRequired": "Death date is required when the patient is marked as deceased.",
|
|
31
31
|
"deathdayNotInTheFuture": "",
|
|
32
32
|
"deathSection": "Death Info",
|
|
@@ -44,11 +44,12 @@
|
|
|
44
44
|
"dobToggleLabelText": "Date of Birth Known?",
|
|
45
45
|
"editIdentifierTooltip": "Edit",
|
|
46
46
|
"editPatientDetails": "Edit patient details",
|
|
47
|
-
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
48
47
|
"enterNonCodedCauseOfDeath": "Enter non-coded cause of death",
|
|
49
48
|
"error": "Error",
|
|
49
|
+
"errorFetchingAddresses": "Error fetching address results",
|
|
50
50
|
"errorFetchingCodedCausesOfDeath": "Error fetching coded causes of death",
|
|
51
51
|
"errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
|
|
52
|
+
"errorFetchingResults": "Error fetching results",
|
|
52
53
|
"estimatedAgeInMonthsLabelText": "Estimated age in months",
|
|
53
54
|
"estimatedAgeInYearsLabelText": "Estimated age in years",
|
|
54
55
|
"familyNameLabelText": "Family Name",
|
|
@@ -64,17 +65,21 @@
|
|
|
64
65
|
"identifierValueRequired": "Identifier value is required",
|
|
65
66
|
"idFieldLabelText": "Identifiers",
|
|
66
67
|
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
68
|
+
"inputDummyData": "Input Dummy Data",
|
|
67
69
|
"invalidEmail": "Invalid email",
|
|
68
70
|
"invalidInput": "Invalid Input",
|
|
69
71
|
"isDeadInputLabel": "Is dead",
|
|
70
72
|
"jumpTo": "Jump to",
|
|
73
|
+
"loading": "Loading",
|
|
71
74
|
"male": "Male",
|
|
72
75
|
"middleNameLabelText": "Middle Name",
|
|
73
76
|
"negativeMonths": "Estimated months cannot be negative",
|
|
74
77
|
"negativeYears": "Estimated years cannot be negative",
|
|
75
78
|
"no": "No",
|
|
79
|
+
"noAddressResults": "No matching addresses found",
|
|
80
|
+
"noMatchingResults": "No matching results",
|
|
76
81
|
"nonCodedCauseOfDeath": "Non-coded cause of death",
|
|
77
|
-
"
|
|
82
|
+
"nonCodedCauseOfDeathRequiredWhenSelected": "Non-coded cause of death is required",
|
|
78
83
|
"nonsensicalYears": "Estimated years cannot be more than 140",
|
|
79
84
|
"numberInNameDubious": "Number in name is dubious",
|
|
80
85
|
"obsFieldUnknownDatatype": "Concept for obs field '{{fieldDefinitionId}}' has unknown datatype '{{datatypeName}}'",
|
|
@@ -82,7 +87,6 @@
|
|
|
82
87
|
"optionalIdentifierLabel": "{{identifierName}} (optional)",
|
|
83
88
|
"other": "Other",
|
|
84
89
|
"patientNameKnown": "Patient's Name is Known?",
|
|
85
|
-
"patientRegistrationBreadcrumb": "Patient Registration",
|
|
86
90
|
"refreshOrContactAdmin": "Try refreshing the page or contact your system administrator",
|
|
87
91
|
"registerPatient": "Register patient",
|
|
88
92
|
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
@@ -101,6 +105,7 @@
|
|
|
101
105
|
"restoreRelationshipActionButton": "Undo",
|
|
102
106
|
"searchAddress": "Search address",
|
|
103
107
|
"searchIdentifierPlaceholder": "Search identifier",
|
|
108
|
+
"searching": "Searching...",
|
|
104
109
|
"searchLocationPersonAttribute": "Search location",
|
|
105
110
|
"selectAnOption": "Select an option",
|
|
106
111
|
"sexFieldLabelText": "Sex",
|
package/translations/ar.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"deathDateInFuture": "Death date cannot be in future",
|
|
27
27
|
"deathDateInputLabel": "تاريخ الوفاة",
|
|
28
28
|
"deathDateRequired": "Death date is required",
|
|
29
|
-
"
|
|
29
|
+
"deathdayBeforeBirthday": "Death date and time cannot be before the birthday",
|
|
30
30
|
"deathdayIsRequired": "Death date is required when the patient is marked as deceased.",
|
|
31
31
|
"deathdayNotInTheFuture": "",
|
|
32
32
|
"deathSection": "معلومات الوفاة",
|
|
@@ -44,11 +44,12 @@
|
|
|
44
44
|
"dobToggleLabelText": "هل تاريخ الميلاد معروف؟",
|
|
45
45
|
"editIdentifierTooltip": "تعديل",
|
|
46
46
|
"editPatientDetails": "تعديل تفاصيل المريض",
|
|
47
|
-
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
48
47
|
"enterNonCodedCauseOfDeath": "Enter non-coded cause of death",
|
|
49
48
|
"error": "خطأ",
|
|
49
|
+
"errorFetchingAddresses": "Error fetching address results",
|
|
50
50
|
"errorFetchingCodedCausesOfDeath": "Error fetching coded causes of death",
|
|
51
51
|
"errorFetchingOrderedFields": "حدث خطأ أثناء جلب الحقول المرتبة لتسلسل العنوان",
|
|
52
|
+
"errorFetchingResults": "Error fetching results",
|
|
52
53
|
"estimatedAgeInMonthsLabelText": "العمر المقدر بالشهور",
|
|
53
54
|
"estimatedAgeInYearsLabelText": "العمر المقدر بالسنوات",
|
|
54
55
|
"familyNameLabelText": "اسم العائلة",
|
|
@@ -64,17 +65,21 @@
|
|
|
64
65
|
"identifierValueRequired": "قيمة المعرف مطلوبة",
|
|
65
66
|
"idFieldLabelText": "المعرفات",
|
|
66
67
|
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
68
|
+
"inputDummyData": "Input Dummy Data",
|
|
67
69
|
"invalidEmail": "Invalid email",
|
|
68
70
|
"invalidInput": "إدخال غير صالح",
|
|
69
71
|
"isDeadInputLabel": "Is dead",
|
|
70
72
|
"jumpTo": "اذهب إلى",
|
|
73
|
+
"loading": "Loading",
|
|
71
74
|
"male": "ذكر",
|
|
72
75
|
"middleNameLabelText": "الاسم الأوسط",
|
|
73
76
|
"negativeMonths": "Estimated months cannot be negative",
|
|
74
77
|
"negativeYears": "Estimated years cannot be negative",
|
|
75
78
|
"no": "لا",
|
|
79
|
+
"noAddressResults": "No matching addresses found",
|
|
80
|
+
"noMatchingResults": "No matching results",
|
|
76
81
|
"nonCodedCauseOfDeath": "Non-coded cause of death",
|
|
77
|
-
"
|
|
82
|
+
"nonCodedCauseOfDeathRequiredWhenSelected": "Non-coded cause of death is required",
|
|
78
83
|
"nonsensicalYears": "Estimated years cannot be more than 140",
|
|
79
84
|
"numberInNameDubious": "Number in name is dubious",
|
|
80
85
|
"obsFieldUnknownDatatype": "Concept for obs field '{{fieldDefinitionId}}' has unknown datatype '{{datatypeName}}'",
|
|
@@ -82,7 +87,6 @@
|
|
|
82
87
|
"optionalIdentifierLabel": "{{identifierName}} (optional)",
|
|
83
88
|
"other": "آخر",
|
|
84
89
|
"patientNameKnown": "هل اسم المريض معروف؟",
|
|
85
|
-
"patientRegistrationBreadcrumb": "Patient Registration",
|
|
86
90
|
"refreshOrContactAdmin": "Try refreshing the page or contact your system administrator",
|
|
87
91
|
"registerPatient": "تسجيل المريض",
|
|
88
92
|
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
@@ -101,6 +105,7 @@
|
|
|
101
105
|
"restoreRelationshipActionButton": "تراجع",
|
|
102
106
|
"searchAddress": "ابحث عن العنوان",
|
|
103
107
|
"searchIdentifierPlaceholder": "Search identifier",
|
|
108
|
+
"searching": "Searching...",
|
|
104
109
|
"searchLocationPersonAttribute": "موقع البحث",
|
|
105
110
|
"selectAnOption": "اختر خيارًا",
|
|
106
111
|
"sexFieldLabelText": "الجنس",
|
package/translations/ar_SY.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"deathDateInFuture": "Death date cannot be in future",
|
|
27
27
|
"deathDateInputLabel": "Date of death",
|
|
28
28
|
"deathDateRequired": "Death date is required",
|
|
29
|
-
"
|
|
29
|
+
"deathdayBeforeBirthday": "Death date and time cannot be before the birthday",
|
|
30
30
|
"deathdayIsRequired": "Death date is required when the patient is marked as deceased.",
|
|
31
31
|
"deathdayNotInTheFuture": "",
|
|
32
32
|
"deathSection": "Death Info",
|
|
@@ -44,11 +44,12 @@
|
|
|
44
44
|
"dobToggleLabelText": "Date of Birth Known?",
|
|
45
45
|
"editIdentifierTooltip": "Edit",
|
|
46
46
|
"editPatientDetails": "Edit patient details",
|
|
47
|
-
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
48
47
|
"enterNonCodedCauseOfDeath": "Enter non-coded cause of death",
|
|
49
48
|
"error": "Error",
|
|
49
|
+
"errorFetchingAddresses": "Error fetching address results",
|
|
50
50
|
"errorFetchingCodedCausesOfDeath": "Error fetching coded causes of death",
|
|
51
51
|
"errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
|
|
52
|
+
"errorFetchingResults": "Error fetching results",
|
|
52
53
|
"estimatedAgeInMonthsLabelText": "Estimated age in months",
|
|
53
54
|
"estimatedAgeInYearsLabelText": "Estimated age in years",
|
|
54
55
|
"familyNameLabelText": "Family Name",
|
|
@@ -64,17 +65,21 @@
|
|
|
64
65
|
"identifierValueRequired": "Identifier value is required",
|
|
65
66
|
"idFieldLabelText": "Identifiers",
|
|
66
67
|
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
68
|
+
"inputDummyData": "Input Dummy Data",
|
|
67
69
|
"invalidEmail": "Invalid email",
|
|
68
70
|
"invalidInput": "Invalid Input",
|
|
69
71
|
"isDeadInputLabel": "Is dead",
|
|
70
72
|
"jumpTo": "Jump to",
|
|
73
|
+
"loading": "Loading",
|
|
71
74
|
"male": "Male",
|
|
72
75
|
"middleNameLabelText": "Middle Name",
|
|
73
76
|
"negativeMonths": "Estimated months cannot be negative",
|
|
74
77
|
"negativeYears": "Estimated years cannot be negative",
|
|
75
78
|
"no": "No",
|
|
79
|
+
"noAddressResults": "No matching addresses found",
|
|
80
|
+
"noMatchingResults": "No matching results",
|
|
76
81
|
"nonCodedCauseOfDeath": "Non-coded cause of death",
|
|
77
|
-
"
|
|
82
|
+
"nonCodedCauseOfDeathRequiredWhenSelected": "Non-coded cause of death is required",
|
|
78
83
|
"nonsensicalYears": "Estimated years cannot be more than 140",
|
|
79
84
|
"numberInNameDubious": "Number in name is dubious",
|
|
80
85
|
"obsFieldUnknownDatatype": "Concept for obs field '{{fieldDefinitionId}}' has unknown datatype '{{datatypeName}}'",
|
|
@@ -82,7 +87,6 @@
|
|
|
82
87
|
"optionalIdentifierLabel": "{{identifierName}} (optional)",
|
|
83
88
|
"other": "Other",
|
|
84
89
|
"patientNameKnown": "Patient's Name is Known?",
|
|
85
|
-
"patientRegistrationBreadcrumb": "Patient Registration",
|
|
86
90
|
"refreshOrContactAdmin": "Try refreshing the page or contact your system administrator",
|
|
87
91
|
"registerPatient": "Register patient",
|
|
88
92
|
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
@@ -101,6 +105,7 @@
|
|
|
101
105
|
"restoreRelationshipActionButton": "Undo",
|
|
102
106
|
"searchAddress": "Search address",
|
|
103
107
|
"searchIdentifierPlaceholder": "Search identifier",
|
|
108
|
+
"searching": "Searching...",
|
|
104
109
|
"searchLocationPersonAttribute": "Search location",
|
|
105
110
|
"selectAnOption": "Select an option",
|
|
106
111
|
"sexFieldLabelText": "Sex",
|
package/translations/bn.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"deathDateInFuture": "Death date cannot be in future",
|
|
27
27
|
"deathDateInputLabel": "মৃত্যুর তারিখ",
|
|
28
28
|
"deathDateRequired": "Death date is required",
|
|
29
|
-
"
|
|
29
|
+
"deathdayBeforeBirthday": "Death date and time cannot be before the birthday",
|
|
30
30
|
"deathdayIsRequired": "Death date is required when the patient is marked as deceased.",
|
|
31
31
|
"deathdayNotInTheFuture": "",
|
|
32
32
|
"deathSection": "Death Info",
|
|
@@ -44,11 +44,12 @@
|
|
|
44
44
|
"dobToggleLabelText": "Date of Birth Known?",
|
|
45
45
|
"editIdentifierTooltip": "পরিবর্তন",
|
|
46
46
|
"editPatientDetails": "রোগীর তথ্য পরিবর্তন",
|
|
47
|
-
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
48
47
|
"enterNonCodedCauseOfDeath": "Enter non-coded cause of death",
|
|
49
48
|
"error": "Error",
|
|
49
|
+
"errorFetchingAddresses": "Error fetching address results",
|
|
50
50
|
"errorFetchingCodedCausesOfDeath": "Error fetching coded causes of death",
|
|
51
51
|
"errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
|
|
52
|
+
"errorFetchingResults": "Error fetching results",
|
|
52
53
|
"estimatedAgeInMonthsLabelText": "Estimated age in months",
|
|
53
54
|
"estimatedAgeInYearsLabelText": "Estimated age in years",
|
|
54
55
|
"familyNameLabelText": "Family Name",
|
|
@@ -64,17 +65,21 @@
|
|
|
64
65
|
"identifierValueRequired": "Identifier value is required",
|
|
65
66
|
"idFieldLabelText": "Identifiers",
|
|
66
67
|
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
68
|
+
"inputDummyData": "Input Dummy Data",
|
|
67
69
|
"invalidEmail": "Invalid email",
|
|
68
70
|
"invalidInput": "Invalid Input",
|
|
69
71
|
"isDeadInputLabel": "Is dead",
|
|
70
72
|
"jumpTo": "Jump to",
|
|
73
|
+
"loading": "Loading",
|
|
71
74
|
"male": "পুরুষ",
|
|
72
75
|
"middleNameLabelText": "Middle Name",
|
|
73
76
|
"negativeMonths": "Estimated months cannot be negative",
|
|
74
77
|
"negativeYears": "Estimated years cannot be negative",
|
|
75
78
|
"no": "না",
|
|
79
|
+
"noAddressResults": "No matching addresses found",
|
|
80
|
+
"noMatchingResults": "No matching results",
|
|
76
81
|
"nonCodedCauseOfDeath": "Non-coded cause of death",
|
|
77
|
-
"
|
|
82
|
+
"nonCodedCauseOfDeathRequiredWhenSelected": "Non-coded cause of death is required",
|
|
78
83
|
"nonsensicalYears": "Estimated years cannot be more than 140",
|
|
79
84
|
"numberInNameDubious": "Number in name is dubious",
|
|
80
85
|
"obsFieldUnknownDatatype": "Concept for obs field '{{fieldDefinitionId}}' has unknown datatype '{{datatypeName}}'",
|
|
@@ -82,7 +87,6 @@
|
|
|
82
87
|
"optionalIdentifierLabel": "{{identifierName}} (optional)",
|
|
83
88
|
"other": "Other",
|
|
84
89
|
"patientNameKnown": "Patient's Name is Known?",
|
|
85
|
-
"patientRegistrationBreadcrumb": "Patient Registration",
|
|
86
90
|
"refreshOrContactAdmin": "Try refreshing the page or contact your system administrator",
|
|
87
91
|
"registerPatient": "Register patient",
|
|
88
92
|
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
@@ -101,6 +105,7 @@
|
|
|
101
105
|
"restoreRelationshipActionButton": "Undo",
|
|
102
106
|
"searchAddress": "Search address",
|
|
103
107
|
"searchIdentifierPlaceholder": "Search identifier",
|
|
108
|
+
"searching": "Searching...",
|
|
104
109
|
"searchLocationPersonAttribute": "Search location",
|
|
105
110
|
"selectAnOption": "Select an option",
|
|
106
111
|
"sexFieldLabelText": "Sex",
|
package/translations/cs.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"deathDateInFuture": "Death date cannot be in future",
|
|
27
27
|
"deathDateInputLabel": "Date of death",
|
|
28
28
|
"deathDateRequired": "Death date is required",
|
|
29
|
-
"
|
|
29
|
+
"deathdayBeforeBirthday": "Death date and time cannot be before the birthday",
|
|
30
30
|
"deathdayIsRequired": "Death date is required when the patient is marked as deceased.",
|
|
31
31
|
"deathdayNotInTheFuture": "",
|
|
32
32
|
"deathSection": "Death Info",
|
|
@@ -44,11 +44,12 @@
|
|
|
44
44
|
"dobToggleLabelText": "Date of Birth Known?",
|
|
45
45
|
"editIdentifierTooltip": "Edit",
|
|
46
46
|
"editPatientDetails": "Edit patient details",
|
|
47
|
-
"editPatientDetailsBreadcrumb": "Edit patient details",
|
|
48
47
|
"enterNonCodedCauseOfDeath": "Enter non-coded cause of death",
|
|
49
48
|
"error": "Error",
|
|
49
|
+
"errorFetchingAddresses": "Error fetching address results",
|
|
50
50
|
"errorFetchingCodedCausesOfDeath": "Error fetching coded causes of death",
|
|
51
51
|
"errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
|
|
52
|
+
"errorFetchingResults": "Error fetching results",
|
|
52
53
|
"estimatedAgeInMonthsLabelText": "Estimated age in months",
|
|
53
54
|
"estimatedAgeInYearsLabelText": "Estimated age in years",
|
|
54
55
|
"familyNameLabelText": "Family Name",
|
|
@@ -64,17 +65,21 @@
|
|
|
64
65
|
"identifierValueRequired": "Identifier value is required",
|
|
65
66
|
"idFieldLabelText": "Identifiers",
|
|
66
67
|
"IDInstructions": "Select the identifiers you'd like to add for this patient:",
|
|
68
|
+
"inputDummyData": "Input Dummy Data",
|
|
67
69
|
"invalidEmail": "Invalid email",
|
|
68
70
|
"invalidInput": "Invalid Input",
|
|
69
71
|
"isDeadInputLabel": "Is dead",
|
|
70
72
|
"jumpTo": "Jump to",
|
|
73
|
+
"loading": "Loading",
|
|
71
74
|
"male": "Male",
|
|
72
75
|
"middleNameLabelText": "Middle Name",
|
|
73
76
|
"negativeMonths": "Estimated months cannot be negative",
|
|
74
77
|
"negativeYears": "Estimated years cannot be negative",
|
|
75
78
|
"no": "No",
|
|
79
|
+
"noAddressResults": "No matching addresses found",
|
|
80
|
+
"noMatchingResults": "No matching results",
|
|
76
81
|
"nonCodedCauseOfDeath": "Non-coded cause of death",
|
|
77
|
-
"
|
|
82
|
+
"nonCodedCauseOfDeathRequiredWhenSelected": "Non-coded cause of death is required",
|
|
78
83
|
"nonsensicalYears": "Estimated years cannot be more than 140",
|
|
79
84
|
"numberInNameDubious": "Number in name is dubious",
|
|
80
85
|
"obsFieldUnknownDatatype": "Concept for obs field '{{fieldDefinitionId}}' has unknown datatype '{{datatypeName}}'",
|
|
@@ -82,7 +87,6 @@
|
|
|
82
87
|
"optionalIdentifierLabel": "{{identifierName}} (optional)",
|
|
83
88
|
"other": "Other",
|
|
84
89
|
"patientNameKnown": "Patient's Name is Known?",
|
|
85
|
-
"patientRegistrationBreadcrumb": "Patient Registration",
|
|
86
90
|
"refreshOrContactAdmin": "Try refreshing the page or contact your system administrator",
|
|
87
91
|
"registerPatient": "Register patient",
|
|
88
92
|
"registerPatientSuccessSnackbarSubtitle": "The patient can now be found by searching for them using their name or ID number",
|
|
@@ -101,6 +105,7 @@
|
|
|
101
105
|
"restoreRelationshipActionButton": "Undo",
|
|
102
106
|
"searchAddress": "Search address",
|
|
103
107
|
"searchIdentifierPlaceholder": "Search identifier",
|
|
108
|
+
"searching": "Searching...",
|
|
104
109
|
"searchLocationPersonAttribute": "Search location",
|
|
105
110
|
"selectAnOption": "Select an option",
|
|
106
111
|
"sexFieldLabelText": "Sex",
|