@openmrs/esm-fast-data-entry-app 1.0.0-pre.59 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/README.md +21 -2
  2. package/__mocks__/react-i18next.js +9 -14
  3. package/dist/101.js +1 -0
  4. package/dist/101.js.map +1 -0
  5. package/dist/132.js +1 -1
  6. package/dist/188.js +1 -0
  7. package/dist/188.js.map +1 -0
  8. package/dist/197.js +1 -0
  9. package/dist/219.js +1 -0
  10. package/dist/219.js.map +1 -0
  11. package/dist/221.js +1 -0
  12. package/dist/221.js.map +1 -0
  13. package/dist/259.js +1 -0
  14. package/dist/259.js.map +1 -0
  15. package/dist/29.js +2 -0
  16. package/dist/29.js.LICENSE.txt +3 -0
  17. package/dist/29.js.map +1 -0
  18. package/dist/300.js +1 -0
  19. package/dist/326.js +1 -0
  20. package/dist/326.js.map +1 -0
  21. package/dist/335.js +1 -0
  22. package/dist/367.js +1 -0
  23. package/dist/367.js.map +1 -0
  24. package/dist/480.js +1 -0
  25. package/dist/540.js +2 -0
  26. package/dist/{536.js.LICENSE.txt → 540.js.LICENSE.txt} +3 -2
  27. package/dist/540.js.map +1 -0
  28. package/dist/55.js +1 -0
  29. package/dist/564.js +1 -0
  30. package/dist/564.js.map +1 -0
  31. package/dist/602.js +1 -0
  32. package/dist/602.js.map +1 -0
  33. package/dist/626.js +2 -0
  34. package/dist/{294.js.LICENSE.txt → 626.js.LICENSE.txt} +3 -8
  35. package/dist/626.js.map +1 -0
  36. package/dist/652.js +1 -0
  37. package/dist/685.js +1 -0
  38. package/dist/685.js.map +1 -0
  39. package/dist/773.js +2 -0
  40. package/dist/773.js.LICENSE.txt +32 -0
  41. package/dist/773.js.map +1 -0
  42. package/dist/893.js +1 -0
  43. package/dist/893.js.map +1 -0
  44. package/dist/91.js +1 -0
  45. package/dist/91.js.map +1 -0
  46. package/dist/941.js +2 -0
  47. package/dist/941.js.LICENSE.txt +30 -0
  48. package/dist/941.js.map +1 -0
  49. package/dist/961.js +2 -0
  50. package/dist/{935.js.LICENSE.txt → 961.js.LICENSE.txt} +6 -10
  51. package/dist/961.js.map +1 -0
  52. package/dist/99.js +1 -0
  53. package/dist/99.js.map +1 -0
  54. package/dist/991.js +1 -0
  55. package/dist/991.js.map +1 -0
  56. package/dist/main.js +1 -0
  57. package/dist/main.js.map +1 -0
  58. package/dist/openmrs-esm-fast-data-entry-app.js +1 -1
  59. package/dist/openmrs-esm-fast-data-entry-app.js.buildmanifest.json +500 -122
  60. package/dist/openmrs-esm-fast-data-entry-app.js.map +1 -0
  61. package/dist/routes.json +1 -0
  62. package/jest.config.json +21 -18
  63. package/package.json +59 -62
  64. package/prettier.config.js +8 -0
  65. package/src/CancelModal.tsx +42 -0
  66. package/src/CompleteModal.tsx +35 -0
  67. package/src/FormBootstrap.tsx +45 -10
  68. package/src/Root.tsx +11 -9
  69. package/src/add-group-modal/AddGroupModal.tsx +249 -0
  70. package/src/add-group-modal/styles.scss +49 -0
  71. package/src/config-schema.ts +77 -16
  72. package/src/constant.ts +1 -1
  73. package/src/context/FormWorkflowContext.tsx +32 -33
  74. package/src/context/FormWorkflowReducer.ts +53 -67
  75. package/src/context/GroupFormWorkflowContext.tsx +155 -0
  76. package/src/context/GroupFormWorkflowReducer.ts +405 -0
  77. package/src/declarations.d.ts +4 -0
  78. package/src/empty-state/EmptyDataIllustration.tsx +4 -16
  79. package/src/empty-state/EmptyState.tsx +16 -17
  80. package/src/empty-state/styles.scss +14 -14
  81. package/src/form-entry-workflow/FormEntryWorkflow.tsx +89 -125
  82. package/src/{form-review-card → form-entry-workflow/form-review-card}/FormReviewCard.tsx +7 -7
  83. package/src/form-entry-workflow/form-review-card/index.ts +3 -0
  84. package/src/form-entry-workflow/form-review-card/styles.scss +37 -0
  85. package/src/form-entry-workflow/index.ts +1 -1
  86. package/src/form-entry-workflow/patient-banner/PatientBanner.test.tsx +9 -0
  87. package/src/{patient-banner → form-entry-workflow/patient-banner}/PatientBanner.tsx +14 -27
  88. package/src/form-entry-workflow/patient-banner/index.ts +3 -0
  89. package/src/form-entry-workflow/patient-banner/styles.scss +44 -0
  90. package/src/form-entry-workflow/patient-search-header/PatientSearchHeader.tsx +54 -0
  91. package/src/form-entry-workflow/patient-search-header/index.ts +3 -0
  92. package/src/form-entry-workflow/patient-search-header/styles.scss +25 -0
  93. package/src/form-entry-workflow/styles.scss +16 -16
  94. package/src/form-entry-workflow/workflow-review/WorkflowReview.tsx +37 -0
  95. package/src/form-entry-workflow/workflow-review/index.ts +3 -0
  96. package/src/{workflow-review → form-entry-workflow/workflow-review}/styles.scss +0 -4
  97. package/src/forms-app-menu-link.tsx +5 -7
  98. package/src/forms-page/FormsPage.tsx +48 -37
  99. package/src/forms-page/forms-table/FormsTable.tsx +117 -0
  100. package/src/forms-page/forms-table/index.ts +3 -0
  101. package/src/forms-page/forms-table/styles.scss +19 -0
  102. package/src/forms-page/index.ts +1 -1
  103. package/src/forms-page/styles.scss +3 -5
  104. package/src/group-form-entry-workflow/GroupFormEntryWorkflow.tsx +26 -0
  105. package/src/group-form-entry-workflow/GroupSessionWorkspace.tsx +207 -0
  106. package/src/group-form-entry-workflow/SessionDetailsForm.tsx +154 -0
  107. package/src/group-form-entry-workflow/SessionMetaWorkspace.tsx +99 -0
  108. package/src/group-form-entry-workflow/attendance-table/AttendanceTable.tsx +130 -0
  109. package/src/group-form-entry-workflow/attendance-table/index.ts +1 -0
  110. package/src/group-form-entry-workflow/configurable-questions/ConfigurableQuestionsSection.tsx +41 -0
  111. package/src/group-form-entry-workflow/group-display-header/GroupDisplayHeader.test.tsx +9 -0
  112. package/src/group-form-entry-workflow/group-display-header/GroupDisplayHeader.tsx +55 -0
  113. package/src/group-form-entry-workflow/group-display-header/index.ts +3 -0
  114. package/src/group-form-entry-workflow/group-display-header/styles.scss +60 -0
  115. package/src/group-form-entry-workflow/group-search/CompactGroupResults.tsx +128 -0
  116. package/src/group-form-entry-workflow/group-search/CompactGroupSearch.tsx +66 -0
  117. package/src/group-form-entry-workflow/group-search/GroupSearch.tsx +134 -0
  118. package/src/group-form-entry-workflow/group-search/compact-group-result.scss +63 -0
  119. package/src/group-form-entry-workflow/group-search/compact-group-search.scss +34 -0
  120. package/src/group-form-entry-workflow/group-search/group-search.scss +93 -0
  121. package/src/group-form-entry-workflow/group-search-header/GroupSearchHeader.tsx +72 -0
  122. package/src/group-form-entry-workflow/group-search-header/index.ts +3 -0
  123. package/src/group-form-entry-workflow/group-search-header/styles.scss +20 -0
  124. package/src/group-form-entry-workflow/index.ts +3 -0
  125. package/src/group-form-entry-workflow/styles.scss +94 -0
  126. package/src/hooks/index.ts +7 -5
  127. package/src/hooks/useForm.ts +56 -0
  128. package/src/hooks/useFormState.ts +3 -3
  129. package/src/hooks/useGetAllForms.ts +7 -15
  130. package/src/hooks/useGetEncounter.ts +3 -3
  131. package/src/hooks/useGetPatient.ts +3 -3
  132. package/src/hooks/useGetPatients.ts +32 -0
  133. package/src/hooks/useGetSystemSetting.ts +36 -0
  134. package/src/hooks/useKeyPress.ts +31 -0
  135. package/src/hooks/usePostEndpoint.ts +76 -0
  136. package/src/hooks/useSearchEndpoint.ts +103 -0
  137. package/src/hooks/useStartVisit.ts +82 -0
  138. package/src/index.ts +12 -72
  139. package/src/patient-card/PatientCard.tsx +10 -20
  140. package/src/patient-card/index.ts +1 -1
  141. package/src/patient-card/styles.scss +8 -8
  142. package/src/routes.json +24 -0
  143. package/src/setup-tests.ts +1 -1
  144. package/src/types.ts +20 -0
  145. package/tools/i18next-parser.config.js +93 -0
  146. package/translations/am.json +75 -0
  147. package/translations/ar.json +75 -0
  148. package/translations/en.json +57 -2
  149. package/translations/es.json +75 -0
  150. package/translations/fr.json +75 -0
  151. package/translations/he.json +75 -0
  152. package/translations/km.json +75 -0
  153. package/turbo.json +18 -0
  154. package/webpack.config.js +1 -1
  155. package/.editorconfig +0 -12
  156. package/.eslintignore +0 -2
  157. package/.eslintrc.js +0 -10
  158. package/.github/pull_request_template.md +0 -18
  159. package/.github/workflows/node.js.yml +0 -121
  160. package/.husky/pre-push +0 -1
  161. package/.prettierignore +0 -14
  162. package/dist/187.js +0 -1
  163. package/dist/247.js +0 -1
  164. package/dist/294.js +0 -2
  165. package/dist/312.js +0 -1
  166. package/dist/412.js +0 -1
  167. package/dist/536.js +0 -2
  168. package/dist/574.js +0 -1
  169. package/dist/592.js +0 -1
  170. package/dist/595.js +0 -2
  171. package/dist/595.js.LICENSE.txt +0 -1
  172. package/dist/776.js +0 -1
  173. package/dist/804.js +0 -1
  174. package/dist/880.js +0 -2
  175. package/dist/880.js.LICENSE.txt +0 -20
  176. package/dist/906.js +0 -1
  177. package/dist/935.js +0 -2
  178. package/dist/990.js +0 -1
  179. package/dist/openmrs-esm-fast-data-entry-app.old +0 -1
  180. package/src/declarations.d.tsx +0 -2
  181. package/src/form-review-card/index.ts +0 -3
  182. package/src/form-review-card/styles.scss +0 -38
  183. package/src/forms-table/FormsTable.tsx +0 -123
  184. package/src/forms-table/index.ts +0 -3
  185. package/src/forms-table/styles.scss +0 -20
  186. package/src/patient-banner/PatientBanner.test.tsx +0 -9
  187. package/src/patient-banner/index.ts +0 -3
  188. package/src/patient-banner/styles.scss +0 -44
  189. package/src/patient-search-header/PatientSearchHeader.tsx +0 -61
  190. package/src/patient-search-header/index.ts +0 -3
  191. package/src/patient-search-header/styles.scss +0 -21
  192. package/src/workflow-review/WorkflowReview.tsx +0 -35
  193. package/src/workflow-review/index.ts +0 -3
package/src/types.ts ADDED
@@ -0,0 +1,20 @@
1
+ export interface Concept {
2
+ uuid: string;
3
+ display: string;
4
+ }
5
+
6
+ export interface SpecificQuestion {
7
+ question: {
8
+ id: string;
9
+ display: string;
10
+ };
11
+ answers: Array<{
12
+ value: string;
13
+ display: string;
14
+ }>;
15
+ }
16
+
17
+ export interface SpecificQuestionConfig {
18
+ forms: Array<string>;
19
+ questionId: string;
20
+ }
@@ -0,0 +1,93 @@
1
+ module.exports = {
2
+ contextSeparator: '_',
3
+ // Key separator used in your translation keys
4
+
5
+ createOldCatalogs: false,
6
+ // Save the \_old files
7
+
8
+ defaultNamespace: 'translations',
9
+ // Default namespace used in your i18next config
10
+
11
+ defaultValue: '',
12
+ // Default value to give to empty keys
13
+ // You may also specify a function accepting the locale, namespace, and key as arguments
14
+
15
+ indentation: 2,
16
+ // Indentation of the catalog files
17
+
18
+ keepRemoved: false,
19
+ // Keep keys from the catalog that are no longer in code
20
+
21
+ keySeparator: '.',
22
+ // Key separator used in your translation keys
23
+ // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
24
+
25
+ // see below for more details
26
+ lexers: {
27
+ hbs: ['HandlebarsLexer'],
28
+ handlebars: ['HandlebarsLexer'],
29
+
30
+ htm: ['HTMLLexer'],
31
+ html: ['HTMLLexer'],
32
+
33
+ mjs: ['JavascriptLexer'],
34
+ js: ['JavascriptLexer'], // if you're writing jsx inside .js files, change this to JsxLexer
35
+ ts: ['JavascriptLexer'],
36
+ jsx: ['JsxLexer'],
37
+ tsx: ['JsxLexer'],
38
+
39
+ default: ['JavascriptLexer'],
40
+ },
41
+
42
+ lineEnding: 'lf',
43
+ // Control the line ending. See options at https://github.com/ryanve/eol
44
+
45
+ locales: ['en', 'am', 'es', 'fr', 'km', 'he', 'ar'],
46
+ // An array of the locales in your applications
47
+
48
+ namespaceSeparator: ':',
49
+ // Namespace separator used in your translation keys
50
+ // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
51
+
52
+ output: '$NAMESPACE/$LOCALE.json',
53
+ // Supports $LOCALE and $NAMESPACE injection
54
+ // Supports JSON (.json) and YAML (.yml) file formats
55
+ // Where to write the locale files relative to process.cwd()
56
+
57
+ pluralSeparator: '_',
58
+ // Plural separator used in your translation keys
59
+ // If you want to use plain english keys, separators such as `_` might conflict. You might want to set `pluralSeparator` to a different string that does not occur in your keys.
60
+
61
+ input: undefined,
62
+ // An array of globs that describe where to look for source files
63
+ // relative to the location of the configuration file
64
+
65
+ sort: true,
66
+ // Whether or not to sort the catalog
67
+
68
+ skipDefaultValues: false,
69
+ // Whether to ignore default values
70
+ // You may also specify a function accepting the locale and namespace as arguments
71
+
72
+ useKeysAsDefaultValue: false,
73
+ // Whether to use the keys as the default value; ex. "Hello": "Hello", "World": "World"
74
+ // This option takes precedence over the `defaultValue` and `skipDefaultValues` options
75
+ // You may also specify a function accepting the locale and namespace as arguments
76
+
77
+ verbose: false,
78
+ // Display info about the parsing including some stats
79
+
80
+ failOnWarnings: false,
81
+ // Exit with an exit code of 1 on warnings
82
+
83
+ customValueTemplate: null,
84
+ // If you wish to customize the value output the value as an object, you can set your own format.
85
+ // ${defaultValue} is the default value you set in your translation function.
86
+ // Any other custom property will be automatically extracted.
87
+ //
88
+ // Example:
89
+ // {
90
+ // message: "${defaultValue}",
91
+ // description: "${maxLength}", // t('my-key', {maxLength: 150})
92
+ // }
93
+ };
@@ -0,0 +1,75 @@
1
+ {
2
+ "actions": "Actions",
3
+ "allFieldsRequired": "All fields are required unless marked optional",
4
+ "allForms": "All Forms",
5
+ "areYouSure": "Are you sure?",
6
+ "cancel": "Cancel",
7
+ "cancelExplanation": "You will lose any unsaved changes on the current form. Do you want to discard the current session?",
8
+ "changeGroup": "Choose a different group",
9
+ "chooseGroupError": "Please choose a group.",
10
+ "clearSearch": "Clear",
11
+ "complete": "Complete",
12
+ "createGroup": "Create Group",
13
+ "createNewGroup": "Create New Group",
14
+ "createNewPatient": "Create new patient",
15
+ "createNewSession": "Create New Session",
16
+ "discard": "Discard",
17
+ "editGroup": "Edit Group",
18
+ "error": "Error",
19
+ "errorCopy": "Sorry, there was an error. You can try to reload this page, or contact the site administrator and quote the error code above.",
20
+ "errorLoadingData": "Error Loading Data",
21
+ "fastDataEntry": "Fast Data Entry",
22
+ "fillForm": "Fill Form",
23
+ "findGroup": "Find group",
24
+ "formName": "Form Name",
25
+ "formsAppMenuLink": "Fast Data Entry",
26
+ "formsFilled": "Forms filled",
27
+ "goToForm": "Go To Form",
28
+ "groupNameError": "Please enter a group name.",
29
+ "identifier": "Patient ID",
30
+ "markAbsentPatients": "The patients in this group. Patients that are not present in the session should be marked as absent.",
31
+ "members": "members",
32
+ "name": "Name",
33
+ "newGroupName": "New Group Name",
34
+ "newGroupSession": "New Group Session",
35
+ "nextPatient": "Next patient",
36
+ "noFormsFound": "No Forms To Show",
37
+ "noFormsFoundMessage": "No forms could be found for this category. Please double check the form concept uuids and access permissions.",
38
+ "noGroupsFoundMessage": "Sorry, no groups have been found",
39
+ "noMoreResults": "End of search results",
40
+ "noPatientError": "Please enter at least one patient.",
41
+ "or": "or",
42
+ "orLabelName": "OR label name",
43
+ "patientIsPresent": "Patient is present",
44
+ "patientsInGroup": "Patients in group",
45
+ "postError": "POST Error",
46
+ "practitionerName": "Practitioner Name",
47
+ "remove": "Remove",
48
+ "requiredField": "This field is required",
49
+ "resumeGroupSession": "Resume Group Session",
50
+ "resumeSession": "Resume Session",
51
+ "review": "Review",
52
+ "save": "Save",
53
+ "save&close": "Save & Close",
54
+ "saveAndComplete": "Save & Complete",
55
+ "saveExplanation": "Do you want to save the current form and exit the workflow?",
56
+ "saveForm": "Save Form",
57
+ "saveSession": "Save Session",
58
+ "search": "Search",
59
+ "searchForGroup": "Search for a group by name",
60
+ "searchForPatientsToAddToGroup": "Search for patients to add to group",
61
+ "searchResultsText": "search result(s)",
62
+ "selectGroupFirst": "Please select a group first",
63
+ "selectPatientFirst": "Please select a patient first",
64
+ "sessionDate": "Session Date",
65
+ "sessionDetails": "1. Session details",
66
+ "sessionName": "Session Name",
67
+ "sessionNotes": "Session Notes",
68
+ "sessionParticipants": "2. Session participants",
69
+ "sessionSpecificDetails": "3. Specific details",
70
+ "sessionSpecificDetailsDescription": "They will be mapped to form responses for all patients as pre-filled data.",
71
+ "startGroupSession": "Start Group Session",
72
+ "trySearchWithPatientUniqueID": "Try searching with the cohort's description",
73
+ "unknown": "Unknown",
74
+ "unknownPostError": "An unknown error occurred while saving data"
75
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "actions": "الإجراءات",
3
+ "allFieldsRequired": "جميع الحقول مطلوبة ما لم يتم التأشير عليها بأنها اختيارية",
4
+ "allForms": "جميع النماذج",
5
+ "areYouSure": "هل أنت متأكد؟",
6
+ "cancel": "إلغاء",
7
+ "cancelExplanation": "سوف تفقد أي تغييرات لم يتم حفظها في النموذج الحالي. هل ترغب في التخلص من الجلسة الحالية؟",
8
+ "changeGroup": "اختر مجموعة مختلفة",
9
+ "chooseGroupError": "الرجاء اختيار مجموعة.",
10
+ "clearSearch": "مسح",
11
+ "complete": "اكتمال",
12
+ "createGroup": "إنشاء مجموعة",
13
+ "createNewGroup": "إنشاء مجموعة جديدة",
14
+ "createNewPatient": "إنشاء مريض جديد",
15
+ "createNewSession": "إنشاء جلسة جديدة",
16
+ "discard": "تجاهل",
17
+ "editGroup": "تعديل المجموعة",
18
+ "error": "خطأ",
19
+ "errorCopy": "عذرًا، حدث خطأ. يمكنك محاولة إعادة تحميل هذه الصفحة، أو الاتصال بمسؤول الموقع واقتباس رمز الخطأ أعلاه.",
20
+ "errorLoadingData": "خطأ في تحميل البيانات",
21
+ "fastDataEntry": "إدخال البيانات السريع",
22
+ "fillForm": "املأ النموذج",
23
+ "findGroup": "ابحث عن مجموعة",
24
+ "formName": "اسم النموذج",
25
+ "formsAppMenuLink": "إدخال البيانات السريع",
26
+ "formsFilled": "النماذج المملوءة",
27
+ "goToForm": "اذهب إلى النموذج",
28
+ "groupNameError": "الرجاء إدخال اسم المجموعة.",
29
+ "identifier": "هوية المريض",
30
+ "markAbsentPatients": "المرضى في هذه المجموعة. يجب وضع علامة على المرضى الذين ليسوا موجودين في الجلسة كغائبين.",
31
+ "members": "أعضاء",
32
+ "name": "الاسم",
33
+ "newGroupName": "اسم المجموعة الجديد",
34
+ "newGroupSession": "جلسة المجموعة الجديدة",
35
+ "nextPatient": "المريض التالي",
36
+ "noFormsFound": "لا توجد نماذج للعرض",
37
+ "noFormsFoundMessage": "لم يتم العثور على نماذج لهذه الفئة. يرجى التحقق مرة أخرى من uuids مفهوم النموذج وأذونات الوصول.",
38
+ "noGroupsFoundMessage": "عذرًا، لم يتم العثور على مجموعات",
39
+ "noMoreResults": "نهاية نتائج البحث",
40
+ "noPatientError": "الرجاء إدخال مريض واحد على الأقل.",
41
+ "or": "أو",
42
+ "orLabelName": "أو اسم العلامة",
43
+ "patientIsPresent": "المريض موجود",
44
+ "patientsInGroup": "المرضى في المجموعة",
45
+ "postError": "خطأ POST",
46
+ "practitionerName": "اسم الممارس",
47
+ "remove": "إزالة",
48
+ "requiredField": "This field is required",
49
+ "resumeGroupSession": "استئناف جلسة المجموعة",
50
+ "resumeSession": "استئناف الجلسة",
51
+ "review": "Review",
52
+ "save": "حفظ",
53
+ "save&close": "Save & Close",
54
+ "saveAndComplete": "حفظ واكتمال",
55
+ "saveExplanation": "هل ترغب في حفظ النموذج الحالي والخروج من العملية؟",
56
+ "saveForm": "حفظ النموذج",
57
+ "saveSession": "حفظ الجلسة",
58
+ "search": "بحث",
59
+ "searchForGroup": "ابحث عن مجموعة بالاسم",
60
+ "searchForPatientsToAddToGroup": "Search for patients to add to group",
61
+ "searchResultsText": "نتيجة (نتائج) البحث",
62
+ "selectGroupFirst": "الرجاء اختيار مجموعة أولاً",
63
+ "selectPatientFirst": "الرجاء اختيار مريض أولاً",
64
+ "sessionDate": "تاريخ الجلسة",
65
+ "sessionDetails": "1. تفاصيل الجلسة",
66
+ "sessionName": "اسم الجلسة",
67
+ "sessionNotes": "ملاحظات الجلسة",
68
+ "sessionParticipants": "2. المشاركون في الجلسة",
69
+ "sessionSpecificDetails": "3. Specific details",
70
+ "sessionSpecificDetailsDescription": "They will be mapped to form responses for all patients as pre-filled data.",
71
+ "startGroupSession": "بدء جلسة المجموعة",
72
+ "trySearchWithPatientUniqueID": "حاول البحث باستخدام وصف الفوج",
73
+ "unknown": "غير معروف",
74
+ "unknownPostError": "حدث خطأ غير معروف أثناء حفظ البيانات"
75
+ }
@@ -1,20 +1,75 @@
1
1
  {
2
2
  "actions": "Actions",
3
+ "allFieldsRequired": "All fields are required unless marked optional",
4
+ "allForms": "All Forms",
3
5
  "areYouSure": "Are you sure?",
6
+ "cancel": "Cancel",
4
7
  "cancelExplanation": "You will lose any unsaved changes on the current form. Do you want to discard the current session?",
8
+ "changeGroup": "Choose a different group",
9
+ "chooseGroupError": "Please choose a group.",
10
+ "clearSearch": "Clear",
5
11
  "complete": "Complete",
6
- "dataErrorMessage": "Something went wrong loading data from the server.",
12
+ "createGroup": "Create Group",
13
+ "createNewGroup": "Create New Group",
14
+ "createNewPatient": "Create new patient",
15
+ "createNewSession": "Create New Session",
7
16
  "discard": "Discard",
17
+ "editGroup": "Edit Group",
18
+ "error": "Error",
19
+ "errorCopy": "Sorry, there was an error. You can try to reload this page, or contact the site administrator and quote the error code above.",
8
20
  "errorLoadingData": "Error Loading Data",
21
+ "fastDataEntry": "Fast Data Entry",
9
22
  "fillForm": "Fill Form",
23
+ "findGroup": "Find group",
10
24
  "formName": "Form Name",
25
+ "formsAppMenuLink": "Fast Data Entry",
26
+ "formsFilled": "Forms filled",
11
27
  "goToForm": "Go To Form",
28
+ "groupNameError": "Please enter a group name.",
29
+ "identifier": "Identifier",
30
+ "markAbsentPatients": "The patients in this group. Patients that are not present in the session should be marked as absent.",
31
+ "members": "members",
32
+ "name": "Name",
33
+ "newGroupName": "New Group Name",
34
+ "newGroupSession": "New Group Session",
35
+ "nextPatient": "Next patient",
12
36
  "noFormsFound": "No Forms To Show",
13
37
  "noFormsFoundMessage": "No forms could be found for this category. Please double check the form concept uuids and access permissions.",
38
+ "noGroupsFoundMessage": "Sorry, no groups have been found",
39
+ "noMoreResults": "End of search results",
40
+ "noPatientError": "Please enter at least one patient.",
41
+ "or": "or",
42
+ "orLabelName": "OR label name",
43
+ "patientIsPresent": "Patient is present",
44
+ "patientsInGroup": "Patients in group",
45
+ "postError": "POST Error",
46
+ "practitionerName": "Practitioner Name",
47
+ "remove": "Remove",
48
+ "requiredField": "This field is required",
49
+ "resumeGroupSession": "Resume Group Session",
14
50
  "resumeSession": "Resume Session",
51
+ "review": "Review",
52
+ "save": "Save",
53
+ "save&close": "Save & Close",
15
54
  "saveAndComplete": "Save & Complete",
16
55
  "saveExplanation": "Do you want to save the current form and exit the workflow?",
56
+ "saveForm": "Save Form",
17
57
  "saveSession": "Save Session",
58
+ "search": "Search",
59
+ "searchForGroup": "Search for a group by name",
60
+ "searchForPatientsToAddToGroup": "Search for patients to add to group",
61
+ "searchResultsText": "search result(s)",
62
+ "selectGroupFirst": "Please select a group first",
18
63
  "selectPatientFirst": "Please select a patient first",
19
- "startGroupSession": "Start Group Session"
64
+ "sessionDate": "Session Date",
65
+ "sessionDetails": "1. Session details",
66
+ "sessionName": "Session Name",
67
+ "sessionNotes": "Session Notes",
68
+ "sessionParticipants": "2. Session participants",
69
+ "sessionSpecificDetails": "3. Specific details",
70
+ "sessionSpecificDetailsDescription": "They will be mapped to form responses for all patients as pre-filled data.",
71
+ "startGroupSession": "Start Group Session",
72
+ "trySearchWithPatientUniqueID": "Try searching with the cohort's description",
73
+ "unknown": "Unknown",
74
+ "unknownPostError": "An unknown error occurred while saving data"
20
75
  }
@@ -0,0 +1,75 @@
1
+ {
2
+ "actions": "Acciones",
3
+ "allFieldsRequired": "Todos los campos son obligatorios a menos que estén marcados como opcionales",
4
+ "allForms": "Todas las Formas",
5
+ "areYouSure": "¿Estás seguro?",
6
+ "cancel": "Cancelar",
7
+ "cancelExplanation": "Perderás los cambios no guardados en el formulario actual. ¿Deseas descartar la sesión actual?",
8
+ "changeGroup": "Elegir un grupo diferente",
9
+ "chooseGroupError": "Por favor, elige un grupo.",
10
+ "clearSearch": "Limpiar",
11
+ "complete": "Completar",
12
+ "createGroup": "Crear Grupo",
13
+ "createNewGroup": "Crear Nuevo Grupo",
14
+ "createNewPatient": "Crear nuevo paciente",
15
+ "createNewSession": "Crear Nueva Sesión",
16
+ "discard": "Descartar",
17
+ "editGroup": "Editar Grupo",
18
+ "error": "Error",
19
+ "errorCopy": "Lo siento, ocurrió un error. Puedes intentar recargar esta página o contactar al administrador del sitio e indicar el código de error de arriba.",
20
+ "errorLoadingData": "Error Cargando Datos",
21
+ "fastDataEntry": "Entrada Rápida de Datos",
22
+ "fillForm": "Completar Formulario",
23
+ "findGroup": "Buscar grupo",
24
+ "formName": "Nombre del Formulario",
25
+ "formsAppMenuLink": "Entrada Rápida de Datos",
26
+ "formsFilled": "Formularios completados",
27
+ "goToForm": "Ir al Formulario",
28
+ "groupNameError": "Por favor, ingresa un nombre de grupo.",
29
+ "identifier": "ID del Paciente",
30
+ "markAbsentPatients": "Los pacientes en este grupo. Los pacientes que no estén presentes en la sesión deben ser marcados como ausentes.",
31
+ "members": "miembros",
32
+ "name": "Nombre",
33
+ "newGroupName": "Nuevo Nombre de Grupo",
34
+ "newGroupSession": "Nueva Sesión de Grupo",
35
+ "nextPatient": "Siguiente Paciente",
36
+ "noFormsFound": "No se encontraron Formularios",
37
+ "noFormsFoundMessage": "No se pudieron encontrar formularios para esta categoría. Por favor, verifica los UUID de concepto del formulario y los permisos de acceso.",
38
+ "noGroupsFoundMessage": "Lo siento, no se encontraron grupos.",
39
+ "noMoreResults": "Fin de resultados de búsqueda",
40
+ "noPatientError": "Por favor, ingresa al menos un paciente.",
41
+ "or": "o",
42
+ "orLabelName": "Nombre de Etiqueta OR",
43
+ "patientIsPresent": "Paciente está presente",
44
+ "patientsInGroup": "Pacientes en el grupo",
45
+ "postError": "Error de POST",
46
+ "practitionerName": "Nombre del Practicante",
47
+ "remove": "Eliminar",
48
+ "requiredField": "Este campo es obligatorio",
49
+ "resumeGroupSession": "Continuar Sesión de Grupo",
50
+ "resumeSession": "Continuar Sesión",
51
+ "review": "Revisión",
52
+ "save": "Guardar",
53
+ "save&close": "Guardar y Cerrar",
54
+ "saveAndComplete": "Guardar y Completar",
55
+ "saveExplanation": "¿Deseas guardar el formulario actual y salir del flujo de trabajo?",
56
+ "saveForm": "Guardar Formulario",
57
+ "saveSession": "Guardar Sesión",
58
+ "search": "Buscar",
59
+ "searchForGroup": "Buscar un grupo por nombre",
60
+ "searchForPatientsToAddToGroup": "Buscar pacientes para añadir al grupo",
61
+ "searchResultsText": "resultado(s) de búsqueda",
62
+ "selectGroupFirst": "Por favor, selecciona primero un grupo.",
63
+ "selectPatientFirst": "Por favor, selecciona primero un paciente.",
64
+ "sessionDate": "Fecha de Sesión",
65
+ "sessionDetails": "1. Detalles de la Sesión",
66
+ "sessionName": "Nombre de la Sesión",
67
+ "sessionNotes": "Notas de la Sesión",
68
+ "sessionParticipants": "2. Participantes de la Sesión",
69
+ "sessionSpecificDetails": "3. Detalles específicos",
70
+ "sessionSpecificDetailsDescription": "Se asignarán a las respuestas de los formularios de todos los pacientes como datos precumplimentados.",
71
+ "startGroupSession": "Iniciar Sesión de Grupo",
72
+ "trySearchWithPatientUniqueID": "Intente buscar con la descripción del grupo",
73
+ "unknown": "Desconocido",
74
+ "unknownPostError": "Ocurrió un error desconocido al guardar los datos"
75
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "actions": "Actions",
3
+ "allFieldsRequired": "Tous les champs sont requis, sauf s'ils sont marqués comme optionnels",
4
+ "allForms": "Tous les formulaires",
5
+ "areYouSure": "Êtes vous sûres?",
6
+ "cancel": "Annuler",
7
+ "cancelExplanation": "Les modifications non sauvegardées seront perdues. Souhaitez-vous quitter la session actuelle?",
8
+ "changeGroup": "Choisir un autre groupe",
9
+ "chooseGroupError": "Veuillez sélectionner un groupe",
10
+ "clearSearch": "Clair",
11
+ "complete": "Terminer",
12
+ "createGroup": "Créer un groupe",
13
+ "createNewGroup": "Créer un nouveau groupe",
14
+ "createNewPatient": "Créer un nouveau patient",
15
+ "createNewSession": "Créer une nouvelle session",
16
+ "discard": "Eliminer",
17
+ "editGroup": "Groupe Edir",
18
+ "error": "Erreur",
19
+ "errorCopy": "Désolé, il y a eu une erreur. Vous pouvez essayer de recharger cette page ou contacter l'administrateur du site en mentionnant le code d'erreur ci-dessus.",
20
+ "errorLoadingData": "Erreur de chargement des données",
21
+ "fastDataEntry": "Saisie rapide de données",
22
+ "fillForm": "Remplir le formulaire",
23
+ "findGroup": "Trouver un groupe",
24
+ "formName": "Nom du formulaire",
25
+ "formsAppMenuLink": "Saisie rapide de données",
26
+ "formsFilled": "Forms filled",
27
+ "goToForm": "Accéder au formulaire",
28
+ "groupNameError": "Veuillez saisir un nom de groupe",
29
+ "identifier": "Patient ID",
30
+ "markAbsentPatients": "Les patients in this group. Patients that are not present in the session should be marked as absent.",
31
+ "members": "Membres",
32
+ "name": "Nom",
33
+ "newGroupName": "Nom du nouveau groupe",
34
+ "newGroupSession": "Nouvelle session de groupe",
35
+ "nextPatient": "Prochain patient",
36
+ "noFormsFound": "Aucun formulaire à montrer",
37
+ "noFormsFoundMessage": "Aucun formulaire n'a pu être trouvé pour cette catégorie. Veuillez vérifier l'UUIDS du concept du formulaire ainsi que les droits d'accès.",
38
+ "noGroupsFoundMessage": "Désolé, aucun groupe n'a pu être trouvé.",
39
+ "noMoreResults": "Fin des résultats de la recherche",
40
+ "noPatientError": "Veuillez entrer au moins un patient",
41
+ "or": "ou",
42
+ "orLabelName": "OU nom de l'étiquette",
43
+ "patientIsPresent": "Le patient est présent",
44
+ "patientsInGroup": "Patients dans le groupe",
45
+ "postError": "Erreur de POST",
46
+ "practitionerName": "Nom du praticien",
47
+ "remove": "Enlever",
48
+ "requiredField": "Ce champ est obligatoire",
49
+ "resumeGroupSession": "Reprendre la session de groupe",
50
+ "resumeSession": "Reprendre la session",
51
+ "review": "Review",
52
+ "save": "Sauvegarder",
53
+ "save&close": "Enregistrer et fermer",
54
+ "saveAndComplete": "Sauvegarder et terminer",
55
+ "saveExplanation": "Voulez-vous sauvegarder le formulaire actuel et quitter le flux de travail?",
56
+ "saveForm": "Sauvegarder le formulaire",
57
+ "saveSession": "Sauvegarder la session",
58
+ "search": "Recherche",
59
+ "searchForGroup": "Recherche d'un groupe par son nom",
60
+ "searchForPatientsToAddToGroup": "Recherche de patients à ajouter au groupe",
61
+ "searchResultsText": "Résultat(s) de la recherche",
62
+ "selectGroupFirst": "Veuillez d'abord sélectionner un groupe",
63
+ "selectPatientFirst": "Veuillez d'abord sélectionner un patient",
64
+ "sessionDate": "Date de la session",
65
+ "sessionDetails": "Détails de la session",
66
+ "sessionName": "Nom de la session",
67
+ "sessionNotes": "Notes de la session",
68
+ "sessionParticipants": "Participants à la session",
69
+ "sessionSpecificDetails": "Détails spécifiques de la session",
70
+ "sessionSpecificDetailsDescription": "Ils seront intégrés aux réponses des formulaires pour tous les patients en tant que données pré-remplies.",
71
+ "startGroupSession": "Démarrer la session de groupe",
72
+ "trySearchWithPatientUniqueID": "Essayez de rechercher la description de la cohorte",
73
+ "unknown": "Inconnu",
74
+ "unknownPostError": "Une erreur inconnue s'est produite lors de la sauvegarde des données"
75
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "actions": "Actions",
3
+ "allFieldsRequired": "All fields are required unless marked optional",
4
+ "allForms": "All Forms",
5
+ "areYouSure": "Are you sure?",
6
+ "cancel": "Cancel",
7
+ "cancelExplanation": "You will lose any unsaved changes on the current form. Do you want to discard the current session?",
8
+ "changeGroup": "Choose a different group",
9
+ "chooseGroupError": "Please choose a group.",
10
+ "clearSearch": "Clear",
11
+ "complete": "Complete",
12
+ "createGroup": "Create Group",
13
+ "createNewGroup": "Create New Group",
14
+ "createNewPatient": "Create new patient",
15
+ "createNewSession": "Create New Session",
16
+ "discard": "Discard",
17
+ "editGroup": "Edit Group",
18
+ "error": "Error",
19
+ "errorCopy": "Sorry, there was an error. You can try to reload this page, or contact the site administrator and quote the error code above.",
20
+ "errorLoadingData": "Error Loading Data",
21
+ "fastDataEntry": "Fast Data Entry",
22
+ "fillForm": "Fill Form",
23
+ "findGroup": "Find group",
24
+ "formName": "Form Name",
25
+ "formsAppMenuLink": "Fast Data Entry",
26
+ "formsFilled": "Forms filled",
27
+ "goToForm": "Go To Form",
28
+ "groupNameError": "Please enter a group name.",
29
+ "identifier": "Patient ID",
30
+ "markAbsentPatients": "The patients in this group. Patients that are not present in the session should be marked as absent.",
31
+ "members": "members",
32
+ "name": "Name",
33
+ "newGroupName": "New Group Name",
34
+ "newGroupSession": "New Group Session",
35
+ "nextPatient": "Next patient",
36
+ "noFormsFound": "No Forms To Show",
37
+ "noFormsFoundMessage": "No forms could be found for this category. Please double check the form concept uuids and access permissions.",
38
+ "noGroupsFoundMessage": "Sorry, no groups have been found",
39
+ "noMoreResults": "End of search results",
40
+ "noPatientError": "Please enter at least one patient.",
41
+ "or": "or",
42
+ "orLabelName": "OR label name",
43
+ "patientIsPresent": "Patient is present",
44
+ "patientsInGroup": "Patients in group",
45
+ "postError": "POST Error",
46
+ "practitionerName": "Practitioner Name",
47
+ "remove": "Remove",
48
+ "requiredField": "This field is required",
49
+ "resumeGroupSession": "Resume Group Session",
50
+ "resumeSession": "Resume Session",
51
+ "review": "Review",
52
+ "save": "Save",
53
+ "save&close": "Save & Close",
54
+ "saveAndComplete": "Save & Complete",
55
+ "saveExplanation": "Do you want to save the current form and exit the workflow?",
56
+ "saveForm": "Save Form",
57
+ "saveSession": "Save Session",
58
+ "search": "Search",
59
+ "searchForGroup": "Search for a group by name",
60
+ "searchForPatientsToAddToGroup": "Search for patients to add to group",
61
+ "searchResultsText": "search result(s)",
62
+ "selectGroupFirst": "Please select a group first",
63
+ "selectPatientFirst": "Please select a patient first",
64
+ "sessionDate": "Session Date",
65
+ "sessionDetails": "1. Session details",
66
+ "sessionName": "Session Name",
67
+ "sessionNotes": "Session Notes",
68
+ "sessionParticipants": "2. Session participants",
69
+ "sessionSpecificDetails": "3. Specific details",
70
+ "sessionSpecificDetailsDescription": "They will be mapped to form responses for all patients as pre-filled data.",
71
+ "startGroupSession": "Start Group Session",
72
+ "trySearchWithPatientUniqueID": "Try searching with the cohort's description",
73
+ "unknown": "Unknown",
74
+ "unknownPostError": "An unknown error occurred while saving data"
75
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "actions": "Actions",
3
+ "allFieldsRequired": "All fields are required unless marked optional",
4
+ "allForms": "All Forms",
5
+ "areYouSure": "Are you sure?",
6
+ "cancel": "Cancel",
7
+ "cancelExplanation": "You will lose any unsaved changes on the current form. Do you want to discard the current session?",
8
+ "changeGroup": "Choose a different group",
9
+ "chooseGroupError": "Please choose a group.",
10
+ "clearSearch": "Clear",
11
+ "complete": "Complete",
12
+ "createGroup": "Create Group",
13
+ "createNewGroup": "Create New Group",
14
+ "createNewPatient": "Create new patient",
15
+ "createNewSession": "Create New Session",
16
+ "discard": "Discard",
17
+ "editGroup": "Edit Group",
18
+ "error": "Error",
19
+ "errorCopy": "Sorry, there was an error. You can try to reload this page, or contact the site administrator and quote the error code above.",
20
+ "errorLoadingData": "Error Loading Data",
21
+ "fastDataEntry": "Fast Data Entry",
22
+ "fillForm": "Fill Form",
23
+ "findGroup": "Find group",
24
+ "formName": "Form Name",
25
+ "formsAppMenuLink": "Fast Data Entry",
26
+ "formsFilled": "Forms filled",
27
+ "goToForm": "Go To Form",
28
+ "groupNameError": "Please enter a group name.",
29
+ "identifier": "Patient ID",
30
+ "markAbsentPatients": "The patients in this group. Patients that are not present in the session should be marked as absent.",
31
+ "members": "members",
32
+ "name": "Name",
33
+ "newGroupName": "New Group Name",
34
+ "newGroupSession": "New Group Session",
35
+ "nextPatient": "Next patient",
36
+ "noFormsFound": "No Forms To Show",
37
+ "noFormsFoundMessage": "No forms could be found for this category. Please double check the form concept uuids and access permissions.",
38
+ "noGroupsFoundMessage": "Sorry, no groups have been found",
39
+ "noMoreResults": "End of search results",
40
+ "noPatientError": "Please enter at least one patient.",
41
+ "or": "or",
42
+ "orLabelName": "OR label name",
43
+ "patientIsPresent": "Patient is present",
44
+ "patientsInGroup": "Patients in group",
45
+ "postError": "POST Error",
46
+ "practitionerName": "Practitioner Name",
47
+ "remove": "Remove",
48
+ "requiredField": "This field is required",
49
+ "resumeGroupSession": "Resume Group Session",
50
+ "resumeSession": "Resume Session",
51
+ "review": "Review",
52
+ "save": "Save",
53
+ "save&close": "Save & Close",
54
+ "saveAndComplete": "Save & Complete",
55
+ "saveExplanation": "Do you want to save the current form and exit the workflow?",
56
+ "saveForm": "Save Form",
57
+ "saveSession": "Save Session",
58
+ "search": "Search",
59
+ "searchForGroup": "Search for a group by name",
60
+ "searchForPatientsToAddToGroup": "Search for patients to add to group",
61
+ "searchResultsText": "search result(s)",
62
+ "selectGroupFirst": "Please select a group first",
63
+ "selectPatientFirst": "Please select a patient first",
64
+ "sessionDate": "Session Date",
65
+ "sessionDetails": "1. Session details",
66
+ "sessionName": "Session Name",
67
+ "sessionNotes": "Session Notes",
68
+ "sessionParticipants": "2. Session participants",
69
+ "sessionSpecificDetails": "3. Specific details",
70
+ "sessionSpecificDetailsDescription": "They will be mapped to form responses for all patients as pre-filled data.",
71
+ "startGroupSession": "Start Group Session",
72
+ "trySearchWithPatientUniqueID": "Try searching with the cohort's description",
73
+ "unknown": "Unknown",
74
+ "unknownPostError": "An unknown error occurred while saving data"
75
+ }