@openmrs/esm-generic-patient-widgets-app 11.3.0 → 11.3.1-patch.9064

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 (124) hide show
  1. package/.turbo/turbo-build.log +30 -26
  2. package/dist/1119.js +1 -1
  3. package/dist/1197.js +1 -1
  4. package/dist/1559.js +2 -0
  5. package/dist/1559.js.map +1 -0
  6. package/dist/2146.js +1 -1
  7. package/dist/251.js +2 -0
  8. package/dist/251.js.map +1 -0
  9. package/dist/2690.js +1 -1
  10. package/dist/3099.js +1 -1
  11. package/dist/3584.js +1 -1
  12. package/dist/4055.js +1 -1
  13. package/dist/4132.js +1 -1
  14. package/dist/4300.js +1 -1
  15. package/dist/4335.js +1 -1
  16. package/dist/4618.js +1 -1
  17. package/dist/4652.js +1 -1
  18. package/dist/4944.js +1 -1
  19. package/dist/5173.js +1 -1
  20. package/dist/5241.js +1 -1
  21. package/dist/5442.js +1 -1
  22. package/dist/5661.js +1 -1
  23. package/dist/5670.js +1 -0
  24. package/dist/5670.js.map +1 -0
  25. package/dist/5986.js +1 -1
  26. package/dist/5986.js.map +1 -1
  27. package/dist/6022.js +1 -1
  28. package/dist/6468.js +1 -1
  29. package/dist/6679.js +1 -1
  30. package/dist/6781.js +2 -0
  31. package/dist/{9582.js.LICENSE.txt → 6781.js.LICENSE.txt} +1 -1
  32. package/dist/6781.js.map +1 -0
  33. package/dist/6840.js +1 -1
  34. package/dist/6859.js +1 -1
  35. package/dist/7097.js +1 -1
  36. package/dist/7159.js +1 -1
  37. package/dist/723.js +1 -1
  38. package/dist/7617.js +1 -1
  39. package/dist/795.js +1 -1
  40. package/dist/8163.js +1 -1
  41. package/dist/8349.js +1 -1
  42. package/dist/8618.js +1 -1
  43. package/dist/8803.js +1 -0
  44. package/dist/8803.js.map +1 -0
  45. package/dist/890.js +1 -1
  46. package/dist/9214.js +1 -1
  47. package/dist/9538.js +1 -1
  48. package/dist/9569.js +1 -1
  49. package/dist/986.js +1 -1
  50. package/dist/9879.js +1 -1
  51. package/dist/9895.js +1 -1
  52. package/dist/9900.js +1 -1
  53. package/dist/9913.js +1 -1
  54. package/dist/main.js +1 -1
  55. package/dist/main.js.LICENSE.txt +1 -1
  56. package/dist/main.js.map +1 -1
  57. package/dist/openmrs-esm-generic-patient-widgets-app.js +1 -1
  58. package/dist/openmrs-esm-generic-patient-widgets-app.js.buildmanifest.json +210 -261
  59. package/dist/openmrs-esm-generic-patient-widgets-app.js.map +1 -1
  60. package/dist/routes.json +1 -1
  61. package/package.json +5 -4
  62. package/src/config-schema-obs-switchable.ts +9 -2
  63. package/src/obs-graph/obs-graph.component.tsx +105 -62
  64. package/src/obs-graph/obs-graph.scss +2 -11
  65. package/src/obs-switchable/obs-switchable.component.tsx +19 -24
  66. package/src/obs-switchable/obs-switchable.scss +1 -1
  67. package/src/obs-switchable/obs-switchable.test.tsx +275 -0
  68. package/src/obs-table/obs-table.component.tsx +1 -1
  69. package/src/resources/useObs.ts +1 -1
  70. package/translations/am.json +1 -4
  71. package/translations/ar.json +1 -4
  72. package/translations/ar_SY.json +1 -4
  73. package/translations/bn.json +1 -4
  74. package/translations/de.json +1 -4
  75. package/translations/en.json +1 -4
  76. package/translations/en_US.json +1 -4
  77. package/translations/es.json +1 -4
  78. package/translations/es_MX.json +1 -4
  79. package/translations/fr.json +1 -4
  80. package/translations/he.json +1 -4
  81. package/translations/hi.json +1 -4
  82. package/translations/hi_IN.json +1 -4
  83. package/translations/id.json +1 -4
  84. package/translations/it.json +1 -4
  85. package/translations/ka.json +1 -4
  86. package/translations/km.json +1 -4
  87. package/translations/ku.json +1 -4
  88. package/translations/ky.json +1 -4
  89. package/translations/lg.json +1 -4
  90. package/translations/ne.json +1 -4
  91. package/translations/pl.json +1 -4
  92. package/translations/pt.json +1 -4
  93. package/translations/pt_BR.json +1 -4
  94. package/translations/qu.json +1 -4
  95. package/translations/ro_RO.json +1 -4
  96. package/translations/ru_RU.json +1 -4
  97. package/translations/si.json +1 -4
  98. package/translations/sw.json +1 -4
  99. package/translations/sw_KE.json +1 -4
  100. package/translations/tr.json +1 -4
  101. package/translations/tr_TR.json +1 -4
  102. package/translations/uk.json +1 -4
  103. package/translations/uz.json +1 -4
  104. package/translations/uz@Latn.json +1 -4
  105. package/translations/uz_UZ.json +1 -4
  106. package/translations/vi.json +1 -4
  107. package/translations/zh.json +1 -4
  108. package/translations/zh_CN.json +1 -4
  109. package/dist/30.js +0 -2
  110. package/dist/30.js.map +0 -1
  111. package/dist/4051.js +0 -1
  112. package/dist/4051.js.map +0 -1
  113. package/dist/5048.js +0 -1
  114. package/dist/5048.js.map +0 -1
  115. package/dist/521.js +0 -2
  116. package/dist/521.js.map +0 -1
  117. package/dist/6432.js +0 -1
  118. package/dist/6432.js.map +0 -1
  119. package/dist/717.js +0 -1
  120. package/dist/717.js.map +0 -1
  121. package/dist/9582.js +0 -2
  122. package/dist/9582.js.map +0 -1
  123. /package/dist/{521.js.LICENSE.txt → 1559.js.LICENSE.txt} +0 -0
  124. /package/dist/{30.js.LICENSE.txt → 251.js.LICENSE.txt} +0 -0
@@ -0,0 +1,275 @@
1
+ import React from 'react';
2
+ import { render, screen, waitFor } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
4
+ import { LineChart } from '@carbon/charts-react';
5
+ import { getDefaultsFromConfigSchema, useConfig } from '@openmrs/esm-framework';
6
+ import ObsSwitchable from './obs-switchable.component';
7
+ import { useObs, type ObsResult } from '../resources/useObs';
8
+ import { configSchemaSwitchable } from '../config-schema-obs-switchable';
9
+
10
+ jest.mock('../resources/useObs', () => ({
11
+ useObs: jest.fn(),
12
+ }));
13
+
14
+ const mockLineChart = jest.mocked(LineChart);
15
+
16
+ const mockUseConfig = jest.mocked(useConfig);
17
+
18
+ const mockObsData = [
19
+ {
20
+ code: { text: 'Height' },
21
+ conceptUuid: '5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
22
+ dataType: 'Number',
23
+ effectiveDateTime: '2021-01-01T00:00:00Z',
24
+ valueQuantity: { value: 180 },
25
+ encounter: { reference: 'Encounter/123' },
26
+ },
27
+ {
28
+ code: { text: 'Height' },
29
+ conceptUuid: '5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
30
+ dataType: 'Number',
31
+ effectiveDateTime: '2021-02-01T00:00:00Z',
32
+ valueQuantity: { value: 182 },
33
+ encounter: { reference: 'Encounter/234' },
34
+ },
35
+ {
36
+ code: { text: 'Weight' },
37
+ conceptUuid: '2154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
38
+ dataType: 'Number',
39
+ effectiveDateTime: '2021-01-01T00:00:00Z',
40
+ valueQuantity: { value: 70 },
41
+ encounter: { reference: 'Encounter/123' },
42
+ },
43
+ {
44
+ code: { text: 'Weight' },
45
+ conceptUuid: '2154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
46
+ dataType: 'Number',
47
+ effectiveDateTime: '2021-02-01T00:00:00Z',
48
+ valueQuantity: { value: 72 },
49
+ encounter: { reference: 'Encounter/234' },
50
+ },
51
+ {
52
+ code: { text: 'Chief Complaint' },
53
+ conceptUuid: '164162AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
54
+ dataType: 'Text',
55
+ effectiveDateTime: '2021-01-01T00:00:00Z',
56
+ valueString: 'Too strong',
57
+ encounter: { reference: 'Encounter/123' },
58
+ },
59
+ {
60
+ code: { text: 'Power Level' },
61
+ conceptUuid: '164163AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
62
+ dataType: 'Number',
63
+ effectiveDateTime: '2021-01-01T00:00:00Z',
64
+ valueQuantity: { value: 9001 },
65
+ encounter: { reference: 'Encounter/123' },
66
+ },
67
+ ];
68
+
69
+ const mockUseObs = jest.mocked(useObs);
70
+
71
+ describe('ObsSwitchable', () => {
72
+ it('should render all obs in table and numeric obs in graph', async () => {
73
+ mockUseObs.mockReturnValue({
74
+ data: mockObsData as Array<ObsResult>,
75
+ error: null,
76
+ isLoading: false,
77
+ isValidating: false,
78
+ });
79
+ mockUseConfig.mockReturnValue({
80
+ ...(getDefaultsFromConfigSchema(configSchemaSwitchable) as Object),
81
+ title: 'My Stats',
82
+ data: [
83
+ {
84
+ concept: '5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
85
+ label: 'Tallitude',
86
+ },
87
+ {
88
+ concept: '2154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
89
+ },
90
+ { concept: '164162AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' },
91
+ { concept: '164163AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' },
92
+ ],
93
+ });
94
+
95
+ render(<ObsSwitchable patientUuid="123" />);
96
+
97
+ // Check table
98
+ expect(screen.getAllByRole('row')).toHaveLength(3);
99
+ const headerRow = screen.getAllByRole('row')[0];
100
+ expect(headerRow).toHaveTextContent('Tallitude');
101
+ expect(headerRow).toHaveTextContent('Weight');
102
+ expect(headerRow).toHaveTextContent('Chief Complaint');
103
+ expect(headerRow).toHaveTextContent('Power Level');
104
+ const firstRow = screen.getAllByRole('row')[1];
105
+ expect(firstRow).toHaveTextContent('180');
106
+ expect(firstRow).toHaveTextContent('70');
107
+ expect(firstRow).toHaveTextContent('Too strong');
108
+ expect(firstRow).toHaveTextContent('9001');
109
+ const secondRow = screen.getAllByRole('row')[2];
110
+ expect(secondRow).toHaveTextContent('182');
111
+ expect(secondRow).toHaveTextContent('72');
112
+ expect(secondRow).toHaveTextContent('--');
113
+ expect(secondRow).toHaveTextContent('--');
114
+
115
+ const user = userEvent.setup();
116
+ const chartViewButton = screen.getByLabelText('Chart view');
117
+ expect(chartViewButton).toBeInTheDocument();
118
+ await user.click(chartViewButton);
119
+
120
+ const tabs = screen.getByLabelText('Obs tabs');
121
+ expect(tabs).toHaveTextContent('Tallitude');
122
+ expect(tabs).toHaveTextContent('Weight');
123
+ expect(tabs).not.toHaveTextContent('Chief Complaint');
124
+ expect(tabs).toHaveTextContent('Power Level');
125
+
126
+ expect(mockLineChart).toHaveBeenNthCalledWith(
127
+ 1,
128
+ expect.objectContaining({
129
+ data: [
130
+ { group: 'Tallitude', key: '01-Jan-2021', value: 180 },
131
+ { group: 'Tallitude', key: '01-Feb-2021', value: 182 },
132
+ ],
133
+ options: expect.any(Object),
134
+ }),
135
+ {},
136
+ );
137
+
138
+ expect(mockLineChart).toHaveBeenNthCalledWith(
139
+ 2,
140
+ expect.objectContaining({
141
+ data: [
142
+ { group: 'Weight', key: '01-Jan-2021', value: 70 },
143
+ { group: 'Weight', key: '01-Feb-2021', value: 72 },
144
+ ],
145
+ options: expect.any(Object),
146
+ }),
147
+ {},
148
+ );
149
+
150
+ expect(mockLineChart).not.toHaveBeenCalledWith(
151
+ expect.objectContaining({
152
+ data: [expect.objectContaining({ group: 'Chief Complaint' })],
153
+ options: expect.any(Object),
154
+ }),
155
+ {},
156
+ );
157
+
158
+ expect(mockLineChart).toHaveBeenNthCalledWith(
159
+ 3,
160
+ expect.objectContaining({
161
+ data: [{ group: 'Power Level', key: '01-Jan-2021', value: 9001 }],
162
+ options: expect.any(Object),
163
+ }),
164
+ {},
165
+ );
166
+ });
167
+
168
+ it('should support showing graph tab by default', async () => {
169
+ mockUseObs.mockReturnValue({
170
+ data: mockObsData as Array<ObsResult>,
171
+ error: null,
172
+ isLoading: false,
173
+ isValidating: false,
174
+ });
175
+ mockUseConfig.mockReturnValue({
176
+ ...(getDefaultsFromConfigSchema(configSchemaSwitchable) as Object),
177
+ title: 'My Stats',
178
+ data: [{ concept: '5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' }, { concept: '2154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' }],
179
+ showGraphByDefault: true,
180
+ });
181
+
182
+ render(<ObsSwitchable patientUuid="123" />);
183
+
184
+ const tabs = screen.getByLabelText('Obs tabs');
185
+ expect(tabs).toHaveTextContent('Height');
186
+ expect(tabs).toHaveTextContent('Weight');
187
+
188
+ expect(mockLineChart).toHaveBeenNthCalledWith(
189
+ 1,
190
+ expect.objectContaining({
191
+ data: [
192
+ { group: 'Height', key: '01-Jan-2021', value: 180 },
193
+ { group: 'Height', key: '01-Feb-2021', value: 182 },
194
+ ],
195
+ options: expect.any(Object),
196
+ }),
197
+ {},
198
+ );
199
+ });
200
+
201
+ it('should support grouping into multiline graphs', async () => {
202
+ mockUseObs.mockReturnValue({
203
+ data: mockObsData as Array<ObsResult>,
204
+ error: null,
205
+ isLoading: false,
206
+ isValidating: false,
207
+ });
208
+ mockUseConfig.mockReturnValue({
209
+ ...(getDefaultsFromConfigSchema(configSchemaSwitchable) as Object),
210
+ title: 'My Stats',
211
+ showGraphByDefault: true,
212
+ data: [
213
+ { concept: '164163AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', graphGroup: 'Power Level' },
214
+ { concept: '5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', graphGroup: 'Biometrics' },
215
+ { concept: '2154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', graphGroup: 'Biometrics' },
216
+ ],
217
+ });
218
+
219
+ render(<ObsSwitchable patientUuid="123" />);
220
+
221
+ const tabs = screen.getByLabelText('Obs tabs');
222
+ expect(tabs).toHaveTextContent('Power Level');
223
+ expect(tabs).toHaveTextContent('Biometrics');
224
+
225
+ expect(mockLineChart).toHaveBeenNthCalledWith(
226
+ 1,
227
+ expect.objectContaining({
228
+ data: [{ group: 'Power Level', key: '01-Jan-2021', value: 9001 }],
229
+ options: expect.any(Object),
230
+ }),
231
+ {},
232
+ );
233
+
234
+ expect(mockLineChart).toHaveBeenNthCalledWith(
235
+ 2,
236
+ expect.objectContaining({
237
+ data: [
238
+ { group: 'Height', key: '01-Jan-2021', value: 180 },
239
+ { group: 'Height', key: '01-Feb-2021', value: 182 },
240
+ { group: 'Weight', key: '01-Jan-2021', value: 70 },
241
+ { group: 'Weight', key: '01-Feb-2021', value: 72 },
242
+ ],
243
+ options: expect.any(Object),
244
+ }),
245
+ {},
246
+ );
247
+ });
248
+
249
+ it('should hide the graph tab selection if there is only one graph', async () => {
250
+ mockUseObs.mockReturnValue({
251
+ data: mockObsData.filter((o) => o.conceptUuid === '164163AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA') as Array<ObsResult>,
252
+ error: null,
253
+ isLoading: false,
254
+ isValidating: false,
255
+ });
256
+ mockUseConfig.mockReturnValue({
257
+ ...(getDefaultsFromConfigSchema(configSchemaSwitchable) as Object),
258
+ title: 'My Stats',
259
+ showGraphByDefault: true,
260
+ data: [{ concept: '164163AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' }],
261
+ });
262
+
263
+ render(<ObsSwitchable patientUuid="123" />);
264
+
265
+ expect(screen.queryByLabelText('Obs tabs')).not.toBeInTheDocument();
266
+
267
+ expect(mockLineChart).toHaveBeenCalledWith(
268
+ expect.objectContaining({
269
+ data: [{ group: 'Power Level', key: '01-Jan-2021', value: 9001 }],
270
+ options: expect.any(Object),
271
+ }),
272
+ {},
273
+ );
274
+ });
275
+ });
@@ -33,7 +33,7 @@ const ObsTable: React.FC<ObsTableProps> = ({ patientUuid }) => {
33
33
  { key: 'date', header: t('dateAndTime', 'Date and time'), isSortable: true },
34
34
  ...config.data.map(({ concept, label }) => ({
35
35
  key: concept,
36
- header: label,
36
+ header: label || obss.find((o) => o.conceptUuid == concept)?.code.text,
37
37
  })),
38
38
  ];
39
39
 
@@ -12,7 +12,7 @@ export interface UseObsResult {
12
12
  isValidating: boolean;
13
13
  }
14
14
 
15
- type ObsResult = fhir.Observation & {
15
+ export type ObsResult = fhir.Observation & {
16
16
  conceptUuid: string;
17
17
  dataType?: string;
18
18
  valueDateTime?: string;
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "عرض الرسم البياني",
3
2
  "dateAndTime": "التاريخ والوقت",
4
- "displaying": "عرض",
5
- "encounterType": "نوع اللقاء",
6
- "tableView": "عرض الجدول"
3
+ "encounterType": "نوع اللقاء"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Vista de Gráfico",
3
2
  "dateAndTime": "Fecha y hora",
4
- "displaying": "Mostrando",
5
- "encounterType": "Tipo de encuentro",
6
- "tableView": "Vista de Tabla"
3
+ "encounterType": "Tipo de encuentro"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Vue graphique",
3
2
  "dateAndTime": "Date et heure",
4
- "displaying": "En cours d'affichage",
5
- "encounterType": "Type de consultation",
6
- "tableView": "Vue tabulaire"
3
+ "encounterType": "Type de consultation"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "תצוגת תרשים",
3
2
  "dateAndTime": "תאריך ושעה",
4
- "displaying": "מציג",
5
- "encounterType": "סוג הביקור",
6
- "tableView": "תצוגת טבלה"
3
+ "encounterType": "סוג הביקור"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Tampilan Grafik",
3
2
  "dateAndTime": "Tanggal dan waktu",
4
- "displaying": "Menampilkan",
5
- "encounterType": "Jenis pertemuan",
6
- "tableView": "Tampilan Tabel"
3
+ "encounterType": "Jenis pertemuan"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Vista grafico",
3
2
  "dateAndTime": "Data e ora",
4
- "displaying": "Visualizzazione",
5
- "encounterType": "Tipo di incontro",
6
- "tableView": "Vista tabella"
3
+ "encounterType": "Tipo di incontro"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "გრაფიკის ხედი",
3
2
  "dateAndTime": "თარიღი და დრო",
4
- "displaying": "ნაჩვენებია",
5
- "encounterType": "კონსულტაციის ტიპი",
6
- "tableView": "ცხრილის ხედი"
3
+ "encounterType": "კონსულტაციის ტიპი"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "មើលគំនូសតាង",
3
2
  "dateAndTime": "កាលបរិច្ឆេទ និងម៉ោង",
4
- "displaying": "ការបង្ហាញ",
5
- "encounterType": "ប្រភេទនៃការជួបប្រទះ",
6
- "tableView": "មើលតារាង"
3
+ "encounterType": "ប្រភេទនៃការជួបប្រទះ"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Visualização de Gráfico",
3
2
  "dateAndTime": "Data e hora",
4
- "displaying": "Visualizando",
5
- "encounterType": "Tipo de consulta",
6
- "tableView": "Visualização em Tabela"
3
+ "encounterType": "Tipo de consulta"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Visualização do prontuário",
3
2
  "dateAndTime": "Data e hora",
4
- "displaying": "Exibindo",
5
- "encounterType": "Tipo de encontro",
6
- "tableView": "Visualização em tabela"
3
+ "encounterType": "Tipo de encontro"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Vizualizare grafica",
3
2
  "dateAndTime": "Data si ora",
4
- "displaying": "Se afiseaza",
5
- "encounterType": "Tip intalnire",
6
- "tableView": "Vizualizare tabel"
3
+ "encounterType": "Tip intalnire"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }
@@ -1,7 +1,4 @@
1
1
  {
2
- "chartView": "Chart View",
3
2
  "dateAndTime": "Date and time",
4
- "displaying": "Displaying",
5
- "encounterType": "Encounter type",
6
- "tableView": "Table View"
3
+ "encounterType": "Encounter type"
7
4
  }