@bahmni/clinical-app 0.0.1-dev.393 → 0.0.1-dev.394

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 (25) hide show
  1. package/dist/{ConsultationPage-C-_ZfjpU.js → ConsultationPage-Cm53s85r.js} +2 -2
  2. package/dist/{DocumentsTable-ULtsCmIW-CZMWHk-T.js → DocumentsTable-Cz-E1n_9-CmQIT4Tp.js} +1 -1
  3. package/dist/{FormsTable-DAFDPXnd-CLk-i2f_.js → FormsTable-D2iNj6MO-D1nvhjMs.js} +1 -1
  4. package/dist/{LNWAZHJI-Du5pLAOf.js → LNWAZHJI-gp-xkQOg.js} +2 -2
  5. package/dist/{MWZ6AO7Z-1Thy25SD.js → MWZ6AO7Z-P2sh4x3s.js} +2 -2
  6. package/dist/{Observations-DOZ-UiSs-DUk-XWd0.js → Observations-mnzr0Nxn-DXzrhGpX.js} +1 -1
  7. package/dist/{YPM2AS64-Br1DwSze.js → YPM2AS64-CjcEDAe0.js} +1 -1
  8. package/dist/{hook-Bq8pNgjT.js → hook-BXZiot0d.js} +1 -1
  9. package/dist/{index-CAfJdVBo.js → index-CVoDmXMu.js} +30 -25
  10. package/dist/{index-Cn1-Xb0Z.js → index-D1Ry5y2F.js} +9 -9
  11. package/dist/{index-Ci4kz6CI.js → index-fju85p4c.js} +51 -51
  12. package/dist/index.css +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/pages/list/__tests__/__mocks__/listMocks.d.ts.map +1 -1
  15. package/dist/pages/list/constants.d.ts +4 -2
  16. package/dist/pages/list/constants.d.ts.map +1 -1
  17. package/dist/pages/list/extensions/{searchHandler/__tests__/__mocks__/searchHandlerMocks.d.ts → searchView/__tests__/__mocks__/searchViewMocks.d.ts} +1 -1
  18. package/dist/pages/list/extensions/searchView/__tests__/__mocks__/searchViewMocks.d.ts.map +1 -0
  19. package/dist/pages/list/extensions/searchView/index.d.ts +6 -0
  20. package/dist/pages/list/extensions/searchView/index.d.ts.map +1 -0
  21. package/dist/pages/list/index.d.ts.map +1 -1
  22. package/package.json +1 -1
  23. package/dist/pages/list/extensions/searchHandler/__tests__/__mocks__/searchHandlerMocks.d.ts.map +0 -1
  24. package/dist/pages/list/extensions/searchHandler/index.d.ts +0 -4
  25. package/dist/pages/list/extensions/searchHandler/index.d.ts.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import { u as useTranslation, s as B, t as ENCOUNTER_CONCEPTS_URL, v as Yr, C as Ci, x as BAHMNI_USER_LOCATION_COOKIE_NAME, z as km, Q as Qh, g as g0, G as hb2, H as ub2, I as sb2, M as Bx2, S as ol1, W as ab2, X as CE, $ as Di, a0 as Cd, a1 as gE, a2 as Dd, a3 as vs, a4 as dist, a5 as yt, a6 as ge, a7 as ss, a8 as H_, a9 as eb, aa as tb, ab as mb2, ac as Cb2, ad as Nz2, L as L1, A as A3, ae as rb, af as Oy2, ag as Ky2, ah as Bb2, ai as _b2, aj as xb2, J as J01, ak as Ib, al as fb2, am as Xb, an as Ps, ao as Lb, ap as vv, aq as X_, ar as Yy2, as as ub, at as fb, au as CLINICAL_V2_CONFIG_BASE_URL, av as yb, aw as qE, ax as Qr, ay as hb, az as z_, aA as Tv, aB as aL2, aC as xb, aD as gb, aE as wb, aF as Ov, aG as ib2, aH as qv, aI as V_, aJ as Eb, aK as St, aL as jr, aM as Dv, aN as Mv, e as e2, aO as nv, aP as Mb, aQ as Fb, P as Pqt, aR as Rb2, aS as Ob2, aT as av, aU as ov, aV as Hb2, aW as ne, aX as STOP_REASON_VALUESET_EXPAND_URL, aY as wE, aZ as STOP_REASON_VALUESET_TITLE, a_ as gf, a$ as es$2, b0 as Tb2, b1 as sv, b2 as cv, b3 as XE, b4 as F_, b5 as QE, b6 as an, b7 as N4, b8 as c3, b9 as Ab2, ba as AE, bb as iv, bc as lv, bd as dv, be as fv, bf as Ii, bg as ns, bh as Yb, bi as ob, bj as Uv, bk as Rv, bl as Sv, bm as bv, bn as CDSS_SERVER_CONFIG_URL, bo as ib, bp as Mi, bq as R_, br as Ze, bs as tr1, bt as Eb2, bu as rw, bv as Gb, bw as Kb, bx as ob2, by as Hs1, bz as Qb, bA as Jb, bB as Wb, bC as k01, bD as S01, bE as e_, bF as Zb, bG as dE, bH as BAHMNI_CLINICAL_PATH, bI as IE, bJ as cw, bK as Vb2, bL as vb2, bM as Cz2, bN as Y11, bO as NE, bP as G01 } from "./index-Ci4kz6CI.js";
2
+ import { u as useTranslation, s as B, t as ENCOUNTER_CONCEPTS_URL, v as Yr, C as Ci, x as BAHMNI_USER_LOCATION_COOKIE_NAME, z as km, Q as Qh, g as g0, G as hb2, H as ub2, I as sb2, M as Bx2, S as ol1, W as ab2, X as CE, $ as Di, a0 as Cd, a1 as gE, a2 as Dd, a3 as vs, a4 as dist, a5 as yt, a6 as ge, a7 as ss, a8 as H_, a9 as eb, aa as tb, ab as mb2, ac as Cb2, ad as Nz2, L as L1, A as A3, ae as rb, af as Oy2, ag as Ky2, ah as Bb2, ai as _b2, aj as xb2, J as J01, ak as Ib, al as fb2, am as Xb, an as Ps, ao as Lb, ap as vv, aq as X_, ar as Yy2, as as ub, at as fb, au as CLINICAL_V2_CONFIG_BASE_URL, av as yb, aw as qE, ax as Qr, ay as hb, az as z_, aA as Tv, aB as aL2, aC as xb, aD as gb, aE as wb, aF as Ov, aG as ib2, aH as qv, aI as V_, aJ as Eb, aK as St, aL as jr, aM as Dv, aN as Mv, e as e2, aO as nv, aP as Mb, aQ as Fb, P as Pqt, aR as Rb2, aS as Ob2, aT as av, aU as ov, aV as Hb2, aW as ne, aX as STOP_REASON_VALUESET_EXPAND_URL, aY as wE, aZ as STOP_REASON_VALUESET_TITLE, a_ as gf, a$ as es$2, b0 as Tb2, b1 as sv, b2 as cv, b3 as XE, b4 as F_, b5 as QE, b6 as an, b7 as N4, b8 as c3, b9 as Ab2, ba as AE, bb as iv, bc as lv, bd as dv, be as fv, bf as Ii, bg as ns, bh as Yb, bi as ob, bj as Uv, bk as Rv, bl as Sv, bm as bv, bn as CDSS_SERVER_CONFIG_URL, bo as ib, bp as Mi, bq as R_, br as Ze, bs as tr1, bt as Eb2, bu as rw, bv as Gb, bw as Kb, bx as ob2, by as Hs1, bz as Qb, bA as Jb, bB as Wb, bC as k01, bD as S01, bE as e_, bF as Zb, bG as dE, bH as BAHMNI_CLINICAL_PATH, bI as IE, bJ as cw, bK as Vb2, bL as vb2, bM as Cz2, bN as Y11, bO as NE, bP as G01 } from "./index-fju85p4c.js";
3
3
  import * as React from "react";
4
4
  import React__default, { createContext, useContext, useState, useCallback, useEffect, useMemo, Children, useRef, useLayoutEffect, forwardRef, isValidElement, cloneElement, useReducer, Component, useImperativeHandle, PureComponent, createRef, useSyncExternalStore, Suspense } from "react";
5
5
  import { useQuery, useQueries, useQueryClient } from "@tanstack/react-query";
6
6
  import { useNavigate, useSearchParams } from "react-router-dom";
7
- import { u as useClinicalConfig } from "./hook-Bq8pNgjT.js";
7
+ import { u as useClinicalConfig } from "./hook-BXZiot0d.js";
8
8
  import * as ReactDOM from "react-dom";
9
9
  import ReactDOM__default, { createPortal } from "react-dom";
10
10
  var commonjsGlobal = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
@@ -1,5 +1,5 @@
1
1
  import { jsx as r, jsxs as p, Fragment as x } from "react/jsx-runtime";
2
- import { g as G, u as W, L as Y, D as J, q as X, w as Z, K as ee, p as te } from "./index-Ci4kz6CI.js";
2
+ import { g as G, u as W, L as Y, D as J, q as X, w as Z, K as ee, p as te } from "./index-fju85p4c.js";
3
3
  import { useQuery as ae } from "@tanstack/react-query";
4
4
  import { useState as l, useCallback as h, useEffect as I, useMemo as _ } from "react";
5
5
  const ne = "DocumentsTable-module_documentsTableBody__6iR3w", oe = "DocumentsTable-module_viewAttachmentsLink__aQ1on", re = "DocumentsTable-module_documentViewerContainer__F5m8D", de = "DocumentsTable-module_attachmentItem__17KA7", se = "DocumentsTable-module_attachmentCounter__WFiI3", me = "DocumentsTable-module_attachmentError__RI4U2", ce = "DocumentsTable-module_documentIframe__ptq5I", le = "DocumentsTable-module_documentImage__KQVgS", d = {
@@ -1,5 +1,5 @@
1
1
  import { jsx as i, jsxs as z, Fragment as ye } from "react/jsx-runtime";
2
- import { u as ge, g as be, A as Ne, e as Oe, a as Te, R as Ee, b as Ie, c as Ae, Z as _e, m as ve, d as Fe, P as Re, Y as $, w as Be, N as x, E as G, q as Se, K as Q, B as Le, f as Me, p as Ce, o as Ue, J as De } from "./index-Ci4kz6CI.js";
2
+ import { u as ge, g as be, A as Ne, e as Oe, a as Te, R as Ee, b as Ie, c as Ae, Z as _e, m as ve, d as Fe, P as Re, Y as $, w as Be, N as x, E as G, q as Se, K as Q, B as Le, f as Me, p as Ce, o as Ue, J as De } from "./index-fju85p4c.js";
3
3
  import { useQueryClient as ke, useQuery as O } from "@tanstack/react-query";
4
4
  import { useState as Y, useMemo as d, useCallback as c } from "react";
5
5
  const qe = "FormsTable-module_formsTableBody__SvGha", we = "FormsTable-module_modalHeading__wnTmA", He = "FormsTable-module_customAccordianItem__isszs", T = {
@@ -1,5 +1,5 @@
1
- import { c, T as l, P as m, a as u, D as v, Q as i } from "./YPM2AS64-Br1DwSze.js";
2
- import { bV as d, bW as f, bX as e } from "./index-Ci4kz6CI.js";
1
+ import { c, T as l, P as m, a as u, D as v, Q as i } from "./YPM2AS64-CjcEDAe0.js";
2
+ import { bV as d, bW as f, bX as e } from "./index-fju85p4c.js";
3
3
  var p = (a) => {
4
4
  const [r, t] = c({
5
5
  prefix: "TanstackQueryDevtools"
@@ -1,5 +1,5 @@
1
- import { c as s, T as c, P as u, a as i, b as m, C as P, Q as d } from "./YPM2AS64-Br1DwSze.js";
2
- import { bV as v, bW as C, bX as e } from "./index-Ci4kz6CI.js";
1
+ import { c as s, T as c, P as u, a as i, b as m, C as P, Q as d } from "./YPM2AS64-CjcEDAe0.js";
2
+ import { bV as v, bW as C, bX as e } from "./index-fju85p4c.js";
3
3
  var h = (t) => {
4
4
  const [r, o] = s({
5
5
  prefix: "TanstackQueryDevtools"
@@ -1,5 +1,5 @@
1
1
  import { jsxs as S, jsx as u } from "react/jsx-runtime";
2
- import { g as k, L as q, u as N, T as j, O as M, m as Q, F as w, j as x, U as G, h as H, K as P, i as z, k as F, l as J, _ as Y, n as W, r as X, V as Z, y as ee } from "./index-Ci4kz6CI.js";
2
+ import { g as k, L as q, u as N, T as j, O as M, m as Q, F as w, j as x, U as G, h as H, K as P, i as z, k as F, l as J, _ as Y, n as W, r as X, V as Z, y as ee } from "./index-fju85p4c.js";
3
3
  import { useQueries as ae, useQuery as te } from "@tanstack/react-query";
4
4
  import { useRef as se, useEffect as I, useMemo as T } from "react";
5
5
  const L = (a, n, d, l, b, r) => {
@@ -1,4 +1,4 @@
1
- import { bY as we, bZ as z, b_ as xt, b$ as B, bW as q, bX as y, c0 as Ro, c1 as ye, c2 as R, c3 as _, c4 as k, c5 as N, c6 as A, c7 as bs, c8 as ir, c9 as $e, ca as G, cb as Hn, cc as Vn, cd as dt, ce as D, cf as xs, cg as cn, ch as Be, ci as ws, cj as qt, ck as zt, cl as $s, cm as Cs, cn as $n, co as Ss, cp as Nr, cq as Bt, cr as zo, cs as ks, ct as Es, cu as j, cv as Gr, cw as Ms, cx as Ds, cy as sr, cz as As, cA as Ts, cB as zn, cC as Fs, cD as Is, cE as Z, cF as Ps, cG as Ls } from "./index-Ci4kz6CI.js";
1
+ import { bY as we, bZ as z, b_ as xt, b$ as B, bW as q, bX as y, c0 as Ro, c1 as ye, c2 as R, c3 as _, c4 as k, c5 as N, c6 as A, c7 as bs, c8 as ir, c9 as $e, ca as G, cb as Hn, cc as Vn, cd as dt, ce as D, cf as xs, cg as cn, ch as Be, ci as ws, cj as qt, ck as zt, cl as $s, cm as Cs, cn as $n, co as Ss, cp as Nr, cq as Bt, cr as zo, cs as ks, ct as Es, cu as j, cv as Gr, cw as Ms, cx as Ds, cy as sr, cz as As, cA as Ts, cB as zn, cC as Fs, cD as Is, cE as Z, cF as Ps, cG as Ls } from "./index-fju85p4c.js";
2
2
  var Os = (e) => e != null, qs = (e) => e.filter(Os);
3
3
  function _s(e) {
4
4
  return (...t) => {
@@ -1,4 +1,4 @@
1
- import { bT as i, bU as o } from "./index-Ci4kz6CI.js";
1
+ import { bT as i, bU as o } from "./index-fju85p4c.js";
2
2
  import "react";
3
3
  import "react/jsx-runtime";
4
4
  import "@tanstack/react-query";
@@ -1,46 +1,51 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { u as g, e as u, bG as b, bQ as f, bR as p, bS as _, aG as x, bM as N } from "./index-Ci4kz6CI.js";
3
- import { lazy as h, useMemo as n, Suspense as C } from "react";
2
+ import { u as g, e as u, bG as b, bQ as f, bR as p, bS as x, aG as _, bM as N } from "./index-fju85p4c.js";
3
+ import { lazy as h, useMemo as t, Suspense as C } from "react";
4
4
  import "@tanstack/react-query";
5
- import { u as E } from "./hook-Bq8pNgjT.js";
5
+ import { u as E } from "./hook-BXZiot0d.js";
6
6
  const L = {
7
7
  "org.bahmni.clinical.v2.search": h(
8
- () => import("./index-Cn1-Xb0Z.js")
8
+ () => import("./index-D1Ry5y2F.js")
9
9
  )
10
- }, v = "index-module_page__16xxw", I = "index-module_loading__wNI-4", S = "index-module_message__Ib5Iw", t = {
10
+ }, v = "index-module_page__16xxw", H = "index-module_loading__wNI-4", I = "index-module_message__Ib5Iw", l = {
11
11
  page: v,
12
- loading: I,
13
- message: S
14
- }, M = () => {
15
- const { t: a } = g(), { clinicalConfig: l } = E(), { userPrivileges: o } = u(), d = n(
12
+ loading: H,
13
+ message: I
14
+ }, B = () => {
15
+ const { t: a } = g(), { clinicalConfig: o } = E(), { userPrivileges: r } = u(), m = t(
16
16
  () => [
17
17
  { id: "home", label: a("HOME_LABEL"), href: b },
18
18
  { id: "clinical", label: a("CLINICAL_LABEL"), isCurrentPage: !0 }
19
19
  ],
20
20
  [a]
21
- ), r = n(
22
- () => f(l?.extensions ?? []),
23
- [l]
24
- ), c = n(
25
- () => Array.from(r.entries()).map(([e, i]) => ({
21
+ ), c = t(
22
+ () => f(o?.extensions ?? []),
23
+ [o]
24
+ ), d = t(
25
+ () => Array.from(c.entries()).map(([e, i]) => ({
26
26
  pointId: e,
27
27
  Handler: L[e],
28
- filtered: p(i, o)
28
+ filtered: p(
29
+ i,
30
+ r
31
+ ).filter(
32
+ (n) => !!n.extensionParams && "searchHandler" in n.extensionParams
33
+ )
29
34
  })).filter(({ Handler: e, filtered: i }) => !!e && i.length > 0),
30
- [r, o]
35
+ [c, r]
31
36
  );
32
37
  return /* @__PURE__ */ s(
33
- _,
38
+ x,
34
39
  {
35
- header: /* @__PURE__ */ s(N, { breadcrumbItems: d }),
40
+ header: /* @__PURE__ */ s(N, { breadcrumbItems: m }),
36
41
  main: /* @__PURE__ */ s(
37
42
  "div",
38
43
  {
39
44
  id: "clinical-list-page",
40
45
  "data-testid": "clinical-list-page-test-id",
41
46
  "aria-label": "Clinical List Page",
42
- className: t.page,
43
- children: c.length > 0 ? c.map(({ pointId: e, Handler: i, filtered: m }) => /* @__PURE__ */ s(
47
+ className: l.page,
48
+ children: d.length > 0 ? d.map(({ pointId: e, Handler: i, filtered: n }) => /* @__PURE__ */ s(
44
49
  "div",
45
50
  {
46
51
  id: e,
@@ -49,13 +54,13 @@ const L = {
49
54
  C,
50
55
  {
51
56
  fallback: /* @__PURE__ */ s(
52
- x,
57
+ _,
53
58
  {
54
59
  type: "multi",
55
- className: t.loading
60
+ className: l.loading
56
61
  }
57
62
  ),
58
- children: /* @__PURE__ */ s(i, { extensions: m })
63
+ children: /* @__PURE__ */ s(i, { extensions: n })
59
64
  }
60
65
  )
61
66
  },
@@ -66,7 +71,7 @@ const L = {
66
71
  id: "no-extensions-configured",
67
72
  "data-testid": "no-extensions-configured-test-id",
68
73
  "aria-label": "No extensions configured",
69
- className: t.message,
74
+ className: l.message,
70
75
  children: a("NO_EXTENSIONS_CONFIGURED")
71
76
  }
72
77
  )
@@ -76,5 +81,5 @@ const L = {
76
81
  );
77
82
  };
78
83
  export {
79
- M as default
84
+ B as default
80
85
  };
@@ -1,12 +1,12 @@
1
1
  import { jsxs as d, jsx as e } from "react/jsx-runtime";
2
- import { u as r, cH as l, cI as o, cJ as c, b7 as m, b8 as g, cK as p, cL as h, cM as b, aG as u } from "./index-Ci4kz6CI.js";
2
+ import { u as r, cH as l, cI as o, cJ as c, b7 as m, b8 as g, cK as h, cL as p, cM as b, aG as u } from "./index-fju85p4c.js";
3
3
  import { Suspense as _ } from "react";
4
4
  import "@tanstack/react-query";
5
- const $ = "index-module_loading__FAL7n", y = "index-module_message__KjCnF", E = "index-module_panel__j5vTu", s = {
6
- loading: $,
7
- message: y,
8
- panel: E
9
- }, j = ({ extensions: i }) => {
5
+ const y = "index-module_loading__eyE2k", E = "index-module_message__95HmH", $ = "index-module_panel__8VJh2", s = {
6
+ loading: y,
7
+ message: E,
8
+ panel: $
9
+ }, w = ({ extensions: i }) => {
10
10
  const { t: n } = r();
11
11
  return i.length === 0 ? null : /* @__PURE__ */ d(l, { children: [
12
12
  /* @__PURE__ */ e(
@@ -37,8 +37,8 @@ const $ = "index-module_loading__FAL7n", y = "index-module_message__KjCnF", E =
37
37
  ))
38
38
  }
39
39
  ),
40
- /* @__PURE__ */ e(p, { children: i.map((a) => {
41
- const t = h(
40
+ /* @__PURE__ */ e(h, { children: i.map((a) => {
41
+ const t = p(
42
42
  a.extensionParams?.searchHandler ?? ""
43
43
  )?.component;
44
44
  return /* @__PURE__ */ e(
@@ -77,5 +77,5 @@ const $ = "index-module_loading__FAL7n", y = "index-module_message__KjCnF", E =
77
77
  ] });
78
78
  };
79
79
  export {
80
- j as default
80
+ w as default
81
81
  };
@@ -104347,13 +104347,7 @@ const PM0 = ({
104347
104347
  }
104348
104348
  )
104349
104349
  ] });
104350
- }, by0 = "http://json-schema.org/draft-07/schema#", xy0 = "Search Patient Widget Config Schema", Ny0 = "object", Cy0 = !1, Ay0 = { patientDetailUrl: { type: "string", description: "URL template for navigating to a patient detail page. Use {{patientUuid}} as a placeholder." }, customAttributes: { type: "array", description: "Array of available search fields", items: { type: "object", additionalProperties: !1, properties: { translationKey: { type: "string", description: "Translation key for the dropdown label" }, fields: { type: "array", description: "Array of field names to search against", items: { type: "string" } }, columnTranslationKeys: { type: "array", description: "Array of translation keys for the column headers", items: { type: "string" } }, expectedFields: { type: "array", description: "Array of fields configurations with translation keys to display on table headers", items: { type: "object", additionalProperties: !1, properties: { field: { type: "string", description: "field corresponding to table header" }, translationKey: { type: "string", description: "Translation key for the table header" } } } }, type: { type: "string", enum: ["person", "address", "program", "appointment"], description: "Type of the search field (person, address, program, appointment)" } } } }, appointment: { type: "array", description: "Array of available search fields for appointments", items: { type: "object", additionalProperties: !0, required: ["translationKey", "fields"], properties: { translationKey: { type: "string", description: "Translation key for the field label" }, fields: { type: "array", description: "Array of field names to search against", items: { type: "string" } }, expectedFields: { type: "array", description: "Array of expected fields with optional types", items: { type: "object", required: ["field", "translationKey"], properties: { field: { type: "string", description: "The field name (e.g., apptNumber, apptDate)" }, translationKey: { type: "string", description: "Translation key for the field's display label" }, type: { type: "string", description: "Optional field type (e.g., date, string)" } } } }, type: { type: "string", enum: ["appointment"], description: "Type of the search field (appointment)" }, actions: { type: "array", description: "Array of actions allowed on this search field", items: { type: "object", required: ["translationKey", "type", "enabledRule", "onAction"], properties: { translationKey: { type: "string", description: "Translation key for the action button label" }, type: { type: "string", enum: ["changeStatus", "navigate", "checkInAndStartVisit"], description: "Type of action to perform" }, enabledRule: { type: "array", description: "Conditions to enable this action (rules)", items: { type: "object", properties: { type: { type: "string", enum: ["privilegeCheck", "statusCheck", "appDateCheck", "appointmentService"], description: "Type of rule to evaluate" }, values: { type: "array", items: { type: "string" }, description: "Values to match for the rule" }, excludeValues: { type: "array", items: { type: "string" }, description: "Values to exclude for the rule" } } } }, onAction: { type: "object", description: "What happens when action is triggered", additionalProperties: !0, properties: { status: { type: "string", description: "Status to set (for changeStatus type)" }, navigation: { type: "string", description: "URL path to navigate to (for navigate type)" }, submit: { type: "string", description: "API endpoint URL to submit to (for checkInAndStartVisit type)" } } }, onSuccess: { type: "object", description: "Notification or other success response", additionalProperties: !0, properties: { notification: { type: "string", description: "Translation key for success notification message" } } } } } } } } } }, Ly0 = {
104351
- $schema: by0,
104352
- title: xy0,
104353
- type: Ny0,
104354
- additionalProperties: Cy0,
104355
- properties: Ay0
104356
- }, _y0 = ({
104350
+ }, by0 = ({
104357
104351
  buttonTitle: t,
104358
104352
  searchBarPlaceholder: e,
104359
104353
  isLoading: r,
@@ -104478,6 +104472,12 @@ const PM0 = ({
104478
104472
  ]
104479
104473
  }
104480
104474
  );
104475
+ }, xy0 = "http://json-schema.org/draft-07/schema#", Ny0 = "Search Patient Widget Config Schema", Cy0 = "object", Ay0 = !1, Ly0 = { patientDetailUrl: { type: "string", description: "URL template for navigating to a patient detail page. Use {{patientUuid}} as a placeholder." }, customAttributes: { type: "array", description: "Array of available search fields", items: { type: "object", additionalProperties: !1, properties: { translationKey: { type: "string", description: "Translation key for the dropdown label" }, fields: { type: "array", description: "Array of field names to search against", items: { type: "string" } }, columnTranslationKeys: { type: "array", description: "Array of translation keys for the column headers", items: { type: "string" } }, expectedFields: { type: "array", description: "Array of fields configurations with translation keys to display on table headers", items: { type: "object", additionalProperties: !1, properties: { field: { type: "string", description: "field corresponding to table header" }, translationKey: { type: "string", description: "Translation key for the table header" } } } }, type: { type: "string", enum: ["person", "address", "program", "appointment"], description: "Type of the search field (person, address, program, appointment)" } } } }, appointment: { type: "array", description: "Array of available search fields for appointments", items: { type: "object", additionalProperties: !0, required: ["translationKey", "fields"], properties: { translationKey: { type: "string", description: "Translation key for the field label" }, fields: { type: "array", description: "Array of field names to search against", items: { type: "string" } }, expectedFields: { type: "array", description: "Array of expected fields with optional types", items: { type: "object", required: ["field", "translationKey"], properties: { field: { type: "string", description: "The field name (e.g., apptNumber, apptDate)" }, translationKey: { type: "string", description: "Translation key for the field's display label" }, type: { type: "string", description: "Optional field type (e.g., date, string)" } } } }, type: { type: "string", enum: ["appointment"], description: "Type of the search field (appointment)" }, actions: { type: "array", description: "Array of actions allowed on this search field", items: { type: "object", required: ["translationKey", "type", "enabledRule", "onAction"], properties: { translationKey: { type: "string", description: "Translation key for the action button label" }, type: { type: "string", enum: ["changeStatus", "navigate", "checkInAndStartVisit"], description: "Type of action to perform" }, enabledRule: { type: "array", description: "Conditions to enable this action (rules)", items: { type: "object", properties: { type: { type: "string", enum: ["privilegeCheck", "statusCheck", "appDateCheck", "appointmentService"], description: "Type of rule to evaluate" }, values: { type: "array", items: { type: "string" }, description: "Values to match for the rule" }, excludeValues: { type: "array", items: { type: "string" }, description: "Values to exclude for the rule" } } } }, onAction: { type: "object", description: "What happens when action is triggered", additionalProperties: !0, properties: { status: { type: "string", description: "Status to set (for changeStatus type)" }, navigation: { type: "string", description: "URL path to navigate to (for navigate type)" }, submit: { type: "string", description: "API endpoint URL to submit to (for checkInAndStartVisit type)" } } }, onSuccess: { type: "object", description: "Notification or other success response", additionalProperties: !0, properties: { notification: { type: "string", description: "Translation key for success notification message" } } } } } } } } } }, _y0 = {
104476
+ $schema: xy0,
104477
+ title: Ny0,
104478
+ type: Cy0,
104479
+ additionalProperties: Ay0,
104480
+ properties: Ly0
104481
104481
  };
104482
104482
  class Ty0 {
104483
104483
  type = "appointment";
@@ -104739,7 +104739,7 @@ const Dy0 = ({ extensionParams: t }) => {
104739
104739
  data: a
104740
104740
  } = b2({
104741
104741
  queryKey: ["searchPatientConfig", e],
104742
- queryFn: () => Hn2(e, Ly0),
104742
+ queryFn: () => Hn2(e, _y0),
104743
104743
  enabled: !!e
104744
104744
  }), [l, c] = Ve(""), [i, s] = Ve(""), [d, u] = Ve(""), [h, p] = Ve(""), { addNotification: f } = U0(), { t: E } = j1(), [w, M] = Ve(!1), [y, m] = Ve([]), [g, C] = Ve(""), [v, A] = Ve([]), [L, _] = Ve(void 0), Z = () => v.find(
104745
104745
  (B) => E(B.translationKey) === g
@@ -104855,7 +104855,7 @@ const Dy0 = ({ extensionParams: t }) => {
104855
104855
  } : void 0, X = w ? $ : "", G = X === "appointment" ? k?.appointment ?? [] : k?.customAttributes ?? [];
104856
104856
  return /* @__PURE__ */ De("div", { children: [
104857
104857
  /* @__PURE__ */ q(
104858
- _y0,
104858
+ by0,
104859
104859
  {
104860
104860
  buttonTitle: E("REGISTRATION_PATIENT_SEARCH_BUTTON_TITLE"),
104861
104861
  searchBarPlaceholder: E(
@@ -113236,15 +113236,7 @@ const AN0 = (t, e) => t.filter(
113236
113236
  className: O2.dataTable
113237
113237
  }
113238
113238
  );
113239
- }, kN0 = "http://json-schema.org/draft-07/schema#", ZN0 = "Common Search Widget Config Schema", IN0 = "Configuration for the common search widget, defining search criteria per context", BN0 = "array", PN0 = 1, FN0 = { $ref: "#/definitions/searchContextConfig" }, jN0 = { searchContextConfig: { type: "object", required: ["context", "translationKey", "requiredPrivileges", "url", "pageSize", "criteria", "resultFields"], additionalProperties: !1, properties: { context: { type: "string", enum: ["patient", "appointment", "patientProgram"], description: "The context this search configuration applies to" }, translationKey: { type: "string", minLength: 1, description: "i18n key for the tab/section label" }, requiredPrivileges: { type: "array", items: { type: "string" }, minItems: 1, uniqueItems: !0, description: "Privileges required to access this search context" }, locationAware: { type: "string", enum: ["loggedInLocation", "allowedLocation"], description: "Location scope applied when executing searches in this context" }, url: { type: "string", minLength: 1, description: "API endpoint URL for search results" }, pageSize: { type: "integer", minimum: 1, description: "Number of results per page" }, criteria: { type: "array", items: { $ref: "#/definitions/criterionConfig" }, minItems: 1, description: "Search criteria available in this context" }, resultFields: { type: "array", items: { $ref: "#/definitions/resultFieldConfig" }, minItems: 1, description: "Defines the columns shown in the results table after a successful search" }, actions: { type: "array", minItems: 1, items: { $ref: "#/definitions/actionConfig" }, description: "Actions available in this context. Optional at the context level, but required when any resultField references an action key. Each action key must be unique within the context." } } }, resultFieldConfig: { type: "object", required: ["translationKey", "expression"], additionalProperties: !1, properties: { translationKey: { type: "string", minLength: 1, description: "i18n key for the column header" }, expression: { type: "string", minLength: 1, description: "JSONata expression evaluated against each result item to extract the column value" }, enableSort: { type: "boolean", description: "When true, the column header is clickable to sort results client-side" }, sortOrder: { type: "string", enum: ["asc", "desc"], description: "Direction the results are sorted by this column before any user interaction" }, filterType: { type: "string", enum: ["text", "select", "dateRange", "numeric"], description: "When present, a filter control appears for this column" }, action: { type: "string", description: "Key of an action defined in the context's actions array. When the referenced action has type navigate, the cell renders as a link. If the user holds none of the action's required privileges, the cell renders as plain text. Referencing a key not present in the actions array is a config error and blocks the widget." }, transform: { type: "string", enum: ["formatDate", "formatTime", "formatDateTime", "formatAge", "formatGender", "formatCountry", "formatSearchResult"], description: "Name of a transform applied to the extracted value before display" } } }, criterionConfig: { type: "object", required: ["field", "translationKey", "input"], additionalProperties: !1, properties: { id: { type: "string", minLength: 1, description: "Human-readable identifier for this criterion, unique within its context. Referenced by other criteria's additionalCriteria list. When omitted, an identifier is auto-derived from field.key/keyType." }, field: { $ref: "#/definitions/fieldConfig" }, default: { type: "boolean", description: "Whether this criterion is shown by default in the UI" }, translationKey: { type: "string", minLength: 1, description: "i18n key for the criterion label" }, input: { $ref: "#/definitions/inputConfig" }, additionalCriteria: { type: "array", items: { type: "string", minLength: 1 }, minItems: 1, uniqueItems: !0, description: "IDs of other criteria in this context that qualify as a sufficient companion when this criterion would otherwise be the only one active. When set and no other active criterion's id appears in this list, the search is blocked." } } }, fieldConfig: { type: "object", required: ["key"], additionalProperties: !1, properties: { key: { type: "string", minLength: 1, description: "Field identifier used when constructing the search query" }, keyType: { type: "string", minLength: 1, description: "UUID or type qualifier for polymorphic fields such as identifier or personAttribute" } } }, inputConfig: { oneOf: [{ $ref: "#/definitions/textInput" }, { $ref: "#/definitions/dateInput" }, { $ref: "#/definitions/numericInput" }, { $ref: "#/definitions/optionsInput" }, { $ref: "#/definitions/lookupInput" }] }, textInput: { type: "object", required: ["kind", "placeholderTranslationKey"], additionalProperties: !1, properties: { kind: { type: "string", const: "text" }, placeholderTranslationKey: { type: "string", minLength: 1 }, regex: { type: "string", minLength: 1, description: "Optional regular expression. When provided, the value is validated against this pattern on search submission." } } }, dateInput: { type: "object", required: ["kind", "placeholderTranslationKey"], additionalProperties: !1, properties: { kind: { type: "string", const: "date" }, placeholderTranslationKey: { type: "string", minLength: 1 }, rangeAllowed: { type: "boolean", description: "When true, UI renders two inputs (From and To), each with its own value and comparator" } } }, numericInput: { type: "object", required: ["kind", "placeholderTranslationKey"], additionalProperties: !1, properties: { kind: { type: "string", const: "numeric" }, placeholderTranslationKey: { type: "string", minLength: 1 }, rangeAllowed: { type: "boolean", description: "When true, UI renders two inputs (From and To), each with its own value and comparator" } } }, optionsInput: { type: "object", required: ["kind", "placeholderTranslationKey", "options"], additionalProperties: !1, properties: { kind: { type: "string", const: "options" }, placeholderTranslationKey: { type: "string", minLength: 1 }, options: { type: "array", minItems: 1, items: { $ref: "#/definitions/optionItem" }, description: "Static list of selectable options" } } }, optionItem: { type: "object", required: ["translationKey", "value"], additionalProperties: !1, properties: { translationKey: { type: "string", minLength: 1 }, value: { type: "string", minLength: 1 } } }, lookupInput: { type: "object", required: ["kind", "placeholderTranslationKey", "lookup"], additionalProperties: !1, properties: { kind: { type: "string", const: "lookup" }, placeholderTranslationKey: { type: "string", minLength: 1 }, lookup: { $ref: "#/definitions/lookupConfig" } } }, lookupConfig: { type: "object", required: ["source"], additionalProperties: !1, properties: { source: { type: "string", minLength: 1, description: "Identifies the lookup source (e.g. appointmentService, concept)" }, prefetch: { type: "boolean", description: "Whether to load all options upfront rather than on user input" }, valueSet: { type: "string", description: "UUID of the concept value set to restrict lookup results" } } }, actionConfig: { oneOf: [{ $ref: "#/definitions/navigateAction" }] }, navigateAction: { type: "object", required: ["key", "type", "navigationURL"], additionalProperties: !0, properties: { key: { type: "string", description: "Unique identifier for this action within the context. Referenced by resultField entries via their action field." }, type: { type: "string", const: "navigate", description: "Renders the column cell as a link navigating to navigationURL." }, navigationURL: { type: "string", description: "URL template for navigation. Placeholders use {expression} syntax where the content must be a valid JSONata expression evaluated against the result row. For example, {uuid} resolves the uuid field; {patient.uuid} resolves a nested field." }, requiredPrivileges: { type: "array", items: { type: "string" }, description: "Privileges required to activate this action. Any one suffices. An empty array makes the action available to all users." } } } }, UN0 = {
113240
- $schema: kN0,
113241
- title: ZN0,
113242
- description: IN0,
113243
- type: BN0,
113244
- minItems: PN0,
113245
- items: FN0,
113246
- definitions: jN0
113247
- }, qN0 = ({
113239
+ }, kN0 = ({
113248
113240
  input: t,
113249
113241
  value: e,
113250
113242
  onChange: r,
@@ -113353,7 +113345,7 @@ const AN0 = (t, e) => t.filter(
113353
113345
  )
113354
113346
  }
113355
113347
  ) });
113356
- }, WN0 = async () => {
113348
+ }, ZN0 = async () => {
113357
113349
  const t = Ys();
113358
113350
  return (await l40()).filter(
113359
113351
  (e) => e.location === null || e.location.uuid === t.uuid
@@ -113361,20 +113353,20 @@ const AN0 = (t, e) => t.filter(
113361
113353
  uuid: e.uuid,
113362
113354
  label: e.name
113363
113355
  }));
113364
- }, GN0 = async () => (await ci0()).filter((t) => !t.retired).map((t) => ({ uuid: t.uuid, label: t.name })), KN0 = async () => (await Fc0()).filter((t) => t.person).map((t) => ({
113356
+ }, IN0 = async () => (await ci0()).filter((t) => !t.retired).map((t) => ({ uuid: t.uuid, label: t.name })), BN0 = async () => (await Fc0()).filter((t) => t.person).map((t) => ({
113365
113357
  uuid: t.uuid,
113366
113358
  label: (t.person?.preferredName?.display ?? t.person.display) || t.display
113367
- })), YN0 = {
113368
- appointmentService: WN0,
113369
- provider: KN0,
113370
- programName: GN0
113371
- }, JN0 = ({
113359
+ })), PN0 = {
113360
+ appointmentService: ZN0,
113361
+ provider: BN0,
113362
+ programName: IN0
113363
+ }, FN0 = ({
113372
113364
  input: t,
113373
113365
  value: e,
113374
113366
  onChange: r,
113375
113367
  validationError: n
113376
113368
  }) => {
113377
- const { t: a } = j1(), [l, c] = Ve(null), i = YN0[t.lookup.source], { data: s, isLoading: d, isError: u } = b2({
113369
+ const { t: a } = j1(), [l, c] = Ve(null), i = PN0[t.lookup.source], { data: s, isLoading: d, isError: u } = b2({
113378
113370
  queryKey: ["lookup", t.lookup.source],
113379
113371
  queryFn: i,
113380
113372
  enabled: !!i,
@@ -113415,7 +113407,7 @@ const AN0 = (t, e) => t.filter(
113415
113407
  )
113416
113408
  }
113417
113409
  );
113418
- }, bm = (t) => t == null || t === "" ? null : String(t), XN0 = ({
113410
+ }, bm = (t) => t == null || t === "" ? null : String(t), jN0 = ({
113419
113411
  input: t,
113420
113412
  value: e,
113421
113413
  onChange: r,
@@ -113516,7 +113508,7 @@ const AN0 = (t, e) => t.filter(
113516
113508
  )
113517
113509
  }
113518
113510
  );
113519
- }, QN0 = ({
113511
+ }, UN0 = ({
113520
113512
  input: t,
113521
113513
  value: e,
113522
113514
  onChange: r,
@@ -113546,7 +113538,7 @@ const AN0 = (t, e) => t.filter(
113546
113538
  )
113547
113539
  }
113548
113540
  );
113549
- }, eC0 = ({
113541
+ }, qN0 = ({
113550
113542
  input: t,
113551
113543
  value: e,
113552
113544
  onChange: r,
@@ -113569,7 +113561,7 @@ const AN0 = (t, e) => t.filter(
113569
113561
  invalidText: n ?? void 0
113570
113562
  }
113571
113563
  ) });
113572
- }, tC0 = ({
113564
+ }, WN0 = ({
113573
113565
  input: t,
113574
113566
  value: e,
113575
113567
  onChange: r,
@@ -113579,7 +113571,7 @@ const AN0 = (t, e) => t.filter(
113579
113571
  switch (t.kind) {
113580
113572
  case "text":
113581
113573
  return /* @__PURE__ */ q(
113582
- eC0,
113574
+ qN0,
113583
113575
  {
113584
113576
  input: t,
113585
113577
  value: e,
@@ -113589,7 +113581,7 @@ const AN0 = (t, e) => t.filter(
113589
113581
  );
113590
113582
  case "numeric":
113591
113583
  return /* @__PURE__ */ q(
113592
- XN0,
113584
+ jN0,
113593
113585
  {
113594
113586
  input: t,
113595
113587
  value: e,
@@ -113600,7 +113592,7 @@ const AN0 = (t, e) => t.filter(
113600
113592
  );
113601
113593
  case "date":
113602
113594
  return /* @__PURE__ */ q(
113603
- qN0,
113595
+ kN0,
113604
113596
  {
113605
113597
  input: t,
113606
113598
  value: e,
@@ -113611,7 +113603,7 @@ const AN0 = (t, e) => t.filter(
113611
113603
  );
113612
113604
  case "options":
113613
113605
  return /* @__PURE__ */ q(
113614
- QN0,
113606
+ UN0,
113615
113607
  {
113616
113608
  input: t,
113617
113609
  value: e,
@@ -113621,7 +113613,7 @@ const AN0 = (t, e) => t.filter(
113621
113613
  );
113622
113614
  case "lookup":
113623
113615
  return /* @__PURE__ */ q(
113624
- JN0,
113616
+ FN0,
113625
113617
  {
113626
113618
  input: t,
113627
113619
  value: e,
@@ -113630,7 +113622,7 @@ const AN0 = (t, e) => t.filter(
113630
113622
  }
113631
113623
  );
113632
113624
  }
113633
- }, rC0 = ({
113625
+ }, GN0 = ({
113634
113626
  row: t,
113635
113627
  availableCriteria: e,
113636
113628
  selectedCriterion: r,
@@ -113665,7 +113657,7 @@ const AN0 = (t, e) => t.filter(
113665
113657
  }
113666
113658
  ) }),
113667
113659
  /* @__PURE__ */ q("div", { className: O2.criterionInput, children: r ? /* @__PURE__ */ q(
113668
- tC0,
113660
+ WN0,
113669
113661
  {
113670
113662
  input: r.input,
113671
113663
  value: t.value,
@@ -113688,7 +113680,7 @@ const AN0 = (t, e) => t.filter(
113688
113680
  ]
113689
113681
  }
113690
113682
  );
113691
- }, nC0 = ({
113683
+ }, KN0 = ({
113692
113684
  config: t,
113693
113685
  location: e,
113694
113686
  onSearch: r,
@@ -113772,7 +113764,7 @@ const AN0 = (t, e) => t.filter(
113772
113764
  }
113773
113765
  ) }),
113774
113766
  d.map((g) => /* @__PURE__ */ q("div", { className: O2.fullWidthCol, children: /* @__PURE__ */ q(
113775
- rC0,
113767
+ GN0,
113776
113768
  {
113777
113769
  row: g,
113778
113770
  availableCriteria: zN0(
@@ -113822,7 +113814,7 @@ const AN0 = (t, e) => t.filter(
113822
113814
  ]
113823
113815
  }
113824
113816
  );
113825
- }, oC0 = (t, e, r) => {
113817
+ }, YN0 = (t, e, r) => {
113826
113818
  if ("value" in t) {
113827
113819
  if (e.kind === "options") {
113828
113820
  const a = e.options.find((l) => l.value === t.value);
@@ -113838,14 +113830,14 @@ const AN0 = (t, e) => t.filter(
113838
113830
  }
113839
113831
  const n = t.from.value;
113840
113832
  return t.to?.value ? r("COMMON_SEARCH_CRITERIA_TAG_RANGE", { from: n, to: t.to.value }) : n;
113841
- }, aC0 = (t, e, r) => `${r(e.translationKey)}: ${oC0(t.value, e.input, r)}`, lC0 = ({ currentSearchState: t }) => {
113833
+ }, JN0 = (t, e, r) => `${r(e.translationKey)}: ${YN0(t.value, e.input, r)}`, XN0 = ({ currentSearchState: t }) => {
113842
113834
  const { t: e } = j1(), { context: r, rows: n } = t, a = n.filter(
113843
113835
  (l) => l.criterionKey !== null && l.value !== null
113844
113836
  ).map((l) => {
113845
113837
  const c = r.criteria.find(
113846
113838
  (i) => i.id === l.criterionKey
113847
113839
  );
113848
- return { key: l.rowId, text: aC0(l, c, e) };
113840
+ return { key: l.rowId, text: JN0(l, c, e) };
113849
113841
  });
113850
113842
  return /* @__PURE__ */ De(
113851
113843
  "div",
@@ -113877,6 +113869,14 @@ const AN0 = (t, e) => t.filter(
113877
113869
  ]
113878
113870
  }
113879
113871
  );
113872
+ }, QN0 = "http://json-schema.org/draft-07/schema#", eC0 = "Common Search Widget Config Schema", tC0 = "Configuration for the common search widget, defining search criteria per context", rC0 = "array", nC0 = 1, oC0 = { $ref: "#/definitions/searchContextConfig" }, aC0 = { searchContextConfig: { type: "object", required: ["context", "translationKey", "requiredPrivileges", "url", "pageSize", "criteria", "resultFields"], additionalProperties: !1, properties: { context: { type: "string", enum: ["patient", "appointment", "patientProgram"], description: "The context this search configuration applies to" }, translationKey: { type: "string", minLength: 1, description: "i18n key for the tab/section label" }, requiredPrivileges: { type: "array", items: { type: "string" }, minItems: 1, uniqueItems: !0, description: "Privileges required to access this search context" }, locationAware: { type: "string", enum: ["loggedInLocation", "allowedLocation"], description: "Location scope applied when executing searches in this context" }, url: { type: "string", minLength: 1, description: "API endpoint URL for search results" }, pageSize: { type: "integer", minimum: 1, description: "Number of results per page" }, criteria: { type: "array", items: { $ref: "#/definitions/criterionConfig" }, minItems: 1, description: "Search criteria available in this context" }, resultFields: { type: "array", items: { $ref: "#/definitions/resultFieldConfig" }, minItems: 1, description: "Defines the columns shown in the results table after a successful search" }, actions: { type: "array", minItems: 1, items: { $ref: "#/definitions/actionConfig" }, description: "Actions available in this context. Optional at the context level, but required when any resultField references an action key. Each action key must be unique within the context." } } }, resultFieldConfig: { type: "object", required: ["translationKey", "expression"], additionalProperties: !1, properties: { translationKey: { type: "string", minLength: 1, description: "i18n key for the column header" }, expression: { type: "string", minLength: 1, description: "JSONata expression evaluated against each result item to extract the column value" }, enableSort: { type: "boolean", description: "When true, the column header is clickable to sort results client-side" }, sortOrder: { type: "string", enum: ["asc", "desc"], description: "Direction the results are sorted by this column before any user interaction" }, filterType: { type: "string", enum: ["text", "select", "dateRange", "numeric"], description: "When present, a filter control appears for this column" }, action: { type: "string", description: "Key of an action defined in the context's actions array. When the referenced action has type navigate, the cell renders as a link. If the user holds none of the action's required privileges, the cell renders as plain text. Referencing a key not present in the actions array is a config error and blocks the widget." }, transform: { type: "string", enum: ["formatDate", "formatTime", "formatDateTime", "formatAge", "formatGender", "formatCountry", "formatSearchResult"], description: "Name of a transform applied to the extracted value before display" } } }, criterionConfig: { type: "object", required: ["field", "translationKey", "input"], additionalProperties: !1, properties: { id: { type: "string", minLength: 1, description: "Human-readable identifier for this criterion, unique within its context. Referenced by other criteria's additionalCriteria list. When omitted, an identifier is auto-derived from field.key/keyType." }, field: { $ref: "#/definitions/fieldConfig" }, default: { type: "boolean", description: "Whether this criterion is shown by default in the UI" }, translationKey: { type: "string", minLength: 1, description: "i18n key for the criterion label" }, input: { $ref: "#/definitions/inputConfig" }, additionalCriteria: { type: "array", items: { type: "string", minLength: 1 }, minItems: 1, uniqueItems: !0, description: "IDs of other criteria in this context that qualify as a sufficient companion when this criterion would otherwise be the only one active. When set and no other active criterion's id appears in this list, the search is blocked." } } }, fieldConfig: { type: "object", required: ["key"], additionalProperties: !1, properties: { key: { type: "string", minLength: 1, description: "Field identifier used when constructing the search query" }, keyType: { type: "string", minLength: 1, description: "UUID or type qualifier for polymorphic fields such as identifier or personAttribute" } } }, inputConfig: { oneOf: [{ $ref: "#/definitions/textInput" }, { $ref: "#/definitions/dateInput" }, { $ref: "#/definitions/numericInput" }, { $ref: "#/definitions/optionsInput" }, { $ref: "#/definitions/lookupInput" }] }, textInput: { type: "object", required: ["kind", "placeholderTranslationKey"], additionalProperties: !1, properties: { kind: { type: "string", const: "text" }, placeholderTranslationKey: { type: "string", minLength: 1 }, regex: { type: "string", minLength: 1, description: "Optional regular expression. When provided, the value is validated against this pattern on search submission." } } }, dateInput: { type: "object", required: ["kind", "placeholderTranslationKey"], additionalProperties: !1, properties: { kind: { type: "string", const: "date" }, placeholderTranslationKey: { type: "string", minLength: 1 }, rangeAllowed: { type: "boolean", description: "When true, UI renders two inputs (From and To), each with its own value and comparator" } } }, numericInput: { type: "object", required: ["kind", "placeholderTranslationKey"], additionalProperties: !1, properties: { kind: { type: "string", const: "numeric" }, placeholderTranslationKey: { type: "string", minLength: 1 }, rangeAllowed: { type: "boolean", description: "When true, UI renders two inputs (From and To), each with its own value and comparator" } } }, optionsInput: { type: "object", required: ["kind", "placeholderTranslationKey", "options"], additionalProperties: !1, properties: { kind: { type: "string", const: "options" }, placeholderTranslationKey: { type: "string", minLength: 1 }, options: { type: "array", minItems: 1, items: { $ref: "#/definitions/optionItem" }, description: "Static list of selectable options" } } }, optionItem: { type: "object", required: ["translationKey", "value"], additionalProperties: !1, properties: { translationKey: { type: "string", minLength: 1 }, value: { type: "string", minLength: 1 } } }, lookupInput: { type: "object", required: ["kind", "placeholderTranslationKey", "lookup"], additionalProperties: !1, properties: { kind: { type: "string", const: "lookup" }, placeholderTranslationKey: { type: "string", minLength: 1 }, lookup: { $ref: "#/definitions/lookupConfig" } } }, lookupConfig: { type: "object", required: ["source"], additionalProperties: !1, properties: { source: { type: "string", minLength: 1, description: "Identifies the lookup source (e.g. appointmentService, concept)" }, prefetch: { type: "boolean", description: "Whether to load all options upfront rather than on user input" }, valueSet: { type: "string", description: "UUID of the concept value set to restrict lookup results" } } }, actionConfig: { oneOf: [{ $ref: "#/definitions/navigateAction" }] }, navigateAction: { type: "object", required: ["key", "type", "navigationURL"], additionalProperties: !0, properties: { key: { type: "string", description: "Unique identifier for this action within the context. Referenced by resultField entries via their action field." }, type: { type: "string", const: "navigate", description: "Renders the column cell as a link navigating to navigationURL." }, navigationURL: { type: "string", description: "URL template for navigation. Placeholders use {expression} syntax where the content must be a valid JSONata expression evaluated against the result row. For example, {uuid} resolves the uuid field; {patient.uuid} resolves a nested field." }, requiredPrivileges: { type: "array", items: { type: "string" }, description: "Privileges required to activate this action. Any one suffices. An empty array makes the action available to all users." } } } }, lC0 = {
113873
+ $schema: QN0,
113874
+ title: eC0,
113875
+ description: tC0,
113876
+ type: rC0,
113877
+ minItems: nC0,
113878
+ items: oC0,
113879
+ definitions: aC0
113880
113880
  }, cC0 = ({ extensionParams: t }) => {
113881
113881
  const { t: e } = j1(), { addNotification: r } = U0(), n = t?.configUrl, [a, l] = Ve(!1), [c] = Ve(() => {
113882
113882
  try {
@@ -113890,7 +113890,7 @@ const AN0 = (t, e) => t.filter(
113890
113890
  data: E
113891
113891
  } = b2({
113892
113892
  queryKey: ["commonSearchWidgetConfig", n],
113893
- queryFn: () => Hn2(n, UN0),
113893
+ queryFn: () => Hn2(n, lC0),
113894
113894
  enabled: !!n
113895
113895
  }), {
113896
113896
  isLoading: w,
@@ -114012,7 +114012,7 @@ const AN0 = (t, e) => t.filter(
114012
114012
  testId: "common-search-criteria-accordion-test-id",
114013
114013
  className: O2.searchCriteriaAccordionItem,
114014
114014
  children: /* @__PURE__ */ q(
114015
- nC0,
114015
+ KN0,
114016
114016
  {
114017
114017
  config: A,
114018
114018
  location: c,
@@ -114026,7 +114026,7 @@ const AN0 = (t, e) => t.filter(
114026
114026
  }
114027
114027
  ),
114028
114028
  !a && i && /* @__PURE__ */ De(H2, { children: [
114029
- /* @__PURE__ */ q(lC0, { currentSearchState: i }),
114029
+ /* @__PURE__ */ q(XN0, { currentSearchState: i }),
114030
114030
  /* @__PURE__ */ q(
114031
114031
  SN0,
114032
114032
  {
@@ -114071,7 +114071,7 @@ const iC0 = [
114071
114071
  },
114072
114072
  {
114073
114073
  type: "patientDocuments",
114074
- component: J0(() => import("./DocumentsTable-ULtsCmIW-CZMWHk-T.js"))
114074
+ component: J0(() => import("./DocumentsTable-Cz-E1n_9-CmQIT4Tp.js"))
114075
114075
  },
114076
114076
  {
114077
114077
  type: "flowSheet",
@@ -114079,7 +114079,7 @@ const iC0 = [
114079
114079
  },
114080
114080
  {
114081
114081
  type: "forms",
114082
- component: J0(() => import("./FormsTable-DAFDPXnd-CLk-i2f_.js"))
114082
+ component: J0(() => import("./FormsTable-D2iNj6MO-D1nvhjMs.js"))
114083
114083
  },
114084
114084
  {
114085
114085
  type: "labOrders",
@@ -114087,7 +114087,7 @@ const iC0 = [
114087
114087
  },
114088
114088
  {
114089
114089
  type: "observations",
114090
- component: J0(() => import("./Observations-DOZ-UiSs-DUk-XWd0.js"))
114090
+ component: J0(() => import("./Observations-mnzr0Nxn-DXzrhGpX.js"))
114091
114091
  },
114092
114092
  {
114093
114093
  type: "ordersControl",
@@ -209866,7 +209866,7 @@ var kXt = (t, e = !1) => {
209866
209866
  const e = fp2(() => {
209867
209867
  const r = this, [n] = this.#n, [a] = this.#o, [l] = this.#a, [c] = this.#l, [i] = this.#p, [s] = this.#e;
209868
209868
  let d;
209869
- return this.#c ? d = this.#c : (d = hp2(() => import("./LNWAZHJI-Du5pLAOf.js")), this.#c = d), Op2(this.#h, this.#r), dp2(d, up2({
209869
+ return this.#c ? d = this.#c : (d = hp2(() => import("./LNWAZHJI-gp-xkQOg.js")), this.#c = d), Op2(this.#h, this.#r), dp2(d, up2({
209870
209870
  get queryFlavor() {
209871
209871
  return r.#d;
209872
209872
  },
@@ -209964,7 +209964,7 @@ var kXt = (t, e = !1) => {
209964
209964
  const e = fp2(() => {
209965
209965
  const r = this, [n] = this.#n, [a] = this.#o, [l] = this.#a, [c] = this.#l, [i] = this.#p, [s] = this.#e, [d] = this.#c;
209966
209966
  let u;
209967
- return this.#i ? u = this.#i : (u = hp2(() => import("./MWZ6AO7Z-1Thy25SD.js")), this.#i = u), Op2(this.#h, this.#r), dp2(u, up2({
209967
+ return this.#i ? u = this.#i : (u = hp2(() => import("./MWZ6AO7Z-P2sh4x3s.js")), this.#i = u), Op2(this.#h, this.#r), dp2(u, up2({
209968
209968
  get queryFlavor() {
209969
209969
  return r.#d;
209970
209970
  },
@@ -210120,7 +210120,7 @@ const lKt = {
210120
210120
  id: "clinical-config",
210121
210121
  name: "Clinical Config",
210122
210122
  displayName: "ClinicalConfigProvider"
210123
- }), MKt = J0(() => import("./ConsultationPage-C-_ZfjpU.js")), yKt = J0(() => import("./index-CAfJdVBo.js")), VKt = [
210123
+ }), MKt = J0(() => import("./ConsultationPage-Cm53s85r.js")), yKt = J0(() => import("./index-CVoDmXMu.js")), VKt = [
210124
210124
  {
210125
210125
  path: ":patientUuid",
210126
210126
  component: MKt