pih-appointment-widget 0.0.36 → 0.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.js +8 -1
- package/dist/assets/icons/icdIcons.js +30 -0
- package/dist/components/ICD10Assistant.js +103 -19
- package/dist/pih-appointment-widget.umd.js +1112 -1
- package/dist/pih-appointment-widget.umd.min.js +1 -1
- package/package.json +1 -1
- package/src/App.js +3 -1
- package/src/assets/icons/icdIcon.png +0 -0
- package/src/assets/icons/icdIcons.js +23 -0
- package/src/components/ICD10Assistant.jsx +81 -13
package/dist/App.js
CHANGED
|
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "AppointmentPage", {
|
|
|
9
9
|
return _AppointmentPage.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "ICD10Assistant", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _ICD10Assistant.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "PIH_APPOINTMENT_WIDGET_CLASS", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function () {
|
|
@@ -19,6 +25,7 @@ exports.default = void 0;
|
|
|
19
25
|
var _react = _interopRequireDefault(require("react"));
|
|
20
26
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
21
27
|
var _AppointmentPage = _interopRequireWildcard(require("./components/AppointmentPage.js"));
|
|
28
|
+
var _ICD10Assistant = _interopRequireDefault(require("./components/ICD10Assistant.jsx"));
|
|
22
29
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
23
30
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
31
|
let bookingWidgetInstance = null;
|
|
@@ -42,7 +49,7 @@ const BookingSDK = {
|
|
|
42
49
|
const PopupWrapper = () => {
|
|
43
50
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AppointmentPage.default, {
|
|
44
51
|
config: config
|
|
45
|
-
}));
|
|
52
|
+
}), config.showIcdAssistant && /*#__PURE__*/_react.default.createElement(_ICD10Assistant.default, null));
|
|
46
53
|
};
|
|
47
54
|
_reactDom.default.render(/*#__PURE__*/_react.default.createElement(PopupWrapper, null), bookingWidgetInstance);
|
|
48
55
|
},
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.IMG = exports.ICON = void 0;
|
|
7
|
+
var _icdIcon = _interopRequireDefault(require("./icdIcon.png"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
// ─── Image assets ─────────────────────────────────────────────────────────────
|
|
10
|
+
|
|
11
|
+
const IMG = exports.IMG = {
|
|
12
|
+
/** Main ICD-10 Assistant branding icon (floating button + panel header) */
|
|
13
|
+
icdIcon: _icdIcon.default
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// ─── Emoji / text icons ───────────────────────────────────────────────────────
|
|
17
|
+
const ICON = exports.ICON = {
|
|
18
|
+
/** Reason / tip indicator on result cards */
|
|
19
|
+
reason: "💡",
|
|
20
|
+
/** Search history chip prefix */
|
|
21
|
+
history: "🕐",
|
|
22
|
+
/** Footer medical disclaimer */
|
|
23
|
+
medical: "⚕️",
|
|
24
|
+
/** Coding note (currently commented out) */
|
|
25
|
+
codingNote: "📋",
|
|
26
|
+
/** Copy success checkmark */
|
|
27
|
+
copied: "✓",
|
|
28
|
+
/** Copy action */
|
|
29
|
+
copy: "⎘"
|
|
30
|
+
};
|
|
@@ -7,6 +7,7 @@ exports.default = ICD10Assistant;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _icdService = require("../services/icdService");
|
|
9
9
|
var _useClipboard = require("../hooks/useClipboard");
|
|
10
|
+
var _icdIcons = require("../assets/icons/icdIcons");
|
|
10
11
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
12
|
/**
|
|
12
13
|
* ICD10Assistant.jsx
|
|
@@ -162,7 +163,7 @@ function ResultCard(_ref3) {
|
|
|
162
163
|
lineHeight: 1.5,
|
|
163
164
|
paddingLeft: 2
|
|
164
165
|
}
|
|
165
|
-
}, "
|
|
166
|
+
}, _icdIcons.ICON.reason, " ", match.reason));
|
|
166
167
|
}
|
|
167
168
|
|
|
168
169
|
// ─── History Chip ─────────────────────────────────────────────────────────────
|
|
@@ -191,7 +192,7 @@ function HistoryChip(_ref4) {
|
|
|
191
192
|
},
|
|
192
193
|
onMouseEnter: e => e.currentTarget.style.borderColor = C.primary,
|
|
193
194
|
onMouseLeave: e => e.currentTarget.style.borderColor = C.border
|
|
194
|
-
}, "
|
|
195
|
+
}, _icdIcons.ICON.history, " ", item.query);
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
// ─── Mode Toggle (tab bar) ──────────────────────────────────────────────────
|
|
@@ -230,7 +231,7 @@ function ModeToggle(_ref5) {
|
|
|
230
231
|
gap: 2,
|
|
231
232
|
marginTop: 10
|
|
232
233
|
}
|
|
233
|
-
}, tab("nlm", "Quick Lookup", "
|
|
234
|
+
}, tab("nlm", "Quick Lookup", ""), tab("ai", "AI Suggest", ""));
|
|
234
235
|
}
|
|
235
236
|
|
|
236
237
|
// ─── NLM Lookup Panel ────────────────────────────────────────────────────────
|
|
@@ -319,11 +320,15 @@ function NLMLookupPanel(_ref6) {
|
|
|
319
320
|
alignItems: "center",
|
|
320
321
|
gap: 10
|
|
321
322
|
}
|
|
322
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
323
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
324
|
+
src: _icdIcons.IMG.icdIcon,
|
|
325
|
+
alt: "ICD-10",
|
|
323
326
|
style: {
|
|
324
|
-
|
|
327
|
+
width: 32,
|
|
328
|
+
height: 32,
|
|
329
|
+
objectFit: "contain"
|
|
325
330
|
}
|
|
326
|
-
}
|
|
331
|
+
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
327
332
|
style: {
|
|
328
333
|
color: C.white,
|
|
329
334
|
fontWeight: 700,
|
|
@@ -382,13 +387,77 @@ function NLMLookupPanel(_ref6) {
|
|
|
382
387
|
},
|
|
383
388
|
onFocus: e => e.target.style.borderColor = C.primary,
|
|
384
389
|
onBlur: e => e.target.style.borderColor = C.border
|
|
385
|
-
}),
|
|
390
|
+
}), /*#__PURE__*/_react.default.createElement("p", {
|
|
391
|
+
style: {
|
|
392
|
+
margin: 0,
|
|
393
|
+
fontSize: 11,
|
|
394
|
+
color: "#aaa",
|
|
395
|
+
lineHeight: 1.6,
|
|
396
|
+
borderLeft: "3px solid ".concat(C.border),
|
|
397
|
+
paddingLeft: 8
|
|
398
|
+
}
|
|
399
|
+
}, /*#__PURE__*/_react.default.createElement("strong", null, "Note:"), " Use short, specific keywords for better results, or try", " ", /*#__PURE__*/_react.default.createElement("button", {
|
|
400
|
+
onClick: () => onModeChange("ai"),
|
|
401
|
+
style: {
|
|
402
|
+
background: "none",
|
|
403
|
+
border: "none",
|
|
404
|
+
padding: 0,
|
|
405
|
+
color: C.primary,
|
|
406
|
+
fontWeight: 700,
|
|
407
|
+
fontSize: 11,
|
|
408
|
+
cursor: "pointer",
|
|
409
|
+
textDecoration: "underline",
|
|
410
|
+
fontFamily: FONT
|
|
411
|
+
}
|
|
412
|
+
}, "AI Suggest"), " ", "for broader symptom-based recommendations."), status && results.length > 0 && /*#__PURE__*/_react.default.createElement("p", {
|
|
386
413
|
style: {
|
|
387
414
|
margin: 0,
|
|
388
415
|
fontSize: 12,
|
|
389
416
|
color: C.muted
|
|
390
417
|
}
|
|
391
|
-
}, status), /*#__PURE__*/_react.default.createElement("div", {
|
|
418
|
+
}, status), status === "No matching codes found." && results.length === 0 && /*#__PURE__*/_react.default.createElement("div", {
|
|
419
|
+
style: {
|
|
420
|
+
background: C.warnLight,
|
|
421
|
+
border: "1px solid #fcd34d",
|
|
422
|
+
borderRadius: 10,
|
|
423
|
+
padding: "14px 16px",
|
|
424
|
+
display: "flex",
|
|
425
|
+
gap: 10,
|
|
426
|
+
alignItems: "flex-start"
|
|
427
|
+
}
|
|
428
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
429
|
+
style: {
|
|
430
|
+
fontSize: 18,
|
|
431
|
+
flexShrink: 0
|
|
432
|
+
}
|
|
433
|
+
}, "\uD83D\uDD0D"), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", {
|
|
434
|
+
style: {
|
|
435
|
+
margin: "0 0 4px",
|
|
436
|
+
fontSize: 13,
|
|
437
|
+
fontWeight: 700,
|
|
438
|
+
color: C.warn
|
|
439
|
+
}
|
|
440
|
+
}, "No results found"), /*#__PURE__*/_react.default.createElement("p", {
|
|
441
|
+
style: {
|
|
442
|
+
margin: 0,
|
|
443
|
+
fontSize: 12,
|
|
444
|
+
color: C.warn,
|
|
445
|
+
lineHeight: 1.6
|
|
446
|
+
}
|
|
447
|
+
}, "We couldn't find a match. Try using more accurate keywords or switch to", " ", /*#__PURE__*/_react.default.createElement("button", {
|
|
448
|
+
onClick: () => onModeChange("ai"),
|
|
449
|
+
style: {
|
|
450
|
+
background: "none",
|
|
451
|
+
border: "none",
|
|
452
|
+
padding: 0,
|
|
453
|
+
color: C.primary,
|
|
454
|
+
fontWeight: 700,
|
|
455
|
+
fontSize: 12,
|
|
456
|
+
cursor: "pointer",
|
|
457
|
+
textDecoration: "underline",
|
|
458
|
+
fontFamily: FONT
|
|
459
|
+
}
|
|
460
|
+
}, "AI Suggest"), " ", "for better results."))), /*#__PURE__*/_react.default.createElement("div", {
|
|
392
461
|
style: {
|
|
393
462
|
display: "flex",
|
|
394
463
|
flexDirection: "column",
|
|
@@ -446,7 +515,7 @@ function NLMLookupPanel(_ref6) {
|
|
|
446
515
|
color: "#aaa",
|
|
447
516
|
textAlign: "center"
|
|
448
517
|
}
|
|
449
|
-
}, "
|
|
518
|
+
}, _icdIcons.ICON.medical, " For reference only. Always verify codes with a certified medical coder."));
|
|
450
519
|
}
|
|
451
520
|
|
|
452
521
|
// ─── FloatingButton ───────────────────────────────────────────────────────────
|
|
@@ -486,11 +555,15 @@ function FloatingButton(_ref8) {
|
|
|
486
555
|
e.currentTarget.style.transform = "translateY(0)";
|
|
487
556
|
e.currentTarget.style.boxShadow = "0 4px 16px rgba(76,77,220,0.35)";
|
|
488
557
|
}
|
|
489
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
558
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
559
|
+
src: _icdIcons.IMG.icdIcon,
|
|
560
|
+
alt: "ICD-10",
|
|
490
561
|
style: {
|
|
491
|
-
|
|
562
|
+
width: 22,
|
|
563
|
+
height: 22,
|
|
564
|
+
objectFit: "contain"
|
|
492
565
|
}
|
|
493
|
-
}
|
|
566
|
+
}), "ICD-10 Assistant");
|
|
494
567
|
}
|
|
495
568
|
|
|
496
569
|
// ─── Panel ────────────────────────────────────────────────────────────────────
|
|
@@ -553,11 +626,15 @@ function Panel(_ref9) {
|
|
|
553
626
|
alignItems: "center",
|
|
554
627
|
gap: 10
|
|
555
628
|
}
|
|
556
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
629
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
630
|
+
src: _icdIcons.IMG.icdIcon,
|
|
631
|
+
alt: "ICD-10",
|
|
557
632
|
style: {
|
|
558
|
-
|
|
633
|
+
width: 32,
|
|
634
|
+
height: 32,
|
|
635
|
+
objectFit: "contain"
|
|
559
636
|
}
|
|
560
|
-
}
|
|
637
|
+
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
561
638
|
style: {
|
|
562
639
|
color: C.white,
|
|
563
640
|
fontWeight: 700,
|
|
@@ -655,7 +732,14 @@ function Panel(_ref9) {
|
|
|
655
732
|
borderRadius: 3,
|
|
656
733
|
fontFamily: "monospace"
|
|
657
734
|
}
|
|
658
|
-
}, "
|
|
735
|
+
}, "Enter"), " to submit \xB7 ", /*#__PURE__*/_react.default.createElement("kbd", {
|
|
736
|
+
style: {
|
|
737
|
+
background: "#f3f4f6",
|
|
738
|
+
padding: "1px 5px",
|
|
739
|
+
borderRadius: 3,
|
|
740
|
+
fontFamily: "monospace"
|
|
741
|
+
}
|
|
742
|
+
}, "Shift+Enter"), " for new line")), /*#__PURE__*/_react.default.createElement("div", {
|
|
659
743
|
style: {
|
|
660
744
|
display: "flex",
|
|
661
745
|
gap: 8
|
|
@@ -680,7 +764,7 @@ function Panel(_ref9) {
|
|
|
680
764
|
cursor: !query.trim() || loading ? "not-allowed" : "pointer",
|
|
681
765
|
transition: "background 0.15s"
|
|
682
766
|
}
|
|
683
|
-
}, loading ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Spinner, null), "Searching codes\u2026") : "
|
|
767
|
+
}, loading ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Spinner, null), "Searching codes\u2026") : "Find ICD-10 Codes"), (query || result) && /*#__PURE__*/_react.default.createElement("button", {
|
|
684
768
|
onClick: onClear,
|
|
685
769
|
style: {
|
|
686
770
|
padding: "10px 14px",
|
|
@@ -787,7 +871,7 @@ function Panel(_ref9) {
|
|
|
787
871
|
lineHeight: 1.5,
|
|
788
872
|
textAlign: "center"
|
|
789
873
|
}
|
|
790
|
-
}, "
|
|
874
|
+
}, _icdIcons.ICON.medical, " For reference only. Always verify codes with a certified medical coder. Not a substitute for clinical judgment or official coding guidelines."));
|
|
791
875
|
}
|
|
792
876
|
|
|
793
877
|
// ─── Main Component ────────────────────────────────────────────────────────────
|
|
@@ -849,7 +933,7 @@ function ICD10Assistant() {
|
|
|
849
933
|
}
|
|
850
934
|
}, [query, loading]);
|
|
851
935
|
const handleKeyDown = (0, _react.useCallback)(e => {
|
|
852
|
-
if (
|
|
936
|
+
if (e.key === "Enter" && !e.shiftKey) {
|
|
853
937
|
e.preventDefault();
|
|
854
938
|
handleSubmit();
|
|
855
939
|
}
|