@openmrs/esm-form-engine-lib 4.1.1-pre.2374 → 4.1.1-pre.2382

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.
@@ -7,6 +7,7 @@ export declare function getLocationsByTag(tag: string): Promise<any>;
7
7
  export declare function getAllLocations(): Promise<any>;
8
8
  export declare function getPreviousEncounter(patientUuid: string, encounterType: string): Promise<any>;
9
9
  export declare function getLatestObs(patientUuid: string, conceptUuid: string, encounterTypeUuid?: string): Promise<FHIRObsResource>;
10
+ export declare function getLatestObsForConceptSet(patientUuid: string, conceptUuid: string, encounterTypeUuid?: string): Promise<FHIRObsResource[]>;
10
11
  /**
11
12
  * Fetches an OpenMRS form using either its name or UUID.
12
13
  * @param {string} nameOrUUID - The form's name or UUID.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EAChB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,OAAO,KAAA,EAAE,aAAa,CAAC,EAAE,MAAM,0DAa9F;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,0DAoBlH;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,gBAExD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,gBAE5C;AAED,wBAAgB,eAAe,iBAE9B;AAED,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBASpF;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,eAAe,CAAC,CAQ1B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqBtF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAc1E;AAGD,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,gBAS7D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,0DAarG;AAED,wBAAgB,qBAAqB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,0DAgB9F;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0DAgBxF;AAED,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,SAAS,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,EAC5B,eAAe,EAAE,eAAe,0DAmBjC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EAChB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,OAAO,KAAA,EAAE,aAAa,CAAC,EAAE,MAAM,0DAa9F;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,0DAoBlH;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,gBAExD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,gBAE5C;AAED,wBAAgB,eAAe,iBAE9B;AAED,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBASpF;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,eAAe,CAAC,CAO1B;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC,CAgB5B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqBtF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAc1E;AAGD,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,gBAS7D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,0DAarG;AAED,wBAAgB,qBAAqB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,0DAgB9F;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0DAgBxF;AAED,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,SAAS,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,EAC5B,eAAe,EAAE,eAAe,0DAmBjC"}
package/dist/api/index.js CHANGED
@@ -58,6 +58,23 @@ export async function getLatestObs(patientUuid, conceptUuid, encounterTypeUuid)
58
58
  const { data } = await openmrsFetch(`${fhirBaseUrl}/Observation?${params}`);
59
59
  return data.entry?.length ? data.entry[0].resource : null;
60
60
  }
61
+ export async function getLatestObsForConceptSet(patientUuid, conceptUuid, encounterTypeUuid) {
62
+ // First, find the single latest obs to identify the encounter
63
+ const latestObs = await getLatestObs(patientUuid, conceptUuid, encounterTypeUuid);
64
+ if (!latestObs) {
65
+ return [];
66
+ }
67
+ const encounterId = latestObs.encounter?.reference?.split('/').pop();
68
+ if (!encounterId) {
69
+ return [
70
+ latestObs
71
+ ];
72
+ }
73
+ // Fetch ALL obs for that concept within the same encounter
74
+ const params = `patient=${patientUuid}&code=${conceptUuid}&encounter=${encounterId}`;
75
+ const { data } = await openmrsFetch(`${fhirBaseUrl}/Observation?${params}`);
76
+ return data.entry?.map((e)=>e.resource) ?? [];
77
+ }
61
78
  /**
62
79
  * Fetches an OpenMRS form using either its name or UUID.
63
80
  * @param {string} nameOrUUID - The form's name or UUID.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-form-engine-lib",
3
- "version": "4.1.1-pre.2374",
3
+ "version": "4.1.1-pre.2382",
4
4
  "description": "React Form Engine for O3",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
package/src/api/index.ts CHANGED
@@ -77,15 +77,36 @@ export async function getLatestObs(
77
77
  conceptUuid: string,
78
78
  encounterTypeUuid?: string,
79
79
  ): Promise<FHIRObsResource> {
80
- let params = `patient=${patientUuid}&code=${conceptUuid}${
81
- encounterTypeUuid ? `&encounter.type=${encounterTypeUuid}` : ''
82
- }`;
80
+ let params = `patient=${patientUuid}&code=${conceptUuid}${encounterTypeUuid ? `&encounter.type=${encounterTypeUuid}` : ''
81
+ }`;
83
82
  // the latest obs
84
83
  params += '&_sort=-date&_count=1';
85
84
  const { data } = await openmrsFetch(`${fhirBaseUrl}/Observation?${params}`);
86
85
  return data.entry?.length ? data.entry[0].resource : null;
87
86
  }
88
87
 
88
+ export async function getLatestObsForConceptSet(
89
+ patientUuid: string,
90
+ conceptUuid: string,
91
+ encounterTypeUuid?: string,
92
+ ): Promise<FHIRObsResource[]> {
93
+ // First, find the single latest obs to identify the encounter
94
+ const latestObs = await getLatestObs(patientUuid, conceptUuid, encounterTypeUuid);
95
+ if (!latestObs) {
96
+ return [];
97
+ }
98
+
99
+ const encounterId = latestObs.encounter?.reference?.split('/').pop();
100
+ if (!encounterId) {
101
+ return [latestObs];
102
+ }
103
+
104
+ // Fetch ALL obs for that concept within the same encounter
105
+ const params = `patient=${patientUuid}&code=${conceptUuid}&encounter=${encounterId}`;
106
+ const { data } = await openmrsFetch(`${fhirBaseUrl}/Observation?${params}`);
107
+ return data.entry?.map((e) => e.resource) ?? [];
108
+ }
109
+
89
110
  /**
90
111
  * Fetches an OpenMRS form using either its name or UUID.
91
112
  * @param {string} nameOrUUID - The form's name or UUID.