@kenyaemr/esm-patient-registration-app 4.5.0 → 4.5.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.
Files changed (78) hide show
  1. package/dist/130.js +2 -0
  2. package/dist/{858.js.LICENSE.txt → 130.js.LICENSE.txt} +2 -0
  3. package/dist/130.js.map +1 -0
  4. package/dist/196.js +1 -0
  5. package/dist/196.js.map +1 -0
  6. package/dist/208.js +2 -0
  7. package/dist/208.js.map +1 -0
  8. package/dist/317.js +1 -1
  9. package/dist/317.js.map +1 -1
  10. package/dist/319.js +1 -0
  11. package/dist/537.js +1 -0
  12. package/dist/537.js.map +1 -0
  13. package/dist/591.js +1 -1
  14. package/dist/591.js.map +1 -1
  15. package/dist/62.js +1 -1
  16. package/dist/62.js.map +1 -1
  17. package/dist/635.js +1 -1
  18. package/dist/635.js.map +1 -1
  19. package/dist/68.js +1 -1
  20. package/dist/68.js.map +1 -1
  21. package/dist/735.js +1 -1
  22. package/dist/742.js +1 -0
  23. package/dist/742.js.map +1 -0
  24. package/dist/757.js +1 -1
  25. package/dist/784.js.map +1 -1
  26. package/dist/788.js +1 -0
  27. package/dist/807.js +1 -1
  28. package/dist/821.js +1 -1
  29. package/dist/821.js.map +1 -1
  30. package/dist/833.js +1 -1
  31. package/dist/857.js +1 -0
  32. package/dist/857.js.map +1 -0
  33. package/dist/9.js +1 -1
  34. package/dist/9.js.map +1 -1
  35. package/dist/kenyaemr-esm-patient-registration-app.js +1 -1
  36. package/dist/kenyaemr-esm-patient-registration-app.js.buildmanifest.json +133 -137
  37. package/dist/kenyaemr-esm-patient-registration-app.js.map +1 -1
  38. package/dist/main.js +1 -1
  39. package/dist/main.js.map +1 -1
  40. package/dist/routes.json +1 -0
  41. package/package.json +2 -2
  42. package/src/add-patient-link.test.tsx +18 -0
  43. package/src/config-schema.ts +19 -5
  44. package/src/index.ts +33 -105
  45. package/src/nav-link.test.tsx +13 -0
  46. package/src/patient-registration/field/address/address-field.component.tsx +1 -1
  47. package/src/patient-registration/field/address/address-hierarchy.resource.tsx +2 -1
  48. package/src/patient-registration/field/field.test.tsx +291 -0
  49. package/src/patient-registration/field/name/name-field.component.tsx +45 -28
  50. package/src/patient-registration/form-manager.ts +1 -0
  51. package/src/patient-registration/input/combo-input/combo-input.component.tsx +28 -19
  52. package/src/patient-registration/input/input.scss +5 -0
  53. package/src/patient-registration/section/death-info/death-info-section.test.tsx +9 -6
  54. package/src/root.component.tsx +11 -11
  55. package/src/routes.json +46 -0
  56. package/translations/am.json +91 -0
  57. package/translations/es.json +91 -0
  58. package/translations/fr.json +8 -6
  59. package/translations/he.json +8 -6
  60. package/translations/km.json +8 -6
  61. package/dist/144.js +0 -2
  62. package/dist/144.js.map +0 -1
  63. package/dist/207.js +0 -1
  64. package/dist/207.js.map +0 -1
  65. package/dist/330.js +0 -1
  66. package/dist/330.js.map +0 -1
  67. package/dist/59.js +0 -1
  68. package/dist/59.js.map +0 -1
  69. package/dist/805.js +0 -1
  70. package/dist/805.js.map +0 -1
  71. package/dist/858.js +0 -2
  72. package/dist/858.js.map +0 -1
  73. package/dist/876.js +0 -1
  74. package/dist/876.js.map +0 -1
  75. package/dist/887.js +0 -1
  76. package/dist/887.js.map +0 -1
  77. package/dist/kenyaemr-esm-patient-registration-app.old +0 -1
  78. /package/dist/{144.js.LICENSE.txt → 208.js.LICENSE.txt} +0 -0
@@ -1,4 +1,4 @@
1
- import React, { useCallback, useMemo, useRef, useState } from 'react';
1
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
2
  import { TextInput, Layer } from '@carbon/react';
3
3
  import SelectionTick from './selection-tick.component';
4
4
  import styles from '../input.scss';
@@ -26,18 +26,6 @@ const ComboInput: React.FC<ComboInputProps> = ({ entries, fieldProps, handleInpu
26
26
  setHighlightedEntry(-1);
27
27
  }, [setShowEntries, setHighlightedEntry]);
28
28
 
29
- const handleBlur = useCallback(
30
- (e) => {
31
- // This check is in place to not hide the entries when an entry is clicked
32
- // Else the onClick of the entry will not be counted.
33
- if (!comboInputRef?.current?.contains(e.target)) {
34
- setShowEntries(false);
35
- }
36
- setHighlightedEntry(-1);
37
- },
38
- [setShowEntries, setHighlightedEntry],
39
- );
40
-
41
29
  const filteredEntries = useMemo(() => {
42
30
  if (!entries) {
43
31
  return [];
@@ -60,6 +48,12 @@ const ComboInput: React.FC<ComboInputProps> = ({ entries, fieldProps, handleInpu
60
48
  const handleKeyPress = useCallback(
61
49
  (e: KeyboardEvent) => {
62
50
  const totalResults = filteredEntries.length ?? 0;
51
+
52
+ if (e.key === 'Tab') {
53
+ setShowEntries(false);
54
+ setHighlightedEntry(-1);
55
+ }
56
+
63
57
  if (e.key === 'ArrowUp') {
64
58
  setHighlightedEntry((prev) => Math.max(-1, prev - 1));
65
59
  } else if (e.key === 'ArrowDown') {
@@ -68,24 +62,39 @@ const ComboInput: React.FC<ComboInputProps> = ({ entries, fieldProps, handleInpu
68
62
  handleOptionClick(filteredEntries[highlightedEntry], e);
69
63
  }
70
64
  },
71
- [highlightedEntry, handleOptionClick, filteredEntries, setHighlightedEntry],
65
+ [highlightedEntry, handleOptionClick, filteredEntries, setHighlightedEntry, setShowEntries],
72
66
  );
73
67
 
68
+ useEffect(() => {
69
+ const listener = (e) => {
70
+ if (!comboInputRef.current.contains(e.target as Node)) {
71
+ setShowEntries(false);
72
+ setHighlightedEntry(-1);
73
+ }
74
+ };
75
+ window.addEventListener('click', listener);
76
+ return () => {
77
+ window.removeEventListener('click', listener);
78
+ };
79
+ });
80
+
74
81
  return (
75
82
  <div className={styles.comboInput} ref={comboInputRef}>
76
83
  <Layer>
77
84
  <TextInput
78
85
  {...fieldProps}
79
- onChange={(e) => handleInputChange(e.target.value)}
86
+ onChange={(e) => {
87
+ setHighlightedEntry(-1);
88
+ handleInputChange(e.target.value);
89
+ }}
80
90
  onFocus={handleFocus}
81
- onBlur={handleBlur}
82
91
  autoComplete={'off'}
83
92
  onKeyDown={handleKeyPress}
84
93
  />
85
94
  </Layer>
86
95
  <div className={styles.comboInputEntries}>
87
96
  {showEntries && (
88
- <div id="downshift-1-menu" style={{ height: filteredEntries.length > 5 && "15rem" }} className="cds--list-box__menu" role="listbox">
97
+ <div id="downshift-1-menu" style={{ height: filteredEntries.length > 5 ? "15rem" : "" }} className="cds--list-box__menu" role="listbox">
89
98
  {filteredEntries.map((entry, indx) => (
90
99
  <div
91
100
  key={indx}
@@ -97,7 +106,7 @@ const ComboInput: React.FC<ComboInputProps> = ({ entries, fieldProps, handleInpu
97
106
  aria-selected="true"
98
107
  onClick={() => handleOptionClick(entry)}>
99
108
  <div
100
- className={`cds--list-box__menu-item__option ${entry === value && 'cds--list-box__menu-item--active'
109
+ className={`cds--list-box__menu-item__option ${styles.comboInputItemOption} ${entry === value && 'cds--list-box__menu-item--active'
101
110
  }`}>
102
111
  {entry}
103
112
  {entry === value && <SelectionTick />}
@@ -107,7 +116,7 @@ const ComboInput: React.FC<ComboInputProps> = ({ entries, fieldProps, handleInpu
107
116
  </div>
108
117
  )}
109
118
  </div>
110
- </div>
119
+ </div >
111
120
  );
112
121
  };
113
122
 
@@ -111,3 +111,8 @@
111
111
  .comboInputEntries {
112
112
  position: relative;
113
113
  }
114
+
115
+ .comboInputItemOption {
116
+ margin: 0;
117
+ padding-left: 1rem;
118
+ }
@@ -4,6 +4,7 @@ import { Formik, Form } from 'formik';
4
4
  import { initialFormValues } from '../../patient-registration.component';
5
5
  import { DeathInfoSection } from './death-info-section.component';
6
6
  import { FormValues } from '../../patient-registration-types';
7
+ import { PatientRegistrationContext } from '../../patient-registration-context';
7
8
 
8
9
  jest.mock('@openmrs/esm-framework', () => {
9
10
  const originalModule = jest.requireActual('@openmrs/esm-framework');
@@ -15,16 +16,18 @@ jest.mock('@openmrs/esm-framework', () => {
15
16
  });
16
17
 
17
18
  // TODO: Implement feature and get tests to pass
18
- describe.skip('death info section', () => {
19
+ describe('death info section', () => {
19
20
  const formValues: FormValues = initialFormValues;
20
21
 
21
22
  const setupSection = async (isDead?: boolean) => {
22
23
  render(
23
- <Formik initialValues={{ ...initialFormValues, isDead }} onSubmit={null}>
24
- <Form>
25
- <DeathInfoSection />
26
- </Form>
27
- </Formik>,
24
+ <PatientRegistrationContext.Provider value={{ values: { isDead: isDead || false } }}>
25
+ <Formik initialValues={{ ...initialFormValues, isDead }} onSubmit={null}>
26
+ <Form>
27
+ <DeathInfoSection />
28
+ </Form>
29
+ </Formik>
30
+ </PatientRegistrationContext.Provider>,
28
31
  );
29
32
  const allInputs = screen.queryAllByLabelText(
30
33
  (content, element) => element.tagName.toLowerCase() === 'input',
@@ -1,24 +1,20 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { BrowserRouter, Route, Routes } from 'react-router-dom';
3
3
  import { Grid, Row } from '@carbon/react';
4
- import { ExtensionSlot, useSession } from '@openmrs/esm-framework';
4
+ import { ExtensionSlot, useConnectivity, useSession } from '@openmrs/esm-framework';
5
5
  import {
6
- Resources,
7
6
  ResourcesContext,
8
7
  fetchAddressTemplate,
9
8
  fetchAllRelationshipTypes,
10
9
  fetchPatientIdentifierTypesWithSources,
11
10
  } from './offline.resources';
12
- import { SavePatientForm } from './patient-registration/form-manager';
11
+ import { FormManager } from './patient-registration/form-manager';
13
12
  import { PatientRegistration, PatientRegistrationProps } from './patient-registration/patient-registration.component';
14
13
  import useSWRImmutable from 'swr/immutable';
15
14
  import styles from './root.scss';
16
- export interface RootProps extends PatientRegistrationProps, Resources {
17
- savePatientForm: SavePatientForm;
18
- isOffline: boolean;
19
- }
20
15
 
21
- export default function Root({ savePatientForm, isOffline }: RootProps) {
16
+ export default function Root() {
17
+ const isOnline = useConnectivity();
22
18
  const currentSession = useSession();
23
19
  const { data: addressTemplate } = useSWRImmutable('patientRegistrationAddressTemplate', fetchAddressTemplate);
24
20
  const { data: relationshipTypes } = useSWRImmutable(
@@ -29,6 +25,10 @@ export default function Root({ savePatientForm, isOffline }: RootProps) {
29
25
  'patientRegistrationPatientIdentifiers',
30
26
  fetchPatientIdentifierTypesWithSources,
31
27
  );
28
+ const savePatientForm = useMemo(
29
+ () => (isOnline ? FormManager.savePatientFormOnline : FormManager.savePatientFormOffline),
30
+ [isOnline],
31
+ );
32
32
 
33
33
  return (
34
34
  <main className={`omrs-main-content ${styles.root}`}>
@@ -47,11 +47,11 @@ export default function Root({ savePatientForm, isOffline }: RootProps) {
47
47
  <Routes>
48
48
  <Route
49
49
  path="patient-registration"
50
- element={<PatientRegistration savePatientForm={savePatientForm} isOffline={isOffline} />}
50
+ element={<PatientRegistration savePatientForm={savePatientForm} isOffline={!isOnline} />}
51
51
  />
52
52
  <Route
53
53
  path="patient/:patientUuid/edit"
54
- element={<PatientRegistration savePatientForm={savePatientForm} isOffline={isOffline} />}
54
+ element={<PatientRegistration savePatientForm={savePatientForm} isOffline={!isOnline} />}
55
55
  />
56
56
  </Routes>
57
57
  </BrowserRouter>
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json.openmrs.org/routes.schema.json",
3
+ "backendDependencies": {
4
+ "webservices.rest": "^2.24.0"
5
+ },
6
+ "pages": [{
7
+ "component": "root",
8
+ "route": "patient-registration",
9
+ "online": true,
10
+ "offline": true
11
+ }, {
12
+ "component": "editPatient",
13
+ "routeRegex": "patient\\/([a-zA-Z0-9\\-]+)\\/edit",
14
+ "online": true,
15
+ "offline": true
16
+ }],
17
+ "extensions": [{
18
+ "component": "addPatientLink",
19
+ "name": "add-patient-action",
20
+ "slot": "top-nav-actions-slot",
21
+ "online": true,
22
+ "offline": true
23
+ }, {
24
+ "component": "cancelPatientEditModal",
25
+ "name": "cancel-patient-edit-modal",
26
+ "online": true,
27
+ "offline": true
28
+ }, {
29
+ "component": "patientPhoto",
30
+ "name": "patient-photo-widget",
31
+ "slot": "patient-photo-slot",
32
+ "online": true,
33
+ "offline": true
34
+ }, {
35
+ "component": "editPatientDetailsButton",
36
+ "name": "edit-patient-details-button",
37
+ "slot": "patient-actions-slot",
38
+ "online": true,
39
+ "offline": true
40
+ }, {
41
+ "component": "deleteIdentifierConfirmationModal",
42
+ "name": "delete-identifier-confirmation-modal",
43
+ "online": true,
44
+ "offline": true
45
+ }]
46
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "addRelationshipButtonText": "Add Relationship",
3
+ "address1": "Address line 1",
4
+ "address2": "Address line 2",
5
+ "addressHeader": "Address",
6
+ "allFieldsRequiredText": "All fields are required unless marked optional",
7
+ "autoGeneratedPlaceholderText": "Auto-generated",
8
+ "birthdayNotInTheFuture": "",
9
+ "birthdayRequired": "",
10
+ "birthFieldLabelText": "Birth",
11
+ "cancel": "Cancel",
12
+ "causeOfDeathInputLabel": "Cause of Death",
13
+ "cityVillage": "city",
14
+ "configure": "Configure",
15
+ "contactSection": "Contact Details",
16
+ "country": "Country",
17
+ "countyDistrict": "District",
18
+ "createNew": "Create New",
19
+ "dateOfBirthLabelText": "Date of Birth",
20
+ "deathDateInputLabel": "Date of Death",
21
+ "deathdayNotInTheFuture": "",
22
+ "deathSection": "Death Info",
23
+ "deleteIdentifierTooltip": "Delete",
24
+ "deleteRelationshipTooltipText": "Delete",
25
+ "demographicsSection": "Basic Info",
26
+ "discard": "Discard",
27
+ "discardModalBody": "The changes you made to this patient's details have not been saved. Discard changes?",
28
+ "discardModalHeader": "Confirm Discard Changes",
29
+ "dobToggleLabelText": "Date of Birth Known?",
30
+ "edit": "Edit",
31
+ "editIdentifierTooltip": "Edit",
32
+ "editPatientDetails": "Edit patient details",
33
+ "error": "Error",
34
+ "errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
35
+ "estimatedAgeInMonthsLabelText": "Estimated age in months",
36
+ "estimatedAgeInYearsLabelText": "Estimated age in years",
37
+ "familyNameLabelText": "Family Name",
38
+ "familyNameRequired": "",
39
+ "female": "Female",
40
+ "fieldErrorTitleMessage": "The following fields have errors:",
41
+ "fullNameLabelText": "Full Name",
42
+ "genderLabelText": "Sex",
43
+ "genderRequired": "",
44
+ "genderUnspecified": "",
45
+ "givenNameLabelText": "First Name",
46
+ "givenNameRequired": "",
47
+ "identifierValueRequired": "Identifier value is required",
48
+ "idFieldLabelText": "Identifiers",
49
+ "incompleteForm": "Incomplete form",
50
+ "invalidEmail": "",
51
+ "invalidInput": "Invalid Input",
52
+ "isDeadInputLabel": "Is Dead",
53
+ "jumpTo": "Jump to",
54
+ "loadingResults": "Loading results",
55
+ "male": "Male",
56
+ "middleNameLabelText": "Middle Name",
57
+ "negativeMonths": "",
58
+ "negativeYears": "",
59
+ "no": "No",
60
+ "noResultsFound": "No results found",
61
+ "numberInNameDubious": "",
62
+ "optional": "optional",
63
+ "other": "Other",
64
+ "patient": "Patient",
65
+ "patientNameKnown": "Patient's Name is Known?",
66
+ "postalCode": "Postal code",
67
+ "registerPatient": "Register Patient",
68
+ "registrationSuccessToastDescription": "The patient can now be found by searching for them using their name or ID number",
69
+ "registrationSuccessToastTitle": "New Patient Created",
70
+ "relationship": "Relationship",
71
+ "relationshipPlaceholder": "Relationship",
72
+ "relationshipRemovedText": "Relationship removed",
73
+ "relationshipsSection": "Relationships",
74
+ "relationshipToPatient": "Relationship to patient",
75
+ "relativeFullNameLabelText": "Full name",
76
+ "relativeNamePlaceholder": "Firstname Familyname",
77
+ "resetIdentifierTooltip": "Reset",
78
+ "restoreRelationshipActionButton": "Undo",
79
+ "searchAddress": "Search address",
80
+ "selectAnOption": "Select an option",
81
+ "sexFieldLabelText": "Sex",
82
+ "stateProvince": "State",
83
+ "stroke": "Stroke",
84
+ "unableToFetch": "Unable to fetch person attribute type - {personattributetype}",
85
+ "unknown": "Unknown",
86
+ "updatePatient": "Update Patient",
87
+ "updationSuccessToastDescription": "The patient's information has been successfully updated",
88
+ "updationSuccessToastTitle": "Patient Details Updated",
89
+ "yearsEstimateRequired": "",
90
+ "yes": "Yes"
91
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "addRelationshipButtonText": "Add Relationship",
3
+ "address1": "Address line 1",
4
+ "address2": "Address line 2",
5
+ "addressHeader": "Address",
6
+ "allFieldsRequiredText": "All fields are required unless marked optional",
7
+ "autoGeneratedPlaceholderText": "Auto-generated",
8
+ "birthdayNotInTheFuture": "",
9
+ "birthdayRequired": "",
10
+ "birthFieldLabelText": "Birth",
11
+ "cancel": "Cancel",
12
+ "causeOfDeathInputLabel": "Cause of Death",
13
+ "cityVillage": "city",
14
+ "configure": "Configure",
15
+ "contactSection": "Contact Details",
16
+ "country": "Country",
17
+ "countyDistrict": "District",
18
+ "createNew": "Create New",
19
+ "dateOfBirthLabelText": "Date of Birth",
20
+ "deathDateInputLabel": "Date of Death",
21
+ "deathdayNotInTheFuture": "",
22
+ "deathSection": "Death Info",
23
+ "deleteIdentifierTooltip": "Delete",
24
+ "deleteRelationshipTooltipText": "Delete",
25
+ "demographicsSection": "Basic Info",
26
+ "discard": "Discard",
27
+ "discardModalBody": "The changes you made to this patient's details have not been saved. Discard changes?",
28
+ "discardModalHeader": "Confirm Discard Changes",
29
+ "dobToggleLabelText": "Date of Birth Known?",
30
+ "edit": "Edit",
31
+ "editIdentifierTooltip": "Edit",
32
+ "editPatientDetails": "Edit patient details",
33
+ "error": "Error",
34
+ "errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
35
+ "estimatedAgeInMonthsLabelText": "Estimated age in months",
36
+ "estimatedAgeInYearsLabelText": "Estimated age in years",
37
+ "familyNameLabelText": "Family Name",
38
+ "familyNameRequired": "",
39
+ "female": "Female",
40
+ "fieldErrorTitleMessage": "The following fields have errors:",
41
+ "fullNameLabelText": "Full Name",
42
+ "genderLabelText": "Sex",
43
+ "genderRequired": "",
44
+ "genderUnspecified": "",
45
+ "givenNameLabelText": "First Name",
46
+ "givenNameRequired": "",
47
+ "identifierValueRequired": "Identifier value is required",
48
+ "idFieldLabelText": "Identifiers",
49
+ "incompleteForm": "Incomplete form",
50
+ "invalidEmail": "",
51
+ "invalidInput": "Invalid Input",
52
+ "isDeadInputLabel": "Is Dead",
53
+ "jumpTo": "Jump to",
54
+ "loadingResults": "Loading results",
55
+ "male": "Male",
56
+ "middleNameLabelText": "Middle Name",
57
+ "negativeMonths": "",
58
+ "negativeYears": "",
59
+ "no": "No",
60
+ "noResultsFound": "No results found",
61
+ "numberInNameDubious": "",
62
+ "optional": "optional",
63
+ "other": "Other",
64
+ "patient": "Patient",
65
+ "patientNameKnown": "Patient's Name is Known?",
66
+ "postalCode": "Postal code",
67
+ "registerPatient": "Register Patient",
68
+ "registrationSuccessToastDescription": "The patient can now be found by searching for them using their name or ID number",
69
+ "registrationSuccessToastTitle": "New Patient Created",
70
+ "relationship": "Relationship",
71
+ "relationshipPlaceholder": "Relationship",
72
+ "relationshipRemovedText": "Relationship removed",
73
+ "relationshipsSection": "Relationships",
74
+ "relationshipToPatient": "Relationship to patient",
75
+ "relativeFullNameLabelText": "Full name",
76
+ "relativeNamePlaceholder": "Firstname Familyname",
77
+ "resetIdentifierTooltip": "Reset",
78
+ "restoreRelationshipActionButton": "Undo",
79
+ "searchAddress": "Search address",
80
+ "selectAnOption": "Select an option",
81
+ "sexFieldLabelText": "Sex",
82
+ "stateProvince": "State",
83
+ "stroke": "Stroke",
84
+ "unableToFetch": "Unable to fetch person attribute type - {personattributetype}",
85
+ "unknown": "Unknown",
86
+ "updatePatient": "Update Patient",
87
+ "updationSuccessToastDescription": "The patient's information has been successfully updated",
88
+ "updationSuccessToastTitle": "Patient Details Updated",
89
+ "yearsEstimateRequired": "",
90
+ "yes": "Yes"
91
+ }
@@ -12,14 +12,17 @@
12
12
  "causeOfDeathInputLabel": "Cause de décès",
13
13
  "cityVillage": "Ville",
14
14
  "configure": "Configurer",
15
+ "contactSection": "Contact Details",
15
16
  "country": "Pays",
16
17
  "countyDistrict": "District",
17
18
  "createNew": "Créer un nouveau",
18
19
  "dateOfBirthLabelText": "Date de naissance",
19
20
  "deathDateInputLabel": "Date de décès",
20
21
  "deathdayNotInTheFuture": "Le décès ne peut pas être dans le futur",
22
+ "deathSection": "Death Info",
21
23
  "deleteIdentifierTooltip": "Effacer",
22
24
  "deleteRelationshipTooltipText": "Effacer",
25
+ "demographicsSection": "Basic Info",
23
26
  "discard": "Abandonner",
24
27
  "discardModalBody": "Les modifications que vous avez apportées aux données de ce patient n'ont pas été enregistrées. Annuler les modifications?",
25
28
  "discardModalHeader": "Confirmer l'abandon des modifications",
@@ -27,7 +30,8 @@
27
30
  "edit": "Editer",
28
31
  "editIdentifierTooltip": "Editer",
29
32
  "editPatientDetails": "Editer les données du patient",
30
- "emailLabelText": "Email",
33
+ "error": "Error",
34
+ "errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
31
35
  "estimatedAgeInMonthsLabelText": "Âge estimé en mois",
32
36
  "estimatedAgeInYearsLabelText": "Âge estimé en années",
33
37
  "familyNameLabelText": "Nom de famille",
@@ -50,7 +54,6 @@
50
54
  "loadingResults": "Résultats de chargement",
51
55
  "male": "Homme",
52
56
  "middleNameLabelText": "Deuxième nom",
53
- "months": "Mois",
54
57
  "negativeMonths": "Mois négatifs",
55
58
  "negativeYears": "Années négatives",
56
59
  "no": "Non",
@@ -60,8 +63,6 @@
60
63
  "other": "Autre",
61
64
  "patient": "Patient",
62
65
  "patientNameKnown": "Le nom du patient est connu?",
63
- "phoneEmailLabelText": "Téléphone, Email, etc.",
64
- "phoneNumberInputLabelText": "Téléphone",
65
66
  "postalCode": "Code postal",
66
67
  "registerPatient": "Enregistrer un patient",
67
68
  "registrationSuccessToastDescription": "Le patient peut maintenant être trouvé en faisant une recherche par son nom ou son numéro d'identification",
@@ -69,21 +70,22 @@
69
70
  "relationship": "Relation",
70
71
  "relationshipPlaceholder": "Relation",
71
72
  "relationshipRemovedText": "Relation supprimée",
73
+ "relationshipsSection": "Relationships",
72
74
  "relationshipToPatient": "Relation avec le patient",
73
75
  "relativeFullNameLabelText": "Nom et prénom",
74
76
  "relativeNamePlaceholder": "Prénom Nom de famile",
75
77
  "resetIdentifierTooltip": "Réinitialiser",
76
78
  "restoreRelationshipActionButton": "Annuler",
77
79
  "searchAddress": "Chercher l'adresse",
80
+ "selectAnOption": "Select an option",
78
81
  "sexFieldLabelText": "Sexe",
79
82
  "stateProvince": "Etat",
80
83
  "stroke": "Accident",
81
- "unidentifiedPatient": "Patient non-identifié",
84
+ "unableToFetch": "Unable to fetch person attribute type - {personattributetype}",
82
85
  "unknown": "Inconnu",
83
86
  "updatePatient": "Mettre à jour le patient",
84
87
  "updationSuccessToastDescription": "Les informations du patient ont été mises à jour avec succès",
85
88
  "updationSuccessToastTitle": "Les informations du patients ont été mises à jour",
86
- "years": "Années",
87
89
  "yearsEstimateRequired": "Estimation du nombre d'années requise",
88
90
  "yes": "Oui"
89
91
  }
@@ -12,14 +12,17 @@
12
12
  "causeOfDeathInputLabel": "סיבת המוות",
13
13
  "cityVillage": "עיר",
14
14
  "configure": "הגדר",
15
+ "contactSection": "Contact Details",
15
16
  "country": "מדינה",
16
17
  "countyDistrict": "מחוז",
17
18
  "createNew": "צור חדש",
18
19
  "dateOfBirthLabelText": "תאריך לידה",
19
20
  "deathDateInputLabel": "תאריך המוות",
20
21
  "deathdayNotInTheFuture": "תאריך המוות לא יכול להיות בעתיד",
22
+ "deathSection": "Death Info",
21
23
  "deleteIdentifierTooltip": "מחק",
22
24
  "deleteRelationshipTooltipText": "מחק",
25
+ "demographicsSection": "Basic Info",
23
26
  "discard": "התעלם",
24
27
  "discardModalBody": "השינויים שביצעת בפרטי המטופל הלקוח לא נשמרו. האם להתעלם מהשינויים?",
25
28
  "discardModalHeader": "אשר התעלמות מהשינויים",
@@ -27,7 +30,8 @@
27
30
  "edit": "עריכה",
28
31
  "editIdentifierTooltip": "ערוך",
29
32
  "editPatientDetails": "ערוך פרטי מטופל",
30
- "emailLabelText": "אימייל",
33
+ "error": "Error",
34
+ "errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
31
35
  "estimatedAgeInMonthsLabelText": "גיל משוער בחודשים",
32
36
  "estimatedAgeInYearsLabelText": "גיל משוער בשנים",
33
37
  "familyNameLabelText": "שם משפחה",
@@ -50,7 +54,6 @@
50
54
  "loadingResults": "טוען תוצאות",
51
55
  "male": "זכר",
52
56
  "middleNameLabelText": "שם תוכני",
53
- "months": "חודשים",
54
57
  "negativeMonths": "חודשים שליליים",
55
58
  "negativeYears": "שנים שליליות",
56
59
  "no": "לא",
@@ -60,8 +63,6 @@
60
63
  "other": "אחר",
61
64
  "patient": "מטופל",
62
65
  "patientNameKnown": "שם המטופל ידוע?",
63
- "phoneEmailLabelText": "טלפון, אימייל, וכו'",
64
- "phoneNumberInputLabelText": "מספר טלפון",
65
66
  "postalCode": "מיקוד",
66
67
  "registerPatient": "רישום מטופל",
67
68
  "registrationSuccessToastDescription": "המטופל נרשם בהצלחה וניתן למצוא אותו באמצעות חיפוש לפי שם או מספר תעודת זהות",
@@ -69,21 +70,22 @@
69
70
  "relationship": "קשר",
70
71
  "relationshipPlaceholder": "קשר",
71
72
  "relationshipRemovedText": "קשר הוסר",
73
+ "relationshipsSection": "Relationships",
72
74
  "relationshipToPatient": "קשר למטופל",
73
75
  "relativeFullNameLabelText": "שם מלא",
74
76
  "relativeNamePlaceholder": "שם פרטי שם משפחה",
75
77
  "resetIdentifierTooltip": "איפוס",
76
78
  "restoreRelationshipActionButton": "ביטול",
77
79
  "searchAddress": "חיפוש כתובת",
80
+ "selectAnOption": "Select an option",
78
81
  "sexFieldLabelText": "מין",
79
82
  "stateProvince": "מחוז",
80
83
  "stroke": "שבץ",
81
- "unidentifiedPatient": "מטופל לא מזוהה",
84
+ "unableToFetch": "Unable to fetch person attribute type - {personattributetype}",
82
85
  "unknown": "לא ידוע",
83
86
  "updatePatient": "עדכון פרטי מטופל",
84
87
  "updationSuccessToastDescription": "פרטי המטופל עודכנו בהצלחה",
85
88
  "updationSuccessToastTitle": "פרטי המטופל עודכנו",
86
- "years": "שנים",
87
89
  "yearsEstimateRequired": "נדרש חיזוי שנים",
88
90
  "yes": "כן"
89
91
  }
@@ -12,14 +12,17 @@
12
12
  "causeOfDeathInputLabel": "មូលហេតុនៃការស្លាប់",
13
13
  "cityVillage": "ទីក្រុង",
14
14
  "configure": "កំណត់រចនាសម្ព័ន្ធ",
15
+ "contactSection": "Contact Details",
15
16
  "country": "ប្រទេស",
16
17
  "countyDistrict": "ស្រុក/ខ័ណ្ឌ",
17
18
  "createNew": "បង្កើត​ថ្មី",
18
19
  "dateOfBirthLabelText": "ថ្ងៃខែឆ្នាំកំណើត",
19
20
  "deathDateInputLabel": "កាលបរិច្ឆេទ​នៃ​ការ​ស្លាប់",
20
21
  "deathdayNotInTheFuture": "ថ្ងៃស្លាប់មិនអាចមាននាពេលអនាគតទេ។",
22
+ "deathSection": "Death Info",
21
23
  "deleteIdentifierTooltip": "លុប",
22
24
  "deleteRelationshipTooltipText": "លុប",
25
+ "demographicsSection": "Basic Info",
23
26
  "discard": "បោះបង់",
24
27
  "discardModalBody": "ការផ្លាស់ប្តូរដែលអ្នកបានធ្វើចំពោះព័ត៌មានលម្អិតរបស់អ្នកជំងឺនេះមិនត្រូវបានរក្សាទុកទេ។ បោះបង់ការផ្លាស់ប្តូរ?",
25
28
  "discardModalHeader": "បញ្ជាក់ការផ្លាស់ប្តូរការបោះបង់",
@@ -27,7 +30,8 @@
27
30
  "edit": "កែសម្រួល",
28
31
  "editIdentifierTooltip": "កែសម្រួល",
29
32
  "editPatientDetails": "កែសម្រួលព័ត៌មានលម្អិតអ្នកជំងឺ",
30
- "emailLabelText": "អ៊ីមែល",
33
+ "error": "Error",
34
+ "errorFetchingOrderedFields": "Error occured fetching ordered fields for address hierarchy",
31
35
  "estimatedAgeInMonthsLabelText": "អាយុប៉ាន់ស្មានគិតជាខែ",
32
36
  "estimatedAgeInYearsLabelText": "អាយុប៉ាន់ស្មានគិតជាឆ្នាំ",
33
37
  "familyNameLabelText": "នាមត្រកូល",
@@ -50,7 +54,6 @@
50
54
  "loadingResults": "កំពុងផ្ទុកលទ្ធផល",
51
55
  "male": "ប្រុស",
52
56
  "middleNameLabelText": "លេខជាឈ្មោះដែលសង្ស័យ",
53
- "months": "ខែ",
54
57
  "negativeMonths": "ខែអវិជ្ជមាន",
55
58
  "negativeYears": "ឆ្នាំអវិជ្ជមាន",
56
59
  "no": "ទេ",
@@ -60,8 +63,6 @@
60
63
  "other": "ផ្សេងៗ",
61
64
  "patient": "អ្នកជំងឺ",
62
65
  "patientNameKnown": "ស្គាល់ឈ្មោះអ្នកជំងឺឬទេ?",
63
- "phoneEmailLabelText": "ទូរស័ព្ទ អ៊ីមែល។ល។",
64
- "phoneNumberInputLabelText": "លេខទូរស័ព្ទ",
65
66
  "postalCode": "លេខកូដប្រៃសណីយ៍",
66
67
  "registerPatient": "ចុះឈ្មោះអ្នកជំងឺ",
67
68
  "registrationSuccessToastDescription": "អ្នកជំងឺអាចត្រូវបានស្រាវជ្រាវរកពួកគេតាមរយ ប្រើប្រាស់ឈ្មោះឬអត្តលេខរបស់ពួកគេ",
@@ -69,21 +70,22 @@
69
70
  "relationship": "ទំនាក់ទំនង",
70
71
  "relationshipPlaceholder": "ទំនាក់ទំនង",
71
72
  "relationshipRemovedText": "ការទំនាក់ទំនងត្រូវបានដកចេញ",
73
+ "relationshipsSection": "Relationships",
72
74
  "relationshipToPatient": "ការទាក់ទងទៅនឹងអ្នកជំងឺ",
73
75
  "relativeFullNameLabelText": "ឈ្មោះ​ពេញ",
74
76
  "relativeNamePlaceholder": "នាមត្រកូលនាមខ្លួន",
75
77
  "resetIdentifierTooltip": "រៀបចំឡើងវិញ",
76
78
  "restoreRelationshipActionButton": "វិលត្រឡប់មកដើមវិញ",
77
79
  "searchAddress": "ស្វែងរកអាសយដ្ឋាន",
80
+ "selectAnOption": "Select an option",
78
81
  "sexFieldLabelText": "ភេទ",
79
82
  "stateProvince": "រដ្ឋ",
80
83
  "stroke": "ជំងឺស្ទះសរសៃឈាមខួរក្បាល",
81
- "unidentifiedPatient": "អ្នកជំងឺមិនបានកំណត់អត្តសញ្ញាណ",
84
+ "unableToFetch": "Unable to fetch person attribute type - {personattributetype}",
82
85
  "unknown": "មិនដឹង",
83
86
  "updatePatient": "ធ្វើបច្ចុប្បន្នភាពអ្នកជំងឺ",
84
87
  "updationSuccessToastDescription": "ព័ត៌មានរបស់អ្នកជំងឺត្រូវបានធ្វើបច្ចុប្បន្នភាពដោយជោគជ័យ",
85
88
  "updationSuccessToastTitle": "ព័ត៌មានលម្អិតអំពីអ្នកជំងឺត្រូវបានធ្វើបច្ចុប្បន្នភាព",
86
- "years": "ឆ្នាំ",
87
89
  "yearsEstimateRequired": "តម្រូវ​ឱ្យ​មាន​ការ​ប៉ាន់ស្មាន​ឆ្នាំ",
88
90
  "yes": "បាទ/ចាស"
89
91
  }