@bahmni/appointments-app 0.0.1-dev.191 → 0.0.1-dev.193

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/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { aG as t } from "./index-DtAPMuCM.js";
1
+ import { aG as t } from "./index-Dsl0jQut.js";
2
2
  export {
3
3
  t as AppointmentsApp
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bahmni/appointments-app",
3
- "version": "0.0.1-dev.191",
3
+ "version": "0.0.1-dev.193",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -1,424 +0,0 @@
1
- import { jsx as s, jsxs as p, Fragment as k } from "react/jsx-runtime";
2
- import { u as ee, p as re, y as ae, d as te, a as A, e as oe, b as ne, $ as se, A as q, Y as de, G as me, c as ie, P as le, Z as U, h as ce, m as ue, T as R, f as be, F as pe, q as fe, W as _e, i as $e, w as he, j as ve, k as ge, l as ye } from "./index-DtAPMuCM.js";
3
- import { useState as P, useMemo as g, useCallback as F } from "react";
4
- const Ne = "_formsTableBody_1pd36_1", Ae = "_customAccordianItem_1pd36_6", Fe = "_formContent_1pd36_18", Re = "_formDetailsContainer_1pd36_25", Le = "_observation_1pd36_30", Ce = "_groupContainer_1pd36_39", Oe = "_rowContainer_1pd36_43", Ie = "_groupLabel_1pd36_48", Te = "_rowLabel_1pd36_58", Me = "_rowValue_1pd36_67", Ve = "_groupMembers_1pd36_75", Se = "_memberRow_1pd36_81", we = "_memberLabel_1pd36_86", De = "_memberValue_1pd36_94", Ee = "_abnormalValue_1pd36_102", xe = "_commentSection_1pd36_110", Be = "_commentText_1pd36_116", Ge = "_nestedGroup_1pd36_125", qe = "_nestedGroupLabel_1pd36_132", Ue = "_nestedGroupMembers_1pd36_141", o = {
5
- formsTableBody: Ne,
6
- customAccordianItem: Ae,
7
- formContent: Fe,
8
- formDetailsContainer: Re,
9
- observation: Le,
10
- groupContainer: Ce,
11
- rowContainer: Oe,
12
- groupLabel: Ie,
13
- rowLabel: Te,
14
- rowValue: Me,
15
- groupMembers: Ve,
16
- memberRow: Se,
17
- memberLabel: we,
18
- memberValue: De,
19
- abnormalValue: Ee,
20
- commentSection: xe,
21
- commentText: Be,
22
- nestedGroup: Ge,
23
- nestedGroupLabel: qe,
24
- nestedGroupMembers: Ue
25
- }, H = (e) => {
26
- const r = be(e);
27
- return r === "Image" ? /* @__PURE__ */ s(
28
- pe,
29
- {
30
- imageSrc: e,
31
- alt: e,
32
- id: `${e}-img`
33
- }
34
- ) : r === "Video" ? /* @__PURE__ */ s(fe, { id: `${e}-video`, videoSrc: e }) : r === "PDF" ? /* @__PURE__ */ s(_e, { id: `${e}-pdf`, src: e }) : e;
35
- }, j = (e) => {
36
- const r = e.observationValue?.unit, n = e.observationValue?.referenceRange?.low?.value, a = e.observationValue?.referenceRange?.high?.value, d = n != null, c = a != null, m = d && c ? ` (${n} - ${a})` : d ? ` (>${n})` : c ? ` (<${a})` : "", t = e.observationValue?.isAbnormal === !0;
37
- return { units: r, rangeString: m, isAbnormal: t };
38
- }, K = ({
39
- member: e,
40
- depth: r = 0,
41
- memberIndex: n = 0,
42
- formName: a = "",
43
- comment: d
44
- }) => {
45
- const c = e.members && e.members.length > 0, m = e.display, t = a ? `${a}-` : "";
46
- if (c)
47
- return /* @__PURE__ */ p(
48
- "div",
49
- {
50
- className: o.nestedGroup,
51
- "data-testid": `${t}obs-nested-group-${m}-${n}`,
52
- children: [
53
- /* @__PURE__ */ s(
54
- "div",
55
- {
56
- className: o.nestedGroupLabel,
57
- "data-testid": `${t}obs-nested-group-label-${m}-${n}`,
58
- style: { paddingLeft: `${r * 16}px` },
59
- children: m
60
- }
61
- ),
62
- /* @__PURE__ */ s(
63
- "div",
64
- {
65
- className: o.nestedGroupMembers,
66
- "data-testid": `${t}obs-nested-group-members-${m}-${n}`,
67
- children: e.members?.map((y, N) => /* @__PURE__ */ s(
68
- K,
69
- {
70
- member: y,
71
- depth: r + 1,
72
- memberIndex: N,
73
- formName: a
74
- },
75
- `${y.id}`
76
- ))
77
- }
78
- )
79
- ]
80
- }
81
- );
82
- const { units: b, rangeString: h, isAbnormal: f } = j(e), _ = e.observationValue?.value?.toString(), $ = _ ? H(_) : null;
83
- return /* @__PURE__ */ p(k, { children: [
84
- /* @__PURE__ */ p(
85
- "div",
86
- {
87
- className: o.memberRow,
88
- "data-testid": `${t}obs-member-row-${m}-${n}`,
89
- style: { paddingLeft: `${r * 16}px` },
90
- children: [
91
- /* @__PURE__ */ p(
92
- "p",
93
- {
94
- className: R(
95
- o.memberLabel,
96
- f ? o.abnormalValue : ""
97
- ),
98
- "data-testid": `${t}obs-member-label-${m}-${n}`,
99
- children: [
100
- m,
101
- h
102
- ]
103
- }
104
- ),
105
- /* @__PURE__ */ p(
106
- "div",
107
- {
108
- className: R(
109
- o.memberValue,
110
- f ? o.abnormalValue : ""
111
- ),
112
- "data-testid": `${t}obs-member-value-${m}-${n}`,
113
- children: [
114
- $,
115
- b && ` ${b}`
116
- ]
117
- }
118
- )
119
- ]
120
- }
121
- ),
122
- d && /* @__PURE__ */ s(
123
- "div",
124
- {
125
- className: o.commentSection,
126
- "data-testid": `${t}obs-member-comment-${m}-${n}`,
127
- style: { paddingLeft: `${r * 16}px` },
128
- children: /* @__PURE__ */ p("span", { className: o.commentText, children: [
129
- d,
130
- e.encounter?.provider && ` - by ${e.encounter.provider}`
131
- ] })
132
- }
133
- )
134
- ] });
135
- }, Pe = ({
136
- observation: e,
137
- index: r,
138
- formName: n = "",
139
- comment: a
140
- }) => {
141
- const d = e.members && e.members.length > 0, { units: c, rangeString: m, isAbnormal: t } = j(e), b = n ? `${n}-` : "", h = e.observationValue?.value?.toString(), f = h ? H(h) : null;
142
- return /* @__PURE__ */ p(
143
- "div",
144
- {
145
- className: o.observation,
146
- "data-testid": `${b}observation-item-${e.display}-${r}`,
147
- children: [
148
- /* @__PURE__ */ p(
149
- "div",
150
- {
151
- className: d ? o.groupContainer : o.rowContainer,
152
- "data-testid": `${b}observation-container-${e.display}-${r}`,
153
- children: [
154
- /* @__PURE__ */ p(
155
- "p",
156
- {
157
- className: R(
158
- d ? o.groupLabel : o.rowLabel,
159
- !d && t ? o.abnormalValue : ""
160
- ),
161
- "data-testid": `${b}observation-label-${e.display}-${r}`,
162
- children: [
163
- e.display,
164
- !d && m && /* @__PURE__ */ s("span", { className: o.rangeInfo, children: m })
165
- ]
166
- }
167
- ),
168
- d ? /* @__PURE__ */ s(
169
- "div",
170
- {
171
- className: o.groupMembers,
172
- "data-testid": `${b}observation-group-members-${e.display}-${r}`,
173
- children: e.members?.map((_, $) => /* @__PURE__ */ s(
174
- K,
175
- {
176
- member: _,
177
- depth: 0,
178
- memberIndex: $,
179
- formName: n
180
- },
181
- `${_.id}`
182
- ))
183
- }
184
- ) : /* @__PURE__ */ p(
185
- "div",
186
- {
187
- className: R(
188
- o.rowValue,
189
- t ? o.abnormalValue : ""
190
- ),
191
- "data-testid": `${b}observation-value-${e.display}-${r}`,
192
- children: [
193
- f,
194
- c && ` ${c}`
195
- ]
196
- }
197
- )
198
- ]
199
- }
200
- ),
201
- a && /* @__PURE__ */ s(
202
- "div",
203
- {
204
- className: o.commentSection,
205
- "data-testid": `${b}observation-comment-${e.display}-${r}`,
206
- children: /* @__PURE__ */ p("span", { className: o.commentText, children: [
207
- a,
208
- e.encounter?.provider && ` - by ${e.encounter.provider}`
209
- ] })
210
- }
211
- )
212
- ]
213
- },
214
- `${e.id}-${r}`
215
- );
216
- }, ke = (e) => e ? e.extension?.find(
217
- (r) => r.url === $e
218
- )?.valueString : void 0, He = (e) => {
219
- if (e)
220
- return e.note?.[0]?.text;
221
- }, je = (e, r) => e.entry?.find((n) => n.resource?.id === r)?.resource, I = (e, r) => {
222
- const n = je(e, r);
223
- return n ? {
224
- formFieldPath: ke(n),
225
- comment: He(n)
226
- } : {};
227
- }, Ke = (e, r) => {
228
- if (!e?.entry || !r)
229
- return [];
230
- const n = ce(e);
231
- return [
232
- ...n.observations.map((a) => {
233
- const { formFieldPath: d, comment: c } = I(
234
- e,
235
- a.id
236
- );
237
- return { obs: a, formFieldPath: d, comment: c };
238
- }),
239
- ...n.groupedObservations.flatMap((a) => {
240
- const { formFieldPath: d } = I(e, a.id);
241
- return (a.members ?? []).map((c) => {
242
- const { comment: m } = I(e, c.id);
243
- return { obs: c, formFieldPath: d, comment: m };
244
- });
245
- })
246
- ].filter(
247
- ({ formFieldPath: a }) => !a || a.includes(r)
248
- );
249
- }, We = ({
250
- episodeOfCareUuids: e,
251
- encounterUuids: r,
252
- config: n
253
- }) => {
254
- const { t: a } = ee(), d = re(), [c, m] = P(!1), [t, b] = P(null), h = n?.numberOfVisits, f = ae(
255
- e,
256
- r
257
- ), _ = te(), {
258
- data: $ = [],
259
- isLoading: y,
260
- isError: N,
261
- error: Q,
262
- refetch: Y
263
- } = A({
264
- queryKey: ["forms", d, e],
265
- queryFn: () => he(d, void 0, h),
266
- enabled: !!d && !f
267
- }), T = g(() => !r || r.length === 0 ? $ : $.filter(
268
- (i) => r.includes(i.encounterUuid)
269
- ), [$, r]), { data: M = [] } = A({
270
- queryKey: ["observationForms"],
271
- queryFn: () => ve()
272
- }), V = F(
273
- (i) => M.find((u) => u.name === i)?.uuid,
274
- [M]
275
- ), L = g(() => {
276
- if (t)
277
- return V(t.formName);
278
- }, [t, V]), { isLoading: z, error: S } = A({
279
- queryKey: ["formMetadata", L],
280
- queryFn: () => ge(L),
281
- enabled: !!L && c
282
- }), {
283
- data: C,
284
- isLoading: W,
285
- error: w
286
- } = A({
287
- queryKey: ["formsEncounterFHIR", t?.encounterUuid],
288
- queryFn: () => ye(t.encounterUuid),
289
- enabled: !!t?.encounterUuid && c
290
- });
291
- oe(
292
- (i) => {
293
- i.patientUUID === d && i.updatedConcepts.size > 0 && (Y(), _.invalidateQueries({ queryKey: ["formsEncounterFHIR"] }));
294
- },
295
- [d]
296
- );
297
- const D = g(() => !C || !t?.formName ? [] : Ke(
298
- C,
299
- t.formName
300
- ), [C, t?.formName]), E = g(
301
- () => [
302
- { key: "recordedOn", header: a("FORM_RECORDED_ON") },
303
- { key: "recordedBy", header: a("FORM_RECORDED_BY") }
304
- ],
305
- [a]
306
- ), Z = g(
307
- () => [
308
- { key: "recordedOn", sortable: !0 },
309
- { key: "recordedBy", sortable: !0 }
310
- ],
311
- []
312
- ), x = g(() => {
313
- const i = T.reduce(
314
- (u, l) => {
315
- const v = l.formName;
316
- u[v] ??= [];
317
- const O = l.providers.map((X) => X.providerName).filter(Boolean).join(", ");
318
- return u[v].push({
319
- id: l.encounterUuid,
320
- formName: l.formName,
321
- recordedOn: ne(l.encounterDateTime, a, ue).formattedResult,
322
- recordedBy: O ?? "--",
323
- encounterDateTime: l.encounterDateTime,
324
- encounterUuid: l.encounterUuid
325
- }), u;
326
- },
327
- {}
328
- );
329
- return Object.entries(i).map(
330
- ([u, l]) => ({
331
- formName: u,
332
- records: l.sort(
333
- (v, O) => O.encounterDateTime - v.encounterDateTime
334
- )
335
- })
336
- ).sort((u, l) => u.formName.localeCompare(l.formName));
337
- }, [T, a]), B = F((i) => {
338
- b(i), m(!0);
339
- }, []), J = F(() => {
340
- m(!1), b(null);
341
- }, []), G = F(
342
- (i, u) => {
343
- switch (u) {
344
- case "recordedOn":
345
- return /* @__PURE__ */ s(se, { onClick: () => B(i), children: i.recordedOn });
346
- case "recordedBy":
347
- return i.recordedBy;
348
- default:
349
- return null;
350
- }
351
- },
352
- [B]
353
- );
354
- return /* @__PURE__ */ p(k, { children: [
355
- /* @__PURE__ */ s("div", { "data-testid": "forms-table", children: y || N || x.length === 0 || f ? /* @__PURE__ */ s(
356
- q,
357
- {
358
- headers: E,
359
- ariaLabel: a("FORMS_HEADING"),
360
- rows: [],
361
- loading: y,
362
- errorStateMessage: N ? Q?.message : void 0,
363
- emptyStateMessage: a("FORMS_UNAVAILABLE"),
364
- renderCell: G,
365
- className: o.formsTableBody,
366
- dataTestId: "forms-table"
367
- }
368
- ) : /* @__PURE__ */ s(de, { align: "start", children: x.map((i, u) => {
369
- const { formName: l, records: v } = i;
370
- return /* @__PURE__ */ s(
371
- me,
372
- {
373
- title: l,
374
- className: o.customAccordianItem,
375
- testId: `accordian-title-${l}`,
376
- open: u === 0,
377
- children: /* @__PURE__ */ s(
378
- q,
379
- {
380
- headers: E,
381
- ariaLabel: a("FORMS_HEADING"),
382
- rows: v,
383
- loading: !1,
384
- errorStateMessage: "",
385
- sortable: Z,
386
- emptyStateMessage: a("FORMS_UNAVAILABLE"),
387
- renderCell: G,
388
- className: o.formsTableBody,
389
- dataTestId: `forms-table-${l}`
390
- }
391
- )
392
- },
393
- l
394
- );
395
- }) }) }),
396
- c && t && /* @__PURE__ */ s(
397
- ie,
398
- {
399
- id: "modalIdForActionAreaLayout",
400
- portalId: "main-display-area",
401
- open: c,
402
- onRequestClose: J,
403
- modalHeading: t.formName,
404
- modalLabel: `${t.recordedOn} | ${t.recordedBy}`,
405
- passiveModal: !0,
406
- size: "md",
407
- testId: "form-details-modal",
408
- children: /* @__PURE__ */ s("div", { className: o.formContent, children: z || W ? /* @__PURE__ */ s(le, { width: "100%", lineCount: 3 }) : S ? /* @__PURE__ */ s("div", { children: U(S).message ?? a("ERROR_FETCHING_FORM_METADATA") }) : w ? /* @__PURE__ */ s("div", { children: U(w).message ?? a("ERROR_FETCHING_FORM_DATA") }) : D.length > 0 ? /* @__PURE__ */ s("div", { className: o.formDetailsContainer, children: D.map(({ obs: i, comment: u }, l) => /* @__PURE__ */ s(
409
- Pe,
410
- {
411
- observation: i,
412
- index: l,
413
- formName: t.formName,
414
- comment: u
415
- },
416
- `${i.id}`
417
- )) }) : /* @__PURE__ */ s("div", { children: a("NO_FORM_DATA_AVAILABLE") }) })
418
- }
419
- )
420
- ] });
421
- };
422
- export {
423
- We as default
424
- };
@@ -1,170 +0,0 @@
1
- import { jsxs as I, jsx as l } from "react/jsx-runtime";
2
- import { p as k, o as B, u as N, n as H, r as K, a as x, e as Q, h as j, H as w, s as G, L as M, A as z, t as P, v as S, V as W, f as Y, x as J, F as X, q as Z, W as ee, z as te } from "./index-DtAPMuCM.js";
3
- import { useRef as ae, useEffect as $, useMemo as E } from "react";
4
- const F = (t, d, n, u, o) => {
5
- const a = W(t, d), s = a.value, r = Y(s);
6
- let i = s;
7
- r === "Image" && (i = /* @__PURE__ */ l(X, { imageSrc: s, alt: s, id: `${s}-img` })), r === "Video" && (i = /* @__PURE__ */ l(Z, { id: `${s}-video`, videoSrc: s })), r === "PDF" && (i = /* @__PURE__ */ l(ee, { id: `${s}-pdf`, src: s }));
8
- const b = o("OBSERVATIONS_RECORDED_BY", {
9
- provider: a.provider
10
- }), p = t.display, v = t.observationValue?.isAbnormal ? "abnormal-obs" : "obs", c = u ? `${u}-${v}-${p}-${n}-${d}` : `${v}-${p}-${n}-${d}`;
11
- return /* @__PURE__ */ l(
12
- J,
13
- {
14
- header: a.header,
15
- value: i,
16
- info: b,
17
- id: c,
18
- testId: c,
19
- ariaLabel: c
20
- },
21
- `obs-${t.id}`
22
- );
23
- }, se = (t, d, n, u, o, a) => /* @__PURE__ */ l(
24
- S,
25
- {
26
- title: t.display,
27
- id: `grouped-obs-${t.display}-${u}`,
28
- open: n,
29
- children: t.members?.map(
30
- (s, r) => F(s, r, o, a, d)
31
- )
32
- },
33
- `grouped-obs-${t.id}`
34
- ), re = ({
35
- groupedData: t,
36
- title: d = ""
37
- }) => {
38
- const { t: n } = N(), u = (o, a, s) => {
39
- const r = P(o.encounterDetails, n);
40
- return /* @__PURE__ */ I(
41
- S,
42
- {
43
- title: r,
44
- id: `encounter-${o.encounterId}`,
45
- open: a,
46
- children: [
47
- o.observations.map(
48
- (i, b) => F(i, b, s, d, n)
49
- ),
50
- o.groupedObservations.map(
51
- (i, b) => se(
52
- i,
53
- n,
54
- a,
55
- b,
56
- s,
57
- d
58
- )
59
- )
60
- ]
61
- },
62
- `encounter-${o.encounterId}`
63
- );
64
- };
65
- return /* @__PURE__ */ l(
66
- "div",
67
- {
68
- id: "obs-by-encounter",
69
- "data-testid": "obs-by-encounter-test-id",
70
- "aria-label": "obs-by-encounter-aria-label",
71
- children: t.map(
72
- (o, a) => u(o, a === 0, a)
73
- )
74
- }
75
- );
76
- }, oe = "_observations_kfbhq_1", ie = "_title_kfbhq_12", T = {
77
- observations: oe,
78
- title: ie
79
- }, ne = (t) => ["conceptUuid", t], de = (t, d) => ["observations", t, ...d], be = ({ config: t }) => {
80
- const d = t, { conceptNames: n = [], conceptUuid: u = [] } = d, o = ae(/* @__PURE__ */ new Set()), a = k(), { addNotification: s } = B(), { t: r } = N(), i = H({
81
- queries: n.map((e) => ({
82
- queryKey: ne(e),
83
- queryFn: () => K(e),
84
- enabled: !!e
85
- }))
86
- });
87
- $(() => {
88
- i.forEach((e, m) => {
89
- if (e.isError && !o.current.has(m)) {
90
- const C = n[m];
91
- s({
92
- title: r("ERROR_DEFAULT_TITLE"),
93
- message: r("ERROR_FETCHING_CONCEPT", { conceptName: C }),
94
- type: "error"
95
- }), o.current.add(m);
96
- } else e.isError || o.current.delete(m);
97
- });
98
- }, [i, n]);
99
- const b = E(() => i.map((e) => e.data?.uuid).filter((e) => !!e), [i]), p = E(() => [.../* @__PURE__ */ new Set([...b, ...u])], [b, u]), v = E(() => n.length === 0 ? !0 : i.every((e) => !e.isLoading), [i, n.length]), {
100
- data: c,
101
- isLoading: A,
102
- isError: R,
103
- refetch: f
104
- } = x({
105
- queryKey: de(a, p),
106
- queryFn: () => te(a, p),
107
- enabled: !!a && p.length > 0 && v
108
- });
109
- Q(
110
- (e) => {
111
- e.patientUUID === a && e.updatedConcepts.size > 0 && [...e.updatedConcepts.keys()].some(
112
- (m) => p.includes(m)
113
- ) && f();
114
- },
115
- [a, f]
116
- ), $(() => {
117
- R && s({
118
- title: r("ERROR_DEFAULT_TITLE"),
119
- message: r("ERROR_FETCHING_OBSERVATIONS"),
120
- type: "error"
121
- });
122
- }, [R]);
123
- const g = E(() => {
124
- if (!c) return [];
125
- const e = j(c), m = w(e);
126
- return G(m);
127
- }, [c]), L = [
128
- { key: "name", header: "name" },
129
- { key: "value", header: "value" },
130
- { key: "form", header: "form" }
131
- ], O = A || !v, _ = R && v, q = (!c || c.entry?.length === 0 || p.length === 0) && v, D = _ ? r("ERROR_FETCHING_OBSERVATIONS") : null, U = q ? r("NO_OBSERVATIONS_FOUND") : void 0, V = g.length > 0 && !O && !_, h = d.titleTranslationKey, y = h ? r(h) : "";
132
- return /* @__PURE__ */ I(
133
- "div",
134
- {
135
- id: "observations",
136
- "data-testid": h ? `observations-${y}` : "observations",
137
- "aria-label": "observations-aria-label",
138
- className: T.observations,
139
- children: [
140
- /* @__PURE__ */ l(
141
- M,
142
- {
143
- id: "observations-title",
144
- testId: h ? `observations-title-${y}` : "observations-title",
145
- title: y,
146
- className: T.title,
147
- children: /* @__PURE__ */ l("p", { children: y })
148
- }
149
- ),
150
- V ? /* @__PURE__ */ l(re, { groupedData: g, title: y }) : /* @__PURE__ */ l(
151
- z,
152
- {
153
- headers: L,
154
- rows: [],
155
- ariaLabel: r("OBSERVATIONS"),
156
- loading: O,
157
- errorStateMessage: D,
158
- emptyStateMessage: U,
159
- dataTestId: "observations-table"
160
- }
161
- )
162
- ]
163
- }
164
- );
165
- };
166
- export {
167
- ne as conceptUuidQueryKeys,
168
- be as default,
169
- de as observationsQueryKeys
170
- };