@openmrs/esm-patient-vitals-app 9.2.3-pre.7186 → 9.2.3-pre.7198

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 (122) hide show
  1. package/.turbo/turbo-build.log +20 -20
  2. package/dist/101.js +2 -0
  3. package/dist/101.js.map +1 -0
  4. package/dist/1197.js +1 -1
  5. package/dist/{9057.js → 1423.js} +1 -1
  6. package/dist/1423.js.map +1 -0
  7. package/dist/2146.js +1 -1
  8. package/dist/2690.js +1 -1
  9. package/dist/3099.js +1 -1
  10. package/dist/3584.js +1 -1
  11. package/dist/4055.js +1 -1
  12. package/dist/4132.js +1 -1
  13. package/dist/4300.js +1 -1
  14. package/dist/4335.js +1 -1
  15. package/dist/4618.js +1 -1
  16. package/dist/4652.js +1 -1
  17. package/dist/4944.js +1 -1
  18. package/dist/5173.js +1 -1
  19. package/dist/5207.js +1 -0
  20. package/dist/5207.js.map +1 -0
  21. package/dist/5241.js +1 -1
  22. package/dist/5387.js +1 -0
  23. package/dist/5387.js.map +1 -0
  24. package/dist/5395.js +2 -0
  25. package/dist/{3368.js.LICENSE.txt → 5395.js.LICENSE.txt} +19 -1
  26. package/dist/5395.js.map +1 -0
  27. package/dist/5442.js +1 -1
  28. package/dist/5661.js +1 -1
  29. package/dist/6468.js +1 -1
  30. package/dist/6679.js +1 -1
  31. package/dist/6840.js +1 -1
  32. package/dist/6859.js +1 -1
  33. package/dist/7159.js +1 -1
  34. package/dist/723.js +1 -1
  35. package/dist/8163.js +1 -1
  36. package/dist/8295.js +2 -0
  37. package/dist/8295.js.LICENSE.txt +7 -0
  38. package/dist/8295.js.map +1 -0
  39. package/dist/8618.js +1 -1
  40. package/dist/890.js +1 -1
  41. package/dist/8953.js +1 -0
  42. package/dist/8953.js.map +1 -0
  43. package/dist/9214.js +1 -1
  44. package/dist/9538.js +1 -1
  45. package/dist/986.js +1 -1
  46. package/dist/9879.js +1 -1
  47. package/dist/9895.js +1 -1
  48. package/dist/9900.js +1 -1
  49. package/dist/9913.js +1 -1
  50. package/dist/main.js +1 -1
  51. package/dist/main.js.map +1 -1
  52. package/dist/openmrs-esm-patient-vitals-app.js +1 -1
  53. package/dist/openmrs-esm-patient-vitals-app.js.buildmanifest.json +238 -214
  54. package/dist/openmrs-esm-patient-vitals-app.js.map +1 -1
  55. package/dist/routes.json +1 -1
  56. package/package.json +2 -2
  57. package/src/biometrics/biometrics-base.component.tsx +0 -1
  58. package/src/biometrics/biometrics-overview.test.tsx +26 -5
  59. package/src/biometrics/paginated-biometrics.component.tsx +5 -0
  60. package/src/common/data.resource.ts +128 -75
  61. package/src/common/helpers.ts +50 -0
  62. package/src/common/index.ts +3 -2
  63. package/src/common/types.ts +2 -1
  64. package/src/components/action-menu/vitals-biometrics-action-menu.component.tsx +60 -0
  65. package/src/components/action-menu/vitals-biometrics-action-menu.scss +11 -0
  66. package/src/components/delete-vitals-biometrics-modal/delete-vitals-biometrics.modal.tsx +84 -0
  67. package/src/{weight-tile → components/weight-tile}/weight-tile.component.tsx +2 -2
  68. package/src/{weight-tile → components/weight-tile}/weight-tile.test.tsx +4 -4
  69. package/src/index.ts +6 -1
  70. package/src/routes.json +6 -0
  71. package/src/vitals/paginated-vitals.component.tsx +5 -0
  72. package/src/vitals/vitals-overview.component.tsx +3 -2
  73. package/src/vitals-biometrics-form/schema.ts +28 -0
  74. package/src/vitals-biometrics-form/vitals-biometrics-form.test.tsx +203 -21
  75. package/src/vitals-biometrics-form/vitals-biometrics-form.workspace.tsx +78 -60
  76. package/src/vitals-biometrics-form/vitals-biometrics-input.component.tsx +1 -1
  77. package/translations/am.json +14 -1
  78. package/translations/ar.json +14 -1
  79. package/translations/bn.json +14 -1
  80. package/translations/de.json +14 -1
  81. package/translations/en.json +14 -1
  82. package/translations/es.json +14 -1
  83. package/translations/fr.json +14 -1
  84. package/translations/he.json +14 -1
  85. package/translations/hi.json +14 -1
  86. package/translations/hi_IN.json +14 -1
  87. package/translations/id.json +14 -1
  88. package/translations/it.json +14 -1
  89. package/translations/km.json +14 -1
  90. package/translations/ku.json +14 -1
  91. package/translations/ky.json +14 -1
  92. package/translations/lg.json +14 -1
  93. package/translations/ne.json +14 -1
  94. package/translations/pt.json +14 -1
  95. package/translations/pt_BR.json +14 -1
  96. package/translations/qu.json +14 -1
  97. package/translations/ru_RU.json +14 -1
  98. package/translations/si.json +14 -1
  99. package/translations/sw.json +14 -1
  100. package/translations/sw_KE.json +14 -1
  101. package/translations/tr.json +14 -1
  102. package/translations/tr_TR.json +14 -1
  103. package/translations/uk.json +14 -1
  104. package/translations/uz.json +14 -1
  105. package/translations/uz_UZ.json +14 -1
  106. package/translations/vi.json +14 -1
  107. package/translations/zh.json +14 -1
  108. package/translations/zh_CN.json +14 -1
  109. package/dist/3368.js +0 -2
  110. package/dist/3368.js.map +0 -1
  111. package/dist/4716.js +0 -1
  112. package/dist/4716.js.map +0 -1
  113. package/dist/7738.js +0 -2
  114. package/dist/7738.js.LICENSE.txt +0 -25
  115. package/dist/7738.js.map +0 -1
  116. package/dist/8895.js +0 -2
  117. package/dist/8895.js.map +0 -1
  118. package/dist/8957.js +0 -1
  119. package/dist/8957.js.map +0 -1
  120. package/dist/9057.js.map +0 -1
  121. /package/dist/{8895.js.LICENSE.txt → 101.js.LICENSE.txt} +0 -0
  122. /package/src/{weight-tile → components/weight-tile}/weight-tile.scss +0 -0
@@ -1,7 +1,6 @@
1
1
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
2
2
  import { useForm } from 'react-hook-form';
3
3
  import { useTranslation } from 'react-i18next';
4
- import { z } from 'zod';
5
4
  import { zodResolver } from '@hookform/resolvers/zod';
6
5
  import {
7
6
  Button,
@@ -23,6 +22,7 @@ import {
23
22
  useSession,
24
23
  ExtensionSlot,
25
24
  useVisit,
25
+ useAbortController,
26
26
  } from '@openmrs/esm-framework';
27
27
  import { type DefaultPatientWorkspaceProps } from '@openmrs/esm-patient-common-lib';
28
28
  import type { ConfigObject } from '../config-schema';
@@ -37,42 +37,25 @@ import {
37
37
  getReferenceRangesForConcept,
38
38
  interpretBloodPressure,
39
39
  invalidateCachedVitalsAndBiometrics,
40
- saveVitalsAndBiometrics as savePatientVitals,
41
40
  useVitalsConceptMetadata,
41
+ createOrUpdateVitalsAndBiometrics,
42
+ useEncounterVitalsAndBiometrics,
42
43
  } from '../common';
43
44
  import VitalsAndBiometricsInput from './vitals-biometrics-input.component';
44
45
  import styles from './vitals-biometrics-form.scss';
46
+ import { VitalsAndBiometricsFormSchema, type VitalsBiometricsFormData } from './schema';
47
+ import { prepareObsForSubmission } from '../common/helpers';
45
48
 
46
- const VitalsAndBiometricFormSchema = z
47
- .object({
48
- systolicBloodPressure: z.number(),
49
- diastolicBloodPressure: z.number(),
50
- respiratoryRate: z.number(),
51
- oxygenSaturation: z.number(),
52
- pulse: z.number(),
53
- temperature: z.number(),
54
- generalPatientNote: z.string(),
55
- weight: z.number(),
56
- height: z.number(),
57
- midUpperArmCircumference: z.number(),
58
- computedBodyMassIndex: z.number(),
59
- })
60
- .partial()
61
- .refine(
62
- (fields) => {
63
- return Object.values(fields).some((value) => Boolean(value));
64
- },
65
- {
66
- message: 'Please fill at least one field',
67
- path: ['oneFieldRequired'],
68
- },
69
- );
49
+ interface VitalsAndBiometricsFormProps extends DefaultPatientWorkspaceProps {
50
+ formContext: 'creating' | 'editing';
51
+ editEncounterUuid?: string;
52
+ }
70
53
 
71
- export type VitalsBiometricsFormData = z.infer<typeof VitalsAndBiometricFormSchema>;
72
-
73
- const VitalsAndBiometricsForm: React.FC<DefaultPatientWorkspaceProps> = ({
54
+ const VitalsAndBiometricsForm: React.FC<VitalsAndBiometricsFormProps> = ({
74
55
  patientUuid,
75
56
  patient,
57
+ editEncounterUuid,
58
+ formContext = 'creating',
76
59
  closeWorkspace,
77
60
  closeWorkspaceWithSavedChanges,
78
61
  promptBeforeClosing,
@@ -85,23 +68,47 @@ const VitalsAndBiometricsForm: React.FC<DefaultPatientWorkspaceProps> = ({
85
68
 
86
69
  const session = useSession();
87
70
  const { currentVisit } = useVisit(patientUuid);
88
- const { data: conceptUnits, conceptMetadata, conceptRanges, isLoading } = useVitalsConceptMetadata();
71
+ const {
72
+ data: conceptUnits,
73
+ conceptMetadata,
74
+ conceptRanges,
75
+ isLoading: isLoadingConceptMetadata,
76
+ } = useVitalsConceptMetadata();
77
+ const {
78
+ isLoading: isLoadingEncounter,
79
+ vitalsAndBiometrics: initialFieldValuesMap,
80
+ getRefinedInitialValues,
81
+ mutate: mutateEncounter,
82
+ } = useEncounterVitalsAndBiometrics(formContext === 'editing' ? editEncounterUuid : null);
89
83
  const [hasInvalidVitals, setHasInvalidVitals] = useState(false);
90
84
  const [muacColorCode, setMuacColorCode] = useState('');
91
85
  const [showErrorNotification, setShowErrorNotification] = useState(false);
92
86
  const [showErrorMessage, setShowErrorMessage] = useState(false);
87
+ const abortController = useAbortController();
88
+
89
+ const isLoadingInitialValues = useMemo(
90
+ () => (formContext === 'creating' ? false : isLoadingEncounter),
91
+ [formContext, isLoadingEncounter],
92
+ );
93
93
 
94
94
  const {
95
95
  control,
96
96
  handleSubmit,
97
97
  watch,
98
98
  setValue,
99
- formState: { isDirty, isSubmitting },
99
+ formState: { isDirty, isSubmitting, dirtyFields },
100
+ reset,
100
101
  } = useForm<VitalsBiometricsFormData>({
101
102
  mode: 'all',
102
- resolver: zodResolver(VitalsAndBiometricFormSchema),
103
+ resolver: zodResolver(VitalsAndBiometricsFormSchema),
103
104
  });
104
105
 
106
+ useEffect(() => {
107
+ if (formContext === 'editing' && !isLoadingInitialValues && initialFieldValuesMap) {
108
+ reset(getRefinedInitialValues());
109
+ }
110
+ }, [formContext, isLoadingInitialValues, initialFieldValuesMap, getRefinedInitialValues, reset]);
111
+
105
112
  useEffect(() => {
106
113
  promptBeforeClosing(() => isDirty);
107
114
  }, [isDirty, promptBeforeClosing]);
@@ -181,56 +188,67 @@ const VitalsAndBiometricsForm: React.FC<DefaultPatientWorkspaceProps> = ({
181
188
 
182
189
  if (allFieldsAreValid) {
183
190
  setShowErrorMessage(false);
184
- const abortController = new AbortController();
185
-
186
- savePatientVitals(
187
- config.vitals.encounterTypeUuid,
188
- config.vitals.formUuid,
191
+ const { newObs, toBeVoided } = prepareObsForSubmission(
192
+ formData,
193
+ dirtyFields,
194
+ formContext,
195
+ initialFieldValuesMap,
189
196
  config.concepts,
197
+ );
198
+
199
+ createOrUpdateVitalsAndBiometrics(
190
200
  patientUuid,
191
- formData,
192
- abortController,
201
+ config.vitals.encounterTypeUuid,
202
+ editEncounterUuid,
193
203
  session?.sessionLocation?.uuid,
204
+ [...newObs, ...toBeVoided],
205
+ abortController,
194
206
  )
195
- .then((response) => {
196
- if (response.status === 201) {
197
- invalidateCachedVitalsAndBiometrics();
198
- closeWorkspaceWithSavedChanges();
199
- showSnackbar({
200
- isLowContrast: true,
201
- kind: 'success',
202
- title: t('vitalsAndBiometricsRecorded', 'Vitals and Biometrics saved'),
203
- subtitle: t(
204
- 'vitalsAndBiometricsNowAvailable',
205
- 'They are now visible on the Vitals and Biometrics page',
206
- ),
207
- });
207
+ .then(() => {
208
+ if (mutateEncounter) {
209
+ mutateEncounter();
208
210
  }
211
+ invalidateCachedVitalsAndBiometrics();
212
+ closeWorkspaceWithSavedChanges();
213
+ showSnackbar({
214
+ isLowContrast: true,
215
+ kind: 'success',
216
+ title:
217
+ formContext === 'creating'
218
+ ? t('vitalsAndBiometricsSaved', 'Vitals and Biometrics saved')
219
+ : t('vitalsAndBiometricsUpdated', 'Vitals and Biometrics updated'),
220
+ subtitle: t('vitalsAndBiometricsNowAvailable', 'They are now visible on the Vitals and Biometrics page'),
221
+ });
209
222
  })
210
223
  .catch(() => {
211
224
  createErrorHandler();
212
225
  showSnackbar({
213
- title: t('vitalsAndBiometricsSaveError', 'Error saving vitals and biometrics'),
226
+ title:
227
+ formContext === 'creating'
228
+ ? t('vitalsAndBiometricsSaveError', 'Error saving Vitals and Biometrics')
229
+ : t('vitalsAndBiometricsUpdateError', 'Error updating Vitals and Biometrics'),
214
230
  kind: 'error',
215
231
  isLowContrast: false,
216
232
  subtitle: t('checkForValidity', 'Some of the values entered are invalid'),
217
233
  });
218
- })
219
- .finally(() => {
220
- abortController.abort();
221
234
  });
222
235
  } else {
223
236
  setHasInvalidVitals(true);
224
237
  }
225
238
  },
226
239
  [
227
- closeWorkspaceWithSavedChanges,
240
+ abortController,
228
241
  conceptMetadata,
229
242
  config.concepts,
230
243
  config.vitals.encounterTypeUuid,
231
- config.vitals.formUuid,
244
+ dirtyFields,
245
+ editEncounterUuid,
246
+ formContext,
247
+ initialFieldValuesMap,
232
248
  patientUuid,
233
249
  session?.sessionLocation?.uuid,
250
+ closeWorkspaceWithSavedChanges,
251
+ mutateEncounter,
234
252
  t,
235
253
  ],
236
254
  );
@@ -253,7 +271,7 @@ const VitalsAndBiometricsForm: React.FC<DefaultPatientWorkspaceProps> = ({
253
271
  );
254
272
  }
255
273
 
256
- if (isLoading) {
274
+ if (isLoadingConceptMetadata || isLoadingInitialValues) {
257
275
  return (
258
276
  <Form className={styles.form}>
259
277
  <div className={styles.grid}>
@@ -605,7 +623,7 @@ const VitalsAndBiometricsForm: React.FC<DefaultPatientWorkspaceProps> = ({
605
623
  className={styles.button}
606
624
  kind="primary"
607
625
  onClick={handleSubmit(savePatientVitalsAndBiometrics, onError)}
608
- disabled={isSubmitting}
626
+ disabled={!isDirty || isSubmitting}
609
627
  type="submit"
610
628
  >
611
629
  {t('saveAndClose', 'Save and close')}
@@ -6,8 +6,8 @@ import { Warning } from '@carbon/react/icons';
6
6
  import { useTranslation } from 'react-i18next';
7
7
  import { useLayoutType, ResponsiveWrapper } from '@openmrs/esm-framework';
8
8
  import { generatePlaceholder } from '../common';
9
- import { type VitalsBiometricsFormData } from './vitals-biometrics-form.workspace';
10
9
  import styles from './vitals-biometrics-input.scss';
10
+ import { type VitalsBiometricsFormData } from './schema';
11
11
 
12
12
  type fieldId =
13
13
  | 'computedBodyMassIndex'
@@ -10,14 +10,24 @@
10
10
  "bmi": "BMI",
11
11
  "bp": "BP",
12
12
  "calculatedBmi": "BMI (calc.)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "Some of the values entered are invalid",
14
15
  "date": "Date",
15
16
  "dateAndTime": "Date and time",
16
17
  "daysOldVitals_one": "<0>These vitals are <1>{{count}} day old</1></0>",
17
18
  "daysOldVitals_other": "<0>These vitals are <1>{{count}} days old</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "diastolic",
19
24
  "discard": "Discard",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "Error",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "Female",
22
32
  "goToSummary": "Go to Summary",
23
33
  "heartRate": "Heart rate",
@@ -54,9 +64,12 @@
54
64
  "vitals": "Vitals",
55
65
  "Vitals & Biometrics": "Vitals & Biometrics",
56
66
  "vitalsAndBiometrics": "Vitals and biometrics",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "They are now visible on the Vitals and Biometrics page",
58
- "vitalsAndBiometricsRecorded": "Vitals and Biometrics saved",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "Error saving vitals and biometrics",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "Vitals history",
61
74
  "vitalSignDisplayed": "Vital sign displayed",
62
75
  "vitalSigns": "Vital signs",
@@ -10,14 +10,24 @@
10
10
  "bmi": "مؤشر كتلة الجسم",
11
11
  "bp": "ضغط الدم",
12
12
  "calculatedBmi": "مؤشر كتلة الجسم (محسوب)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "بعض القيم المدخلة غير صالحة",
14
15
  "date": "Date",
15
16
  "dateAndTime": "التاريخ والوقت",
16
17
  "daysOldVitals_one": "<0>These vitals are <1>{{count}} day old</1></0>",
17
18
  "daysOldVitals_other": "<0>These vitals are <1>{{count}} days old</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "الانقباضي",
19
24
  "discard": "تجاهل",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "خطأ",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "أنثى",
22
32
  "goToSummary": "اذهب إلى الملخص",
23
33
  "heartRate": "معدل ضربات القلب",
@@ -54,9 +64,12 @@
54
64
  "vitals": "العلامات الحيوية",
55
65
  "Vitals & Biometrics": "العلامات الحيوية والبيانات البيومترية",
56
66
  "vitalsAndBiometrics": "العلامات الحيوية والقياسات البيومترية",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "هم الآن مرئيون على صفحة العلامات الحيوية والقياسات البيومترية",
58
- "vitalsAndBiometricsRecorded": "تم حفظ العلامات الحيوية والقياسات البيومترية",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "خطأ في حفظ العلامات الحيوية والقياسات البيومترية",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "تاريخ العلامات الحيوية",
61
74
  "vitalSignDisplayed": "Vital sign displayed",
62
75
  "vitalSigns": "العلامات الحيوية",
@@ -10,14 +10,24 @@
10
10
  "bmi": "BMI",
11
11
  "bp": "BP",
12
12
  "calculatedBmi": "BMI (calc.)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "Some of the values entered are invalid",
14
15
  "date": "Date",
15
16
  "dateAndTime": "Date and time",
16
17
  "daysOldVitals_one": "<0>These vitals are <1>{{count}} day old</1></0>",
17
18
  "daysOldVitals_other": "<0>These vitals are <1>{{count}} days old</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "diastolic",
19
24
  "discard": "Discard",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "Error",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "Female",
22
32
  "goToSummary": "Go to Summary",
23
33
  "heartRate": "Heart rate",
@@ -54,9 +64,12 @@
54
64
  "vitals": "Vitals",
55
65
  "Vitals & Biometrics": "Vitals & Biometrics",
56
66
  "vitalsAndBiometrics": "Vitals and biometrics",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "They are now visible on the Vitals and Biometrics page",
58
- "vitalsAndBiometricsRecorded": "Vitals and Biometrics saved",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "Error saving vitals and biometrics",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "Vitals history",
61
74
  "vitalSignDisplayed": "Vital sign displayed",
62
75
  "vitalSigns": "Vital signs",
@@ -10,14 +10,24 @@
10
10
  "bmi": "BMI",
11
11
  "bp": "BP",
12
12
  "calculatedBmi": "BMI (calc.)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "Some of the values entered are invalid",
14
15
  "date": "Date",
15
16
  "dateAndTime": "Date and time",
16
17
  "daysOldVitals_one": "<0>These vitals are <1>{{count}} day old</1></0>",
17
18
  "daysOldVitals_other": "<0>These vitals are <1>{{count}} days old</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "diastolic",
19
24
  "discard": "Discard",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "Error",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "Female",
22
32
  "goToSummary": "Go to Summary",
23
33
  "heartRate": "Heart rate",
@@ -54,9 +64,12 @@
54
64
  "vitals": "Vitals",
55
65
  "Vitals & Biometrics": "Vitals & Biometrics",
56
66
  "vitalsAndBiometrics": "Vitals and biometrics",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "They are now visible on the Vitals and Biometrics page",
58
- "vitalsAndBiometricsRecorded": "Vitals and Biometrics saved",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "Error saving vitals and biometrics",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "Vitals history",
61
74
  "vitalSignDisplayed": "Vital sign displayed",
62
75
  "vitalSigns": "Vital signs",
@@ -10,14 +10,24 @@
10
10
  "bmi": "BMI",
11
11
  "bp": "BP",
12
12
  "calculatedBmi": "BMI (calc.)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "Some of the values entered are invalid",
14
15
  "date": "Date",
15
16
  "dateAndTime": "Date and time",
16
17
  "daysOldVitals_one": "<0>These vitals are <1>{{count}} day old</1></0>",
17
18
  "daysOldVitals_other": "<0>These vitals are <1>{{count}} days old</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "diastolic",
19
24
  "discard": "Discard",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "Error",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "Female",
22
32
  "goToSummary": "Go to Summary",
23
33
  "heartRate": "Heart rate",
@@ -54,9 +64,12 @@
54
64
  "vitals": "Vitals",
55
65
  "Vitals & Biometrics": "Vitals & Biometrics",
56
66
  "vitalsAndBiometrics": "Vitals and biometrics",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "They are now visible on the Vitals and Biometrics page",
58
- "vitalsAndBiometricsRecorded": "Vitals and Biometrics saved",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "Error saving vitals and biometrics",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "Vitals history",
61
74
  "vitalSignDisplayed": "Vital sign displayed",
62
75
  "vitalSigns": "Vital signs",
@@ -10,14 +10,24 @@
10
10
  "bmi": "IMC",
11
11
  "bp": "PA",
12
12
  "calculatedBmi": "IMC (calc.)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "Algunos de los valores ingresados son inválidos",
14
15
  "date": "Fecha",
15
16
  "dateAndTime": "Fecha y hora",
16
17
  "daysOldVitals_one": "<0>Estos signos vitales tienen <1>{{count}} día de antigüedad</1></0>",
17
18
  "daysOldVitals_other": "<0>Estos signos vitales tienen <1>{{count}} días de antigüedad </1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "diastólica",
19
24
  "discard": "Descartar",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "Error",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "Femenino",
22
32
  "goToSummary": "Ir al Resumen",
23
33
  "heartRate": "Frecuencia cardíaca",
@@ -54,9 +64,12 @@
54
64
  "vitals": "Signos Vitales",
55
65
  "Vitals & Biometrics": "Signos Vitales y Datos Biométricos",
56
66
  "vitalsAndBiometrics": "Signos vitales y datos biométricos",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "Ahora son visibles en la página de Signos Vitales y Datos Biométricos",
58
- "vitalsAndBiometricsRecorded": "Signos Vitales y Datos Biométricos guardados",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "Error al guardar signos vitales y datos biométricos",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "Historial de signos vitales",
61
74
  "vitalSignDisplayed": "Signo vital mostrado",
62
75
  "vitalSigns": "Signos vitales",
@@ -10,14 +10,24 @@
10
10
  "bmi": "IMC",
11
11
  "bp": "TA",
12
12
  "calculatedBmi": "IMC (calc.)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "Certaines des valeurs saisies ne sont pas valides.",
14
15
  "date": "Date",
15
16
  "dateAndTime": "Date et heure",
16
17
  "daysOldVitals_one": "<0>These vitals are <1>{{count}} day old</1></0>",
17
18
  "daysOldVitals_other": "<0>These vitals are <1>{{count}} days old</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "diastolique",
19
24
  "discard": "Annuler",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "Erreur",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "Femme",
22
32
  "goToSummary": "Accéder au résumé patient",
23
33
  "heartRate": "Fréquence cardiaque",
@@ -54,9 +64,12 @@
54
64
  "vitals": "Signes vitaux",
55
65
  "Vitals & Biometrics": "Signes vitaux et biométrie",
56
66
  "vitalsAndBiometrics": "Signes vitaux et biométrie",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "Ils sont désormais visibles sur la page Signes vitaux et biométrie",
58
- "vitalsAndBiometricsRecorded": "Signes vitaux et biométrie enregistrés",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "Erreur en sauvegardant les signes vitaux et la biométrie",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "Historique des signes vitaux",
61
74
  "vitalSignDisplayed": "Signe vital affiché",
62
75
  "vitalSigns": "Signes vitaux",
@@ -10,14 +10,24 @@
10
10
  "bmi": "BMI",
11
11
  "bp": "ל.דם",
12
12
  "calculatedBmi": "BMI (חישוב)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "חלק מהערכים שהוזנו אינם תקפים",
14
15
  "date": "תאריך",
15
16
  "dateAndTime": "תאריך ושעה",
16
17
  "daysOldVitals_one": "<0>המדדים החיוניים האלה הם בני <1>יום</1></0>",
17
18
  "daysOldVitals_other": "<0>המדדים החיוניים האלה הם בני <1>{{count}} ימים</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "דיאסטולי",
19
24
  "discard": "בטל",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "שגיאה",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "נקבה",
22
32
  "goToSummary": "עבור לסיכום",
23
33
  "heartRate": "קצב לב",
@@ -54,9 +64,12 @@
54
64
  "vitals": "מדדים חיוניים",
55
65
  "Vitals & Biometrics": "מדדים וביומטריה",
56
66
  "vitalsAndBiometrics": "מדדים חיוניים וביומטרים",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "הם כעת זמינים בדף מדדים חיוניים וביומטרים",
58
- "vitalsAndBiometricsRecorded": "מדדים חיוניים וביומטרים נשמרו",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "שגיאה בשמירת מדדים חיוניים וביומטרים",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "היסטוריה של חיוניים",
61
74
  "vitalSignDisplayed": "Vital sign displayed",
62
75
  "vitalSigns": "מדדים חיוניים",
@@ -10,14 +10,24 @@
10
10
  "bmi": "BMI",
11
11
  "bp": "BP",
12
12
  "calculatedBmi": "BMI (calc.)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "Some of the values entered are invalid",
14
15
  "date": "Date",
15
16
  "dateAndTime": "Date and time",
16
17
  "daysOldVitals_one": "<0>These vitals are <1>{{count}} day old</1></0>",
17
18
  "daysOldVitals_other": "<0>These vitals are <1>{{count}} days old</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "diastolic",
19
24
  "discard": "Discard",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "Error",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "Female",
22
32
  "goToSummary": "Go to Summary",
23
33
  "heartRate": "Heart rate",
@@ -54,9 +64,12 @@
54
64
  "vitals": "Vitals",
55
65
  "Vitals & Biometrics": "Vitals & Biometrics",
56
66
  "vitalsAndBiometrics": "Vitals and biometrics",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "They are now visible on the Vitals and Biometrics page",
58
- "vitalsAndBiometricsRecorded": "Vitals and Biometrics saved",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "Error saving vitals and biometrics",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "Vitals history",
61
74
  "vitalSignDisplayed": "Vital sign displayed",
62
75
  "vitalSigns": "Vital signs",
@@ -10,14 +10,24 @@
10
10
  "bmi": "BMI",
11
11
  "bp": "BP",
12
12
  "calculatedBmi": "BMI (calc.)",
13
+ "cancel": "Cancel",
13
14
  "checkForValidity": "Some of the values entered are invalid",
14
15
  "date": "Date",
15
16
  "dateAndTime": "Date and time",
16
17
  "daysOldVitals_one": "<0>These vitals are <1>{{count}} day old</1></0>",
17
18
  "daysOldVitals_other": "<0>These vitals are <1>{{count}} days old</1></0>",
19
+ "delete": "Delete",
20
+ "deleteConfirmationText": "Note: Deleting these entries will also remove related vitals or biometrics data. Are you sure you want to continue?",
21
+ "deleteVitalsAndBiometrics": "Delete vitals and biometrics",
22
+ "deleting": "Deleting",
18
23
  "diastolic": "diastolic",
19
24
  "discard": "Discard",
25
+ "edit": "Edit",
26
+ "editOrDeleteVitalsAndBiometrics": "Edit or delete Vitals and Biometrics",
27
+ "editVitalsAndBiometrics": "Edit Vitals and Biometrics",
28
+ "encounterUuidRequired": "Encounter UUID is required to delete vitals or biometrics",
20
29
  "error": "Error",
30
+ "errorDeleting": "Error deleting vitals and biometrics",
21
31
  "female": "Female",
22
32
  "goToSummary": "Go to Summary",
23
33
  "heartRate": "Heart rate",
@@ -54,9 +64,12 @@
54
64
  "vitals": "Vitals",
55
65
  "Vitals & Biometrics": "Vitals & Biometrics",
56
66
  "vitalsAndBiometrics": "Vitals and biometrics",
67
+ "vitalsAndBiometricsDeleted": "Vitals and biometrics deleted",
57
68
  "vitalsAndBiometricsNowAvailable": "They are now visible on the Vitals and Biometrics page",
58
- "vitalsAndBiometricsRecorded": "Vitals and Biometrics saved",
69
+ "vitalsAndBiometricsSaved": "Vitals and Biometrics saved",
59
70
  "vitalsAndBiometricsSaveError": "Error saving vitals and biometrics",
71
+ "vitalsAndBiometricsUpdated": "Vitals and Biometrics updated",
72
+ "vitalsAndBiometricsUpdateError": "Error updating Vitals and Biometrics",
60
73
  "vitalsHistory": "Vitals history",
61
74
  "vitalSignDisplayed": "Vital sign displayed",
62
75
  "vitalSigns": "Vital signs",