@openmrs/esm-generic-patient-widgets-app 11.3.1-patch.9064 → 11.3.1-patch.9508
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +23 -23
- package/dist/1119.js +1 -1
- package/dist/1197.js +1 -1
- package/dist/1936.js +1 -0
- package/dist/1936.js.map +1 -0
- package/dist/2146.js +1 -1
- package/dist/2606.js +2 -0
- package/dist/2606.js.map +1 -0
- package/dist/2690.js +1 -1
- package/dist/3099.js +1 -1
- package/dist/3204.js +2 -0
- package/dist/3204.js.map +1 -0
- package/dist/3584.js +1 -1
- package/dist/4055.js +1 -1
- package/dist/4132.js +1 -1
- package/dist/4300.js +1 -1
- package/dist/4335.js +1 -1
- package/dist/439.js +1 -0
- package/dist/4618.js +1 -1
- package/dist/4652.js +1 -1
- package/dist/4944.js +1 -1
- package/dist/5173.js +1 -1
- package/dist/5241.js +1 -1
- package/dist/5442.js +1 -1
- package/dist/5661.js +1 -1
- package/dist/5670.js +1 -1
- package/dist/5670.js.map +1 -1
- package/dist/6022.js +1 -1
- package/dist/6336.js +1 -0
- package/dist/6336.js.map +1 -0
- package/dist/6468.js +1 -1
- package/dist/6589.js +1 -0
- package/dist/6679.js +1 -1
- package/dist/6840.js +1 -1
- package/dist/6859.js +1 -1
- package/dist/7097.js +1 -1
- package/dist/7159.js +1 -1
- package/dist/723.js +1 -1
- package/dist/7545.js +2 -0
- package/dist/7545.js.map +1 -0
- package/dist/7617.js +1 -1
- package/dist/795.js +1 -1
- package/dist/8163.js +1 -1
- package/dist/8349.js +1 -1
- package/dist/8371.js +1 -0
- package/dist/8618.js +1 -1
- package/dist/8803.js +1 -1
- package/dist/8803.js.map +1 -1
- package/dist/890.js +1 -1
- package/dist/9214.js +1 -1
- package/dist/9538.js +1 -1
- package/dist/9569.js +1 -1
- package/dist/986.js +1 -1
- package/dist/9879.js +1 -1
- package/dist/9895.js +1 -1
- package/dist/9900.js +1 -1
- package/dist/9913.js +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-generic-patient-widgets-app.js +1 -1
- package/dist/openmrs-esm-generic-patient-widgets-app.js.buildmanifest.json +285 -219
- package/dist/openmrs-esm-generic-patient-widgets-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +4 -4
- package/src/config-schema-obs-horizontal.ts +12 -0
- package/src/config-schema-obs-switchable.ts +7 -1
- package/src/obs-graph/obs-graph.component.tsx +85 -36
- package/src/obs-graph/obs-graph.scss +19 -11
- package/src/obs-switchable/obs-switchable.component.tsx +12 -11
- package/src/obs-switchable/obs-switchable.test.tsx +145 -42
- package/src/obs-table/obs-table.component.tsx +104 -20
- package/src/obs-table-horizontal/obs-table-horizontal.component.tsx +470 -57
- package/src/obs-table-horizontal/obs-table-horizontal.resource.ts +67 -0
- package/src/obs-table-horizontal/obs-table-horizontal.scss +47 -0
- package/src/obs-table-horizontal/obs-table-horizontal.test.tsx +923 -0
- package/src/resources/useConcepts.ts +51 -0
- package/src/resources/useEncounterTypes.ts +34 -0
- package/src/resources/useObs.ts +40 -31
- package/translations/am.json +7 -1
- package/translations/ar.json +7 -1
- package/translations/ar_SY.json +7 -1
- package/translations/bn.json +7 -1
- package/translations/cs.json +10 -0
- package/translations/de.json +7 -1
- package/translations/en.json +7 -1
- package/translations/en_US.json +7 -1
- package/translations/es.json +7 -1
- package/translations/es_MX.json +7 -1
- package/translations/fr.json +7 -1
- package/translations/he.json +7 -1
- package/translations/hi.json +7 -1
- package/translations/hi_IN.json +7 -1
- package/translations/id.json +7 -1
- package/translations/it.json +7 -1
- package/translations/ka.json +7 -1
- package/translations/km.json +7 -1
- package/translations/ku.json +7 -1
- package/translations/ky.json +7 -1
- package/translations/lg.json +7 -1
- package/translations/ne.json +7 -1
- package/translations/pl.json +7 -1
- package/translations/pt.json +7 -1
- package/translations/pt_BR.json +7 -1
- package/translations/qu.json +7 -1
- package/translations/ro_RO.json +7 -1
- package/translations/ru_RU.json +7 -1
- package/translations/si.json +7 -1
- package/translations/sq.json +10 -0
- package/translations/sw.json +7 -1
- package/translations/sw_KE.json +7 -1
- package/translations/tr.json +7 -1
- package/translations/tr_TR.json +7 -1
- package/translations/uk.json +7 -1
- package/translations/uz.json +7 -1
- package/translations/uz@Latn.json +7 -1
- package/translations/uz_UZ.json +7 -1
- package/translations/vi.json +7 -1
- package/translations/zh.json +7 -1
- package/translations/zh_CN.json +7 -1
- package/translations/zh_TW.json +10 -0
- package/dist/1559.js +0 -2
- package/dist/1559.js.map +0 -1
- package/dist/251.js +0 -2
- package/dist/251.js.map +0 -1
- package/dist/5639.js +0 -1
- package/dist/5639.js.map +0 -1
- package/dist/5986.js +0 -1
- package/dist/5986.js.map +0 -1
- package/dist/6781.js +0 -2
- package/dist/6781.js.map +0 -1
- /package/dist/{251.js.LICENSE.txt → 2606.js.LICENSE.txt} +0 -0
- /package/dist/{6781.js.LICENSE.txt → 3204.js.LICENSE.txt} +0 -0
- /package/dist/{1559.js.LICENSE.txt → 7545.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { openmrsFetch, type FetchResponse, restBaseUrl, showSnackbar } from '@openmrs/esm-framework';
|
|
2
|
+
import chunk from 'lodash/chunk';
|
|
3
|
+
import useSWRImmutable from 'swr/immutable';
|
|
4
|
+
|
|
5
|
+
export interface ConceptReferenceResponse {
|
|
6
|
+
[key: string]: {
|
|
7
|
+
uuid: string;
|
|
8
|
+
display: string;
|
|
9
|
+
datatype: {
|
|
10
|
+
name: string;
|
|
11
|
+
};
|
|
12
|
+
answers: Array<{
|
|
13
|
+
uuid: string;
|
|
14
|
+
display: string;
|
|
15
|
+
}>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function useConcepts(conceptUuids: Array<string>) {
|
|
20
|
+
const { data, error, isLoading } = useSWRImmutable<Array<FetchResponse<ConceptReferenceResponse>>, Error>(
|
|
21
|
+
conceptUuids && conceptUuids.length > 0 ? getConceptReferenceUrls(conceptUuids) : null,
|
|
22
|
+
(key: Array<string>) => Promise.all(key.map((url) => openmrsFetch<ConceptReferenceResponse>(url))),
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
const res: ConceptReferenceResponse = data?.reduce((acc, response) => ({ ...acc, ...response.data }), {});
|
|
26
|
+
const concepts = res
|
|
27
|
+
? Object.values(res).map((value) => ({
|
|
28
|
+
uuid: value.uuid,
|
|
29
|
+
display: value.display,
|
|
30
|
+
dataType: value.datatype.name,
|
|
31
|
+
answers: value.answers,
|
|
32
|
+
}))
|
|
33
|
+
: [];
|
|
34
|
+
|
|
35
|
+
if (error) {
|
|
36
|
+
showSnackbar({
|
|
37
|
+
title: error.name,
|
|
38
|
+
subtitle: error.message,
|
|
39
|
+
kind: 'error',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return { concepts, isLoading };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function getConceptReferenceUrls(conceptUuids: Array<string>) {
|
|
47
|
+
return chunk(conceptUuids, 10).map(
|
|
48
|
+
(partition) =>
|
|
49
|
+
`${restBaseUrl}/conceptreferences?references=${partition.join(',')}&v=custom:(uuid,display,datatype,answers)`,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { restBaseUrl, type Privilege } from '@openmrs/esm-framework';
|
|
2
|
+
import useSWRImmutable from 'swr/immutable';
|
|
3
|
+
|
|
4
|
+
export interface EncounterType {
|
|
5
|
+
uuid: string;
|
|
6
|
+
editPrivilege?: Privilege;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface UseEncountersResult {
|
|
10
|
+
encounterTypes: Array<EncounterType>;
|
|
11
|
+
error: Error;
|
|
12
|
+
isLoading: boolean;
|
|
13
|
+
isValidating: boolean;
|
|
14
|
+
mutate: () => Promise<any>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function useEncounterTypes() {
|
|
18
|
+
const customRep = 'custom:(uuid,editPrivilege)';
|
|
19
|
+
const url = new URL(`${restBaseUrl}/encountertype`, window.location.toString());
|
|
20
|
+
url.searchParams.set('v', customRep);
|
|
21
|
+
|
|
22
|
+
const { data, error, isLoading, isValidating, mutate } = useSWRImmutable<
|
|
23
|
+
{ data: { results: Array<EncounterType> } },
|
|
24
|
+
Error
|
|
25
|
+
>(`${restBaseUrl}/encountertype?v=${customRep}`);
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
encounterTypes: data?.data?.results || [],
|
|
29
|
+
error: error,
|
|
30
|
+
isLoading,
|
|
31
|
+
isValidating,
|
|
32
|
+
mutate,
|
|
33
|
+
};
|
|
34
|
+
}
|
package/src/resources/useObs.ts
CHANGED
|
@@ -2,14 +2,20 @@ import useSWR from 'swr';
|
|
|
2
2
|
import { openmrsFetch, fhirBaseUrl, useConfig } from '@openmrs/esm-framework';
|
|
3
3
|
import { type ConfigObjectSwitchable } from '../config-schema-obs-switchable';
|
|
4
4
|
import { type ConfigObjectHorizontal } from '../config-schema-obs-horizontal';
|
|
5
|
+
import { useConcepts } from './useConcepts';
|
|
5
6
|
|
|
6
7
|
type CommonConfig = ConfigObjectSwitchable | ConfigObjectHorizontal;
|
|
7
8
|
|
|
8
9
|
export interface UseObsResult {
|
|
9
|
-
data:
|
|
10
|
+
data: {
|
|
11
|
+
observations: Array<ObsResult>;
|
|
12
|
+
concepts: Array<{ uuid: string; display: string; dataType: string }>;
|
|
13
|
+
encounters: Array<{ reference: string; display: string; encounterTypeUuid: string }>;
|
|
14
|
+
};
|
|
10
15
|
error: Error;
|
|
11
16
|
isLoading: boolean;
|
|
12
17
|
isValidating: boolean;
|
|
18
|
+
mutate: () => Promise<any>;
|
|
13
19
|
}
|
|
14
20
|
|
|
15
21
|
export type ObsResult = fhir.Observation & {
|
|
@@ -22,40 +28,53 @@ export type ObsResult = fhir.Observation & {
|
|
|
22
28
|
* Reference to the encounter resource, in the format `Encounter/{uuid}`
|
|
23
29
|
*/
|
|
24
30
|
reference: string;
|
|
31
|
+
encounterTypeUuid?: string;
|
|
25
32
|
};
|
|
26
33
|
};
|
|
27
34
|
|
|
28
35
|
export const pageSize = 100;
|
|
29
36
|
|
|
30
|
-
|
|
31
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Fetches the observations for the concepts in the config for this widget.
|
|
39
|
+
* For any concept that has neither label nor obs, the concept is fetched to
|
|
40
|
+
* get the label.
|
|
41
|
+
*/
|
|
42
|
+
export function useObs(patientUuid: string): UseObsResult {
|
|
43
|
+
const { encounterTypes, data } = useConfig<CommonConfig>();
|
|
32
44
|
const urlEncounterTypes: string = encounterTypes.length ? `&encounter.type=${encounterTypes.toString()}` : '';
|
|
33
45
|
|
|
46
|
+
// TODO: Make sorting respect oldestFirst/graphOldestFirst
|
|
34
47
|
let url = `${fhirBaseUrl}/Observation?subject:Patient=${patientUuid}&code=${data
|
|
35
48
|
.map((d) => d.concept)
|
|
36
|
-
.join(',')}&_summary=data&_sort=-date&_count=${pageSize}${urlEncounterTypes}`;
|
|
37
|
-
|
|
38
|
-
if (showEncounterType) {
|
|
39
|
-
url += '&_include=Observation:encounter';
|
|
40
|
-
}
|
|
49
|
+
.join(',')}&_summary=data&_include=Observation:encounter&_sort=-date&_count=${pageSize}${urlEncounterTypes}`;
|
|
41
50
|
|
|
42
|
-
const {
|
|
51
|
+
const {
|
|
52
|
+
data: result,
|
|
53
|
+
error,
|
|
54
|
+
isLoading,
|
|
55
|
+
isValidating,
|
|
56
|
+
mutate,
|
|
57
|
+
} = useSWR<{ data: fhir.Bundle }, Error>(url, openmrsFetch);
|
|
43
58
|
|
|
44
|
-
const
|
|
45
|
-
const observations = filterAndMapObservations(result?.data?.entry, encounters);
|
|
59
|
+
const { concepts } = useConcepts(data.map((d) => d.concept));
|
|
46
60
|
|
|
61
|
+
const encounters = getEncountersFromResources(result?.data?.entry);
|
|
62
|
+
const observations = filterAndMapObservations(result?.data?.entry, encounters, concepts);
|
|
47
63
|
return {
|
|
48
|
-
data: observations,
|
|
64
|
+
data: { observations, concepts, encounters },
|
|
49
65
|
error: error,
|
|
50
66
|
isLoading,
|
|
51
67
|
isValidating,
|
|
68
|
+
mutate,
|
|
52
69
|
};
|
|
53
70
|
}
|
|
54
71
|
|
|
55
72
|
function filterAndMapObservations(
|
|
56
73
|
entries: Array<fhir.BundleEntry>,
|
|
57
|
-
encounters: Array<{ reference: string; display: string }>,
|
|
74
|
+
encounters: Array<{ reference: string; display: string; encounterTypeUuid: string }>,
|
|
75
|
+
concepts: Array<{ uuid: string; display: string; dataType: string }>,
|
|
58
76
|
): ObsResult[] {
|
|
77
|
+
const conceptByUuid = Object.fromEntries(concepts.map((c) => [c.uuid, c]));
|
|
59
78
|
return (
|
|
60
79
|
entries
|
|
61
80
|
?.filter((entry) => entry?.resource?.resourceType === 'Observation')
|
|
@@ -64,39 +83,29 @@ function filterAndMapObservations(
|
|
|
64
83
|
const observation: ObsResult = {
|
|
65
84
|
...resource,
|
|
66
85
|
conceptUuid: resource.code.coding.find((c) => isUuid(c.code))?.code,
|
|
86
|
+
dataType: conceptByUuid[resource.code.coding.find((c) => isUuid(c.code))?.code]?.dataType,
|
|
67
87
|
};
|
|
68
|
-
if (resource.hasOwnProperty('valueDateTime')) {
|
|
69
|
-
observation.dataType = 'DateTime';
|
|
70
|
-
}
|
|
71
88
|
|
|
72
|
-
|
|
73
|
-
observation.dataType = 'Text';
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (entry.resource.hasOwnProperty('valueQuantity')) {
|
|
77
|
-
observation.dataType = 'Number';
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (entry.resource.hasOwnProperty('valueCodeableConcept')) {
|
|
81
|
-
observation.dataType = 'Coded';
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
observation.encounter.name = encounters.find(
|
|
89
|
+
const encounter = encounters.find(
|
|
85
90
|
(e) =>
|
|
86
91
|
e.reference === (resource as fhir.Observation & { encounter: { reference?: string } }).encounter.reference,
|
|
87
|
-
)
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
observation.encounter.name = encounter?.display;
|
|
95
|
+
observation.encounter.encounterTypeUuid = encounter?.encounterTypeUuid;
|
|
88
96
|
|
|
89
97
|
return observation;
|
|
90
98
|
}) || []
|
|
91
99
|
);
|
|
92
100
|
}
|
|
93
101
|
|
|
94
|
-
function
|
|
102
|
+
function getEncountersFromResources(resources: Array<fhir.BundleEntry>) {
|
|
95
103
|
return resources
|
|
96
104
|
?.filter((entry) => entry?.resource?.resourceType === 'Encounter')
|
|
97
105
|
.map((entry: fhir.BundleEntry) => ({
|
|
98
106
|
reference: `Encounter/${entry.resource.id}`,
|
|
99
107
|
display: (entry.resource as fhir.Encounter).type?.[0]?.coding?.[0]?.display || '--',
|
|
108
|
+
encounterTypeUuid: (entry.resource as fhir.Encounter).type?.[0]?.coding?.[0]?.code,
|
|
100
109
|
}));
|
|
101
110
|
}
|
|
102
111
|
|
package/translations/am.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/ar.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "التاريخ والوقت",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "نوع اللقاء",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/ar_SY.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/bn.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
4
|
+
"dateAndTime": "Date and time",
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
10
|
+
}
|
package/translations/de.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/en.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/en_US.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/es.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Fecha y hora",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Tipo de encuentro",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/es_MX.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/fr.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date et heure",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Type de consultation",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/he.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "תאריך ושעה",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "סוג הביקור",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/hi.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/hi_IN.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/id.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Tanggal dan waktu",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Jenis pertemuan",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/it.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Data e ora",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Tipo di incontro",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/ka.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "თარიღი და დრო",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "კონსულტაციის ტიპი",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/km.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "កាលបរិច្ឆេទ និងម៉ោង",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "ប្រភេទនៃការជួបប្រទះ",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/ku.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/ky.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/lg.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/ne.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/pl.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/pt.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Data e hora",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Tipo de consulta",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/pt_BR.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Data e hora",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Tipo de encontro",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/qu.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/ro_RO.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Data si ora",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Tip intalnire",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/ru_RU.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/si.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
4
|
+
"dateAndTime": "Date and time",
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
10
|
+
}
|
package/translations/sw.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|
package/translations/sw_KE.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"addEncounter": "Add encounter",
|
|
3
|
+
"date": "Date",
|
|
2
4
|
"dateAndTime": "Date and time",
|
|
3
|
-
"
|
|
5
|
+
"editabilityNote": "Tap an observation to edit",
|
|
6
|
+
"encounterType": "Encounter type",
|
|
7
|
+
"errorSavingObservation": "Error saving observation",
|
|
8
|
+
"noValue": "No value",
|
|
9
|
+
"observationSaved": "Observation saved successfully"
|
|
4
10
|
}
|