dhpgemrdhs92092 1.250727.11714 → 1.250728.10943

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 (2) hide show
  1. package/index.js +418 -380
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! [dist-pg-services.js]; ===WEBPACK BUILD: 1.25.0727.1714=== */
1
+ /*! [dist-pg-services.js]; ===WEBPACK BUILD: 1.25.0728.0943=== */
2
2
  (() => {
3
3
  var e = {
4
4
  4466: (e, n, t) => {
@@ -1024,9 +1024,9 @@
1024
1024
 
1025
1025
  function h() {}
1026
1026
 
1027
- function f() {}
1028
-
1029
1027
  function q() {}
1028
+
1029
+ function f() {}
1030
1030
  var _ = {};
1031
1031
  b(_, c, (function() {
1032
1032
  return this
@@ -1034,7 +1034,7 @@
1034
1034
  var W = Object.getPrototypeOf,
1035
1035
  L = W && W(W(x([])));
1036
1036
  L && L !== a && p.call(L, c) && (_ = L);
1037
- var g = q.prototype = h.prototype = Object.create(_);
1037
+ var g = f.prototype = h.prototype = Object.create(_);
1038
1038
 
1039
1039
  function y(e) {
1040
1040
  ["next", "throw", "return"].forEach((function(n) {
@@ -1159,17 +1159,17 @@
1159
1159
  }
1160
1160
  throw new TypeError(n(t) + " is not iterable")
1161
1161
  }
1162
- return f.prototype = q, r(g, "constructor", {
1163
- value: q,
1164
- configurable: !0
1165
- }), r(q, "constructor", {
1162
+ return q.prototype = f, r(g, "constructor", {
1166
1163
  value: f,
1167
1164
  configurable: !0
1168
- }), f.displayName = b(q, M, "GeneratorFunction"), o.isGeneratorFunction = function(e) {
1165
+ }), r(f, "constructor", {
1166
+ value: q,
1167
+ configurable: !0
1168
+ }), q.displayName = b(f, M, "GeneratorFunction"), o.isGeneratorFunction = function(e) {
1169
1169
  var n = "function" == typeof e && e.constructor;
1170
- return !!n && (n === f || "GeneratorFunction" === (n.displayName || n.name))
1170
+ return !!n && (n === q || "GeneratorFunction" === (n.displayName || n.name))
1171
1171
  }, o.mark = function(e) {
1172
- return Object.setPrototypeOf ? Object.setPrototypeOf(e, q) : (e.__proto__ = q, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
1172
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, f) : (e.__proto__ = f, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
1173
1173
  }, o.awrap = function(e) {
1174
1174
  return {
1175
1175
  __await: e
@@ -1436,9 +1436,9 @@
1436
1436
 
1437
1437
  function h() {}
1438
1438
 
1439
- function f() {}
1440
-
1441
1439
  function q() {}
1440
+
1441
+ function f() {}
1442
1442
  var _ = {};
1443
1443
  b(_, c, (function() {
1444
1444
  return this
@@ -1446,7 +1446,7 @@
1446
1446
  var W = Object.getPrototypeOf,
1447
1447
  L = W && W(W(x([])));
1448
1448
  L && L !== t && p.call(L, c) && (_ = L);
1449
- var g = q.prototype = h.prototype = Object.create(_);
1449
+ var g = f.prototype = h.prototype = Object.create(_);
1450
1450
 
1451
1451
  function y(e) {
1452
1452
  ["next", "throw", "return"].forEach((function(n) {
@@ -1571,17 +1571,17 @@
1571
1571
  }
1572
1572
  throw new TypeError(o(n) + " is not iterable")
1573
1573
  }
1574
- return f.prototype = q, r(g, "constructor", {
1575
- value: q,
1576
- configurable: !0
1577
- }), r(q, "constructor", {
1574
+ return q.prototype = f, r(g, "constructor", {
1578
1575
  value: f,
1579
1576
  configurable: !0
1580
- }), f.displayName = b(q, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
1577
+ }), r(f, "constructor", {
1578
+ value: q,
1579
+ configurable: !0
1580
+ }), q.displayName = b(f, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
1581
1581
  var n = "function" == typeof e && e.constructor;
1582
- return !!n && (n === f || "GeneratorFunction" === (n.displayName || n.name))
1582
+ return !!n && (n === q || "GeneratorFunction" === (n.displayName || n.name))
1583
1583
  }, n.mark = function(e) {
1584
- return Object.setPrototypeOf ? Object.setPrototypeOf(e, q) : (e.__proto__ = q, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
1584
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, f) : (e.__proto__ = f, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
1585
1585
  }, n.awrap = function(e) {
1586
1586
  return {
1587
1587
  __await: e
@@ -2088,6 +2088,14 @@
2088
2088
  return function e(n) {
2089
2089
  Array.isArray(n) ? n.forEach(e) : "object" === o(n) && null !== n ? Object.values(n).forEach(e) : "string" == typeof n && /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(n) && t.add(n.trim())
2090
2090
  }(e), n(t)
2091
+ },
2092
+ parseBooleanParam: function(e) {
2093
+ if ("boolean" == typeof e) return e;
2094
+ if ("string" == typeof e) {
2095
+ var n = e.toLowerCase().trim();
2096
+ return "true" === n || "1" === n
2097
+ }
2098
+ return !1
2091
2099
  }
2092
2100
  }
2093
2101
  },
@@ -2267,10 +2275,10 @@
2267
2275
  },
2268
2276
  logError: u,
2269
2277
  logStarted: function() {
2270
- return O("🚀- ".concat(i, "; 🅥:").concat("1.25.0727.1714"))
2278
+ return O("🚀- ".concat(i, "; 🅥:").concat("1.25.0728.0943"))
2271
2279
  },
2272
2280
  logEnded: function() {
2273
- return O("🔜 - ".concat(i, "; 🅥:").concat("1.25.0727.1714", " 🔚"))
2281
+ return O("🔜 - ".concat(i, "; 🅥:").concat("1.25.0728.0943", " 🔚"))
2274
2282
  },
2275
2283
  DirectoryPathLogs: c,
2276
2284
  logInfoObject: function(e) {
@@ -2403,9 +2411,9 @@
2403
2411
 
2404
2412
  function h() {}
2405
2413
 
2406
- function f() {}
2407
-
2408
2414
  function q() {}
2415
+
2416
+ function f() {}
2409
2417
  var _ = {};
2410
2418
  b(_, c, (function() {
2411
2419
  return this
@@ -2413,7 +2421,7 @@
2413
2421
  var W = Object.getPrototypeOf,
2414
2422
  L = W && W(W(x([])));
2415
2423
  L && L !== t && o.call(L, c) && (_ = L);
2416
- var g = q.prototype = h.prototype = Object.create(_);
2424
+ var g = f.prototype = h.prototype = Object.create(_);
2417
2425
 
2418
2426
  function y(e) {
2419
2427
  ["next", "throw", "return"].forEach((function(n) {
@@ -2538,17 +2546,17 @@
2538
2546
  }
2539
2547
  throw new TypeError(p(n) + " is not iterable")
2540
2548
  }
2541
- return f.prototype = q, a(g, "constructor", {
2542
- value: q,
2543
- configurable: !0
2544
- }), a(q, "constructor", {
2549
+ return q.prototype = f, a(g, "constructor", {
2545
2550
  value: f,
2546
2551
  configurable: !0
2547
- }), f.displayName = b(q, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
2552
+ }), a(f, "constructor", {
2553
+ value: q,
2554
+ configurable: !0
2555
+ }), q.displayName = b(f, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
2548
2556
  var n = "function" == typeof e && e.constructor;
2549
- return !!n && (n === f || "GeneratorFunction" === (n.displayName || n.name))
2557
+ return !!n && (n === q || "GeneratorFunction" === (n.displayName || n.name))
2550
2558
  }, n.mark = function(e) {
2551
- return Object.setPrototypeOf ? Object.setPrototypeOf(e, q) : (e.__proto__ = q, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
2559
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, f) : (e.__proto__ = f, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
2552
2560
  }, n.awrap = function(e) {
2553
2561
  return {
2554
2562
  __await: e
@@ -2886,9 +2894,9 @@
2886
2894
 
2887
2895
  function h() {}
2888
2896
 
2889
- function f() {}
2890
-
2891
2897
  function q() {}
2898
+
2899
+ function f() {}
2892
2900
  var _ = {};
2893
2901
  b(_, c, (function() {
2894
2902
  return this
@@ -2896,7 +2904,7 @@
2896
2904
  var W = Object.getPrototypeOf,
2897
2905
  L = W && W(W(x([])));
2898
2906
  L && L !== t && p.call(L, c) && (_ = L);
2899
- var g = q.prototype = h.prototype = Object.create(_);
2907
+ var g = f.prototype = h.prototype = Object.create(_);
2900
2908
 
2901
2909
  function y(e) {
2902
2910
  ["next", "throw", "return"].forEach((function(n) {
@@ -3021,17 +3029,17 @@
3021
3029
  }
3022
3030
  throw new TypeError(o(n) + " is not iterable")
3023
3031
  }
3024
- return f.prototype = q, r(g, "constructor", {
3025
- value: q,
3026
- configurable: !0
3027
- }), r(q, "constructor", {
3032
+ return q.prototype = f, r(g, "constructor", {
3028
3033
  value: f,
3029
3034
  configurable: !0
3030
- }), f.displayName = b(q, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
3035
+ }), r(f, "constructor", {
3036
+ value: q,
3037
+ configurable: !0
3038
+ }), q.displayName = b(f, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
3031
3039
  var n = "function" == typeof e && e.constructor;
3032
- return !!n && (n === f || "GeneratorFunction" === (n.displayName || n.name))
3040
+ return !!n && (n === q || "GeneratorFunction" === (n.displayName || n.name))
3033
3041
  }, n.mark = function(e) {
3034
- return Object.setPrototypeOf ? Object.setPrototypeOf(e, q) : (e.__proto__ = q, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
3042
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, f) : (e.__proto__ = f, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
3035
3043
  }, n.awrap = function(e) {
3036
3044
  return {
3037
3045
  __await: e
@@ -3651,7 +3659,7 @@
3651
3659
  "current.chidinhcls": p(p({}, i["badt_dhs.getCUTPParaClinRequest"]), {}, {
3652
3660
  schema: "current",
3653
3661
  table_name: "chidinhcls",
3654
- TG_ARGV0: "mabn,makb,maba,macls",
3662
+ TG_ARGV0: "mabn,makb,maba,macls,noitru,bant",
3655
3663
  TG_ARGV1: "macls,stt,soluong,iddienbien,idchidinh,manv,ngaykcb,xoa"
3656
3664
  }),
3657
3665
  "current.dmquocgia": p(p({}, i["badt_dhs.getSyncCountry"]), {}, {
@@ -3694,7 +3702,7 @@
3694
3702
  },
3695
3703
  b = function() {
3696
3704
  var e = [];
3697
- for (var n in e.push("\n \nDO $$\nDECLARE\n v_schema_name text := '".concat(c.schema, "';\n v_table_name text := '").concat(c.table, "';\n idx_name text;\n idx_exists boolean;\nBEGIN\n -- 1. Tạo schema nếu chưa tồn tại\n IF NOT EXISTS (\n SELECT 1 FROM pg_namespace WHERE nspname = v_schema_name\n ) THEN\n EXECUTE format('CREATE SCHEMA %I', v_schema_name);\n END IF;\n\n -- 2. Tạo bảng UNLOGGED nếu chưa tồn tại (chỉ cột id tạm)\n IF NOT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = v_table_name AND n.nspname = v_schema_name\n ) THEN\n EXECUTE format('CREATE UNLOGGED TABLE %I.%I (id SERIAL PRIMARY KEY)', v_schema_name, v_table_name);\n END IF;\n\n -- 3. Thêm các cột nếu chưa tồn tại\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'table_name'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN table_name VARCHAR(100)', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'operation'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN operation VARCHAR(10) NOT NULL', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'payload'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN payload JSONB NOT NULL', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'processed'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN processed BOOLEAN DEFAULT FALSE', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'retry_count'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN retry_count INTEGER DEFAULT 0', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'created_at'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'updated_at'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'processed_at'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN processed_at TIMESTAMPTZ', v_schema_name, v_table_name);\n END IF;\n\n -- 4. Tạo index idx_processed\n idx_name := 'idx_' || v_table_name || '_processed';\n SELECT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = idx_name AND n.nspname = v_schema_name\n ) INTO idx_exists;\n\n IF NOT idx_exists THEN\n EXECUTE format('CREATE INDEX %I ON %I.%I(processed)', idx_name, v_schema_name, v_table_name);\n END IF;\n\n -- 5. Tạo index idx_processed_retry\n idx_name := 'idx_' || v_table_name || '_processed_retry';\n SELECT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = idx_name AND n.nspname = v_schema_name\n ) INTO idx_exists;\n\n IF NOT idx_exists THEN\n EXECUTE format('CREATE INDEX %I ON %I.%I(processed, retry_count)', idx_name, v_schema_name, v_table_name);\n END IF;\n\n -- 6. Tạo index idx_created_at\n idx_name := 'idx_' || v_table_name || '_created_at';\n SELECT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = idx_name AND n.nspname = v_schema_name\n ) INTO idx_exists;\n\n IF NOT idx_exists THEN\n EXECUTE format('CREATE INDEX %I ON %I.%I(created_at)', idx_name, v_schema_name, v_table_name);\n END IF;\n\n -- 7. Tạo index idx_table_name\n idx_name := 'idx_' || v_table_name || '_table_name';\n SELECT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = idx_name AND n.nspname = v_schema_name\n ) INTO idx_exists;\n\n IF NOT idx_exists THEN\n EXECUTE format('CREATE INDEX %I ON %I.%I(table_name)', idx_name, v_schema_name, v_table_name);\n END IF;\n\nEND\n$$;\n")), e.push("\n-- 1. Tạo bảng UNLOGGED nếu chưa tồn tại\nDO $$\nBEGIN\n IF NOT EXISTS (\n SELECT FROM information_schema.tables \n WHERE table_schema = 'badt_dhs' AND table_name = 'benhnhan_synced'\n ) THEN\n EXECUTE '\n CREATE UNLOGGED TABLE badt_dhs.benhnhan_synced (\n id serial PRIMARY KEY\n )';\n END IF;\nEND$$;\n\n-- 2. Thêm các cột nếu chưa có\nDO $$\nDECLARE\n col record;\nBEGIN\n FOR col IN\n SELECT * FROM (\n VALUES \n ('table_name', 'text'),\n ('operation', 'text'),\n ('payload', 'jsonb'),\n ('pathapi', 'text'),\n ('resultapi', 'jsonb'),\n ('created_at', 'timestamptz'),\n ('mabn', 'text'),\n ('makb', 'text'),\n ('maba', 'text'),\n ('type', 'text')\n ) AS cols(name, type)\n LOOP\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns \n WHERE table_schema = 'badt_dhs' AND table_name = 'benhnhan_synced' AND column_name = col.name\n ) THEN\n EXECUTE format(\n 'ALTER TABLE badt_dhs.benhnhan_synced ADD COLUMN %I %s',\n col.name, col.type\n );\n END IF;\n END LOOP;\nEND$$;\n\n-- 3. Tạo index nếu chưa có\nDO $$\nBEGIN\n IF NOT EXISTS (\n SELECT 1 FROM pg_indexes \n WHERE schemaname = 'badt_dhs' AND tablename = 'benhnhan_synced' AND indexname = 'idx_benhnhan_synced_mabn_maba_makb'\n ) THEN\n EXECUTE '\n CREATE INDEX idx_benhnhan_synced_mabn_maba_makb\n ON badt_dhs.benhnhan_synced (mabn, maba, makb)';\n END IF;\nEND$$;\n \n"), e.push("\nCREATE OR REPLACE FUNCTION ".concat(c.schema, ".").concat(c.functionName, "() RETURNS trigger AS $$\nDECLARE\n payload JSONB;\n notification_id INTEGER;\n fixed_cols TEXT[];\n changed_cols TEXT[];\n notify_channel TEXT := TG_TABLE_SCHEMA || '.' || TG_TABLE_NAME;\n dest_schema TEXT := 'badt_dhs'; -- <-- Thay schema đích lưu thông báo tại đây\n dest_table TEXT := 'notifications'; -- <-- Thay bảng đích lưu thông báo tại đây\n changed_fields JSONB := '{}';\n col TEXT;\n old_val TEXT;\n new_val TEXT;\n insert_sql TEXT;\n senddata JSONB; -- Cái này là phần thêm dữ liệu JSON cho trường senddata\n dmcls_row RECORD; -- Sử dụng record để lưu trữ kết quả từ bảng dmcls\n bnnoitru_namvien INTEGER; -- Khai báo biến namvien\n qtdieutri_maba TEXT; \n chidinhcls_noitru INTEGER; \n chungtu_noitru INTEGER; \n api INTEGER; \n chuyenphong_maba TEXT; \n row RECORD; -- Sử dụng record để lưu trữ kết quả từ bảng khác\n maba_by_row TEXT; -- Sử dụng để lấy giá trị maba ở các Row khác nhau\nBEGIN\n --✖️ Xử lý bỏ qua các trường không cần xử lý, tránh tình trạng treo và gửi dữ liệu không cần thiết ✖️\n\n --------------✖️ current.bnnoitru ✖️--------------\n --[ÔNG TRIỆU HẬU - 2025-07-12]: Bỏ trường hợp này để gửi dữ liệu bệnh án ngoại trú\n --IF TG_TABLE_NAME = 'bnnoitru' THEN\n -- bnnoitru_namvien := CASE WHEN TG_OP='INSERT' THEN NEW.namvien ELSE OLD.namvien END;\n -- IF bnnoitru_namvien != 1 THEN\n -- RETURN NULL; -- Nếu namvien không phải 1, bỏ qua không thực hiện tiếp theo\n -- END IF;\n --END IF; \n --------------✖️ current.bnnoitru ✖️--------------\n\n --------------✖️ current.qtdieutri ✖️--------------\n IF TG_TABLE_NAME = 'qtdieutri' THEN\n qtdieutri_maba := CASE WHEN TG_OP='INSERT' THEN NEW.maba ELSE OLD.maba END;\n api := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.api,0) ELSE COALESCE(OLD.api,0) END;\n IF api=1 OR COALESCE(qtdieutri_maba,'')='' OR LEFT(qtdieutri_maba, 1)='N' THEN\n RETURN NULL; -- Bỏ qua nếu maba Rỗng và bắt đầu N\n END IF;\n END IF; \n --------------✖️ current.qtdieutri ✖️--------------\n\n --------------✖️ current.chidinhcls ✖️--------------\n IF TG_TABLE_NAME = 'chidinhcls' THEN\n chidinhcls_noitru := CASE WHEN TG_OP='INSERT' THEN NEW.noitru ELSE OLD.noitru END;\n api := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.api,0) ELSE COALESCE(OLD.api,0) END;\n maba_by_row := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.maba,'') ELSE COALESCE(OLD.maba,'') END;\n IF api=1 OR (COALESCE(chidinhcls_noitru,0) = 0 AND LEFT(maba_by_row, 1)='N') THEN\n RETURN NULL; -- Không xử lý, nếu api=1 hoặc chỉ định thuộc có maba mà không phải nội trú\n END IF;\n END IF; \n --------------✖️ current.chidinhcls ✖️--------------\n \n --------------✖️ current.chungtu ✖️--------------\n IF TG_TABLE_NAME = 'chungtu' THEN\n chungtu_noitru := CASE WHEN TG_OP='INSERT' THEN NEW.noitru ELSE OLD.noitru END;\n api := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.api,0) ELSE COALESCE(OLD.api,0) END;\n IF api=1 OR COALESCE(chungtu_noitru,0) != 1 THEN\n RETURN NULL; -- Không xử lý, nếu noitru khác 1\n END IF;\n END IF; \n --------------✖️ current.chungtu ✖️--------------\n\n --------------✖️ current.chuyenphong ✖️--------------\n IF TG_TABLE_NAME = 'chuyenphong' THEN\n chuyenphong_maba := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.maba,'') ELSE 'KHONGXULY' END;\n IF chuyenphong_maba<>'' THEN\n RETURN NULL; -- Không xử lý, nếu maba khác rỗng\n END IF;\n END IF; \n --------------✖️ current.chuyenphong ✖️--------------\n\n\n -- Lấy danh sách cột cố định và cột thay đổi từ TG_ARGV\n fixed_cols := string_to_array(TG_ARGV[0], ',');\n changed_cols := string_to_array(TG_ARGV[1], ',');\n\n -- Nếu bảng là current.chidinhcls, ta sẽ xây dựng senddata như một phần của payload\n IF TG_TABLE_NAME = 'chidinhcls' THEN\n -- Truy vấn lấy tencls và dvt từ bảng current.dmcls và lưu vào record dmcls_row\n SELECT tencls, dvt INTO dmcls_row\n FROM current.dmcls\n WHERE macls = NEW.macls;\n\n -- Tạo cấu trúc senddata với các trường cần thiết, để thực hiện gửi liền, chỗ services không cần phải lấy lại thông tin chỉ định, tránh treo\n senddata := jsonb_build_object(\n 'TPCode', NEW.iddienbien,\n 'AdmissionCode', NEW.makb,\n 'MedicalRecordNo', NEW.maba,\n 'PatientCode', NEW.mabn,\n 'EmployeeCode', NEW.manv,\n 'ParaClinReqCode', NEW.iddienbien,\n 'ParaClinRequests', jsonb_build_array(\n jsonb_build_object(\n 'PCReqDltVoucherNo', COALESCE(NEW.idchidinh, '')||COALESCE(NEW.macls, ''),\n 'OrderNo', NEW.stt,\n 'MedSerID', 'null'::jsonb,\n 'MedSerCode', NEW.macls,\n 'MedSerName', dmcls_row.tencls, -- Sử dụng trực tiếp dmcls_row.tencls thay cho NEW.MedSerName\n 'UOMID', 'null'::jsonb,\n 'UOMCode', dmcls_row.dvt,\n 'ParaClinQty', NEW.soluong,\n 'PCReqDtlNotes', ' ',\n 'PatientObject', 1,\n 'FromDate', TO_CHAR(NEW.ngaykcb AT TIME ZONE 'UTC', 'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"'),\n 'ToDate', TO_CHAR(NEW.ngaykcb AT TIME ZONE 'UTC', 'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"')\n )\n )\n );\n END IF;\n\n -- Nếu bảng là current.chuyenphong, ta sẽ xây dựng senddata như một phần của payload\n IF TG_TABLE_NAME = 'chuyenphong' THEN\n -- Truy vấn lấy thông tin từ khám bệnh đưa vào biến row\n SELECT manv, kqcdoan INTO row\n FROM current.khambenh\n WHERE mabn = NEW.mabn AND makb = NEW.makb AND madv = NEW.madvc AND maphong = NEW.mapc;\n\n -- Tạo cấu trúc senddata với các trường cần thiết, để thực hiện gửi liền, chỗ services không cần phải lấy lại thông tin chỉ định, tránh treo\n senddata := jsonb_build_object(\n 'AdmissionCode', NEW.makb,\n 'OldDepartmentCode', NEW.mapc, --Mã khoa chuyển (Xử lý ngoại trú sẽ lấy mã phòng làm mã khoa)\n 'DepartmentCode', NEW.mapn, --Mã khoa chuyển (Xử lý ngoại trú sẽ lấy mã phòng làm mã khoa)\n 'RoomID', NEW.mapn,\n 'OldRoomID', NEW.mapc,\n 'BedID','', --Giường\n 'TransferDate',TO_CHAR(new.ngaychuyen, 'YYYY-MM-DD HH24:MI'), --Ngày chuyển\n 'TransferNotes', 'Chuyển phòng khám bệnh',\n 'TransferStatus', 0,\n 'OrderNum', 1,\n 'PatientStatus', '',\n 'Diagnosis', row.kqcdoan, -- Chẩn đoán\n 'TransferReason','', -- Lý do chuyển\n 'TreatmentDoctorCode', row.manv, --BS điều trị\n 'TreatmentDepartmentCode',''\n );\n END IF;\n\n -- Kiểm tra các loại thao tác: INSERT, UPDATE, DELETE\n IF TG_OP = 'INSERT' THEN\n payload := jsonb_build_object('operation', TG_OP);\n\n -- Lặp qua các cột cố định và thêm vào payload\n FOREACH col IN ARRAY fixed_cols LOOP\n EXECUTE format('SELECT $1.%I::text', col) INTO new_val USING NEW;\n\n IF new_val IS NOT NULL THEN\n payload := jsonb_set(payload, ARRAY[col], to_jsonb(new_val));\n ELSE\n payload := jsonb_set(payload, ARRAY[col], 'null'::jsonb);\n END IF;\n END LOOP;\n\n -- Nếu bảng là chidinhcls, ta thêm senddata vào payload\n IF TG_TABLE_NAME = 'chidinhcls' THEN\n payload := jsonb_set(payload, '{senddata}', senddata);\n END IF;\n -- Nếu bảng là chidinhcls, ta thêm senddata vào payload\n IF TG_TABLE_NAME = 'chuyenphong' THEN\n payload := jsonb_set(payload, '{senddata}', senddata);\n END IF;\n\n ELSIF TG_OP = 'UPDATE' THEN\n payload := jsonb_build_object('operation', TG_OP);\n\n -- Lặp qua các cột cố định\n FOREACH col IN ARRAY fixed_cols LOOP\n EXECUTE format('SELECT $1.%I::text', col) INTO new_val USING NEW;\n\n IF new_val IS NOT NULL THEN\n payload := jsonb_set(payload, ARRAY[col], to_jsonb(new_val));\n ELSE\n payload := jsonb_set(payload, ARRAY[col], 'null'::jsonb);\n END IF;\n END LOOP;\n\n -- Lặp qua các cột thay đổi\n FOREACH col IN ARRAY changed_cols LOOP\n EXECUTE format('SELECT $1.%I::text, $2.%I::text', col, col) INTO old_val, new_val USING OLD, NEW;\n\n IF old_val IS DISTINCT FROM new_val THEN\n IF new_val IS NOT NULL THEN\n changed_fields := changed_fields || jsonb_build_object(\n col, jsonb_build_object('old', old_val, 'new', new_val)\n );\n ELSE\n changed_fields := changed_fields || jsonb_build_object(\n col, jsonb_build_object('old', old_val, 'new', 'null'::jsonb)\n );\n END IF;\n END IF;\n END LOOP;\n\n IF changed_fields = '{}'::jsonb THEN\n RETURN NULL;\n END IF;\n\n payload := jsonb_set(payload, '{changed_fields}', to_jsonb(changed_fields));\n\n -- Nếu bảng là chidinhcls, ta thêm senddata vào payload\n IF TG_TABLE_NAME = 'chidinhcls' THEN\n payload := jsonb_set(payload, '{senddata}', senddata);\n END IF;\n\n ELSIF TG_OP = 'DELETE' THEN\n payload := jsonb_build_object('operation', TG_OP);\n\n -- Lặp qua các cột cố định\n FOREACH col IN ARRAY fixed_cols LOOP\n EXECUTE format('SELECT $1.%I::text', col) INTO old_val USING OLD;\n\n IF new_val IS NOT NULL THEN\n payload := jsonb_set(payload, ARRAY[col], to_jsonb(old_val));\n ELSE\n payload := jsonb_set(payload, ARRAY[col], 'null'::jsonb);\n END IF;\n END LOOP;\n END IF;\n\n -- Chuẩn bị câu lệnh insert động với schema và table đích\n insert_sql := format(\n 'INSERT INTO %I.%I(table_name, operation, payload) VALUES ($1, $2, $3) RETURNING id',\n dest_schema, dest_table\n );\n\n -- Thực thi insert, lấy id trả về\n EXECUTE insert_sql USING notify_channel, TG_OP, payload INTO notification_id;\n\n -- Cập nhật payload thêm notification_id và channel\n payload := jsonb_set(payload, '{notification_id}', to_jsonb(notification_id));\n payload := jsonb_set(payload, '{channel}', to_jsonb(notify_channel));\n\n -- Gửi notify với payload đã được cập nhật\n PERFORM pg_notify('").concat(c.name, "', payload::text);\n\n RETURN NULL;\nEND;\n$$ LANGUAGE plpgsql;\n\n\n ")), e.push("\nDROP FUNCTION IF EXISTS ".concat(c.schema, ".").concat(c.functionName_replay, ";\nCREATE OR REPLACE FUNCTION ").concat(c.schema, ".").concat(c.functionName_replay, "(p_id INTEGER)\nRETURNS VOID AS $$\nDECLARE\n v_payload JSONB;\n v_channel TEXT;\nBEGIN\n -- Lấy payload và tên kênh từ bảng notifications\n SELECT payload, table_name INTO v_payload, v_channel\n FROM ").concat(c.schema, ".").concat(c.table, "\n WHERE id = p_id;\n\n IF v_payload IS NULL THEN\n RAISE EXCEPTION 'Không tìm thấy payload với id = %', p_id;\n END IF;\n\n -- Cập nhật payload với channel và notification_id\n v_payload := jsonb_set(v_payload, '{channel}', to_jsonb(v_channel));\n v_payload := jsonb_set(v_payload, '{notification_id}', to_jsonb(p_id));\n\n -- Gửi lại notification với payload đã cập nhật\n PERFORM pg_notify('").concat(c.name, "', v_payload::text);\nEND;\n$$ LANGUAGE plpgsql;\n ")), s) e.push(s[n].codesql), e.push(M(s[n]));
3705
+ for (var n in e.push("\n \nDO $$\nDECLARE\n v_schema_name text := '".concat(c.schema, "';\n v_table_name text := '").concat(c.table, "';\n idx_name text;\n idx_exists boolean;\nBEGIN\n -- 1. Tạo schema nếu chưa tồn tại\n IF NOT EXISTS (\n SELECT 1 FROM pg_namespace WHERE nspname = v_schema_name\n ) THEN\n EXECUTE format('CREATE SCHEMA %I', v_schema_name);\n END IF;\n\n -- 2. Tạo bảng UNLOGGED nếu chưa tồn tại (chỉ cột id tạm)\n IF NOT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = v_table_name AND n.nspname = v_schema_name\n ) THEN\n EXECUTE format('CREATE UNLOGGED TABLE %I.%I (id SERIAL PRIMARY KEY)', v_schema_name, v_table_name);\n END IF;\n\n -- 3. Thêm các cột nếu chưa tồn tại\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'table_name'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN table_name VARCHAR(100)', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'operation'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN operation VARCHAR(10) NOT NULL', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'payload'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN payload JSONB NOT NULL', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'processed'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN processed BOOLEAN DEFAULT FALSE', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'retry_count'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN retry_count INTEGER DEFAULT 0', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'created_at'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'updated_at'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP', v_schema_name, v_table_name);\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns\n WHERE table_schema = v_schema_name AND table_name = v_table_name AND column_name = 'processed_at'\n ) THEN\n EXECUTE format('ALTER TABLE %I.%I ADD COLUMN processed_at TIMESTAMPTZ', v_schema_name, v_table_name);\n END IF;\n\n -- 4. Tạo index idx_processed\n idx_name := 'idx_' || v_table_name || '_processed';\n SELECT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = idx_name AND n.nspname = v_schema_name\n ) INTO idx_exists;\n\n IF NOT idx_exists THEN\n EXECUTE format('CREATE INDEX %I ON %I.%I(processed)', idx_name, v_schema_name, v_table_name);\n END IF;\n\n -- 5. Tạo index idx_processed_retry\n idx_name := 'idx_' || v_table_name || '_processed_retry';\n SELECT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = idx_name AND n.nspname = v_schema_name\n ) INTO idx_exists;\n\n IF NOT idx_exists THEN\n EXECUTE format('CREATE INDEX %I ON %I.%I(processed, retry_count)', idx_name, v_schema_name, v_table_name);\n END IF;\n\n -- 6. Tạo index idx_created_at\n idx_name := 'idx_' || v_table_name || '_created_at';\n SELECT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = idx_name AND n.nspname = v_schema_name\n ) INTO idx_exists;\n\n IF NOT idx_exists THEN\n EXECUTE format('CREATE INDEX %I ON %I.%I(created_at)', idx_name, v_schema_name, v_table_name);\n END IF;\n\n -- 7. Tạo index idx_table_name\n idx_name := 'idx_' || v_table_name || '_table_name';\n SELECT EXISTS (\n SELECT 1 FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE c.relname = idx_name AND n.nspname = v_schema_name\n ) INTO idx_exists;\n\n IF NOT idx_exists THEN\n EXECUTE format('CREATE INDEX %I ON %I.%I(table_name)', idx_name, v_schema_name, v_table_name);\n END IF;\n\nEND\n$$;\n")), e.push("\n-- 1. Tạo bảng UNLOGGED nếu chưa tồn tại\nDO $$\nBEGIN\n IF NOT EXISTS (\n SELECT FROM information_schema.tables \n WHERE table_schema = 'badt_dhs' AND table_name = 'benhnhan_synced'\n ) THEN\n EXECUTE '\n CREATE UNLOGGED TABLE badt_dhs.benhnhan_synced (\n id serial PRIMARY KEY\n )';\n END IF;\nEND$$;\n\n-- 2. Thêm các cột nếu chưa có\nDO $$\nDECLARE\n col record;\nBEGIN\n FOR col IN\n SELECT * FROM (\n VALUES \n ('table_name', 'text'),\n ('operation', 'text'),\n ('payload', 'jsonb'),\n ('pathapi', 'text'),\n ('resultapi', 'jsonb'),\n ('created_at', 'timestamptz'),\n ('mabn', 'text'),\n ('makb', 'text'),\n ('maba', 'text'),\n ('type', 'text')\n ) AS cols(name, type)\n LOOP\n IF NOT EXISTS (\n SELECT 1 FROM information_schema.columns \n WHERE table_schema = 'badt_dhs' AND table_name = 'benhnhan_synced' AND column_name = col.name\n ) THEN\n EXECUTE format(\n 'ALTER TABLE badt_dhs.benhnhan_synced ADD COLUMN %I %s',\n col.name, col.type\n );\n END IF;\n END LOOP;\nEND$$;\n\n-- 3. Tạo index nếu chưa có\nDO $$\nBEGIN\n IF NOT EXISTS (\n SELECT 1 FROM pg_indexes \n WHERE schemaname = 'badt_dhs' AND tablename = 'benhnhan_synced' AND indexname = 'idx_benhnhan_synced_mabn_maba_makb'\n ) THEN\n EXECUTE '\n CREATE INDEX idx_benhnhan_synced_mabn_maba_makb\n ON badt_dhs.benhnhan_synced (mabn, maba, makb)';\n END IF;\nEND$$;\n \n"), e.push("\nCREATE OR REPLACE FUNCTION ".concat(c.schema, ".").concat(c.functionName, "() RETURNS trigger AS $$\nDECLARE\n payload JSONB;\n notification_id INTEGER;\n fixed_cols TEXT[];\n changed_cols TEXT[];\n notify_channel TEXT := TG_TABLE_SCHEMA || '.' || TG_TABLE_NAME;\n dest_schema TEXT := 'badt_dhs'; -- <-- Thay schema đích lưu thông báo tại đây\n dest_table TEXT := 'notifications'; -- <-- Thay bảng đích lưu thông báo tại đây\n changed_fields JSONB := '{}';\n col TEXT;\n old_val TEXT;\n new_val TEXT;\n insert_sql TEXT;\n senddata JSONB; -- Cái này là phần thêm dữ liệu JSON cho trường senddata\n dmcls_row RECORD; -- Sử dụng record để lưu trữ kết quả từ bảng dmcls\n bnnoitru_namvien INTEGER; -- Khai báo biến namvien\n qtdieutri_maba TEXT; \n chidinhcls_noitru INTEGER; \n chungtu_noitru INTEGER; \n api INTEGER; \n chuyenphong_maba TEXT; \n row RECORD; -- Sử dụng record để lưu trữ kết quả từ bảng khác\n maba_by_row TEXT; -- Sử dụng để lấy giá trị maba ở các Row khác nhau\n pathApi TEXT; -- Sử dụng cấu hình pathApi\nBEGIN\n --✖️ Xử lý bỏ qua các trường không cần xử lý, tránh tình trạng treo và gửi dữ liệu không cần thiết ✖️\n\n --------------✖️ current.bnnoitru ✖️--------------\n --[ÔNG TRIỆU HẬU - 2025-07-12]: Bỏ trường hợp này để gửi dữ liệu bệnh án ngoại trú\n --IF TG_TABLE_NAME = 'bnnoitru' THEN\n -- bnnoitru_namvien := CASE WHEN TG_OP='INSERT' THEN NEW.namvien ELSE OLD.namvien END;\n -- IF bnnoitru_namvien != 1 THEN\n -- RETURN NULL; -- Nếu namvien không phải 1, bỏ qua không thực hiện tiếp theo\n -- END IF;\n --END IF; \n --------------✖️ current.bnnoitru ✖️--------------\n\n --------------✖️ current.qtdieutri ✖️--------------\n IF TG_TABLE_NAME = 'qtdieutri' THEN\n qtdieutri_maba := CASE WHEN TG_OP='INSERT' THEN NEW.maba ELSE OLD.maba END;\n api := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.api,0) ELSE COALESCE(OLD.api,0) END;\n IF api=1 OR COALESCE(qtdieutri_maba,'')='' OR LEFT(qtdieutri_maba, 1)='N' THEN\n RETURN NULL; -- Bỏ qua nếu maba Rỗng và bắt đầu N\n END IF;\n END IF; \n --------------✖️ current.qtdieutri ✖️--------------\n\n --------------✖️ current.chidinhcls ✖️--------------\n IF TG_TABLE_NAME = 'chidinhcls' THEN\n chidinhcls_noitru := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.noitru,0) ELSE COALESCE(OLD.noitru,0) END;\n api := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.api,0) ELSE COALESCE(OLD.api,0) END;\n maba_by_row := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.maba,'') ELSE COALESCE(OLD.maba,'') END;\n IF api=1 OR (COALESCE(chidinhcls_noitru,0) = 0 AND LEFT(maba_by_row, 1)='N') THEN\n RETURN NULL; -- Không xử lý, nếu api=1 hoặc chỉ định thuộc có maba mà không phải nội trú\n END IF;\n END IF; \n --------------✖️ current.chidinhcls ✖️--------------\n \n --------------✖️ current.chungtu ✖️--------------\n IF TG_TABLE_NAME = 'chungtu' THEN\n chungtu_noitru := CASE WHEN TG_OP='INSERT' THEN NEW.noitru ELSE OLD.noitru END;\n api := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.api,0) ELSE COALESCE(OLD.api,0) END;\n IF api=1 OR COALESCE(chungtu_noitru,0) != 1 THEN\n RETURN NULL; -- Không xử lý, nếu noitru khác 1\n END IF;\n END IF; \n --------------✖️ current.chungtu ✖️--------------\n\n --------------✖️ current.chuyenphong ✖️--------------\n IF TG_TABLE_NAME = 'chuyenphong' THEN\n chuyenphong_maba := CASE WHEN TG_OP='INSERT' THEN COALESCE(NEW.maba,'') ELSE 'KHONGXULY' END;\n IF chuyenphong_maba<>'' THEN\n RETURN NULL; -- Không xử lý, nếu maba khác rỗng\n END IF;\n END IF; \n --------------✖️ current.chuyenphong ✖️--------------\n\n\n -- Lấy danh sách cột cố định và cột thay đổi từ TG_ARGV\n fixed_cols := string_to_array(TG_ARGV[0], ',');\n changed_cols := string_to_array(TG_ARGV[1], ',');\n\n -- Nếu bảng là current.chidinhcls, ta sẽ xây dựng senddata như một phần của payload\n IF TG_TABLE_NAME = 'chidinhcls' THEN\n -- Truy vấn lấy tencls và dvt từ bảng current.dmcls và lưu vào record dmcls_row\n SELECT tencls, dvt INTO dmcls_row\n FROM current.dmcls\n WHERE macls = NEW.macls;\n IF chidinhcls_noitru=0 AND maba_by_row='' THEN\n pathApi='server/his-server/api/Connect/CUTPParaClinRequestOUT';\n END IF;\n\n -- Tạo cấu trúc senddata với các trường cần thiết, để thực hiện gửi liền, chỗ services không cần phải lấy lại thông tin chỉ định, tránh treo\n senddata := jsonb_build_object(\n 'pathApi', pathApi,\n 'TPCode', NEW.iddienbien,\n 'AdmissionCode', NEW.makb,\n 'MedicalRecordNo', NEW.maba,\n 'PatientCode', NEW.mabn,\n 'EmployeeCode', NEW.manv,\n 'ParaClinReqCode', CASE WHEN chidinhcls_noitru=0 AND maba_by_row='' THEN NEW.makb||'.'||NEW.madv||'.'||NEW.maphong ELSE NEW.iddienbien END,\n 'ParaClinRequests', jsonb_build_array(\n jsonb_build_object(\n 'PCReqDltVoucherNo', COALESCE(NEW.idchidinh, '')||COALESCE(NEW.macls, ''),\n 'OrderNo', NEW.stt,\n 'MedSerID', 'null'::jsonb,\n 'MedSerCode', NEW.macls,\n 'MedSerName', dmcls_row.tencls, -- Sử dụng trực tiếp dmcls_row.tencls thay cho NEW.MedSerName\n 'UOMID', 'null'::jsonb,\n 'UOMCode', dmcls_row.dvt,\n 'ParaClinQty', NEW.soluong,\n 'PCReqDtlNotes', ' ',\n 'PatientObject', 1,\n 'FromDate', TO_CHAR(NEW.ngaykcb AT TIME ZONE 'UTC', 'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"'),\n 'ToDate', TO_CHAR(NEW.ngaykcb AT TIME ZONE 'UTC', 'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"')\n )\n ),\n 'DiagnosisDesc',NEW.kqcdoan\n );\n END IF;\n\n -- Nếu bảng là current.chuyenphong, ta sẽ xây dựng senddata như một phần của payload\n IF TG_TABLE_NAME = 'chuyenphong' THEN\n -- Truy vấn lấy thông tin từ khám bệnh đưa vào biến row\n SELECT manv, kqcdoan INTO row\n FROM current.khambenh\n WHERE mabn = NEW.mabn AND makb = NEW.makb AND madv = NEW.madvc AND maphong = NEW.mapc;\n\n -- Tạo cấu trúc senddata với các trường cần thiết, để thực hiện gửi liền, chỗ services không cần phải lấy lại thông tin chỉ định, tránh treo\n senddata := jsonb_build_object(\n 'AdmissionCode', NEW.makb,\n 'OldDepartmentCode', NEW.mapc, --Mã khoa chuyển (Xử lý ngoại trú sẽ lấy mã phòng làm mã khoa)\n 'DepartmentCode', NEW.mapn, --Mã khoa chuyển (Xử lý ngoại trú sẽ lấy mã phòng làm mã khoa)\n 'RoomID', NEW.mapn,\n 'OldRoomID', NEW.mapc,\n 'BedID','', --Giường\n 'TransferDate',TO_CHAR(new.ngaychuyen, 'YYYY-MM-DD HH24:MI'), --Ngày chuyển\n 'TransferNotes', 'Chuyển phòng khám bệnh',\n 'TransferStatus', 0,\n 'OrderNum', 1,\n 'PatientStatus', '',\n 'Diagnosis', row.kqcdoan, -- Chẩn đoán\n 'TransferReason','', -- Lý do chuyển\n 'TreatmentDoctorCode', row.manv, --BS điều trị\n 'TreatmentDepartmentCode',''\n );\n END IF;\n\n -- Kiểm tra các loại thao tác: INSERT, UPDATE, DELETE\n IF TG_OP = 'INSERT' THEN\n payload := jsonb_build_object('operation', TG_OP);\n\n -- Lặp qua các cột cố định và thêm vào payload\n FOREACH col IN ARRAY fixed_cols LOOP\n EXECUTE format('SELECT $1.%I::text', col) INTO new_val USING NEW;\n\n IF new_val IS NOT NULL THEN\n payload := jsonb_set(payload, ARRAY[col], to_jsonb(new_val));\n ELSE\n payload := jsonb_set(payload, ARRAY[col], 'null'::jsonb);\n END IF;\n END LOOP;\n\n -- Nếu bảng là chidinhcls, ta thêm senddata vào payload\n IF TG_TABLE_NAME = 'chidinhcls' THEN\n payload := jsonb_set(payload, '{senddata}', senddata);\n END IF;\n -- Nếu bảng là chidinhcls, ta thêm senddata vào payload\n IF TG_TABLE_NAME = 'chuyenphong' THEN\n payload := jsonb_set(payload, '{senddata}', senddata);\n END IF;\n\n ELSIF TG_OP = 'UPDATE' THEN\n payload := jsonb_build_object('operation', TG_OP);\n\n -- Lặp qua các cột cố định\n FOREACH col IN ARRAY fixed_cols LOOP\n EXECUTE format('SELECT $1.%I::text', col) INTO new_val USING NEW;\n\n IF new_val IS NOT NULL THEN\n payload := jsonb_set(payload, ARRAY[col], to_jsonb(new_val));\n ELSE\n payload := jsonb_set(payload, ARRAY[col], 'null'::jsonb);\n END IF;\n END LOOP;\n\n -- Lặp qua các cột thay đổi\n FOREACH col IN ARRAY changed_cols LOOP\n EXECUTE format('SELECT $1.%I::text, $2.%I::text', col, col) INTO old_val, new_val USING OLD, NEW;\n\n IF old_val IS DISTINCT FROM new_val THEN\n IF new_val IS NOT NULL THEN\n changed_fields := changed_fields || jsonb_build_object(\n col, jsonb_build_object('old', old_val, 'new', new_val)\n );\n ELSE\n changed_fields := changed_fields || jsonb_build_object(\n col, jsonb_build_object('old', old_val, 'new', 'null'::jsonb)\n );\n END IF;\n END IF;\n END LOOP;\n\n IF changed_fields = '{}'::jsonb THEN\n RETURN NULL;\n END IF;\n\n payload := jsonb_set(payload, '{changed_fields}', to_jsonb(changed_fields));\n\n -- Nếu bảng là chidinhcls, ta thêm senddata vào payload\n IF TG_TABLE_NAME = 'chidinhcls' THEN\n payload := jsonb_set(payload, '{senddata}', senddata);\n END IF;\n\n ELSIF TG_OP = 'DELETE' THEN\n payload := jsonb_build_object('operation', TG_OP);\n\n -- Lặp qua các cột cố định\n FOREACH col IN ARRAY fixed_cols LOOP\n EXECUTE format('SELECT $1.%I::text', col) INTO old_val USING OLD;\n\n IF new_val IS NOT NULL THEN\n payload := jsonb_set(payload, ARRAY[col], to_jsonb(old_val));\n ELSE\n payload := jsonb_set(payload, ARRAY[col], 'null'::jsonb);\n END IF;\n END LOOP;\n END IF;\n\n -- Chuẩn bị câu lệnh insert động với schema và table đích\n insert_sql := format(\n 'INSERT INTO %I.%I(table_name, operation, payload) VALUES ($1, $2, $3) RETURNING id',\n dest_schema, dest_table\n );\n\n -- Thực thi insert, lấy id trả về\n EXECUTE insert_sql USING notify_channel, TG_OP, payload INTO notification_id;\n\n -- Cập nhật payload thêm notification_id và channel\n payload := jsonb_set(payload, '{notification_id}', to_jsonb(notification_id));\n payload := jsonb_set(payload, '{channel}', to_jsonb(notify_channel));\n\n -- Gửi notify với payload đã được cập nhật\n PERFORM pg_notify('").concat(c.name, "', payload::text);\n\n RETURN NULL;\nEND;\n$$ LANGUAGE plpgsql;\n\n\n ")), e.push("\nDROP FUNCTION IF EXISTS ".concat(c.schema, ".").concat(c.functionName_replay, ";\nCREATE OR REPLACE FUNCTION ").concat(c.schema, ".").concat(c.functionName_replay, "(p_id INTEGER)\nRETURNS VOID AS $$\nDECLARE\n v_payload JSONB;\n v_channel TEXT;\nBEGIN\n -- Lấy payload và tên kênh từ bảng notifications\n SELECT payload, table_name INTO v_payload, v_channel\n FROM ").concat(c.schema, ".").concat(c.table, "\n WHERE id = p_id;\n\n IF v_payload IS NULL THEN\n RAISE EXCEPTION 'Không tìm thấy payload với id = %', p_id;\n END IF;\n\n -- Cập nhật payload với channel và notification_id\n v_payload := jsonb_set(v_payload, '{channel}', to_jsonb(v_channel));\n v_payload := jsonb_set(v_payload, '{notification_id}', to_jsonb(p_id));\n\n -- Gửi lại notification với payload đã cập nhật\n PERFORM pg_notify('").concat(c.name, "', v_payload::text);\nEND;\n$$ LANGUAGE plpgsql;\n ")), s) e.push(s[n].codesql), e.push(M(s[n]));
3698
3706
  return e.push(i["badt_dhs.getSyncPATFR"].codesql), e.push(i["badt_dhs.getSyncDCHG"].codesql), e.push(i["badt_dhs.GetSyncCityProvince"].codesql), e.push(i["badt_dhs.GetSyncDistrict"].codesql), e.push(i["badt_dhs.GetSyncWard"].codesql), e.push(i["badt_dhs.getSyncDCHG_Ngoai_Khambenh"].codesql), e
3699
3707
  }();
3700
3708
  e.exports = {
@@ -3882,9 +3890,9 @@
3882
3890
 
3883
3891
  function h() {}
3884
3892
 
3885
- function f() {}
3886
-
3887
3893
  function q() {}
3894
+
3895
+ function f() {}
3888
3896
  var _ = {};
3889
3897
  b(_, r, (function() {
3890
3898
  return this
@@ -3892,7 +3900,7 @@
3892
3900
  var W = Object.getPrototypeOf,
3893
3901
  L = W && W(W(x([])));
3894
3902
  L && L !== t && o.call(L, r) && (_ = L);
3895
- var g = q.prototype = h.prototype = Object.create(_);
3903
+ var g = f.prototype = h.prototype = Object.create(_);
3896
3904
 
3897
3905
  function y(e) {
3898
3906
  ["next", "throw", "return"].forEach((function(n) {
@@ -4017,17 +4025,17 @@
4017
4025
  }
4018
4026
  throw new TypeError(c(n) + " is not iterable")
4019
4027
  }
4020
- return f.prototype = q, a(g, "constructor", {
4021
- value: q,
4022
- configurable: !0
4023
- }), a(q, "constructor", {
4028
+ return q.prototype = f, a(g, "constructor", {
4024
4029
  value: f,
4025
4030
  configurable: !0
4026
- }), f.displayName = b(q, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
4031
+ }), a(f, "constructor", {
4032
+ value: q,
4033
+ configurable: !0
4034
+ }), q.displayName = b(f, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
4027
4035
  var n = "function" == typeof e && e.constructor;
4028
- return !!n && (n === f || "GeneratorFunction" === (n.displayName || n.name))
4036
+ return !!n && (n === q || "GeneratorFunction" === (n.displayName || n.name))
4029
4037
  }, n.mark = function(e) {
4030
- return Object.setPrototypeOf ? Object.setPrototypeOf(e, q) : (e.__proto__ = q, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
4038
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, f) : (e.__proto__ = f, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
4031
4039
  }, n.awrap = function(e) {
4032
4040
  return {
4033
4041
  __await: e
@@ -4176,8 +4184,8 @@
4176
4184
  A = t(9e3),
4177
4185
  m = t(4800),
4178
4186
  h = t(4067),
4179
- f = t(5627),
4180
- q = t(763),
4187
+ q = t(5627),
4188
+ f = t(763),
4181
4189
  _ = t(6758),
4182
4190
  W = new u,
4183
4191
  L = new l,
@@ -4317,104 +4325,105 @@
4317
4325
  },
4318
4326
  N = function() {
4319
4327
  var e = b(s().mark((function e(n) {
4320
- var t, o, a, p, i, M, z, d, O, u, l, h, _, W, g, N, T, E, S, x, w, k, D, B, C, X, Y, j, P, I, H, F, U;
4328
+ var t, o, a, p, i, M, z, d, O, u, l, h, _, W, g, N, T, E, S, x, w, k, D, B, C, X, Y, j, P, I, H, F, U, G, V, J, $, K, Q;
4321
4329
  return s().wrap((function(e) {
4322
4330
  for (;;) switch (e.prev = e.next) {
4323
4331
  case 0:
4324
- if (t = JSON.parse(n.payload), o = t.channel, p = (a = {}).data, i = a.pathApi, M = a.pgFunctionName, d = void 0 === (z = a.method) ? "POST" : z, u = void 0 === (O = a.mutiRequests) ? [] : O, l = t.operation, t.bant, h = t.maba, _ = t.mabn, W = t.makb, t.namvien, t.makh, g = !1, e.prev = 5, "current.dmbenhnhan" !== o) {
4325
- e.next = 12;
4332
+ if (t = JSON.parse(n.payload), o = t.channel, p = (a = {}).data, i = a.pathApi, M = a.pgFunctionName, d = void 0 === (z = a.method) ? "POST" : z, u = void 0 === (O = a.mutiRequests) ? [] : O, l = t.operation, t.bant, h = t.maba, _ = t.mabn, W = t.makb, t.namvien, t.makh, T = void 0 === (N = (g = {}).EmployeeCode) ? "" : N, S = void 0 === (E = g.ParaClinReqCode) ? "" : E, x = !1, e.prev = 6, "current.dmbenhnhan" !== o) {
4333
+ e.next = 13;
4326
4334
  break
4327
4335
  }
4328
- return e.next = 9, L.query(" SELECT badt_dhs.getSyncADM_ByDmbenhnhan('".concat(_, "'); "));
4329
- case 9:
4330
- return e.next = 11, y.markProcessed(t.notification_id);
4331
- case 11:
4332
- return e.abrupt("return");
4336
+ return e.next = 10, L.query(" SELECT badt_dhs.getSyncADM_ByDmbenhnhan('".concat(_, "'); "));
4337
+ case 10:
4338
+ return e.next = 12, y.markProcessed(t.notification_id);
4333
4339
  case 12:
4334
- T = function() {
4335
- if (!(o in f)) throw new Error("Không tìm thấy bảng '".concat(o, "' trong cấu hình dhsPathApi."));
4336
- i = f[o]
4337
- }, e.t0 = o, e.next = "current.bnnoitru" === e.t0 ? 16 : "current.chidinhcls" === e.t0 ? 32 : "current.chungtu" === e.t0 ? 35 : "current.psdangky" === e.t0 ? 43 : 46;
4340
+ return e.abrupt("return");
4341
+ case 13:
4342
+ k = function() {
4343
+ if (!(o in q)) throw new Error("Không tìm thấy bảng '".concat(o, "' trong cấu hình dhsPathApi."));
4344
+ i = q[o]
4345
+ }, e.t0 = o, e.next = "current.bnnoitru" === e.t0 ? 17 : "current.chidinhcls" === e.t0 ? 33 : "current.chungtu" === e.t0 ? 40 : "current.psdangky" === e.t0 ? 48 : 51;
4338
4346
  break;
4339
- case 16:
4340
- i = v.pathApi, M = v.pgFunctionName, e.t1 = l, e.next = "UPDATE" === e.t1 ? 21 : 31;
4347
+ case 17:
4348
+ i = v.pathApi, M = v.pgFunctionName, e.t1 = l, e.next = "UPDATE" === e.t1 ? 22 : 32;
4341
4349
  break;
4342
- case 21:
4343
- if (1 !== Number(q.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.ravien.new"))) {
4344
- e.next = 26;
4350
+ case 22:
4351
+ if (1 !== Number(f.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.ravien.new"))) {
4352
+ e.next = 27;
4345
4353
  break
4346
4354
  }
4347
- return i = "server/his-server/api/SyncData/SyncDCHG", M = "badt_dhs.getSyncDCHG", e.abrupt("break", 31);
4348
- case 26:
4349
- if ("" === q.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.madv.new") + "") {
4350
- e.next = 31;
4355
+ return i = "server/his-server/api/SyncData/SyncDCHG", M = "badt_dhs.getSyncDCHG", e.abrupt("break", 32);
4356
+ case 27:
4357
+ if ("" === f.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.madv.new") + "") {
4358
+ e.next = 32;
4351
4359
  break
4352
4360
  }
4353
- return i = "server/his-server/api/SyncData/SyncPATFR", M = "badt_dhs.getSyncPATFR", e.abrupt("break", 31);
4354
- case 31:
4355
- return e.abrupt("break", 48);
4361
+ return i = "server/his-server/api/SyncData/SyncPATFR", M = "badt_dhs.getSyncPATFR", e.abrupt("break", 32);
4356
4362
  case 32:
4357
- return T(), "UPDATE" === l && 1 === (E = Number(q.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.xoa.new"))) && (S = q.getPropertyValueIgnoreCaseForceEmpty(t, "senddata.ParaClinReqCode"), x = q.getPropertyValueIgnoreCaseForceEmpty(t, "senddata.ParaClinRequests.0.PCReqDltVoucherNo"), i = "server/his-server/api/Connect/DTPParaClinReqDtl?ParaClinReqCode=".concat(S, "&PCReqDltVoucherNo=").concat(x), d = "DELETE", A.logInfo("current.chidinhcls.xoaNEW === 1:".concat(JSON.stringify({
4363
+ return e.abrupt("break", 53);
4364
+ case 33:
4365
+ return k(), D = f.getPropertyValueIgnoreCaseForceEmpty(t, "senddata.pathApi"), T = f.getPropertyValueIgnoreCaseForceEmpty(t, "senddata.EmployeeCode"), S = f.getPropertyValueIgnoreCaseForceEmpty(t, "senddata.ParaClinReqCode"), "" !== D && (i = D), "UPDATE" === l && 1 === (B = Number(f.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.xoa.new"))) && (C = f.getPropertyValueIgnoreCaseForceEmpty(t, "senddata.ParaClinReqCode"), X = f.getPropertyValueIgnoreCaseForceEmpty(t, "senddata.ParaClinRequests.0.PCReqDltVoucherNo"), i = "server/his-server/api/Connect/DTPParaClinReqDtl?ParaClinReqCode=".concat(C, "&PCReqDltVoucherNo=").concat(X), d = "DELETE", "" !== D && (i = "server/his-server/api/Connect/DTPParaClinRequestOUT?ParaClinReqCode=".concat(C, "&PCReqDltVoucherNo=").concat(X)), A.logInfo("current.chidinhcls.xoaNEW === 1:".concat(JSON.stringify({
4358
4366
  pathApi: i,
4359
- method: d
4360
- })))), e.abrupt("break", 48);
4361
- case 35:
4362
- if (h = q.getPropertyValueIgnoreCaseForceEmpty(t, "makh"), "1" !== q.getPropertyValueIgnoreCaseForceEmpty(t, "loaitoa")) {
4363
- e.next = 40;
4367
+ method: d,
4368
+ payloadPathApi: D
4369
+ })))), e.abrupt("break", 53);
4370
+ case 40:
4371
+ if (h = f.getPropertyValueIgnoreCaseForceEmpty(t, "makh"), "1" !== f.getPropertyValueIgnoreCaseForceEmpty(t, "loaitoa")) {
4372
+ e.next = 45;
4364
4373
  break
4365
4374
  }
4366
- return g = !0, e.abrupt("return");
4367
- case 40:
4368
- return T(), "UPDATE" === l && (E = Number(q.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.xoa.new")), k = (w = {}).pshxhdXoaRows, D = w.sql, 1 === E && (B = q.getPropertyValueIgnoreCaseForceEmpty(t, "sohd"), q.getPropertyValueIgnoreCaseForceEmpty(t, "iddienbien"), i = "server/his-server/api/Connect/DTPPrescription?PresCode=".concat(B), d = "DELETE"), A.logInfo("current.chungtu.xoaNEW === 1:".concat(JSON.stringify({
4375
+ return x = !0, e.abrupt("return");
4376
+ case 45:
4377
+ return k(), "UPDATE" === l && (B = Number(f.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.xoa.new")), j = (Y = {}).pshxhdXoaRows, P = Y.sql, 1 === B && (I = f.getPropertyValueIgnoreCaseForceEmpty(t, "sohd"), f.getPropertyValueIgnoreCaseForceEmpty(t, "iddienbien"), i = "server/his-server/api/Connect/DTPPrescription?PresCode=".concat(I), d = "DELETE"), A.logInfo("current.chungtu.xoaNEW === 1:".concat(JSON.stringify({
4369
4378
  mutiRequests: u,
4370
- pshxhdXoaRows: k,
4371
- sql: D,
4379
+ pshxhdXoaRows: j,
4380
+ sql: P,
4372
4381
  pathApi: i,
4373
4382
  method: d
4374
- })))), e.abrupt("break", 48);
4375
- case 43:
4376
- return T(), "UPDATE" === l && (C = q.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.ngayinphieu.new"), X = q.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.ngayinphieu.old"), "" === (Y = q.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.madv_inphieu.new")) && (X && null !== X || !C || isNaN(Date.parse(C))) ? g = !0 : (i = "server/his-server/api/SyncData/SyncDCHG", M = "badt_dhs.getSyncDCHG_Ngoai_Khambenh"), A.logInfoObject({
4377
- madv_inphieuNEW: Y,
4378
- ngayinphieuNEW: C,
4379
- ngayinphieuOLD: X,
4383
+ })))), e.abrupt("break", 53);
4384
+ case 48:
4385
+ return k(), "UPDATE" === l && (H = f.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.ngayinphieu.new"), F = f.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.ngayinphieu.old"), "" === (U = f.getPropertyValueIgnoreCaseForceEmpty(t, "changed_fields.madv_inphieu.new")) && (F && null !== F || !H || isNaN(Date.parse(H))) ? x = !0 : (i = "server/his-server/api/SyncData/SyncDCHG", M = "badt_dhs.getSyncDCHG_Ngoai_Khambenh"), A.logInfoObject({
4386
+ madv_inphieuNEW: U,
4387
+ ngayinphieuNEW: H,
4388
+ ngayinphieuOLD: F,
4380
4389
  pathApi: i,
4381
4390
  method: d,
4382
- isCancelHandleNotification: g
4383
- }, "current.psdangky.".concat(l))), e.abrupt("break", 48);
4384
- case 46:
4385
- return T(), e.abrupt("break", 48);
4386
- case 48:
4387
- if (!0 !== g) {
4388
- e.next = 50;
4391
+ isCancelHandleNotification: x
4392
+ }, "current.psdangky.".concat(l))), e.abrupt("break", 53);
4393
+ case 51:
4394
+ return k(), e.abrupt("break", 53);
4395
+ case 53:
4396
+ if (!0 !== x) {
4397
+ e.next = 55;
4389
4398
  break
4390
4399
  }
4391
4400
  return e.abrupt("return");
4392
- case 50:
4393
- if (!0 !== (j = u && u.length > 0)) {
4394
- e.next = 55;
4401
+ case 55:
4402
+ if (!0 !== (G = u && u.length > 0)) {
4403
+ e.next = 60;
4395
4404
  break
4396
4405
  }
4397
- p = u, e.next = 62;
4406
+ p = u, e.next = 67;
4398
4407
  break;
4399
- case 55:
4408
+ case 60:
4400
4409
  if (!("senddata" in t)) {
4401
- e.next = 59;
4410
+ e.next = 64;
4402
4411
  break
4403
4412
  }
4404
- p = t.senddata, e.next = 62;
4413
+ p = t.senddata, e.next = 67;
4405
4414
  break;
4406
- case 59:
4407
- return e.next = 61, R(t, M);
4408
- case 61:
4415
+ case 64:
4416
+ return e.next = 66, R(t, M);
4417
+ case 66:
4409
4418
  p = e.sent;
4410
- case 62:
4411
- if (!0 !== g) {
4412
- e.next = 64;
4419
+ case 67:
4420
+ if (!0 !== x) {
4421
+ e.next = 69;
4413
4422
  break
4414
4423
  }
4415
4424
  return e.abrupt("return");
4416
- case 64:
4417
- if (G = void 0, G = function() {
4425
+ case 69:
4426
+ if (Z = void 0, Z = function() {
4418
4427
  var e = b(s().mark((function e() {
4419
4428
  var n, o;
4420
4429
  return s().wrap((function(e) {
@@ -4445,10 +4454,10 @@
4445
4454
  pathApi: i
4446
4455
  });
4447
4456
  case 14:
4448
- N = e.sent;
4457
+ w = e.sent;
4449
4458
  case 15:
4450
4459
  A.logInfoObject({
4451
- apiResult: N,
4460
+ apiResult: w,
4452
4461
  dataSyncADM: n,
4453
4462
  apiResultSyncADM: o
4454
4463
  }, "Retry: Không tìm thấy người bệnh"), e.next = 21;
@@ -4466,104 +4475,117 @@
4466
4475
  return function() {
4467
4476
  return e.apply(this, arguments)
4468
4477
  }
4469
- }(), P = {
4470
- SyncADM: G
4471
- }, e.prev = 65, !0 !== j) {
4472
- e.next = 87;
4478
+ }(), V = {
4479
+ SyncADM: Z
4480
+ }, e.prev = 70, !0 !== G) {
4481
+ e.next = 92;
4473
4482
  break
4474
4483
  }
4475
- N = [], I = 0;
4476
- case 69:
4477
- if (!(I < u.length)) {
4478
- e.next = 85;
4484
+ w = [], J = 0;
4485
+ case 74:
4486
+ if (!(J < u.length)) {
4487
+ e.next = 90;
4479
4488
  break
4480
4489
  }
4481
- return e.prev = 70, e.t2 = N, e.next = 74, m.sendData(u[I]);
4482
- case 74:
4483
- e.t3 = e.sent, e.t2.push.call(e.t2, e.t3), e.next = 82;
4490
+ return e.prev = 75, e.t2 = w, e.next = 79, m.sendData(u[J]);
4491
+ case 79:
4492
+ e.t3 = e.sent, e.t2.push.call(e.t2, e.t3), e.next = 87;
4484
4493
  break;
4485
- case 78:
4486
- e.prev = 78, e.t4 = e.catch(70), A.logError(e.t4, "mutiRequests"), null !== e.t4 && void 0 !== e.t4 && null !== (H = e.t4.response) && void 0 !== H && H.data ? N.push(e.t4.response.data) : N.push(e.t4.message);
4487
- case 82:
4488
- I++, e.next = 69;
4494
+ case 83:
4495
+ e.prev = 83, e.t4 = e.catch(75), A.logError(e.t4, "mutiRequests"), null !== e.t4 && void 0 !== e.t4 && null !== ($ = e.t4.response) && void 0 !== $ && $.data ? w.push(e.t4.response.data) : w.push(e.t4.message);
4496
+ case 87:
4497
+ J++, e.next = 74;
4489
4498
  break;
4490
- case 85:
4491
- e.next = 90;
4499
+ case 90:
4500
+ e.next = 101;
4492
4501
  break;
4493
- case 87:
4494
- return e.next = 89, m.sendData({
4502
+ case 92:
4503
+ return e.next = 94, m.sendData({
4495
4504
  method: d,
4496
4505
  data: p,
4497
4506
  pathApi: i
4498
4507
  });
4499
- case 89:
4500
- N = e.sent;
4501
- case 90:
4502
- e.next = 97;
4508
+ case 94:
4509
+ if (w = e.sent, !(i + "").includes("CUTPParaClinRequestOUT") && !(i + "").includes("DTPParaClinRequestOUT")) {
4510
+ e.next = 101;
4511
+ break
4512
+ }
4513
+ return w.dataSaveTPParaClinRequestOUT = {
4514
+ ParaClinReqCode: S,
4515
+ EmpCode: T
4516
+ }, w.methodSaveTPParaClinRequestOUT = "POST", e.next = 100, m.sendData({
4517
+ method: w.methodSaveTPParaClinRequestOUT,
4518
+ data: w.dataSaveTPParaClinRequestOUT,
4519
+ pathApi: "server/his-server/api/Connect/SaveTPParaClinRequestOUT"
4520
+ });
4521
+ case 100:
4522
+ w.apiResultSaveTPParaClinRequestOUT = e.sent;
4523
+ case 101:
4524
+ e.next = 108;
4503
4525
  break;
4504
- case 92:
4505
- return e.prev = 92, e.t5 = e.catch(65), null !== e.t5 && void 0 !== e.t5 && null !== (F = e.t5.response) && void 0 !== F && F.data && (N = e.t5.response.data), e.next = 97, y.markRetry(t.notification_id);
4506
- case 97:
4507
- return e.prev = 97, e.finish(97);
4508
- case 99:
4509
- if ("Không tìm thấy người bệnh" !== N && "Không tìm thấy thông tin người bệnh" !== N) {
4510
- e.next = 105;
4526
+ case 103:
4527
+ return e.prev = 103, e.t5 = e.catch(70), null !== e.t5 && void 0 !== e.t5 && null !== (K = e.t5.response) && void 0 !== K && K.data && (w = e.t5.response.data), e.next = 108, y.markRetry(t.notification_id);
4528
+ case 108:
4529
+ return e.prev = 108, e.finish(108);
4530
+ case 110:
4531
+ if ("Không tìm thấy người bệnh" !== w && "Không tìm thấy thông tin người bệnh" !== w) {
4532
+ e.next = 116;
4511
4533
  break
4512
4534
  }
4513
- return e.next = 102, P.SyncADM();
4514
- case 102:
4515
- return e.next = 104, m.sendData({
4535
+ return e.next = 113, V.SyncADM();
4536
+ case 113:
4537
+ return e.next = 115, m.sendData({
4516
4538
  data: p,
4517
4539
  pathApi: i
4518
4540
  });
4519
- case 104:
4520
- N = e.sent;
4521
- case 105:
4522
- if (!0 !== m.ResOK(N)) {
4523
- e.next = 110;
4541
+ case 115:
4542
+ w = e.sent;
4543
+ case 116:
4544
+ if (!0 !== m.ResOK(w)) {
4545
+ e.next = 121;
4524
4546
  break
4525
4547
  }
4526
- return e.next = 108, y.markProcessed(t.notification_id);
4527
- case 108:
4528
- e.next = 112;
4548
+ return e.next = 119, y.markProcessed(t.notification_id);
4549
+ case 119:
4550
+ e.next = 123;
4529
4551
  break;
4530
- case 110:
4531
- return e.next = 112, y.markRetry(t.notification_id);
4532
- case 112:
4552
+ case 121:
4553
+ return e.next = 123, y.markRetry(t.notification_id);
4554
+ case 123:
4533
4555
  A.logInfoObject({
4534
- apiResult: N,
4556
+ apiResult: w,
4535
4557
  data: p,
4536
4558
  pathApi: i,
4537
4559
  payload: t,
4538
4560
  msg: n,
4539
- isCancelHandleNotification: g
4540
- }), e.next = 118;
4561
+ isCancelHandleNotification: x
4562
+ }), e.next = 129;
4541
4563
  break;
4542
- case 115:
4543
- e.prev = 115, e.t6 = e.catch(5), A.logError(e.t6, "handleNotification");
4544
- case 118:
4545
- return e.prev = 118, !0 !== g && (U = {
4564
+ case 126:
4565
+ e.prev = 126, e.t6 = e.catch(6), A.logError(e.t6, "handleNotification");
4566
+ case 129:
4567
+ return e.prev = 129, !0 !== x && (Q = {
4546
4568
  table_name: o,
4547
4569
  operation: l,
4548
4570
  payload: r(r({}, p), {}, {
4549
4571
  extra: t
4550
4572
  }),
4551
4573
  pathApi: i,
4552
- resultApi: N,
4574
+ resultApi: w,
4553
4575
  maba: h,
4554
4576
  mabn: _,
4555
4577
  makb: W,
4556
4578
  type: "HISEMR"
4557
- }, y.insertBenhNhanSynced(U)), e.finish(118);
4558
- case 121:
4579
+ }, y.insertBenhNhanSynced(Q)), e.finish(129);
4580
+ case 132:
4559
4581
  case "end":
4560
4582
  return e.stop()
4561
4583
  }
4562
- var G
4584
+ var Z
4563
4585
  }), e, null, [
4564
- [5, 115, 118, 121],
4565
- [65, 92, 97, 99],
4566
- [70, 78]
4586
+ [6, 126, 129, 132],
4587
+ [70, 103, 108, 110],
4588
+ [75, 83]
4567
4589
  ])
4568
4590
  })));
4569
4591
  return function(n) {
@@ -4656,7 +4678,7 @@
4656
4678
  return s().wrap((function(e) {
4657
4679
  for (;;) switch (e.prev = e.next) {
4658
4680
  case 0:
4659
- if (a = n[p], A.logInfo("➡️ Sync danh mục: ".concat(a)), c = void 0 === (i = (r = {}).functionName) ? "" : i, b = void 0 === (M = r.pathApi) ? "" : M, "current.dmxa4750-tinh" === a ? (c = "badt_dhs.GetSyncCityProvince", void(b = "server/his-server/api/SyncData/SyncCityProvince")) : "current.dmxa4750-huyen" === a ? (c = "badt_dhs.GetSyncDistrict", void(b = "server/his-server/api/SyncData/SyncDistrict")) : "current.dmxa4750-xa" === a ? (c = "badt_dhs.GetSyncWard", void(b = "server/his-server/api/SyncData/SyncWard")) : (c = h.pgTableListener[a].name, void(b = f[a])), l = d.join(o, "".concat(a, ".success.json")), e.prev = 5, !0 === z.existsSync(l)) {
4681
+ if (a = n[p], A.logInfo("➡️ Sync danh mục: ".concat(a)), c = void 0 === (i = (r = {}).functionName) ? "" : i, b = void 0 === (M = r.pathApi) ? "" : M, "current.dmxa4750-tinh" === a ? (c = "badt_dhs.GetSyncCityProvince", void(b = "server/his-server/api/SyncData/SyncCityProvince")) : "current.dmxa4750-huyen" === a ? (c = "badt_dhs.GetSyncDistrict", void(b = "server/his-server/api/SyncData/SyncDistrict")) : "current.dmxa4750-xa" === a ? (c = "badt_dhs.GetSyncWard", void(b = "server/his-server/api/SyncData/SyncWard")) : (c = h.pgTableListener[a].name, void(b = q[a])), l = d.join(o, "".concat(a, ".success.json")), e.prev = 5, !0 === z.existsSync(l)) {
4660
4682
  e.next = 25;
4661
4683
  break
4662
4684
  }
@@ -4699,7 +4721,7 @@
4699
4721
  apiResult: O,
4700
4722
  pathApi: b,
4701
4723
  pgData: u,
4702
- error: q.stringifyForceEmpty(e.t0)
4724
+ error: f.stringifyForceEmpty(e.t0)
4703
4725
  }, null, 2));
4704
4726
  case 34:
4705
4727
  return e.prev = 34, A.logInfo(t[a]), e.finish(34);
@@ -4749,7 +4771,7 @@
4749
4771
  fail: 0,
4750
4772
  dsFails: []
4751
4773
  } : i, M = n.err, O = S("syncBnnoitru"), e.prev = 2, A.logInfo("➡️ GetPgData: Bnnoitru"), e.next = 6, b(s().mark((function e() {
4752
- var n, t, a, i, M, u, l, h, f, q, _;
4774
+ var n, t, a, i, M, u, l, h, q, f, _;
4753
4775
  return s().wrap((function(e) {
4754
4776
  for (;;) switch (e.prev = e.next) {
4755
4777
  case 0:
@@ -4792,7 +4814,7 @@
4792
4814
  e.next = 42;
4793
4815
  break
4794
4816
  }
4795
- if (i = r[a], M = i.mabn, u = i.makb, l = i.maba, h = "".concat(M, "-").concat(u, "-").concat(l), f = d.join(O, "".concat(h, ".success.json")), A.logInfo("➡️ SyncData: Bnnoitru [".concat(a + 1, "/").concat(r.length, "]:").concat(h)), !0 !== z.existsSync(f)) {
4817
+ if (i = r[a], M = i.mabn, u = i.makb, l = i.maba, h = "".concat(M, "-").concat(u, "-").concat(l), q = d.join(O, "".concat(h, ".success.json")), A.logInfo("➡️ SyncData: Bnnoitru [".concat(a + 1, "/").concat(r.length, "]:").concat(h)), !0 !== z.existsSync(q)) {
4796
4818
  e.next = 25;
4797
4819
  break
4798
4820
  }
@@ -4803,22 +4825,22 @@
4803
4825
  return JSON.parse(n[Object.keys(n)[0]])
4804
4826
  }));
4805
4827
  case 27:
4806
- return r[a] = e.sent, q = void 0, e.prev = 29, e.next = 32, m.sendData({
4828
+ return r[a] = e.sent, f = void 0, e.prev = 29, e.next = 32, m.sendData({
4807
4829
  pathApi: o,
4808
4830
  data: r[a]
4809
4831
  });
4810
4832
  case 32:
4811
- q = e.sent, e.next = 38;
4833
+ f = e.sent, e.next = 38;
4812
4834
  break;
4813
4835
  case 35:
4814
- e.prev = 35, e.t0 = e.catch(29), q = null !== e.t0 && void 0 !== e.t0 && null !== (_ = e.t0.response) && void 0 !== _ && _.data ? e.t0.response.data : e.t0;
4836
+ e.prev = 35, e.t0 = e.catch(29), f = null !== e.t0 && void 0 !== e.t0 && null !== (_ = e.t0.response) && void 0 !== _ && _.data ? e.t0.response.data : e.t0;
4815
4837
  case 38:
4816
- !0 === m.ResOK(q) ? (c.success++, z.writeFileSync(f, JSON.stringify({
4817
- apiResult: q,
4838
+ !0 === m.ResOK(f) ? (c.success++, z.writeFileSync(q, JSON.stringify({
4839
+ apiResult: f,
4818
4840
  pgData: r[a]
4819
4841
  }, null, 2))) : (c.fail++, c.dsFails.push({
4820
4842
  data: r[a],
4821
- apiResult: q
4843
+ apiResult: f
4822
4844
  }));
4823
4845
  case 39:
4824
4846
  a++, e.next = 18;
@@ -4840,7 +4862,7 @@
4840
4862
  return e.prev = 13, z.writeFileSync(d.join(O, "bnnoitru.json"), JSON.stringify({
4841
4863
  status: c,
4842
4864
  pgData: r,
4843
- error: q.stringifyForceEmpty(M),
4865
+ error: f.stringifyForceEmpty(M),
4844
4866
  pathApi: o,
4845
4867
  pgFunctionName: p
4846
4868
  }, null, 2)), A.logInfoObject(c, "🔚 Sync Bnnoitru 🔚"), e.finish(13);
@@ -4950,7 +4972,7 @@
4950
4972
  return e.prev = 16, z.writeFileSync(d.join(O, "psdangkySyncDCHG-".concat(c.NGAYDK, ".json")), JSON.stringify({
4951
4973
  status: c,
4952
4974
  pgData: r,
4953
- error: q.stringifyForceEmpty(M),
4975
+ error: f.stringifyForceEmpty(M),
4954
4976
  pathApi: o,
4955
4977
  pgFunctionName: p
4956
4978
  }, null, 2)), A.logInfoObject(c, "🔚 Sync psdangkySyncDCHG 🔚"), e.finish(16);
@@ -5720,10 +5742,10 @@
5720
5742
  return (n > 0 ? "-" : "+") + m(Math.floor(Math.abs(n) / 60), 2) + ":" + m(Math.abs(n) % 60, 2)
5721
5743
  }
5722
5744
  },
5723
- f = function(e) {
5745
+ q = function(e) {
5724
5746
  return +e - 1
5725
5747
  },
5726
- q = [null, a],
5748
+ f = [null, a],
5727
5749
  _ = [null, r],
5728
5750
  W = ["isPm", r, function(e, n) {
5729
5751
  var t = e.toLowerCase();
@@ -5743,8 +5765,8 @@
5743
5765
  Do: ["day", a + r, function(e) {
5744
5766
  return parseInt(e, 10)
5745
5767
  }],
5746
- M: ["month", a, f],
5747
- MM: ["month", p, f],
5768
+ M: ["month", a, q],
5769
+ MM: ["month", p, q],
5748
5770
  YY: ["year", p, function(e) {
5749
5771
  var n = +("" + (new Date).getFullYear()).substr(0, 2);
5750
5772
  return +("" + (+e > 68 ? n - 1 : n) + e)
@@ -5765,8 +5787,8 @@
5765
5787
  return 10 * +e
5766
5788
  }],
5767
5789
  SSS: ["millisecond", "\\d{3}"],
5768
- d: q,
5769
- dd: q,
5790
+ d: f,
5791
+ dd: f,
5770
5792
  ddd: _,
5771
5793
  dddd: _,
5772
5794
  MMM: ["month", r, s("monthNamesShort")],
@@ -5844,10 +5866,10 @@
5844
5866
  for (var d, O = M(M({}, u), t), l = 1; l < z.length; l++) {
5845
5867
  var m = p[l - 1],
5846
5868
  h = m[0],
5847
- f = m[2],
5848
- q = f ? f(z[l], O) : +z[l];
5849
- if (null == q) return null;
5850
- a[h] = q
5869
+ q = m[2],
5870
+ f = q ? q(z[l], O) : +z[l];
5871
+ if (null == f) return null;
5872
+ a[h] = f
5851
5873
  }
5852
5874
  if (1 === a.isPm && null != a.hour && 12 != +a.hour ? a.hour = +a.hour + 12 : 0 === a.isPm && 12 == +a.hour && (a.hour = 0), null == a.timezoneOffset) {
5853
5875
  d = new Date(a.year, a.month, a.day, a.hour, a.minute, a.second, a.millisecond);
@@ -6033,11 +6055,11 @@
6033
6055
  var m = e.date_format || M;
6034
6056
  n && "daily" == n.type && (e.date_format || (m = "YYYY-MM-DD"), p().format(m) == p().endOf("day").format(m) && p().format(m) != p().add(1, "day").format(m) || (b.verbose && console.log(new Date, "[FileStreamRotator] Changing type to custom as date format changes more often than once a day or not every day"), n.type = "custom")), n && (r = e.frequency ? b.getDate(n, m, e.utc) : ""), e.create_symlink = e.create_symlink || !1, e.extension = e.extension || "";
6035
6057
  var h = e.filename,
6036
- f = null,
6037
- q = h + (r ? "." + r : "");
6038
- if (h.match(/%DATE%/) && (q = h.replace(/%DATE%/g, r || b.getDate(null, m, e.utc))), u) {
6058
+ q = null,
6059
+ f = h + (r ? "." + r : "");
6060
+ if (h.match(/%DATE%/) && (f = h.replace(/%DATE%/g, r || b.getDate(null, m, e.utc))), u) {
6039
6061
  var _ = null,
6040
- W = q;
6062
+ W = f;
6041
6063
  if (O && O.files && O.files instanceof Array && O.files.length > 0) {
6042
6064
  var L = O.files[O.files.length - 1].name;
6043
6065
  if (L.match(W)) {
@@ -6045,18 +6067,18 @@
6045
6067
  g && (W = L, l = g[1])
6046
6068
  }
6047
6069
  }
6048
- for (0 == l && W == q && (W += e.extension); o.existsSync(W);) _ = W, l++, W = q + "." + l + e.extension;
6070
+ for (0 == l && W == f && (W += e.extension); o.existsSync(W);) _ = W, l++, W = f + "." + l + e.extension;
6049
6071
  if (_) {
6050
6072
  var y = o.statSync(_);
6051
6073
  y.size < u && (W = _, l--, A = y.size)
6052
6074
  }
6053
- q = W
6054
- } else q += e.extension;
6055
- b.verbose && console.log(new Date, "[FileStreamRotator] Logging to: ", q), z(q);
6075
+ f = W
6076
+ } else f += e.extension;
6077
+ b.verbose && console.log(new Date, "[FileStreamRotator] Logging to: ", f), z(f);
6056
6078
  var R = e.file_options || {
6057
6079
  flags: "a"
6058
6080
  },
6059
- v = o.createWriteStream(q, R);
6081
+ v = o.createWriteStream(f, R);
6060
6082
  if (r && n && s.indexOf(n.type) > -1 || u > 0) {
6061
6083
  b.verbose && console.log(new Date, "[FileStreamRotator] Rotating file: ", n ? n.type : "", u ? "size: " + u : "");
6062
6084
  var N, T = new i;
@@ -6107,15 +6129,15 @@
6107
6129
  var i = n ? this.getDate(n, m, e.utc) : r;
6108
6130
  if (i != r || u && A > u) {
6109
6131
  var c = h + (r && n ? "." + i : "");
6110
- h.match(/%DATE%/) && r && (c = h.replace(/%DATE%/g, i)), u && A > u ? c += "." + ++l + e.extension : (l = 0, c += e.extension), A = 0, b.verbose && console.log(new Date, t(9023).format("[FileStreamRotator] Changing logs from %s to %s", q, c)), r = i, f = q, q = c, !0 === e.end_stream ? v.end() : v.destroy(), z(q), v = o.createWriteStream(c, R), T.emit("new", c), T.emit("rotate", f, c), d(v, T)
6132
+ h.match(/%DATE%/) && r && (c = h.replace(/%DATE%/g, i)), u && A > u ? c += "." + ++l + e.extension : (l = 0, c += e.extension), A = 0, b.verbose && console.log(new Date, t(9023).format("[FileStreamRotator] Changing logs from %s to %s", f, c)), r = i, q = f, f = c, !0 === e.end_stream ? v.end() : v.destroy(), z(f), v = o.createWriteStream(c, R), T.emit("new", c), T.emit("rotate", q, c), d(v, T)
6111
6133
  }
6112
6134
  v.write(a, p), A += Buffer.byteLength(a, p)
6113
6135
  }.bind(this), process.nextTick((function() {
6114
- T.emit("new", q)
6115
- })), T.emit("new", q), T
6136
+ T.emit("new", f)
6137
+ })), T.emit("new", f), T
6116
6138
  }
6117
6139
  return b.verbose && console.log(new Date, "[FileStreamRotator] File won't be rotated: ", e.frequency, e.size), process.nextTick((function() {
6118
- v.emit("new", q)
6140
+ v.emit("new", f)
6119
6141
  })), v
6120
6142
  };
6121
6143
  var z = function(e) {
@@ -6190,8 +6212,8 @@
6190
6212
  var A = T("ERR_INVALID_URL", "Invalid URL", TypeError),
6191
6213
  m = T("ERR_FR_REDIRECTION_FAILURE", "Redirected request failed"),
6192
6214
  h = T("ERR_FR_TOO_MANY_REDIRECTS", "Maximum number of redirects exceeded", m),
6193
- f = T("ERR_FR_MAX_BODY_LENGTH_EXCEEDED", "Request body larger than maxBodyLength limit"),
6194
- q = T("ERR_STREAM_WRITE_AFTER_END", "write after end"),
6215
+ q = T("ERR_FR_MAX_BODY_LENGTH_EXCEEDED", "Request body larger than maxBodyLength limit"),
6216
+ f = T("ERR_STREAM_WRITE_AFTER_END", "write after end"),
6195
6217
  _ = M.prototype.destroy || g;
6196
6218
 
6197
6219
  function W(e, n) {
@@ -6312,13 +6334,13 @@
6312
6334
  }, W.prototype.destroy = function(e) {
6313
6335
  return E(this._currentRequest, e), _.call(this, e), this
6314
6336
  }, W.prototype.write = function(e, n, t) {
6315
- if (this._ending) throw new q;
6337
+ if (this._ending) throw new f;
6316
6338
  if (!S(e) && ("object" != typeof(o = e) || !("length" in o))) throw new TypeError("data should be a string, Buffer or Uint8Array");
6317
6339
  var o;
6318
6340
  x(n) && (t = n, n = null), 0 !== e.length ? this._requestBodyLength + e.length <= this._options.maxBodyLength ? (this._requestBodyLength += e.length, this._requestBodyBuffers.push({
6319
6341
  data: e,
6320
6342
  encoding: n
6321
- }), this._currentRequest.write(e, n, t)) : (this.emit("error", new f), this.abort()) : t && t()
6343
+ }), this._currentRequest.write(e, n, t)) : (this.emit("error", new q), this.abort()) : t && t()
6322
6344
  }, W.prototype.end = function(e, n, t) {
6323
6345
  if (x(e) ? (t = e, e = n = null) : x(n) && (t = n, n = null), e) {
6324
6346
  var o = this,
@@ -6418,12 +6440,12 @@
6418
6440
  headers: e.headers,
6419
6441
  statusCode: n
6420
6442
  },
6421
- f = {
6443
+ q = {
6422
6444
  url: l,
6423
6445
  method: p,
6424
6446
  headers: t
6425
6447
  };
6426
- a(this._options, m, f), this._sanitizeOptions(this._options)
6448
+ a(this._options, m, q), this._sanitizeOptions(this._options)
6427
6449
  }
6428
6450
  this._performRequest()
6429
6451
  }, e.exports = L({
@@ -6619,22 +6641,22 @@
6619
6641
  A = t(414),
6620
6642
  m = t(3093),
6621
6643
  h = Function,
6622
- f = function(e) {
6644
+ q = function(e) {
6623
6645
  try {
6624
6646
  return h('"use strict"; return (' + e + ").constructor;")()
6625
6647
  } catch (e) {}
6626
6648
  },
6627
- q = t(5795),
6649
+ f = t(5795),
6628
6650
  _ = t(655),
6629
6651
  W = function() {
6630
6652
  throw new M
6631
6653
  },
6632
- L = q ? function() {
6654
+ L = f ? function() {
6633
6655
  try {
6634
6656
  return W
6635
6657
  } catch (e) {
6636
6658
  try {
6637
- return q(arguments, "callee").get
6659
+ return f(arguments, "callee").get
6638
6660
  } catch (e) {
6639
6661
  return W
6640
6662
  }
@@ -6691,7 +6713,7 @@
6691
6713
  "%Math%": Math,
6692
6714
  "%Number%": Number,
6693
6715
  "%Object%": a,
6694
- "%Object.getOwnPropertyDescriptor%": q,
6716
+ "%Object.getOwnPropertyDescriptor%": f,
6695
6717
  "%parseFloat%": parseFloat,
6696
6718
  "%parseInt%": parseInt,
6697
6719
  "%Promise%": "undefined" == typeof Promise ? o : Promise,
@@ -6739,9 +6761,9 @@
6739
6761
  }
6740
6762
  var k = function e(n) {
6741
6763
  var t;
6742
- if ("%AsyncFunction%" === n) t = f("async function () {}");
6743
- else if ("%GeneratorFunction%" === n) t = f("function* () {}");
6744
- else if ("%AsyncGeneratorFunction%" === n) t = f("async function* () {}");
6764
+ if ("%AsyncFunction%" === n) t = q("async function () {}");
6765
+ else if ("%GeneratorFunction%" === n) t = q("function* () {}");
6766
+ else if ("%AsyncGeneratorFunction%" === n) t = q("async function* () {}");
6745
6767
  else if ("%AsyncGenerator%" === n) {
6746
6768
  var o = e("%AsyncGeneratorFunction%");
6747
6769
  o && (t = o.prototype)
@@ -6859,8 +6881,8 @@
6859
6881
  if (!n) throw new M("base intrinsic for " + e + " exists, but the property is not available.");
6860
6882
  return
6861
6883
  }
6862
- if (q && b + 1 >= t.length) {
6863
- var l = q(r, d);
6884
+ if (f && b + 1 >= t.length) {
6885
+ var l = f(r, d);
6864
6886
  r = (z = !!l) && "get" in l && !("originalValue" in l.get) ? l.get : r[d]
6865
6887
  } else z = C(r, d), r = r[d];
6866
6888
  z && !i && (x[p] = r)
@@ -7545,11 +7567,11 @@
7545
7567
  return e
7546
7568
  }
7547
7569
 
7548
- function f(e, n) {
7570
+ function q(e, n) {
7549
7571
  return e.offsetScore !== n.offsetScore ? e.offsetScore - n.offsetScore : e.abbrScore !== n.abbrScore ? e.abbrScore - n.abbrScore : e.zone.population !== n.zone.population ? n.zone.population - e.zone.population : n.zone.name.localeCompare(e.zone.name)
7550
7572
  }
7551
7573
 
7552
- function q(e, n) {
7574
+ function f(e, n) {
7553
7575
  var t, o;
7554
7576
  for (z(n), t = 0; t < n.length; t++) o = n[t], r[o] = r[o] || {}, r[o][e] = !0
7555
7577
  }
@@ -7592,7 +7614,7 @@
7592
7614
  for (t = new m(y(c[o]), i), a = 0; a < i; a++) t.scoreOffsetAt(r[a]);
7593
7615
  s.push(t)
7594
7616
  }
7595
- return s.sort(f), s.length > 0 ? s[0].zone.name : void 0
7617
+ return s.sort(q), s.length > 0 ? s[0].zone.name : void 0
7596
7618
  }
7597
7619
 
7598
7620
  function L(e) {
@@ -7601,7 +7623,7 @@
7601
7623
 
7602
7624
  function g(e) {
7603
7625
  var n, o, a, r;
7604
- for ("string" == typeof e && (e = [e]), n = 0; n < e.length; n++) r = L(o = (a = e[n].split("|"))[0]), t[r] = e[n], p[r] = o, q(r, a[2].split(" "))
7626
+ for ("string" == typeof e && (e = [e]), n = 0; n < e.length; n++) r = L(o = (a = e[n].split("|"))[0]), t[r] = e[n], p[r] = o, f(r, a[2].split(" "))
7605
7627
  }
7606
7628
 
7607
7629
  function y(e, n) {
@@ -18148,18 +18170,18 @@
18148
18170
  if (n in t && e.call(this, t[n], n, t)) return !0;
18149
18171
  return !1
18150
18172
  };
18151
- var f = a.momentProperties = [],
18152
- q = !1;
18173
+ var q = a.momentProperties = [],
18174
+ f = !1;
18153
18175
 
18154
18176
  function _(e, n) {
18155
- var t, o, a, p = f.length;
18177
+ var t, o, a, p = q.length;
18156
18178
  if (M(n._isAMomentObject) || (e._isAMomentObject = n._isAMomentObject), M(n._i) || (e._i = n._i), M(n._f) || (e._f = n._f), M(n._l) || (e._l = n._l), M(n._strict) || (e._strict = n._strict), M(n._tzm) || (e._tzm = n._tzm), M(n._isUTC) || (e._isUTC = n._isUTC), M(n._offset) || (e._offset = n._offset), M(n._pf) || (e._pf = A(n)), M(n._locale) || (e._locale = n._locale), p > 0)
18157
- for (t = 0; t < p; t++) M(a = n[o = f[t]]) || (e[o] = a);
18179
+ for (t = 0; t < p; t++) M(a = n[o = q[t]]) || (e[o] = a);
18158
18180
  return e
18159
18181
  }
18160
18182
 
18161
18183
  function W(e) {
18162
- _(this, e), this._d = new Date(null != e._d ? e._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === q && (q = !0, a.updateOffset(this), q = !1)
18184
+ _(this, e), this._d = new Date(null != e._d ? e._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === f && (f = !0, a.updateOffset(this), f = !1)
18163
18185
  }
18164
18186
 
18165
18187
  function L(e) {
@@ -18437,8 +18459,8 @@
18437
18459
  Ae = /\d{1,4}/,
18438
18460
  me = /[+-]?\d{1,6}/,
18439
18461
  he = /\d+/,
18440
- fe = /[+-]?\d+/,
18441
- qe = /Z|[+-]\d\d:?\d\d/gi,
18462
+ qe = /[+-]?\d+/,
18463
+ fe = /Z|[+-]\d\d:?\d\d/gi,
18442
18464
  _e = /Z|[+-]\d\d(?::?\d\d)?/gi,
18443
18465
  We = /[+-]?\d+(\.\d{1,3})?/,
18444
18466
  Le = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,
@@ -18515,7 +18537,7 @@
18515
18537
  return e <= 9999 ? D(e, 4) : "+" + e
18516
18538
  })), j(0, ["YY", 2], 0, (function() {
18517
18539
  return this.year() % 100
18518
- })), j(0, ["YYYY", 4], 0, "year"), j(0, ["YYYYY", 5], 0, "year"), j(0, ["YYYYYY", 6, !0], 0, "year"), Re("Y", fe), Re("YY", de, se), Re("YYYY", Ae, be), Re("YYYYY", me, ze), Re("YYYYYY", me, ze), we(["YYYYY", "YYYYYY"], Ce), we("YYYY", (function(e, n) {
18540
+ })), j(0, ["YYYY", 4], 0, "year"), j(0, ["YYYYY", 5], 0, "year"), j(0, ["YYYYYY", 6, !0], 0, "year"), Re("Y", qe), Re("YY", de, se), Re("YYYY", Ae, be), Re("YYYYY", me, ze), Re("YYYYYY", me, ze), we(["YYYYY", "YYYYYY"], Ce), we("YYYY", (function(e, n) {
18519
18541
  n[Ce] = 2 === e.length ? a.parseTwoDigitYear(e) : Se(e)
18520
18542
  })), we("YY", (function(e, n) {
18521
18543
  n[Ce] = a.parseTwoDigitYear(e)
@@ -18696,19 +18718,19 @@
18696
18718
  p.sort(e), r.sort(e), i.sort(e), this._monthsRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + p.join("|") + ")", "i")
18697
18719
  }
18698
18720
 
18699
- function fn(e, n, t, o, a, p, r) {
18721
+ function qn(e, n, t, o, a, p, r) {
18700
18722
  var i;
18701
18723
  return e < 100 && e >= 0 ? (i = new Date(e + 400, n, t, o, a, p, r), isFinite(i.getFullYear()) && i.setFullYear(e)) : i = new Date(e, n, t, o, a, p, r), i
18702
18724
  }
18703
18725
 
18704
- function qn(e) {
18726
+ function fn(e) {
18705
18727
  var n, t;
18706
18728
  return e < 100 && e >= 0 ? ((t = Array.prototype.slice.call(arguments))[0] = e + 400, n = new Date(Date.UTC.apply(null, t)), isFinite(n.getUTCFullYear()) && n.setUTCFullYear(e)) : n = new Date(Date.UTC.apply(null, arguments)), n
18707
18729
  }
18708
18730
 
18709
18731
  function _n(e, n, t) {
18710
18732
  var o = 7 + n - t;
18711
- return -(7 + qn(e, 0, o).getUTCDay() - n) % 7 + o - 1
18733
+ return -(7 + fn(e, 0, o).getUTCDay() - n) % 7 + o - 1
18712
18734
  }
18713
18735
 
18714
18736
  function Wn(e, n, t, o, a) {
@@ -19029,11 +19051,11 @@
19029
19051
  return dt(e)
19030
19052
  }
19031
19053
 
19032
- function ft() {
19054
+ function qt() {
19033
19055
  return R(st)
19034
19056
  }
19035
19057
 
19036
- function qt(e) {
19058
+ function ft(e) {
19037
19059
  var n, t = e._a;
19038
19060
  return t && -2 === A(e).overflow && (n = t[Xe] < 0 || t[Xe] > 11 ? Xe : t[Ye] < 1 || t[Ye] > on(t[Ce], t[Xe]) ? Ye : t[je] < 0 || t[je] > 24 || 24 === t[je] && (0 !== t[Pe] || 0 !== t[Ie] || 0 !== t[He]) ? je : t[Pe] < 0 || t[Pe] > 59 ? Pe : t[Ie] < 0 || t[Ie] > 59 ? Ie : t[He] < 0 || t[He] > 999 ? He : -1, A(e)._overflowDayOfYear && (n < Ce || n > Ye) && (n = Ye), A(e)._overflowWeeks && -1 === n && (n = Fe), A(e)._overflowWeekday && -1 === n && (n = Ue), A(e).overflow = n), e
19039
19061
  }
@@ -19138,7 +19160,7 @@
19138
19160
  var n, t = vt.exec(xt(e._i));
19139
19161
  if (t) {
19140
19162
  if (n = Et(t[4], t[3], t[2], t[5], t[6], t[7]), !wt(t[1], n, e)) return;
19141
- e._a = n, e._tzm = kt(t[8], t[9], t[10]), e._d = qn.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), A(e).rfc2822 = !0
19163
+ e._a = n, e._tzm = kt(t[8], t[9], t[10]), e._d = fn.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), A(e).rfc2822 = !0
19142
19164
  } else e._isValid = !1
19143
19165
  }
19144
19166
 
@@ -19159,9 +19181,9 @@
19159
19181
  function Yt(e) {
19160
19182
  var n, t, o, a, p, r = [];
19161
19183
  if (!e._d) {
19162
- for (o = Xt(e), e._w && null == e._a[Ye] && null == e._a[Xe] && jt(e), null != e._dayOfYear && (p = Ct(e._a[Ce], o[Ce]), (e._dayOfYear > Ge(p) || 0 === e._dayOfYear) && (A(e)._overflowDayOfYear = !0), t = qn(p, 0, e._dayOfYear), e._a[Xe] = t.getUTCMonth(), e._a[Ye] = t.getUTCDate()), n = 0; n < 3 && null == e._a[n]; ++n) e._a[n] = r[n] = o[n];
19184
+ for (o = Xt(e), e._w && null == e._a[Ye] && null == e._a[Xe] && jt(e), null != e._dayOfYear && (p = Ct(e._a[Ce], o[Ce]), (e._dayOfYear > Ge(p) || 0 === e._dayOfYear) && (A(e)._overflowDayOfYear = !0), t = fn(p, 0, e._dayOfYear), e._a[Xe] = t.getUTCMonth(), e._a[Ye] = t.getUTCDate()), n = 0; n < 3 && null == e._a[n]; ++n) e._a[n] = r[n] = o[n];
19163
19185
  for (; n < 7; n++) e._a[n] = r[n] = null == e._a[n] ? 2 === n ? 1 : 0 : e._a[n];
19164
- 24 === e._a[je] && 0 === e._a[Pe] && 0 === e._a[Ie] && 0 === e._a[He] && (e._nextDay = !0, e._a[je] = 0), e._d = (e._useUTC ? qn : fn).apply(null, r), a = e._useUTC ? e._d.getUTCDay() : e._d.getDay(), null != e._tzm && e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay && (e._a[je] = 24), e._w && void 0 !== e._w.d && e._w.d !== a && (A(e).weekdayMismatch = !0)
19186
+ 24 === e._a[je] && 0 === e._a[Pe] && 0 === e._a[Ie] && 0 === e._a[He] && (e._nextDay = !0, e._a[je] = 0), e._d = (e._useUTC ? fn : qn).apply(null, r), a = e._useUTC ? e._d.getUTCDay() : e._d.getDay(), null != e._tzm && e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay && (e._a[je] = 24), e._w && void 0 !== e._w.d && e._w.d !== a && (A(e).weekdayMismatch = !0)
19165
19187
  }
19166
19188
  }
19167
19189
 
@@ -19178,7 +19200,7 @@
19178
19200
  M = s.length,
19179
19201
  b = 0;
19180
19202
  for (c = (o = F(e._f, e._locale).match(B) || []).length, n = 0; n < c; n++) p = o[n], (t = (s.match(ve(p, e)) || [])[0]) && ((r = s.substr(0, s.indexOf(t))).length > 0 && A(e).unusedInput.push(r), s = s.slice(s.indexOf(t) + t.length), b += t.length), Y[p] ? (t ? A(e).empty = !1 : A(e).unusedTokens.push(p), De(p, t, e)) : e._strict && !t && A(e).unusedTokens.push(p);
19181
- A(e).charsLeftOver = M - b, s.length > 0 && A(e).unusedInput.push(s), e._a[je] <= 12 && !0 === A(e).bigHour && e._a[je] > 0 && (A(e).bigHour = void 0), A(e).parsedDateParts = e._a.slice(0), A(e).meridiem = e._meridiem, e._a[je] = It(e._locale, e._a[je], e._meridiem), null !== (i = A(e).era) && (e._a[Ce] = e._locale.erasConvertYear(i, e._a[Ce])), Yt(e), qt(e)
19203
+ A(e).charsLeftOver = M - b, s.length > 0 && A(e).unusedInput.push(s), e._a[je] <= 12 && !0 === A(e).bigHour && e._a[je] > 0 && (A(e).bigHour = void 0), A(e).parsedDateParts = e._a.slice(0), A(e).meridiem = e._meridiem, e._a[je] = It(e._locale, e._a[je], e._meridiem), null !== (i = A(e).era) && (e._a[Ce] = e._locale.erasConvertYear(i, e._a[Ce])), Yt(e), ft(e)
19182
19204
  } else Dt(e);
19183
19205
  else Tt(e)
19184
19206
  }
@@ -19207,7 +19229,7 @@
19207
19229
  }
19208
19230
 
19209
19231
  function Ut(e) {
19210
- var n = new W(qt(Gt(e)));
19232
+ var n = new W(ft(Gt(e)));
19211
19233
  return n._nextDay && (n.add(1, "d"), n._nextDay = void 0), n
19212
19234
  }
19213
19235
 
@@ -19216,7 +19238,7 @@
19216
19238
  t = e._f;
19217
19239
  return e._locale = e._locale || ht(e._l), null === n || void 0 === t && "" === n ? h({
19218
19240
  nullInput: !0
19219
- }) : ("string" == typeof n && (e._i = n = e._locale.preparse(n)), L(n) ? new W(qt(n)) : (z(n) ? e._d = n : r(t) ? Ht(e) : t ? Pt(e) : Vt(e), m(e) || (e._d = null), e))
19241
+ }) : ("string" == typeof n && (e._i = n = e._locale.preparse(n)), L(n) ? new W(ft(n)) : (z(n) ? e._d = n : r(t) ? Ht(e) : t ? Pt(e) : Vt(e), m(e) || (e._d = null), e))
19220
19242
  }
19221
19243
 
19222
19244
  function Vt(e) {
@@ -19361,14 +19383,14 @@
19361
19383
  return this.utcOffset(0, e)
19362
19384
  }
19363
19385
 
19364
- function fo(e) {
19386
+ function qo(e) {
19365
19387
  return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e && this.subtract(lo(this), "m")), this
19366
19388
  }
19367
19389
 
19368
- function qo() {
19390
+ function fo() {
19369
19391
  if (null != this._tzm) this.utcOffset(this._tzm, !1, !0);
19370
19392
  else if ("string" == typeof this._i) {
19371
- var e = Oo(qe, this._i);
19393
+ var e = Oo(fe, this._i);
19372
19394
  null != e ? this.utcOffset(e) : this.utcOffset(0, !0)
19373
19395
  }
19374
19396
  return this
@@ -19730,11 +19752,11 @@
19730
19752
  return this._d.setTime(n), a.updateOffset(this, !0), this
19731
19753
  }
19732
19754
 
19733
- function fa() {
19755
+ function qa() {
19734
19756
  return this._d.valueOf() - 6e4 * (this._offset || 0)
19735
19757
  }
19736
19758
 
19737
- function qa() {
19759
+ function fa() {
19738
19760
  return Math.floor(this.valueOf() / 1e3)
19739
19761
  }
19740
19762
 
@@ -19929,7 +19951,7 @@
19929
19951
 
19930
19952
  function Za(e, n, t, o, a) {
19931
19953
  var p = Wn(e, n, t, o, a),
19932
- r = qn(p.year, 0, p.dayOfYear);
19954
+ r = fn(p.year, 0, p.dayOfYear);
19933
19955
  return this.year(r.getUTCFullYear()), this.month(r.getUTCMonth()), this.date(r.getUTCDate()), this
19934
19956
  }
19935
19957
 
@@ -19946,7 +19968,7 @@
19946
19968
  return this.weekYear() % 100
19947
19969
  })), j(0, ["GG", 2], 0, (function() {
19948
19970
  return this.isoWeekYear() % 100
19949
- })), Fa("gggg", "weekYear"), Fa("ggggg", "weekYear"), Fa("GGGG", "isoWeekYear"), Fa("GGGGG", "isoWeekYear"), Re("G", fe), Re("g", fe), Re("GG", de, se), Re("gg", de, se), Re("GGGG", Ae, be), Re("gggg", Ae, be), Re("GGGGG", me, ze), Re("ggggg", me, ze), ke(["gggg", "ggggg", "GGGG", "GGGGG"], (function(e, n, t, o) {
19971
+ })), Fa("gggg", "weekYear"), Fa("ggggg", "weekYear"), Fa("GGGG", "isoWeekYear"), Fa("GGGGG", "isoWeekYear"), Re("G", qe), Re("g", qe), Re("GG", de, se), Re("gg", de, se), Re("GGGG", Ae, be), Re("gggg", Ae, be), Re("GGGGG", me, ze), Re("ggggg", me, ze), ke(["gggg", "ggggg", "GGGG", "GGGGG"], (function(e, n, t, o) {
19950
19972
  n[o.substr(0, 2)] = Se(e)
19951
19973
  })), ke(["gg", "GG"], (function(e, n, t, o) {
19952
19974
  n[o] = a.parseTwoDigitYear(e)
@@ -20015,7 +20037,7 @@
20015
20037
  }
20016
20038
  Mp.add = Do, Mp.calendar = Ho, Mp.clone = Fo, Mp.diff = Qo, Mp.endOf = ha, Mp.format = oa, Mp.from = aa, Mp.fromNow = pa, Mp.to = ra, Mp.toNow = ia, Mp.get = en, Mp.invalidAt = va, Mp.isAfter = Uo, Mp.isBefore = Go, Mp.isBetween = Vo, Mp.isSame = Jo, Mp.isSameOrAfter = $o, Mp.isSameOrBefore = Ko, Mp.isValid = ya, Mp.lang = sa, Mp.locale = ca, Mp.localeData = Ma, Mp.max = Qt, Mp.min = Kt, Mp.parsingFlags = Ra, Mp.set = nn, Mp.startOf = ma, Mp.subtract = Bo, Mp.toArray = Wa, Mp.toObject = La, Mp.toDate = _a, Mp.toISOString = na, Mp.inspect = ta, "undefined" != typeof Symbol && null != Symbol.for && (Mp[Symbol.for("nodejs.util.inspect.custom")] = function() {
20017
20039
  return "Moment<" + this.format() + ">"
20018
- }), Mp.toJSON = ga, Mp.toString = ea, Mp.unix = qa, Mp.valueOf = fa, Mp.creationData = Na, Mp.eraName = xa, Mp.eraNarrow = wa, Mp.eraAbbr = ka, Mp.eraYear = Da, Mp.year = Je, Mp.isLeapYear = $e, Mp.weekYear = Ua, Mp.isoWeekYear = Ga, Mp.quarter = Mp.quarters = ep, Mp.month = un, Mp.daysInMonth = ln, Mp.week = Mp.weeks = Tn, Mp.isoWeek = Mp.isoWeeks = En, Mp.weeksInYear = $a, Mp.weeksInWeekYear = Ka, Mp.isoWeeksInYear = Va, Mp.isoWeeksInISOWeekYear = Ja, Mp.date = np, Mp.day = Mp.days = Un, Mp.weekday = Gn, Mp.isoWeekday = Vn, Mp.dayOfYear = tp, Mp.hour = Mp.hours = pt, Mp.minute = Mp.minutes = op, Mp.second = Mp.seconds = rp, Mp.millisecond = Mp.milliseconds = pp, Mp.utcOffset = Ao, Mp.utc = ho, Mp.local = fo, Mp.parseZone = qo, Mp.hasAlignedHourOffset = _o, Mp.isDST = Wo, Mp.isLocal = go, Mp.isUtcOffset = yo, Mp.isUtc = Ro, Mp.isUTC = Ro, Mp.zoneAbbr = cp, Mp.zoneName = sp, Mp.dates = y("dates accessor is deprecated. Use date instead.", np), Mp.months = y("months accessor is deprecated. Use month instead", un), Mp.years = y("years accessor is deprecated. Use year instead", Je), Mp.zone = y("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", mo), Mp.isDSTShifted = y("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", Lo);
20040
+ }), Mp.toJSON = ga, Mp.toString = ea, Mp.unix = fa, Mp.valueOf = qa, Mp.creationData = Na, Mp.eraName = xa, Mp.eraNarrow = wa, Mp.eraAbbr = ka, Mp.eraYear = Da, Mp.year = Je, Mp.isLeapYear = $e, Mp.weekYear = Ua, Mp.isoWeekYear = Ga, Mp.quarter = Mp.quarters = ep, Mp.month = un, Mp.daysInMonth = ln, Mp.week = Mp.weeks = Tn, Mp.isoWeek = Mp.isoWeeks = En, Mp.weeksInYear = $a, Mp.weeksInWeekYear = Ka, Mp.isoWeeksInYear = Va, Mp.isoWeeksInISOWeekYear = Ja, Mp.date = np, Mp.day = Mp.days = Un, Mp.weekday = Gn, Mp.isoWeekday = Vn, Mp.dayOfYear = tp, Mp.hour = Mp.hours = pt, Mp.minute = Mp.minutes = op, Mp.second = Mp.seconds = rp, Mp.millisecond = Mp.milliseconds = pp, Mp.utcOffset = Ao, Mp.utc = ho, Mp.local = qo, Mp.parseZone = fo, Mp.hasAlignedHourOffset = _o, Mp.isDST = Wo, Mp.isLocal = go, Mp.isUtcOffset = yo, Mp.isUtc = Ro, Mp.isUTC = Ro, Mp.zoneAbbr = cp, Mp.zoneName = sp, Mp.dates = y("dates accessor is deprecated. Use date instead.", np), Mp.months = y("months accessor is deprecated. Use month instead", un), Mp.years = y("years accessor is deprecated. Use year instead", Je), Mp.zone = y("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", mo), Mp.isDSTShifted = y("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", Lo);
20019
20041
  var Op = x.prototype;
20020
20042
 
20021
20043
  function up(e, n, t, o) {
@@ -20049,11 +20071,11 @@
20049
20071
  return lp(e, n, "monthsShort")
20050
20072
  }
20051
20073
 
20052
- function fp(e, n, t) {
20074
+ function qp(e, n, t) {
20053
20075
  return Ap(e, n, t, "weekdays")
20054
20076
  }
20055
20077
 
20056
- function qp(e, n, t) {
20078
+ function fp(e, n, t) {
20057
20079
  return Ap(e, n, t, "weekdaysShort")
20058
20080
  }
20059
20081
 
@@ -20247,11 +20269,11 @@
20247
20269
  return b ? (e = Ee(c / 60), n = Ee(e / 60), c %= 60, e %= 60, t = Ee(M / 12), M %= 12, o = c ? c.toFixed(3).replace(/\.?0+$/, "") : "", a = b < 0 ? "-" : "", p = sr(this._months) !== sr(b) ? "-" : "", r = sr(this._days) !== sr(b) ? "-" : "", i = sr(this._milliseconds) !== sr(b) ? "-" : "", a + "P" + (t ? p + t + "Y" : "") + (M ? p + M + "M" : "") + (s ? r + s + "D" : "") + (n || e || c ? "T" : "") + (n ? i + n + "H" : "") + (e ? i + e + "M" : "") + (c ? i + o + "S" : "")) : "P0D"
20248
20270
  }
20249
20271
  var br = io.prototype;
20250
- return br.isValid = po, br.abs = Lp, br.add = yp, br.subtract = Rp, br.as = Sp, br.asMilliseconds = wp, br.asSeconds = kp, br.asMinutes = Dp, br.asHours = Bp, br.asDays = Cp, br.asWeeks = Xp, br.asMonths = Yp, br.asQuarters = jp, br.asYears = Pp, br.valueOf = Ip, br._bubble = Np, br.clone = Hp, br.get = Fp, br.milliseconds = Gp, br.seconds = Vp, br.minutes = Jp, br.hours = $p, br.days = Kp, br.weeks = er, br.months = Qp, br.years = Zp, br.humanize = ir, br.toISOString = Mr, br.toString = Mr, br.toJSON = Mr, br.locale = ca, br.localeData = Ma, br.toIsoString = y("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", Mr), br.lang = sa, j("X", 0, 0, "unix"), j("x", 0, 0, "valueOf"), Re("x", fe), Re("X", We), we("X", (function(e, n, t) {
20272
+ return br.isValid = po, br.abs = Lp, br.add = yp, br.subtract = Rp, br.as = Sp, br.asMilliseconds = wp, br.asSeconds = kp, br.asMinutes = Dp, br.asHours = Bp, br.asDays = Cp, br.asWeeks = Xp, br.asMonths = Yp, br.asQuarters = jp, br.asYears = Pp, br.valueOf = Ip, br._bubble = Np, br.clone = Hp, br.get = Fp, br.milliseconds = Gp, br.seconds = Vp, br.minutes = Jp, br.hours = $p, br.days = Kp, br.weeks = er, br.months = Qp, br.years = Zp, br.humanize = ir, br.toISOString = Mr, br.toString = Mr, br.toJSON = Mr, br.locale = ca, br.localeData = Ma, br.toIsoString = y("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", Mr), br.lang = sa, j("X", 0, 0, "unix"), j("x", 0, 0, "valueOf"), Re("x", qe), Re("X", We), we("X", (function(e, n, t) {
20251
20273
  t._d = new Date(1e3 * parseFloat(e))
20252
20274
  })), we("x", (function(e, n, t) {
20253
20275
  t._d = new Date(Se(e))
20254
- })), a.version = "2.30.1", p($t), a.fn = Mp, a.min = eo, a.max = no, a.now = to, a.utc = u, a.unix = bp, a.months = mp, a.isDate = z, a.locale = lt, a.invalid = h, a.duration = To, a.isMoment = L, a.weekdays = fp, a.parseZone = zp, a.localeData = ht, a.isDuration = co, a.monthsShort = hp, a.weekdaysMin = _p, a.defineLocale = At, a.updateLocale = mt, a.locales = ft, a.weekdaysShort = qp, a.normalizeUnits = oe, a.relativeTimeRounding = pr, a.relativeTimeThreshold = rr, a.calendarFormat = Io, a.prototype = Mp, a.HTML5_FMT = {
20276
+ })), a.version = "2.30.1", p($t), a.fn = Mp, a.min = eo, a.max = no, a.now = to, a.utc = u, a.unix = bp, a.months = mp, a.isDate = z, a.locale = lt, a.invalid = h, a.duration = To, a.isMoment = L, a.weekdays = qp, a.parseZone = zp, a.localeData = ht, a.isDuration = co, a.monthsShort = hp, a.weekdaysMin = _p, a.defineLocale = At, a.updateLocale = mt, a.locales = qt, a.weekdaysShort = fp, a.normalizeUnits = oe, a.relativeTimeRounding = pr, a.relativeTimeThreshold = rr, a.calendarFormat = Io, a.prototype = Mp, a.HTML5_FMT = {
20255
20277
  DATETIME_LOCAL: "YYYY-MM-DDTHH:mm",
20256
20278
  DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss",
20257
20279
  DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS",
@@ -20353,8 +20375,8 @@
20353
20375
  stringify: () => b,
20354
20376
  v1: () => l,
20355
20377
  v3: () => h,
20356
- v4: () => f,
20357
- v5: () => q,
20378
+ v4: () => q,
20379
+ v5: () => f,
20358
20380
  validate: () => s,
20359
20381
  version: () => W
20360
20382
  });
@@ -20431,7 +20453,7 @@
20431
20453
  const h = m("v3", 48, (function(e) {
20432
20454
  return Array.isArray(e) ? e = Buffer.from(e) : "string" == typeof e && (e = Buffer.from(e, "utf8")), a().createHash("md5").update(e).digest()
20433
20455
  }));
20434
- const f = function(e, n, t) {
20456
+ const q = function(e, n, t) {
20435
20457
  const o = (e = e || {}).random || (e.rng || i)();
20436
20458
  if (o[6] = 15 & o[6] | 64, o[8] = 63 & o[8] | 128, n) {
20437
20459
  t = t || 0;
@@ -20440,7 +20462,7 @@
20440
20462
  }
20441
20463
  return b(o)
20442
20464
  };
20443
- const q = m("v5", 80, (function(e) {
20465
+ const f = m("v5", 80, (function(e) {
20444
20466
  return Array.isArray(e) ? e = Buffer.from(e) : "string" == typeof e && (e = Buffer.from(e, "utf8")), a().createHash("sha1").update(e).digest()
20445
20467
  })),
20446
20468
  _ = "00000000-0000-0000-0000-000000000000";
@@ -22073,7 +22095,7 @@
22073
22095
 
22074
22096
  function d(e) {
22075
22097
  return e ? o.parse(e, c((function(e) {
22076
- return q(e).trim()
22098
+ return f(e).trim()
22077
22099
  }))) : null
22078
22100
  }
22079
22101
  var O = function(e) {
@@ -22102,10 +22124,10 @@
22102
22124
  h = function(e) {
22103
22125
  return e ? o.parse(e, c(i)) : null
22104
22126
  },
22105
- f = function(e) {
22127
+ q = function(e) {
22106
22128
  return parseInt(e, 10)
22107
22129
  },
22108
- q = function(e) {
22130
+ f = function(e) {
22109
22131
  var n = String(e);
22110
22132
  return /^\d+$/.test(n) ? n : e
22111
22133
  },
@@ -22126,7 +22148,7 @@
22126
22148
  };
22127
22149
  e.exports = {
22128
22150
  init: function(e) {
22129
- e(20, q), e(21, f), e(23, f), e(26, f), e(700, parseFloat), e(701, parseFloat), e(16, s), e(1082, p), e(1114, p), e(1184, p), e(600, W), e(651, l), e(718, L), e(1e3, M), e(1001, h), e(1005, z), e(1007, z), e(1028, z), e(1016, d), e(1017, O), e(1021, u), e(1022, u), e(1231, u), e(1014, l), e(1015, l), e(1008, l), e(1009, l), e(1040, l), e(1041, l), e(1115, A), e(1182, A), e(1185, A), e(1186, r), e(1187, m), e(17, i), e(114, JSON.parse.bind(JSON)), e(3802, JSON.parse.bind(JSON)), e(199, _), e(3807, _), e(3907, l), e(2951, l), e(791, l), e(1183, l), e(1270, l)
22151
+ e(20, f), e(21, q), e(23, q), e(26, q), e(700, parseFloat), e(701, parseFloat), e(16, s), e(1082, p), e(1114, p), e(1184, p), e(600, W), e(651, l), e(718, L), e(1e3, M), e(1001, h), e(1005, z), e(1007, z), e(1028, z), e(1016, d), e(1017, O), e(1021, u), e(1022, u), e(1231, u), e(1014, l), e(1015, l), e(1008, l), e(1009, l), e(1040, l), e(1041, l), e(1115, A), e(1182, A), e(1185, A), e(1186, r), e(1187, m), e(17, i), e(114, JSON.parse.bind(JSON)), e(3802, JSON.parse.bind(JSON)), e(199, _), e(3807, _), e(3907, l), e(2951, l), e(791, l), e(1183, l), e(1270, l)
22130
22152
  }
22131
22153
  }
22132
22154
  },
@@ -23772,20 +23794,20 @@
23772
23794
  const h = a.length;
23773
23795
  if (0 === h) return "{}";
23774
23796
  if (d < s.length + 1) return '"[Object]"';
23775
- let f = "",
23776
- q = "";
23777
- "" !== l && (n = `,\n${A+=l}`, f = " ");
23797
+ let q = "",
23798
+ f = "";
23799
+ "" !== l && (n = `,\n${A+=l}`, q = " ");
23778
23800
  const _ = Math.min(h, O);
23779
23801
  i && !c(m) && (a = r(a, z)), s.push(m);
23780
23802
  for (let t = 0; t < _; t++) {
23781
23803
  const o = a[t],
23782
23804
  r = u(o, m, s, M, l, A);
23783
- void 0 !== r && (e += `${q}${p(o)}:${f}${r}`, q = n)
23805
+ void 0 !== r && (e += `${f}${p(o)}:${q}${r}`, f = n)
23784
23806
  }
23785
23807
  if (h > O) {
23786
- e += `${q}"...":${f}"${b(h-O)} not stringified"`, q = n
23808
+ e += `${f}"...":${q}"${b(h-O)} not stringified"`, f = n
23787
23809
  }
23788
- return "" !== l && q.length > 1 && (e = `\n${A}${e}\n${t}`), s.pop(), `{${e}}`
23810
+ return "" !== l && f.length > 1 && (e = `\n${A}${e}\n${t}`), s.pop(), `{${e}}`
23789
23811
  }
23790
23812
  case "number":
23791
23813
  return isFinite(m) ? String(m) : n ? n(m) : "null";
@@ -23884,19 +23906,19 @@
23884
23906
  if (0 === m) return "{}";
23885
23907
  if (d < M.length + 1) return '"[Object]"';
23886
23908
  const h = `,\n${l+=u}`;
23887
- let f = "",
23888
- q = "",
23909
+ let q = "",
23910
+ f = "",
23889
23911
  _ = Math.min(m, O);
23890
- c(t) && (f += s(t, h, O), a = a.slice(t.length), _ -= t.length, q = h), i && (a = r(a, z)), M.push(t);
23912
+ c(t) && (q += s(t, h, O), a = a.slice(t.length), _ -= t.length, f = h), i && (a = r(a, z)), M.push(t);
23891
23913
  for (let e = 0; e < _; e++) {
23892
23914
  const n = a[e],
23893
23915
  o = A(n, t[n], M, u, l);
23894
- void 0 !== o && (f += `${q}${p(n)}: ${o}`, q = h)
23916
+ void 0 !== o && (q += `${f}${p(n)}: ${o}`, f = h)
23895
23917
  }
23896
23918
  if (m > O) {
23897
- f += `${q}"...": "${b(m-O)} not stringified"`, q = h
23919
+ q += `${f}"...": "${b(m-O)} not stringified"`, f = h
23898
23920
  }
23899
- return "" !== q && (f = `\n${l}${f}\n${n}`), M.pop(), `{${f}}`
23921
+ return "" !== f && (q = `\n${l}${q}\n${n}`), M.pop(), `{${q}}`
23900
23922
  }
23901
23923
  case "number":
23902
23924
  return isFinite(t) ? String(t) : n ? n(t) : "null";
@@ -24819,9 +24841,9 @@
24819
24841
  A = l.ERR_INVALID_ARG_TYPE,
24820
24842
  m = l.ERR_STREAM_PUSH_AFTER_EOF,
24821
24843
  h = l.ERR_METHOD_NOT_IMPLEMENTED,
24822
- f = l.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
24844
+ q = l.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
24823
24845
  t(2017)(L, p);
24824
- var q = O.errorOrDestroy,
24846
+ var f = O.errorOrDestroy,
24825
24847
  _ = ["error", "close", "destroy", "pause", "resume"];
24826
24848
 
24827
24849
  function W(e, n, a) {
@@ -24851,12 +24873,12 @@
24851
24873
  o = n, r.isBuffer(o) || o instanceof i || "string" == typeof n || void 0 === n || e.objectMode || (t = new A("chunk", ["string", "Buffer", "Uint8Array"], n));
24852
24874
  var o;
24853
24875
  return t
24854
- }(s, n)), p) q(e, p);
24876
+ }(s, n)), p) f(e, p);
24855
24877
  else if (s.objectMode || n && n.length > 0)
24856
24878
  if ("string" == typeof n || s.objectMode || Object.getPrototypeOf(n) === r.prototype || (n = function(e) {
24857
24879
  return r.from(e)
24858
- }(n)), o) s.endEmitted ? q(e, new f) : y(e, s, n, !0);
24859
- else if (s.ended) q(e, new m);
24880
+ }(n)), o) s.endEmitted ? f(e, new q) : y(e, s, n, !0);
24881
+ else if (s.ended) f(e, new m);
24860
24882
  else {
24861
24883
  if (s.destroyed) return !1;
24862
24884
  s.reading = !1, s.decoder && !t ? (n = s.decoder.write(n), s.objectMode || 0 !== n.length ? y(e, s, n, !1) : E(e, s)) : y(e, s, n, !1)
@@ -24970,7 +24992,7 @@
24970
24992
  var o, a = n.needReadable;
24971
24993
  return c("need readable", a), (0 === n.length || n.length - e < n.highWaterMark) && c("length less than watermark", a = !0), n.ended || n.reading ? c("reading or ended", a = !1) : a && (c("do read"), n.reading = !0, n.sync = !0, 0 === n.length && (n.needReadable = !0), this._read(n.highWaterMark), n.sync = !1, n.reading || (e = v(t, n))), null === (o = e > 0 ? B(e, n) : null) ? (n.needReadable = n.length <= n.highWaterMark, e = 0) : (n.length -= e, n.awaitDrain = 0), 0 === n.length && (n.ended || (n.needReadable = !0), t !== e && n.ended && C(this)), null !== o && this.emit("data", o), o
24972
24994
  }, L.prototype._read = function(e) {
24973
- q(this, new h("_read()"))
24995
+ f(this, new h("_read()"))
24974
24996
  }, L.prototype.pipe = function(e, n) {
24975
24997
  var t = this,
24976
24998
  o = this._readableState;
@@ -25011,7 +25033,7 @@
25011
25033
  }
25012
25034
 
25013
25035
  function z(n) {
25014
- c("onerror", n), u(), e.removeListener("error", z), 0 === a(e, "error") && q(e, n)
25036
+ c("onerror", n), u(), e.removeListener("error", z), 0 === a(e, "error") && f(e, n)
25015
25037
  }
25016
25038
 
25017
25039
  function d() {
@@ -25150,8 +25172,8 @@
25150
25172
  A = z.ERR_STREAM_DESTROYED,
25151
25173
  m = z.ERR_STREAM_NULL_VALUES,
25152
25174
  h = z.ERR_STREAM_WRITE_AFTER_END,
25153
- f = z.ERR_UNKNOWN_ENCODING,
25154
- q = M.errorOrDestroy;
25175
+ q = z.ERR_UNKNOWN_ENCODING,
25176
+ f = M.errorOrDestroy;
25155
25177
 
25156
25178
  function _() {}
25157
25179
 
@@ -25167,7 +25189,7 @@
25167
25189
  if (function(e) {
25168
25190
  e.writing = !1, e.writecb = null, e.length -= e.writelen, e.writelen = 0
25169
25191
  }(t), n) ! function(e, n, t, o, a) {
25170
- --n.pendingcb, t ? (process.nextTick(a, o), process.nextTick(T, e, n), e._writableState.errorEmitted = !0, q(e, o)) : (a(o), e._writableState.errorEmitted = !0, q(e, o), T(e, n))
25192
+ --n.pendingcb, t ? (process.nextTick(a, o), process.nextTick(T, e, n), e._writableState.errorEmitted = !0, f(e, o)) : (a(o), e._writableState.errorEmitted = !0, f(e, o), T(e, n))
25171
25193
  }(e, t, o, n, a);
25172
25194
  else {
25173
25195
  var p = v(t) || e.destroyed;
@@ -25221,7 +25243,7 @@
25221
25243
 
25222
25244
  function N(e, n) {
25223
25245
  e._final((function(t) {
25224
- n.pendingcb--, t && q(e, t), n.prefinished = !0, e.emit("prefinish"), T(e, n)
25246
+ n.pendingcb--, t && f(e, t), n.prefinished = !0, e.emit("prefinish"), T(e, n)
25225
25247
  }))
25226
25248
  }
25227
25249
 
@@ -25254,7 +25276,7 @@
25254
25276
  })) : s = function(e) {
25255
25277
  return e instanceof this
25256
25278
  }, L.prototype.pipe = function() {
25257
- q(this, new l)
25279
+ f(this, new l)
25258
25280
  }, L.prototype.write = function(e, n, t) {
25259
25281
  var o, a = this._writableState,
25260
25282
  p = !1,
@@ -25263,10 +25285,10 @@
25263
25285
  return i.from(e)
25264
25286
  }(e)), "function" == typeof n && (t = n, n = null), r ? n = "buffer" : n || (n = a.defaultEncoding), "function" != typeof t && (t = _), a.ending ? function(e, n) {
25265
25287
  var t = new h;
25266
- q(e, t), process.nextTick(n, t)
25288
+ f(e, t), process.nextTick(n, t)
25267
25289
  }(this, t) : (r || function(e, n, t, o) {
25268
25290
  var a;
25269
- return null === t ? a = new m : "string" == typeof t || n.objectMode || (a = new d("chunk", ["string", "Buffer"], t)), !a || (q(e, a), process.nextTick(o, a), !1)
25291
+ return null === t ? a = new m : "string" == typeof t || n.objectMode || (a = new d("chunk", ["string", "Buffer"], t)), !a || (f(e, a), process.nextTick(o, a), !1)
25270
25292
  }(this, a, e, t)) && (a.pendingcb++, p = function(e, n, t, o, a, p) {
25271
25293
  if (!t) {
25272
25294
  var r = function(e, n, t) {
@@ -25297,7 +25319,7 @@
25297
25319
  var e = this._writableState;
25298
25320
  e.corked && (e.corked--, e.writing || e.corked || e.bufferProcessing || !e.bufferedRequest || R(this, e))
25299
25321
  }, L.prototype.setDefaultEncoding = function(e) {
25300
- if ("string" == typeof e && (e = e.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e + "").toLowerCase()) > -1)) throw new f(e);
25322
+ if ("string" == typeof e && (e = e.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e + "").toLowerCase()) > -1)) throw new q(e);
25301
25323
  return this._writableState.defaultEncoding = e, this
25302
25324
  }, Object.defineProperty(L.prototype, "writableBuffer", {
25303
25325
  enumerable: !1,
@@ -26971,9 +26993,9 @@
26971
26993
  A = l.ERR_INVALID_ARG_TYPE,
26972
26994
  m = l.ERR_STREAM_PUSH_AFTER_EOF,
26973
26995
  h = l.ERR_METHOD_NOT_IMPLEMENTED,
26974
- f = l.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
26996
+ q = l.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
26975
26997
  t(2017)(L, p);
26976
- var q = O.errorOrDestroy,
26998
+ var f = O.errorOrDestroy,
26977
26999
  _ = ["error", "close", "destroy", "pause", "resume"];
26978
27000
 
26979
27001
  function W(e, n, a) {
@@ -27003,12 +27025,12 @@
27003
27025
  o = n, r.isBuffer(o) || o instanceof i || "string" == typeof n || void 0 === n || e.objectMode || (t = new A("chunk", ["string", "Buffer", "Uint8Array"], n));
27004
27026
  var o;
27005
27027
  return t
27006
- }(s, n)), p) q(e, p);
27028
+ }(s, n)), p) f(e, p);
27007
27029
  else if (s.objectMode || n && n.length > 0)
27008
27030
  if ("string" == typeof n || s.objectMode || Object.getPrototypeOf(n) === r.prototype || (n = function(e) {
27009
27031
  return r.from(e)
27010
- }(n)), o) s.endEmitted ? q(e, new f) : y(e, s, n, !0);
27011
- else if (s.ended) q(e, new m);
27032
+ }(n)), o) s.endEmitted ? f(e, new q) : y(e, s, n, !0);
27033
+ else if (s.ended) f(e, new m);
27012
27034
  else {
27013
27035
  if (s.destroyed) return !1;
27014
27036
  s.reading = !1, s.decoder && !t ? (n = s.decoder.write(n), s.objectMode || 0 !== n.length ? y(e, s, n, !1) : E(e, s)) : y(e, s, n, !1)
@@ -27122,7 +27144,7 @@
27122
27144
  var o, a = n.needReadable;
27123
27145
  return c("need readable", a), (0 === n.length || n.length - e < n.highWaterMark) && c("length less than watermark", a = !0), n.ended || n.reading ? c("reading or ended", a = !1) : a && (c("do read"), n.reading = !0, n.sync = !0, 0 === n.length && (n.needReadable = !0), this._read(n.highWaterMark), n.sync = !1, n.reading || (e = v(t, n))), null === (o = e > 0 ? B(e, n) : null) ? (n.needReadable = n.length <= n.highWaterMark, e = 0) : (n.length -= e, n.awaitDrain = 0), 0 === n.length && (n.ended || (n.needReadable = !0), t !== e && n.ended && C(this)), null !== o && this.emit("data", o), o
27124
27146
  }, L.prototype._read = function(e) {
27125
- q(this, new h("_read()"))
27147
+ f(this, new h("_read()"))
27126
27148
  }, L.prototype.pipe = function(e, n) {
27127
27149
  var t = this,
27128
27150
  o = this._readableState;
@@ -27163,7 +27185,7 @@
27163
27185
  }
27164
27186
 
27165
27187
  function z(n) {
27166
- c("onerror", n), u(), e.removeListener("error", z), 0 === a(e, "error") && q(e, n)
27188
+ c("onerror", n), u(), e.removeListener("error", z), 0 === a(e, "error") && f(e, n)
27167
27189
  }
27168
27190
 
27169
27191
  function d() {
@@ -27366,8 +27388,8 @@
27366
27388
  A = z.ERR_STREAM_DESTROYED,
27367
27389
  m = z.ERR_STREAM_NULL_VALUES,
27368
27390
  h = z.ERR_STREAM_WRITE_AFTER_END,
27369
- f = z.ERR_UNKNOWN_ENCODING,
27370
- q = M.errorOrDestroy;
27391
+ q = z.ERR_UNKNOWN_ENCODING,
27392
+ f = M.errorOrDestroy;
27371
27393
 
27372
27394
  function _() {}
27373
27395
 
@@ -27383,7 +27405,7 @@
27383
27405
  if (function(e) {
27384
27406
  e.writing = !1, e.writecb = null, e.length -= e.writelen, e.writelen = 0
27385
27407
  }(t), n) ! function(e, n, t, o, a) {
27386
- --n.pendingcb, t ? (process.nextTick(a, o), process.nextTick(T, e, n), e._writableState.errorEmitted = !0, q(e, o)) : (a(o), e._writableState.errorEmitted = !0, q(e, o), T(e, n))
27408
+ --n.pendingcb, t ? (process.nextTick(a, o), process.nextTick(T, e, n), e._writableState.errorEmitted = !0, f(e, o)) : (a(o), e._writableState.errorEmitted = !0, f(e, o), T(e, n))
27387
27409
  }(e, t, o, n, a);
27388
27410
  else {
27389
27411
  var p = v(t) || e.destroyed;
@@ -27437,7 +27459,7 @@
27437
27459
 
27438
27460
  function N(e, n) {
27439
27461
  e._final((function(t) {
27440
- n.pendingcb--, t && q(e, t), n.prefinished = !0, e.emit("prefinish"), T(e, n)
27462
+ n.pendingcb--, t && f(e, t), n.prefinished = !0, e.emit("prefinish"), T(e, n)
27441
27463
  }))
27442
27464
  }
27443
27465
 
@@ -27470,7 +27492,7 @@
27470
27492
  })) : s = function(e) {
27471
27493
  return e instanceof this
27472
27494
  }, L.prototype.pipe = function() {
27473
- q(this, new l)
27495
+ f(this, new l)
27474
27496
  }, L.prototype.write = function(e, n, t) {
27475
27497
  var o, a = this._writableState,
27476
27498
  p = !1,
@@ -27479,10 +27501,10 @@
27479
27501
  return i.from(e)
27480
27502
  }(e)), "function" == typeof n && (t = n, n = null), r ? n = "buffer" : n || (n = a.defaultEncoding), "function" != typeof t && (t = _), a.ending ? function(e, n) {
27481
27503
  var t = new h;
27482
- q(e, t), process.nextTick(n, t)
27504
+ f(e, t), process.nextTick(n, t)
27483
27505
  }(this, t) : (r || function(e, n, t, o) {
27484
27506
  var a;
27485
- return null === t ? a = new m : "string" == typeof t || n.objectMode || (a = new d("chunk", ["string", "Buffer"], t)), !a || (q(e, a), process.nextTick(o, a), !1)
27507
+ return null === t ? a = new m : "string" == typeof t || n.objectMode || (a = new d("chunk", ["string", "Buffer"], t)), !a || (f(e, a), process.nextTick(o, a), !1)
27486
27508
  }(this, a, e, t)) && (a.pendingcb++, p = function(e, n, t, o, a, p) {
27487
27509
  if (!t) {
27488
27510
  var r = function(e, n, t) {
@@ -27513,7 +27535,7 @@
27513
27535
  var e = this._writableState;
27514
27536
  e.corked && (e.corked--, e.writing || e.corked || e.bufferProcessing || !e.bufferedRequest || R(this, e))
27515
27537
  }, L.prototype.setDefaultEncoding = function(e) {
27516
- if ("string" == typeof e && (e = e.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e + "").toLowerCase()) > -1)) throw new f(e);
27538
+ if ("string" == typeof e && (e = e.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e + "").toLowerCase()) > -1)) throw new q(e);
27517
27539
  return this._writableState.defaultEncoding = e, this
27518
27540
  }, Object.defineProperty(L.prototype, "writableBuffer", {
27519
27541
  enumerable: !1,
@@ -28214,8 +28236,8 @@
28214
28236
  A = O(p),
28215
28237
  m = O(r),
28216
28238
  h = O(i),
28217
- f = O(c),
28218
- q = O(s),
28239
+ q = O(c),
28240
+ f = O(s),
28219
28241
  _ = O(M),
28220
28242
  W = O(b),
28221
28243
  L = O(z);
@@ -28499,7 +28521,7 @@
28499
28521
  return Oe.endsWith(e, "[]") ? e.slice(0, -2) : e
28500
28522
  }
28501
28523
 
28502
- function fe(e, n, t) {
28524
+ function qe(e, n, t) {
28503
28525
  return e ? e.concat(n).map((function(e, n) {
28504
28526
  return e = he(e), !t && n ? "[" + e + "]" : e
28505
28527
  })).join(t ? "." : "") : n
@@ -28515,7 +28537,7 @@
28515
28537
  return e !== Error.prototype
28516
28538
  }), (e => "isAxiosError" !== e)), ue.call(r, e.message, n, t, o, a), r.cause = e, r.name = e.name, p && Object.assign(r, p), r
28517
28539
  };
28518
- const qe = Oe.toFlatObject(Oe, {}, null, (function(e) {
28540
+ const fe = Oe.toFlatObject(Oe, {}, null, (function(e) {
28519
28541
  return /^is[A-Z]/.test(e)
28520
28542
  }));
28521
28543
 
@@ -28550,12 +28572,12 @@
28550
28572
  else if (Oe.isArray(e) && function(e) {
28551
28573
  return Oe.isArray(e) && !e.some(me)
28552
28574
  }(e) || (Oe.isFileList(e) || Oe.endsWith(t, "[]")) && (i = Oe.toArray(e))) return t = he(t), i.forEach((function(e, o) {
28553
- !Oe.isUndefined(e) && null !== e && n.append(!0 === r ? fe([t], o, p) : null === r ? t : t + "[]", c(e))
28575
+ !Oe.isUndefined(e) && null !== e && n.append(!0 === r ? qe([t], o, p) : null === r ? t : t + "[]", c(e))
28554
28576
  })), !1;
28555
- return !!me(e) || (n.append(fe(a, t, p), c(e)), !1)
28577
+ return !!me(e) || (n.append(qe(a, t, p), c(e)), !1)
28556
28578
  }
28557
28579
  const M = [],
28558
- b = Object.assign(qe, {
28580
+ b = Object.assign(fe, {
28559
28581
  defaultVisitor: s,
28560
28582
  convertValue: c,
28561
28583
  isVisitable: me
@@ -29084,7 +29106,7 @@
29084
29106
  } = Symbol,
29085
29107
  cn = async function*(e) {
29086
29108
  e.stream ? yield* e.stream(): e.arrayBuffer ? yield await e.arrayBuffer(): e[rn] ? yield* e[rn](): yield e
29087
- }, sn = Ye.ALPHABET.ALPHA_DIGIT + "-_", Mn = "function" == typeof TextEncoder ? new TextEncoder : new q.default.TextEncoder, bn = "\r\n", zn = Mn.encode(bn);
29109
+ }, sn = Ye.ALPHABET.ALPHA_DIGIT + "-_", Mn = "function" == typeof TextEncoder ? new TextEncoder : new f.default.TextEncoder, bn = "\r\n", zn = Mn.encode(bn);
29088
29110
  class FormDataPart {
29089
29111
  constructor(e, n) {
29090
29112
  const {
@@ -29221,11 +29243,11 @@
29221
29243
  flush: W.default.constants.Z_SYNC_FLUSH,
29222
29244
  finishFlush: W.default.constants.Z_SYNC_FLUSH
29223
29245
  },
29224
- fn = {
29246
+ qn = {
29225
29247
  flush: W.default.constants.BROTLI_OPERATION_FLUSH,
29226
29248
  finishFlush: W.default.constants.BROTLI_OPERATION_FLUSH
29227
29249
  },
29228
- qn = Oe.isFunction(W.default.createBrotliDecompress),
29250
+ fn = Oe.isFunction(W.default.createBrotliDecompress),
29229
29251
  {
29230
29252
  http: _n,
29231
29253
  https: Wn
@@ -29369,7 +29391,7 @@
29369
29391
  })
29370
29392
  } else if (Oe.isFormData(a) && Oe.isFunction(a.getHeaders)) {
29371
29393
  if (g.set(a.getHeaders()), !g.hasContentLength()) try {
29372
- const e = await q.default.promisify(a.getLength).call(a);
29394
+ const e = await f.default.promisify(a.getLength).call(a);
29373
29395
  Number.isFinite(e) && e >= 0 && g.setContentLength(e)
29374
29396
  } catch (e) {}
29375
29397
  } else if (Oe.isBlob(a) || Oe.isFile(a)) a.size && g.setContentType(a.type || "application/octet-stream"), g.setContentLength(a.size || 0), a = L.default.Readable.from(cn(a));
@@ -29395,7 +29417,7 @@
29395
29417
  const o = new Error(n.message);
29396
29418
  return o.config = e, o.url = e.url, o.exists = !0, t(o)
29397
29419
  }
29398
- g.set("Accept-Encoding", "gzip, compress, deflate" + (qn ? ", br" : ""), !1);
29420
+ g.set("Accept-Encoding", "gzip, compress, deflate" + (fn ? ", br" : ""), !1);
29399
29421
  const w = {
29400
29422
  path: x,
29401
29423
  method: s,
@@ -29413,7 +29435,7 @@
29413
29435
  let k;
29414
29436
  !Oe.isUndefined(p) && (w.lookup = p), e.socketPath ? w.socketPath = e.socketPath : (w.hostname = m.hostname.startsWith("[") ? m.hostname.slice(1, -1) : m.hostname, w.port = m.port, vn(w, e.proxy, _ + "//" + m.hostname + (m.port ? ":" + m.port : "") + w.path));
29415
29437
  const D = Ln.test(w.protocol);
29416
- if (w.agent = D ? e.httpsAgent : e.httpAgent, e.transport ? k = e.transport : 0 === e.maxRedirects ? k = D ? f.default : h.default : (e.maxRedirects && (w.maxRedirects = e.maxRedirects), e.beforeRedirect && (w.beforeRedirects.config = e.beforeRedirect), k = D ? Wn : _n), e.maxBodyLength > -1 ? w.maxBodyLength = e.maxBodyLength : w.maxBodyLength = 1 / 0, e.insecureHTTPParser && (w.insecureHTTPParser = e.insecureHTTPParser), b = k.request(w, (function(o) {
29438
+ if (w.agent = D ? e.httpsAgent : e.httpAgent, e.transport ? k = e.transport : 0 === e.maxRedirects ? k = D ? q.default : h.default : (e.maxRedirects && (w.maxRedirects = e.maxRedirects), e.beforeRedirect && (w.beforeRedirects.config = e.beforeRedirect), k = D ? Wn : _n), e.maxBodyLength > -1 ? w.maxBodyLength = e.maxBodyLength : w.maxBodyLength = 1 / 0, e.insecureHTTPParser && (w.insecureHTTPParser = e.insecureHTTPParser), b = k.request(w, (function(o) {
29417
29439
  if (b.destroyed) return;
29418
29440
  const a = [o],
29419
29441
  p = +o.headers["content-length"];
@@ -29436,7 +29458,7 @@
29436
29458
  a.push(new On), a.push(W.default.createUnzip(hn)), delete o.headers["content-encoding"];
29437
29459
  break;
29438
29460
  case "br":
29439
- qn && (a.push(W.default.createBrotliDecompress(fn)), delete o.headers["content-encoding"])
29461
+ fn && (a.push(W.default.createBrotliDecompress(qn)), delete o.headers["content-encoding"])
29440
29462
  }
29441
29463
  r = a.length > 1 ? L.default.pipeline(a, Oe.noop) : a[0];
29442
29464
  const d = L.default.finished(r, (() => {
@@ -30313,9 +30335,9 @@
30313
30335
 
30314
30336
  function h() {}
30315
30337
 
30316
- function f() {}
30317
-
30318
30338
  function q() {}
30339
+
30340
+ function f() {}
30319
30341
  var _ = {};
30320
30342
  b(_, c, (function() {
30321
30343
  return this
@@ -30323,7 +30345,7 @@
30323
30345
  var W = Object.getPrototypeOf,
30324
30346
  L = W && W(W(x([])));
30325
30347
  L && L !== t && p.call(L, c) && (_ = L);
30326
- var g = q.prototype = h.prototype = Object.create(_);
30348
+ var g = f.prototype = h.prototype = Object.create(_);
30327
30349
 
30328
30350
  function y(e) {
30329
30351
  ["next", "throw", "return"].forEach((function(n) {
@@ -30448,17 +30470,17 @@
30448
30470
  }
30449
30471
  throw new TypeError(o(n) + " is not iterable")
30450
30472
  }
30451
- return f.prototype = q, r(g, "constructor", {
30452
- value: q,
30453
- configurable: !0
30454
- }), r(q, "constructor", {
30473
+ return q.prototype = f, r(g, "constructor", {
30455
30474
  value: f,
30456
30475
  configurable: !0
30457
- }), f.displayName = b(q, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
30476
+ }), r(f, "constructor", {
30477
+ value: q,
30478
+ configurable: !0
30479
+ }), q.displayName = b(f, M, "GeneratorFunction"), n.isGeneratorFunction = function(e) {
30458
30480
  var n = "function" == typeof e && e.constructor;
30459
- return !!n && (n === f || "GeneratorFunction" === (n.displayName || n.name))
30481
+ return !!n && (n === q || "GeneratorFunction" === (n.displayName || n.name))
30460
30482
  }, n.mark = function(e) {
30461
- return Object.setPrototypeOf ? Object.setPrototypeOf(e, q) : (e.__proto__ = q, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
30483
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, f) : (e.__proto__ = f, b(e, M, "GeneratorFunction")), e.prototype = Object.create(g), e
30462
30484
  }, n.awrap = function(e) {
30463
30485
  return {
30464
30486
  __await: e
@@ -30625,25 +30647,26 @@
30625
30647
  O = t(3854),
30626
30648
  u = t(9e3),
30627
30649
  l = t(3460),
30628
- A = process.env.PGDATA_USER || "",
30629
- m = process.env.PGDATA_HOST || "",
30630
- h = process.env.PGDATA_DATABASE || "",
30650
+ A = t(763),
30651
+ m = process.env.PGDATA_USER || "",
30652
+ h = process.env.PGDATA_HOST || "",
30653
+ q = process.env.PGDATA_DATABASE || "",
30631
30654
  f = process.env.PGDATA_PASSWORD || "",
30632
- q = process.env.PGDATA_PORT || "",
30633
- _ = new M({
30634
- user: A,
30635
- host: m,
30636
- database: h,
30655
+ _ = process.env.PGDATA_PORT || "",
30656
+ W = new M({
30657
+ user: m,
30658
+ host: h,
30659
+ database: q,
30637
30660
  password: f,
30638
- port: q || 5432
30661
+ port: _ || 5432
30639
30662
  }),
30640
- W = parseInt(process.env.RETRY_INTERVAL || "300000", 10),
30641
- L = parseInt(process.env.MAX_RETRY_COUNT || "5", 10),
30642
- g = (parseInt(process.env.BATCH_SIZE || "10", 10), Boolean(process.env.EXECUTE_CREATETABLE || !1)),
30643
- y = !0 === process.argv.includes("--syncAllDanhMuc"),
30644
- R = !0 === process.argv.includes("--syncBnnoitru"),
30645
- v = !0 === process.argv.includes("--exportSQLCreateTable"),
30646
- N = !0 === process.argv.includes("--psdangkySyncDCHG");
30663
+ L = parseInt(process.env.RETRY_INTERVAL || "300000", 10),
30664
+ g = parseInt(process.env.MAX_RETRY_COUNT || "5", 10),
30665
+ y = (parseInt(process.env.BATCH_SIZE || "10", 10), A.parseBooleanParam(process.env.EXECUTE_CREATETABLE || !1)),
30666
+ R = !0 === process.argv.includes("--syncAllDanhMuc"),
30667
+ v = !0 === process.argv.includes("--syncBnnoitru"),
30668
+ N = !0 === process.argv.includes("--exportSQLCreateTable"),
30669
+ T = !0 === process.argv.includes("--psdangkySyncDCHG");
30647
30670
  r(a().mark((function e() {
30648
30671
  var n, t;
30649
30672
  return a().wrap((function(e) {
@@ -30655,40 +30678,55 @@
30655
30678
  return a().wrap((function(e) {
30656
30679
  for (;;) switch (e.prev = e.next) {
30657
30680
  case 0:
30658
- return e.prev = 0, e.next = 3, _.connect();
30681
+ return e.prev = 0, e.next = 3, W.connect();
30659
30682
  case 3:
30660
- return i = e.sent, O.initializePgClient(i), O.initializePgPool(_), t = "", e.next = 9, r(a().mark((function e() {
30683
+ return i = e.sent, O.initializePgClient(i), O.initializePgPool(W), t = "", e.next = 9, r(a().mark((function e() {
30661
30684
  var n, t;
30662
30685
  return a().wrap((function(e) {
30663
30686
  for (;;) switch (e.prev = e.next) {
30664
30687
  case 0:
30665
- if (!0 === g) {
30688
+ if (!0 === y) {
30666
30689
  e.next = 3;
30667
30690
  break
30668
30691
  }
30669
- return u.logInfo("Không thực hiện checkTable do EXCUTE_CREATETABLE = ".concat(g)), e.abrupt("return");
30692
+ return u.logInfo("Không thực hiện checkTable do EXCUTE_CREATETABLE = ".concat(y)), e.abrupt("return");
30670
30693
  case 3:
30671
30694
  n = d.SQL.initSQLs, t = 0;
30672
30695
  case 5:
30673
30696
  if (!(t < n.length)) {
30674
- e.next = 19;
30697
+ e.next = 34;
30675
30698
  break
30676
30699
  }
30677
30700
  return e.prev = 6, u.logInfo("Thực hiện checkTable [".concat(t + 1, "/").concat(n.length, "]....")), e.next = 10, i.query(n[t]);
30678
30701
  case 10:
30679
- e.next = 16;
30702
+ e.next = 31;
30680
30703
  break;
30681
30704
  case 12:
30682
- e.prev = 12, e.t0 = e.catch(6), u.logError(e.t0, "Error checkTable"), u.logInfo(n[t], "Error SQL");
30683
- case 16:
30705
+ if (e.prev = 12, e.t0 = e.catch(6), e.prev = 14, "42601" !== e.t0.code || !e.t0.message || !e.t0.message.toLowerCase().includes('syntax error at or near "function"')) {
30706
+ e.next = 23;
30707
+ break
30708
+ }
30709
+ return u.logWarn("Phát hiện lỗi syntax FUNCTION: ".concat(e.t0.message)), u.logInfo("Thực hiện lại đổi ' EXECUTE FUNCTION '=>' EXECUTE PROCEDURE ' checkTable [".concat(t + 1, "/").concat(n.length, "]....")), n[t] = n[t].replace("EXECUTE FUNCTION", "EXECUTE PROCEDURE"), e.next = 21, i.query(n[t]);
30710
+ case 21:
30711
+ e.next = 25;
30712
+ break;
30713
+ case 23:
30714
+ u.logError(e.t0, "Error checkTable"), u.logInfo(n[t], "Error SQL");
30715
+ case 25:
30716
+ e.next = 31;
30717
+ break;
30718
+ case 27:
30719
+ e.prev = 27, e.t1 = e.catch(14), u.logError(e.t1, "Child Error checkTable"), u.logInfo(n[t], "Child Error SQL");
30720
+ case 31:
30684
30721
  t++, e.next = 5;
30685
30722
  break;
30686
- case 19:
30723
+ case 34:
30687
30724
  case "end":
30688
30725
  return e.stop()
30689
30726
  }
30690
30727
  }), e, null, [
30691
- [6, 12]
30728
+ [6, 12],
30729
+ [14, 27]
30692
30730
  ])
30693
30731
  })))();
30694
30732
  case 9:
@@ -30696,7 +30734,7 @@
30696
30734
  return a().wrap((function(e) {
30697
30735
  for (;;) switch (e.prev = e.next) {
30698
30736
  case 0:
30699
- if (e.prev = 0, !0 === y) {
30737
+ if (e.prev = 0, !0 === R) {
30700
30738
  e.next = 3;
30701
30739
  break
30702
30740
  }
@@ -30721,7 +30759,7 @@
30721
30759
  return a().wrap((function(e) {
30722
30760
  for (;;) switch (e.prev = e.next) {
30723
30761
  case 0:
30724
- if (e.prev = 0, !0 === R) {
30762
+ if (e.prev = 0, !0 === v) {
30725
30763
  e.next = 3;
30726
30764
  break
30727
30765
  }
@@ -30747,7 +30785,7 @@
30747
30785
  return a().wrap((function(e) {
30748
30786
  for (;;) switch (e.prev = e.next) {
30749
30787
  case 0:
30750
- if (e.prev = 0, !0 === v) {
30788
+ if (e.prev = 0, !0 === N) {
30751
30789
  e.next = 3;
30752
30790
  break
30753
30791
  }
@@ -30775,7 +30813,7 @@
30775
30813
  return a().wrap((function(e) {
30776
30814
  for (;;) switch (e.prev = e.next) {
30777
30815
  case 0:
30778
- if (e.prev = 0, !0 === N) {
30816
+ if (e.prev = 0, !0 === T) {
30779
30817
  e.next = 3;
30780
30818
  break
30781
30819
  }
@@ -30819,7 +30857,7 @@
30819
30857
  return a().wrap((function(e) {
30820
30858
  for (;;) switch (e.prev = e.next) {
30821
30859
  case 0:
30822
- console.log("Notification received:", n.payload), !0 !== y && O.queueNotification(n);
30860
+ console.log("Notification received:", n.payload), !0 !== R && O.queueNotification(n);
30823
30861
  case 2:
30824
30862
  case "end":
30825
30863
  return e.stop()
@@ -30831,17 +30869,17 @@
30831
30869
  }
30832
30870
  }()), i.on("error", (function(e) {
30833
30871
  console.error("Database connection error:", e), setTimeout(n, 5e3)
30834
- })), !0 !== y && (setInterval(r(a().mark((function e() {
30872
+ })), !0 !== R && (setInterval(r(a().mark((function e() {
30835
30873
  return a().wrap((function(e) {
30836
30874
  for (;;) switch (e.prev = e.next) {
30837
30875
  case 0:
30838
- return e.next = 2, O.processUnprocessedNotifications(L);
30876
+ return e.next = 2, O.processUnprocessedNotifications(g);
30839
30877
  case 2:
30840
30878
  case "end":
30841
30879
  return e.stop()
30842
30880
  }
30843
30881
  }), e)
30844
- }))), W), u.logInfo("Scheduled retry job every ".concat(W / 1e3, " seconds"))), e.next = 38;
30882
+ }))), L), u.logInfo("Scheduled retry job every ".concat(L / 1e3, " seconds"))), e.next = 38;
30845
30883
  break;
30846
30884
  case 34:
30847
30885
  e.prev = 34, e.t0 = e.catch(0), console.error("Failed to initialize listener:", e.t0), setTimeout(n, 5e3);
@@ -30857,10 +30895,10 @@
30857
30895
  return t.apply(this, arguments)
30858
30896
  }, e.next = 4, n();
30859
30897
  case 4:
30860
- u.logInfo("pg-services-emr-dhs, version: ".concat("1.25.0727.1714")), u.logInfoObject({
30861
- PGDATA_HOST: m,
30862
- PGDATA_DATABASE: h,
30863
- PGDATA_PORT: q
30898
+ u.logInfo("pg-services-emr-dhs, version: ".concat("1.25.0728.0943")), u.logInfoObject({
30899
+ PGDATA_HOST: h,
30900
+ PGDATA_DATABASE: q,
30901
+ PGDATA_PORT: _
30864
30902
  }, "Thông tin kết nối PostgreSQL:");
30865
30903
  case 6:
30866
30904
  case "end":
@@ -30877,7 +30915,7 @@
30877
30915
  case 6:
30878
30916
  return e.prev = 6, i.release(), e.finish(6);
30879
30917
  case 9:
30880
- return e.next = 11, _.end();
30918
+ return e.next = 11, W.end();
30881
30919
  case 11:
30882
30920
  console.log("✅ Pool closed"), e.next = 17;
30883
30921
  break;
@@ -30915,4 +30953,4 @@
30915
30953
  e.killed || (u.logInfo("psdangkySyncDCHG timeout after ".concat(n, "(ms), terminating...")), e.kill("SIGTERM"))
30916
30954
  }), n)
30917
30955
  }))
30918
- })();/*! [dist-pg-services.js]; ===WEBPACK BUILD: 1.25.0727.1714=== */
30956
+ })();/*! [dist-pg-services.js]; ===WEBPACK BUILD: 1.25.0728.0943=== */