formanitor 0.2.6 → 0.2.8
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/{AddInvestigationWidget-MSY4VSQZ.cjs → AddInvestigationWidget-4AZ7HTJY.cjs} +7 -7
- package/dist/{AddInvestigationWidget-MSY4VSQZ.cjs.map → AddInvestigationWidget-4AZ7HTJY.cjs.map} +1 -1
- package/dist/{AddInvestigationWidget-A2JS2ETO.mjs → AddInvestigationWidget-MSW4FUHR.mjs} +3 -3
- package/dist/{AddInvestigationWidget-A2JS2ETO.mjs.map → AddInvestigationWidget-MSW4FUHR.mjs.map} +1 -1
- package/dist/{AddMedicationWidget-B5RXRYBK.mjs → AddMedicationWidget-OEULICY3.mjs} +7 -5
- package/dist/AddMedicationWidget-OEULICY3.mjs.map +1 -0
- package/dist/AddMedicationWidget-UDVVDKHR.cjs +34 -0
- package/dist/AddMedicationWidget-UDVVDKHR.cjs.map +1 -0
- package/dist/{AddProcedureWidget-YW4EV66W.mjs → AddProcedureWidget-7IZ7SY7N.mjs} +3 -3
- package/dist/{AddProcedureWidget-YW4EV66W.mjs.map → AddProcedureWidget-7IZ7SY7N.mjs.map} +1 -1
- package/dist/{AddProcedureWidget-QUNDIZGR.cjs → AddProcedureWidget-NQCN5FBQ.cjs} +6 -6
- package/dist/{AddProcedureWidget-QUNDIZGR.cjs.map → AddProcedureWidget-NQCN5FBQ.cjs.map} +1 -1
- package/dist/{BiometryIolWorkupWidget-FWO3IWTF.cjs → BiometryIolWorkupWidget-NTYCAGGX.cjs} +6 -6
- package/dist/{BiometryIolWorkupWidget-FWO3IWTF.cjs.map → BiometryIolWorkupWidget-NTYCAGGX.cjs.map} +1 -1
- package/dist/{BiometryIolWorkupWidget-5RZP34FF.mjs → BiometryIolWorkupWidget-ZJRUTQZK.mjs} +4 -4
- package/dist/{BiometryIolWorkupWidget-5RZP34FF.mjs.map → BiometryIolWorkupWidget-ZJRUTQZK.mjs.map} +1 -1
- package/dist/BpeChartWidget-OL5WKSQG.mjs +7 -0
- package/dist/{BpeChartWidget-HATASHAC.mjs.map → BpeChartWidget-OL5WKSQG.mjs.map} +1 -1
- package/dist/BpeChartWidget-WYDP2BVS.cjs +28 -0
- package/dist/{BpeChartWidget-VZRH7M7L.cjs.map → BpeChartWidget-WYDP2BVS.cjs.map} +1 -1
- package/dist/{DateTimeWidget-RJ7SATVA.cjs → DateTimeWidget-3E6N4NOK.cjs} +6 -6
- package/dist/{DateTimeWidget-RJ7SATVA.cjs.map → DateTimeWidget-3E6N4NOK.cjs.map} +1 -1
- package/dist/{DateTimeWidget-KRX4O6OD.mjs → DateTimeWidget-TAHCCYCX.mjs} +4 -4
- package/dist/{DateTimeWidget-KRX4O6OD.mjs.map → DateTimeWidget-TAHCCYCX.mjs.map} +1 -1
- package/dist/{DateWidget-JEKDKPNS.mjs → DateWidget-5LFXAWRK.mjs} +4 -4
- package/dist/{DateWidget-JEKDKPNS.mjs.map → DateWidget-5LFXAWRK.mjs.map} +1 -1
- package/dist/{DateWidget-T7IQUWEA.cjs → DateWidget-HIYZ3TY7.cjs} +6 -6
- package/dist/{DateWidget-T7IQUWEA.cjs.map → DateWidget-HIYZ3TY7.cjs.map} +1 -1
- package/dist/{DentalChartWidget-P2YPKAMO.mjs → DentalChartWidget-4ZUVMMRX.mjs} +4 -4
- package/dist/{DentalChartWidget-LYLOFWZU.cjs.map → DentalChartWidget-4ZUVMMRX.mjs.map} +1 -1
- package/dist/DentalChartWidget-J6CHCPWI.cjs +21 -0
- package/dist/{DentalChartWidget-P2YPKAMO.mjs.map → DentalChartWidget-J6CHCPWI.cjs.map} +1 -1
- package/dist/{DiagnosisTextareaWidget-XJ47OZYH.cjs → DiagnosisTextareaWidget-2N5DP2CP.cjs} +7 -7
- package/dist/{DiagnosisTextareaWidget-XJ47OZYH.cjs.map → DiagnosisTextareaWidget-2N5DP2CP.cjs.map} +1 -1
- package/dist/{DiagnosisTextareaWidget-6UCYCCSB.mjs → DiagnosisTextareaWidget-OXOXANMF.mjs} +4 -4
- package/dist/{DiagnosisTextareaWidget-6UCYCCSB.mjs.map → DiagnosisTextareaWidget-OXOXANMF.mjs.map} +1 -1
- package/dist/{DifferentialDiagnosisWidget-XESNHNQQ.cjs → DifferentialDiagnosisWidget-RLGTZFGB.cjs} +4 -4
- package/dist/{DifferentialDiagnosisWidget-XESNHNQQ.cjs.map → DifferentialDiagnosisWidget-RLGTZFGB.cjs.map} +1 -1
- package/dist/{DifferentialDiagnosisWidget-IZEZVW5F.mjs → DifferentialDiagnosisWidget-XY7CJ5OG.mjs} +3 -3
- package/dist/{DifferentialDiagnosisWidget-IZEZVW5F.mjs.map → DifferentialDiagnosisWidget-XY7CJ5OG.mjs.map} +1 -1
- package/dist/{DischargeMedicationOrdersWidget-KA3HANHE.mjs → DischargeMedicationOrdersWidget-JXLQWPCP.mjs} +4 -4
- package/dist/{DischargeMedicationOrdersWidget-KA3HANHE.mjs.map → DischargeMedicationOrdersWidget-JXLQWPCP.mjs.map} +1 -1
- package/dist/{DischargeMedicationOrdersWidget-WRJRYL6F.cjs → DischargeMedicationOrdersWidget-X3ZVW3FP.cjs} +7 -7
- package/dist/{DischargeMedicationOrdersWidget-WRJRYL6F.cjs.map → DischargeMedicationOrdersWidget-X3ZVW3FP.cjs.map} +1 -1
- package/dist/{EditableTable-VZ66IXYI.mjs → EditableTable-ECNOISL3.mjs} +3 -3
- package/dist/{EditableTable-VZ66IXYI.mjs.map → EditableTable-ECNOISL3.mjs.map} +1 -1
- package/dist/{EditableTable-OW5LC6OC.cjs → EditableTable-OFVKAYRA.cjs} +4 -4
- package/dist/{EditableTable-OW5LC6OC.cjs.map → EditableTable-OFVKAYRA.cjs.map} +1 -1
- package/dist/{ExtraOralExamWidget-JVKJ4ZWC.mjs → ExtraOralExamWidget-74G73HGP.mjs} +3 -3
- package/dist/{ExtraOralExamWidget-JVKJ4ZWC.mjs.map → ExtraOralExamWidget-74G73HGP.mjs.map} +1 -1
- package/dist/{ExtraOralExamWidget-ZIOSKMIO.cjs → ExtraOralExamWidget-ETQI25NZ.cjs} +4 -4
- package/dist/{ExtraOralExamWidget-ZIOSKMIO.cjs.map → ExtraOralExamWidget-ETQI25NZ.cjs.map} +1 -1
- package/dist/{FollowupWidget-GCGPWZVY.mjs → FollowupWidget-ENDML2BN.mjs} +3 -3
- package/dist/{FollowupWidget-GCGPWZVY.mjs.map → FollowupWidget-ENDML2BN.mjs.map} +1 -1
- package/dist/{FollowupWidget-2STSJSDY.cjs → FollowupWidget-XMPHTW2M.cjs} +4 -4
- package/dist/{FollowupWidget-2STSJSDY.cjs.map → FollowupWidget-XMPHTW2M.cjs.map} +1 -1
- package/dist/{FunctionalImpairmentScoreWidget-FCA4UKQA.cjs → FunctionalImpairmentScoreWidget-7TACV6EV.cjs} +6 -6
- package/dist/{FunctionalImpairmentScoreWidget-FCA4UKQA.cjs.map → FunctionalImpairmentScoreWidget-7TACV6EV.cjs.map} +1 -1
- package/dist/{FunctionalImpairmentScoreWidget-TKS6KE7K.mjs → FunctionalImpairmentScoreWidget-MGK6K4ZW.mjs} +4 -4
- package/dist/{FunctionalImpairmentScoreWidget-TKS6KE7K.mjs.map → FunctionalImpairmentScoreWidget-MGK6K4ZW.mjs.map} +1 -1
- package/dist/{GsExaminationWidget-ESIEZCP3.mjs → GsExaminationWidget-LCFURWVZ.mjs} +4 -4
- package/dist/{GsExaminationWidget-ESIEZCP3.mjs.map → GsExaminationWidget-LCFURWVZ.mjs.map} +1 -1
- package/dist/{GsExaminationWidget-KKE5I5GX.cjs → GsExaminationWidget-PCPCUJWN.cjs} +10 -10
- package/dist/{GsExaminationWidget-KKE5I5GX.cjs.map → GsExaminationWidget-PCPCUJWN.cjs.map} +1 -1
- package/dist/{GsGradingWidget-HC4MJ4KJ.mjs → GsGradingWidget-2TNN3B3R.mjs} +4 -4
- package/dist/{GsGradingWidget-HC4MJ4KJ.mjs.map → GsGradingWidget-2TNN3B3R.mjs.map} +1 -1
- package/dist/{GsGradingWidget-NGCQQVYA.cjs → GsGradingWidget-OXS65SQJ.cjs} +12 -12
- package/dist/{GsGradingWidget-NGCQQVYA.cjs.map → GsGradingWidget-OXS65SQJ.cjs.map} +1 -1
- package/dist/{GsSmartHistoryWidget-AAB427Q2.cjs → GsSmartHistoryWidget-CCIUZHMN.cjs} +12 -12
- package/dist/{GsSmartHistoryWidget-AAB427Q2.cjs.map → GsSmartHistoryWidget-CCIUZHMN.cjs.map} +1 -1
- package/dist/{GsSmartHistoryWidget-7HYGDU4O.mjs → GsSmartHistoryWidget-G5B3VUHN.mjs} +4 -4
- package/dist/{GsSmartHistoryWidget-7HYGDU4O.mjs.map → GsSmartHistoryWidget-G5B3VUHN.mjs.map} +1 -1
- package/dist/{HiddenVitalsWidget-5GFBDDPT.cjs → HiddenVitalsWidget-DHZOSOQY.cjs} +6 -6
- package/dist/{HiddenVitalsWidget-5GFBDDPT.cjs.map → HiddenVitalsWidget-DHZOSOQY.cjs.map} +1 -1
- package/dist/{HiddenVitalsWidget-CIE3KERT.mjs → HiddenVitalsWidget-QWJHUVRJ.mjs} +4 -4
- package/dist/{HiddenVitalsWidget-CIE3KERT.mjs.map → HiddenVitalsWidget-QWJHUVRJ.mjs.map} +1 -1
- package/dist/{LensAssessmentWidget-SIKJVVAE.cjs → LensAssessmentWidget-6DFZYT5F.cjs} +6 -6
- package/dist/{LensAssessmentWidget-SIKJVVAE.cjs.map → LensAssessmentWidget-6DFZYT5F.cjs.map} +1 -1
- package/dist/{LensAssessmentWidget-B4OMHTOE.mjs → LensAssessmentWidget-P2KHBHM2.mjs} +4 -4
- package/dist/{LensAssessmentWidget-B4OMHTOE.mjs.map → LensAssessmentWidget-P2KHBHM2.mjs.map} +1 -1
- package/dist/{MarMedicationOrdersWidget-767F65K6.cjs → MarMedicationOrdersWidget-QSMTNWR3.cjs} +7 -7
- package/dist/{MarMedicationOrdersWidget-767F65K6.cjs.map → MarMedicationOrdersWidget-QSMTNWR3.cjs.map} +1 -1
- package/dist/{MarMedicationOrdersWidget-LG3WOXN7.mjs → MarMedicationOrdersWidget-XW2YFTTH.mjs} +4 -4
- package/dist/{MarMedicationOrdersWidget-LG3WOXN7.mjs.map → MarMedicationOrdersWidget-XW2YFTTH.mjs.map} +1 -1
- package/dist/{OBGExaminationWidget-MRTGWLXJ.cjs → OBGExaminationWidget-5THYKJI5.cjs} +11 -11
- package/dist/{OBGExaminationWidget-MRTGWLXJ.cjs.map → OBGExaminationWidget-5THYKJI5.cjs.map} +1 -1
- package/dist/{OBGExaminationWidget-HQKTHSOZ.mjs → OBGExaminationWidget-Y2BVJB33.mjs} +4 -4
- package/dist/{OBGExaminationWidget-HQKTHSOZ.mjs.map → OBGExaminationWidget-Y2BVJB33.mjs.map} +1 -1
- package/dist/{OBGPathwayWidget-QJNWUIEM.mjs → OBGPathwayWidget-ALGYLNKZ.mjs} +5 -5
- package/dist/{OBGPathwayWidget-QJNWUIEM.mjs.map → OBGPathwayWidget-ALGYLNKZ.mjs.map} +1 -1
- package/dist/{OBGPathwayWidget-YRU36UL7.cjs → OBGPathwayWidget-FHBZPBPH.cjs} +9 -9
- package/dist/{OBGPathwayWidget-YRU36UL7.cjs.map → OBGPathwayWidget-FHBZPBPH.cjs.map} +1 -1
- package/dist/{ObstetricHistoryWidget-EW6JLNQ7.mjs → ObstetricHistoryWidget-5GDUCYS3.mjs} +4 -4
- package/dist/{ObstetricHistoryWidget-EW6JLNQ7.mjs.map → ObstetricHistoryWidget-5GDUCYS3.mjs.map} +1 -1
- package/dist/{ObstetricHistoryWidget-OOWCVFRB.cjs → ObstetricHistoryWidget-XGZM2HL4.cjs} +7 -7
- package/dist/{ObstetricHistoryWidget-OOWCVFRB.cjs.map → ObstetricHistoryWidget-XGZM2HL4.cjs.map} +1 -1
- package/dist/{OphthalDiagnosisWidget-UXXYGKD5.cjs → OphthalDiagnosisWidget-7WY633CI.cjs} +4 -4
- package/dist/{OphthalDiagnosisWidget-UXXYGKD5.cjs.map → OphthalDiagnosisWidget-7WY633CI.cjs.map} +1 -1
- package/dist/{OphthalDiagnosisWidget-MZYBQTFV.mjs → OphthalDiagnosisWidget-YHEDHIX5.mjs} +3 -3
- package/dist/{OphthalDiagnosisWidget-MZYBQTFV.mjs.map → OphthalDiagnosisWidget-YHEDHIX5.mjs.map} +1 -1
- package/dist/{OphthalmologyWidget-27ZN2E3F.mjs → OphthalmologyWidget-6RWGZHLU.mjs} +3 -3
- package/dist/{OphthalmologyWidget-27ZN2E3F.mjs.map → OphthalmologyWidget-6RWGZHLU.mjs.map} +1 -1
- package/dist/{OphthalmologyWidget-WFSFIHT4.cjs → OphthalmologyWidget-VLW4CM2Q.cjs} +4 -4
- package/dist/{OphthalmologyWidget-WFSFIHT4.cjs.map → OphthalmologyWidget-VLW4CM2Q.cjs.map} +1 -1
- package/dist/{OrthopedicExamWidget-ULZTDFXJ.cjs → OrthopedicExamWidget-4ZNOVW54.cjs} +6 -6
- package/dist/{OrthopedicExamWidget-ULZTDFXJ.cjs.map → OrthopedicExamWidget-4ZNOVW54.cjs.map} +1 -1
- package/dist/{OrthopedicExamWidget-WM55M3Y4.mjs → OrthopedicExamWidget-CWEH3ZY7.mjs} +4 -4
- package/dist/{OrthopedicExamWidget-WM55M3Y4.mjs.map → OrthopedicExamWidget-CWEH3ZY7.mjs.map} +1 -1
- package/dist/{PainScaleFlagsWidget-IFA3RCEL.cjs → PainScaleFlagsWidget-EYYQBSYL.cjs} +8 -8
- package/dist/{PainScaleFlagsWidget-IFA3RCEL.cjs.map → PainScaleFlagsWidget-EYYQBSYL.cjs.map} +1 -1
- package/dist/{PainScaleFlagsWidget-5KN7T4JK.mjs → PainScaleFlagsWidget-XC73ND7X.mjs} +4 -4
- package/dist/{PainScaleFlagsWidget-5KN7T4JK.mjs.map → PainScaleFlagsWidget-XC73ND7X.mjs.map} +1 -1
- package/dist/{PregnancyStatusWidget-U2BEJGBJ.mjs → PregnancyStatusWidget-U6Y3DCDB.mjs} +3 -3
- package/dist/{PregnancyStatusWidget-U2BEJGBJ.mjs.map → PregnancyStatusWidget-U6Y3DCDB.mjs.map} +1 -1
- package/dist/{PregnancyStatusWidget-QTTVFBOE.cjs → PregnancyStatusWidget-YZRYO2WA.cjs} +4 -4
- package/dist/{PregnancyStatusWidget-QTTVFBOE.cjs.map → PregnancyStatusWidget-YZRYO2WA.cjs.map} +1 -1
- package/dist/{ReferralWidget-GU3JYED2.mjs → ReferralWidget-FXJC56AF.mjs} +4 -4
- package/dist/{ReferralWidget-GU3JYED2.mjs.map → ReferralWidget-FXJC56AF.mjs.map} +1 -1
- package/dist/{ReferralWidget-27VGZCOQ.cjs → ReferralWidget-KD36EA74.cjs} +7 -7
- package/dist/{ReferralWidget-27VGZCOQ.cjs.map → ReferralWidget-KD36EA74.cjs.map} +1 -1
- package/dist/RichTextWidget-JG4Y7X66.mjs +11 -0
- package/dist/{RichTextWidget-2KLV65QP.cjs.map → RichTextWidget-JG4Y7X66.mjs.map} +1 -1
- package/dist/{RichTextWidget-2KLV65QP.cjs → RichTextWidget-KKC3P5Z3.cjs} +7 -7
- package/dist/{RichTextWidget-ZBX554ZJ.mjs.map → RichTextWidget-KKC3P5Z3.cjs.map} +1 -1
- package/dist/SmartTextarea-DSM5TP5N.cjs +19 -0
- package/dist/{SmartTextarea-LQDXFCYT.mjs.map → SmartTextarea-DSM5TP5N.cjs.map} +1 -1
- package/dist/SmartTextarea-HDRABZIN.mjs +10 -0
- package/dist/{SmartTextarea-WITNRNDU.cjs.map → SmartTextarea-HDRABZIN.mjs.map} +1 -1
- package/dist/{SuggestionTextareaWidget-UNL3FZRI.mjs → SuggestionTextareaWidget-IKL46SCV.mjs} +7 -7
- package/dist/{SuggestionTextareaWidget-UNL3FZRI.mjs.map → SuggestionTextareaWidget-IKL46SCV.mjs.map} +1 -1
- package/dist/{SuggestionTextareaWidget-FWRZ46MV.cjs → SuggestionTextareaWidget-KABKRNP3.cjs} +18 -18
- package/dist/{SuggestionTextareaWidget-FWRZ46MV.cjs.map → SuggestionTextareaWidget-KABKRNP3.cjs.map} +1 -1
- package/dist/{SurgicalRiskFlagsWidget-OJKCZIWJ.cjs → SurgicalRiskFlagsWidget-DO66VPQC.cjs} +6 -6
- package/dist/{SurgicalRiskFlagsWidget-OJKCZIWJ.cjs.map → SurgicalRiskFlagsWidget-DO66VPQC.cjs.map} +1 -1
- package/dist/{SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs → SurgicalRiskFlagsWidget-NPOHFMIZ.mjs} +4 -4
- package/dist/{SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs.map → SurgicalRiskFlagsWidget-NPOHFMIZ.mjs.map} +1 -1
- package/dist/{TreatmentPlanWidget-665HLKYV.mjs → TreatmentPlanWidget-7XYIVHQO.mjs} +4 -4
- package/dist/{TreatmentPlanWidget-665HLKYV.mjs.map → TreatmentPlanWidget-7XYIVHQO.mjs.map} +1 -1
- package/dist/{TreatmentPlanWidget-TATWSPLY.cjs → TreatmentPlanWidget-ELTSULQ4.cjs} +6 -6
- package/dist/{TreatmentPlanWidget-TATWSPLY.cjs.map → TreatmentPlanWidget-ELTSULQ4.cjs.map} +1 -1
- package/dist/{UrologyExaminationWidget-GRBL2SDG.mjs → UrologyExaminationWidget-OQLZPWVR.mjs} +4 -4
- package/dist/{UrologyExaminationWidget-GRBL2SDG.mjs.map → UrologyExaminationWidget-OQLZPWVR.mjs.map} +1 -1
- package/dist/{UrologyExaminationWidget-GQLMV4FB.cjs → UrologyExaminationWidget-OSNFGBI2.cjs} +12 -12
- package/dist/{UrologyExaminationWidget-GQLMV4FB.cjs.map → UrologyExaminationWidget-OSNFGBI2.cjs.map} +1 -1
- package/dist/{UrologyPathwayWidget-PEO5BVQX.mjs → UrologyPathwayWidget-KE2LAZTZ.mjs} +4 -4
- package/dist/{UrologyPathwayWidget-PEO5BVQX.mjs.map → UrologyPathwayWidget-KE2LAZTZ.mjs.map} +1 -1
- package/dist/{UrologyPathwayWidget-D6EWSOGW.cjs → UrologyPathwayWidget-YPYIX43Z.cjs} +7 -7
- package/dist/{UrologyPathwayWidget-D6EWSOGW.cjs.map → UrologyPathwayWidget-YPYIX43Z.cjs.map} +1 -1
- package/dist/{UrologySmartHistoryWidget-BDKRFBYN.mjs → UrologySmartHistoryWidget-ET6CU36D.mjs} +4 -4
- package/dist/{UrologySmartHistoryWidget-BDKRFBYN.mjs.map → UrologySmartHistoryWidget-ET6CU36D.mjs.map} +1 -1
- package/dist/{UrologySmartHistoryWidget-P3KTQE7L.cjs → UrologySmartHistoryWidget-SLBJALMO.cjs} +15 -15
- package/dist/{UrologySmartHistoryWidget-P3KTQE7L.cjs.map → UrologySmartHistoryWidget-SLBJALMO.cjs.map} +1 -1
- package/dist/{VitalsWidget-MS3OOZSW.cjs → VitalsWidget-MGUUJZP4.cjs} +5 -5
- package/dist/{VitalsWidget-MS3OOZSW.cjs.map → VitalsWidget-MGUUJZP4.cjs.map} +1 -1
- package/dist/{VitalsWidget-63HTXK2M.mjs → VitalsWidget-YI3IXQYN.mjs} +3 -3
- package/dist/{VitalsWidget-63HTXK2M.mjs.map → VitalsWidget-YI3IXQYN.mjs.map} +1 -1
- package/dist/{chunk-5RT3S67O.cjs → chunk-35I4CBEC.cjs} +6 -6
- package/dist/{chunk-5RT3S67O.cjs.map → chunk-35I4CBEC.cjs.map} +1 -1
- package/dist/{chunk-XDUVO3IZ.mjs → chunk-4422KT6O.mjs} +61 -6
- package/dist/chunk-4422KT6O.mjs.map +1 -0
- package/dist/{chunk-BBD3Y37O.cjs → chunk-4KTQ4NEI.cjs} +4 -4
- package/dist/{chunk-BBD3Y37O.cjs.map → chunk-4KTQ4NEI.cjs.map} +1 -1
- package/dist/{chunk-MBZRRYJB.mjs → chunk-7ZRK7ZWY.mjs} +4 -4
- package/dist/{chunk-MBZRRYJB.mjs.map → chunk-7ZRK7ZWY.mjs.map} +1 -1
- package/dist/{chunk-AIZ3XYEZ.cjs → chunk-A2A5EB5R.cjs} +60 -5
- package/dist/chunk-A2A5EB5R.cjs.map +1 -0
- package/dist/{chunk-T3UHPMFX.mjs → chunk-BKZXISZH.mjs} +3 -3
- package/dist/{chunk-T3UHPMFX.mjs.map → chunk-BKZXISZH.mjs.map} +1 -1
- package/dist/{chunk-G6Y4UJPN.mjs → chunk-CC54SKAA.mjs} +5 -5
- package/dist/{chunk-G6Y4UJPN.mjs.map → chunk-CC54SKAA.mjs.map} +1 -1
- package/dist/{chunk-Q66LXMRR.mjs → chunk-FAAMKLBY.mjs} +3 -3
- package/dist/{chunk-Q66LXMRR.mjs.map → chunk-FAAMKLBY.mjs.map} +1 -1
- package/dist/{chunk-TCQQUJCL.cjs → chunk-GQX2UGHH.cjs} +11 -11
- package/dist/{chunk-TCQQUJCL.cjs.map → chunk-GQX2UGHH.cjs.map} +1 -1
- package/dist/{chunk-2BGJZ44Q.mjs → chunk-HKEUAERY.mjs} +9 -4
- package/dist/{chunk-TB33A4PD.cjs.map → chunk-HKEUAERY.mjs.map} +1 -1
- package/dist/{chunk-T2IKWRV2.cjs → chunk-JFZ7XPDM.cjs} +9 -9
- package/dist/{chunk-T2IKWRV2.cjs.map → chunk-JFZ7XPDM.cjs.map} +1 -1
- package/dist/{chunk-TB33A4PD.cjs → chunk-JVIU4OBK.cjs} +9 -3
- package/dist/chunk-JVIU4OBK.cjs.map +1 -0
- package/dist/{chunk-XIUXYHGG.cjs → chunk-L2H5SOAV.cjs} +5 -5
- package/dist/{chunk-XIUXYHGG.cjs.map → chunk-L2H5SOAV.cjs.map} +1 -1
- package/dist/{chunk-XLCTFYFD.mjs → chunk-PNRSJPGV.mjs} +5 -5
- package/dist/{chunk-XLCTFYFD.mjs.map → chunk-PNRSJPGV.mjs.map} +1 -1
- package/dist/{chunk-X4AJCTON.cjs → chunk-PVKHVVFS.cjs} +4 -4
- package/dist/{chunk-X4AJCTON.cjs.map → chunk-PVKHVVFS.cjs.map} +1 -1
- package/dist/{chunk-Q3K646K4.mjs → chunk-QM6UMI2M.mjs} +3 -3
- package/dist/{chunk-Q3K646K4.mjs.map → chunk-QM6UMI2M.mjs.map} +1 -1
- package/dist/{chunk-MQHZ7HD2.mjs → chunk-QQXBHDUF.mjs} +3 -3
- package/dist/{chunk-MQHZ7HD2.mjs.map → chunk-QQXBHDUF.mjs.map} +1 -1
- package/dist/{chunk-UKSP3B3W.mjs → chunk-VAJR2VBK.mjs} +3 -3
- package/dist/{chunk-UKSP3B3W.mjs.map → chunk-VAJR2VBK.mjs.map} +1 -1
- package/dist/{chunk-RZK44P3C.cjs → chunk-WM43XTEK.cjs} +7 -7
- package/dist/{chunk-RZK44P3C.cjs.map → chunk-WM43XTEK.cjs.map} +1 -1
- package/dist/{chunk-7DISRJAB.cjs → chunk-XGO2HG3N.cjs} +4 -4
- package/dist/{chunk-7DISRJAB.cjs.map → chunk-XGO2HG3N.cjs.map} +1 -1
- package/dist/index.cjs +136 -134
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -4
- package/dist/index.d.ts +9 -4
- package/dist/index.mjs +54 -56
- package/dist/index.mjs.map +1 -1
- package/dist/read-only-table.d.cts +1 -1
- package/dist/read-only-table.d.ts +1 -1
- package/dist/rich-text.cjs +5 -5
- package/dist/rich-text.mjs +4 -4
- package/dist/smart.cjs +5 -5
- package/dist/smart.d.cts +1 -1
- package/dist/smart.d.ts +1 -1
- package/dist/smart.mjs +3 -3
- package/dist/{types-BbOnd5IN.d.cts → types-27f9S27N.d.cts} +13 -1
- package/dist/{types-BbOnd5IN.d.ts → types-27f9S27N.d.ts} +13 -1
- package/package.json +1 -1
- package/dist/AddMedicationWidget-45T4XVEL.cjs +0 -32
- package/dist/AddMedicationWidget-45T4XVEL.cjs.map +0 -1
- package/dist/AddMedicationWidget-B5RXRYBK.mjs.map +0 -1
- package/dist/BpeChartWidget-HATASHAC.mjs +0 -7
- package/dist/BpeChartWidget-VZRH7M7L.cjs +0 -28
- package/dist/DentalChartWidget-LYLOFWZU.cjs +0 -21
- package/dist/RichTextWidget-ZBX554ZJ.mjs +0 -11
- package/dist/SmartTextarea-LQDXFCYT.mjs +0 -10
- package/dist/SmartTextarea-WITNRNDU.cjs +0 -19
- package/dist/chunk-2BGJZ44Q.mjs.map +0 -1
- package/dist/chunk-AIZ3XYEZ.cjs.map +0 -1
- package/dist/chunk-XDUVO3IZ.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/widgets/UrologySmartHistoryWidget.tsx"],"names":[],"mappings":"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","file":"UrologySmartHistoryWidget-BDKRFBYN.mjs","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { useFormStore } from '../../react/FormProvider';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\nimport { Button } from '../shadcn/button';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../shadcn/select';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport type { UrologySmartHistoryValue } from '../../core/urologyPathway';\nimport {\n formatUrologySmartHistoryToSymptomsNarrative,\n normalizeUrologySmartHistory,\n urologyIpssBand,\n urologyIpssSevenTotal,\n} from '../../core/urologyPathway';\n\nconst CHIEF_CHIPS_FIELD = 'chief_complaints_chips';\nconst ACTIVE_SYNDROME_FIELD = 'uro_active_syndrome';\nconst CHIEF_TEXT_FIELD = 'chief_complaints';\nconst SYMPTOMS_FIELD = 'symptoms';\nconst DIAGNOSIS_FIELD = 'diagnosis';\nconst URO_DURATION_FIELD = 'uro_chief_duration';\nconst URO_ONSET_FIELD = 'uro_chief_onset';\nconst URO_PROGRESSION_FIELD = 'uro_chief_progression';\n\nconst SYNDROME_LABELS: Record<string, string> = {\n luts: 'LUTS / BPH',\n stone: 'Urolithiasis (stone)',\n haematuria: 'Haematuria',\n scrotal: 'Scrotal swelling',\n retention: 'Acute retention',\n ed_infertility: 'ED / Infertility',\n uti: 'UTI / infection',\n};\n\nfunction chipList(state: { values: Record<string, unknown> }): string[] {\n const raw = state.values[CHIEF_CHIPS_FIELD];\n return Array.isArray(raw) ? raw.filter((x): x is string => typeof x === 'string') : [];\n}\n\nfunction str(x: unknown): string {\n return typeof x === 'string' ? x : '';\n}\n\n/** Embedded chief fields often use `value: \"none\"` for \"—\"; do not merge that into `chief_complaints`. */\nfunction chiefOptionalFieldDisplay(x: unknown): string {\n const s = str(x).trim();\n if (!s || s.toLowerCase() === 'none') return '';\n return s;\n}\n\nfunction nonEmptyLines(lines: Array<string | undefined | null>): string[] {\n return lines.map((s) => (s ?? '').trim()).filter(Boolean);\n}\n\nconst IPSS_LABELS: Record<keyof UrologySmartHistoryValue['ipss'], string> = {\n incomplete: 'Incomplete emptying',\n frequency: 'Frequency (<2h)',\n intermittency: 'Intermittency',\n urgency: 'Urgency',\n weakStream: 'Weak stream',\n straining: 'Straining',\n nocturia: 'Nocturia (×/night)',\n};\n\nconst SOCRATES_KEYS = [\n 'site',\n 'onset',\n 'character',\n 'radiation',\n 'associated',\n 'timing',\n 'exacerbating',\n] as const;\n\nfunction Panel({\n title,\n right,\n children,\n}: {\n title: string;\n right?: React.ReactNode;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"overflow-hidden rounded-md border border-[#D0D0D0] bg-white\">\n <div className=\"flex items-center justify-between border-b border-[#D0D0D0] bg-[#FEE8EC]/50 px-3 py-1.5\">\n <span className=\"text-xs font-semibold text-slate-700\">{title}</span>\n {right}\n </div>\n <div className=\"p-3\">{children}</div>\n </div>\n );\n}\n\nexport const UrologySmartHistoryWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const hopcField = useField(SYMPTOMS_FIELD);\n const syndromeField = useField(ACTIVE_SYNDROME_FIELD);\n const { state } = useForm();\n const store = useFormStore();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologySmartHistory(value), [value]);\n const chips = useMemo(() => chipList(state), [state]);\n\n const rawSyndrome = syndromeField.value ?? state.values[ACTIVE_SYNDROME_FIELD];\n const syndrome =\n typeof rawSyndrome === 'string' && rawSyndrome !== '' && rawSyndrome !== 'none'\n ? rawSyndrome\n : 'none';\n\n const showPain =\n chips.includes('pain abdomen flank') ||\n chips.includes('scrotal swelling pain') ||\n syndrome === 'stone' ||\n syndrome === 'scrotal';\n\n const showLUTS =\n syndrome === 'luts' ||\n syndrome === 'retention' ||\n chips.includes('frequency urgency') ||\n chips.includes('poor stream') ||\n chips.includes('acute retention');\n\n const showHaem = syndrome === 'haematuria' || chips.includes('haematuria');\n\n const showSex =\n syndrome === 'ed_infertility' ||\n chips.includes('erectile dysfunction') ||\n chips.includes('infertility concern');\n\n const update = (next: UrologySmartHistoryValue) => {\n setValue(next);\n setTouched();\n };\n\n const ipssTotal = urologyIpssSevenTotal(safe.ipss);\n const ipssBandLabel = urologyIpssBand(ipssTotal);\n const bandClass =\n ipssBandLabel === 'Severe'\n ? 'bg-red-500/15 text-red-700'\n : ipssBandLabel === 'Moderate'\n ? 'bg-amber-500/15 text-amber-800'\n : 'bg-emerald-500/15 text-emerald-800';\n\n const setSocrates = (key: (typeof SOCRATES_KEYS)[number] | 'severity', v: string | number) => {\n if (key === 'severity') {\n const n = typeof v === 'number' ? v : Number(v);\n const sev = Number.isFinite(n) ? Math.min(10, Math.max(0, Math.round(n))) : 0;\n update({ ...safe, socrates: { ...safe.socrates, severity: sev } });\n return;\n }\n update({ ...safe, socrates: { ...safe.socrates, [key]: String(v) } });\n };\n\n const setIpss = (key: keyof UrologySmartHistoryValue['ipss'], v: number) => {\n update({ ...safe, ipss: { ...safe.ipss, [key]: v } });\n };\n\n const [hopcNarrativeLocked, setHopcNarrativeLocked] = useState(false);\n\n useEffect(() => {\n if (hopcNarrativeLocked || disabled) return;\n const next = formatUrologySmartHistoryToSymptomsNarrative(normalizeUrologySmartHistory(value), {\n showPain,\n showLUTS,\n showHaem,\n showSex,\n });\n hopcField.setValue(next);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, hopcNarrativeLocked, showPain, showLUTS, showHaem, showSex, disabled]);\n\n useEffect(() => {\n if (disabled) return;\n const label = syndrome && syndrome !== 'none' ? SYNDROME_LABELS[syndrome] ?? syndrome : '';\n const prev = store.getFieldState(DIAGNOSIS_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n const syndromeLabels = new Set(Object.values(SYNDROME_LABELS));\n const keptLines = prevText\n .split('\\n')\n .map((l) => l.trim())\n .filter(Boolean)\n .filter((l) => !syndromeLabels.has(l));\n\n const nextLines = label ? [...keptLines, label] : keptLines;\n const next = nextLines.join('\\n');\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [DIAGNOSIS_FIELD]: next }, { touch: false });\n }, [disabled, store, syndrome]);\n\n useEffect(() => {\n if (disabled) return;\n const duration = chiefOptionalFieldDisplay(state.values[URO_DURATION_FIELD]);\n const onset = chiefOptionalFieldDisplay(state.values[URO_ONSET_FIELD]);\n const progression = chiefOptionalFieldDisplay(state.values[URO_PROGRESSION_FIELD]);\n\n const prev = store.getFieldState(CHIEF_TEXT_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n // `chief_complaints` is a chip-driven suggestion textarea (comma-separated tokens).\n // Keep it comma-delimited so chip toggling keeps working.\n const kept = prevText\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean)\n .filter((t) => {\n const lower = t.toLowerCase();\n return (\n !lower.startsWith('duration:') &&\n !lower.startsWith('onset:') &&\n !lower.startsWith('progression:')\n );\n });\n\n const extra = nonEmptyLines([\n duration ? `Duration: ${duration}` : '',\n onset ? `Onset: ${onset}` : '',\n progression ? `Progression: ${progression}` : '',\n ]);\n\n const next = [...kept, ...extra].join(', ').trim();\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [CHIEF_TEXT_FIELD]: next }, { touch: false });\n }, [\n disabled,\n state.values[URO_DURATION_FIELD],\n state.values[URO_ONSET_FIELD],\n state.values[URO_PROGRESSION_FIELD],\n store,\n ]);\n\n if (!fieldDef) return null;\n\n const theme = getThemeConfig('textarea', fieldDef.theme);\n const wrapperClass =\n theme?.wrapperClassName ?? 'rounded-md overflow-hidden flex flex-col border border-[#D0D0D0]';\n const labelClass = theme?.labelClassName;\n\n const labelContent = (\n <>\n {fieldDef.label}\n <FieldRequiredIndicator fieldDef={fieldDef} />\n </>\n );\n\n const labelEl = theme ? (\n <Label className={labelClass}>{labelContent}</Label>\n ) : (\n <Label className=\"text-sm font-medium\">{labelContent}</Label>\n );\n\n const bodyClass = cn(\n '-mt-1 flex min-w-0 flex-col gap-3 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n\n <div className={bodyClass}>\n <p className=\"text-[11px] text-muted-foreground\">\n Panels follow chief complaint chips and active syndrome (Clearsight SmartHistoryUro).\n </p>\n\n {showPain ? (\n <Panel title=\"SOCRATES — Pain (flank / suprapubic / testicular)\">\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {SOCRATES_KEYS.map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {k}\n </span>\n <Input\n className=\"h-8 text-xs\"\n value={safe.socrates[k]}\n onChange={(e) => setSocrates(k, e.target.value)}\n placeholder={\n k === 'radiation'\n ? 'e.g. groin → ureteric'\n : k === 'character'\n ? 'colicky / dull'\n : ''\n }\n disabled={disabled}\n />\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n Severity 0–10\n </span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={safe.socrates.severity}\n onChange={(e) => setSocrates('severity', e.target.value)}\n disabled={disabled}\n />\n </div>\n </div>\n </Panel>\n ) : null}\n\n {showLUTS ? (\n <Panel\n title=\"IPSS — International Prostate Symptom Score\"\n right={\n <span className={`rounded-full px-2 py-0.5 text-[10px] font-medium ${bandClass}`}>\n {ipssTotal}/35 — {ipssBandLabel}\n </span>\n }\n >\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {(Object.keys(IPSS_LABELS) as Array<keyof UrologySmartHistoryValue['ipss']>).map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n {IPSS_LABELS[k]}\n </span>\n <Select\n value={String(safe.ipss[k])}\n onValueChange={(val) => setIpss(k, Number(val))}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n QoL (0–6)\n </span>\n <Select\n value={String(safe.ipssQoL)}\n onValueChange={(val) =>\n update({ ...safe, ipssQoL: Math.min(6, Math.max(0, Number(val))) })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5, 6].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <p className=\"mt-2 text-[10px] text-muted-foreground\">\n Bands: 0–7 mild · 8–19 moderate · 20–35 severe.{' '}\n <span className=\"font-semibold text-foreground\">IPSS ≥ 20 → consider surgical intervention.</span>\n </p>\n </Panel>\n ) : null}\n\n {showHaem ? (\n <Panel title=\"Haematuria profile\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.present}\n onCheckedChange={(c) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, present: c === true },\n })\n }\n disabled={disabled}\n />\n Present\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Timing</span>\n <Select\n value={safe.haematuria.timing || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, timing: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Initial\">Initial</SelectItem>\n <SelectItem value=\"Terminal\">Terminal</SelectItem>\n <SelectItem value=\"Total\">Total</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.painful}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, painful: c === true } })\n }\n disabled={disabled}\n />\n Painful\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.clots}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, clots: c === true } })\n }\n disabled={disabled}\n />\n Clots\n </label>\n </div>\n <p className=\"mt-2 text-[10px] text-red-600\">\n Painless haematuria = malignancy until proven otherwise.\n </p>\n </Panel>\n ) : null}\n\n {showSex ? (\n <Panel title=\"Sexual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Erectile function</span>\n <Select\n value={safe.sexual.erectile || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, erectile: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Mild\">Mild</SelectItem>\n <SelectItem value=\"Moderate\">Moderate</SelectItem>\n <SelectItem value=\"Severe\">Severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Libido</span>\n <Select\n value={safe.sexual.libido || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, libido: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Reduced\">Reduced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Ejaculation</span>\n <Select\n value={safe.sexual.ejaculation || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, ejaculation: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Premature\">Premature</SelectItem>\n <SelectItem value=\"Retrograde\">Retrograde</SelectItem>\n <SelectItem value=\"Anejaculation\">Anejaculation</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Infertility (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.sexual.infertilityMonths}\n onChange={(e) =>\n update({\n ...safe,\n sexual: {\n ...safe.sexual,\n infertilityMonths: Math.max(0, Math.round(Number(e.target.value)) || 0),\n },\n })\n }\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <Label className=\"text-xs font-semibold text-slate-700\">\n {hopcField.fieldDef?.label ?? 'History of presenting complaint'}\n </Label>\n <div className=\"flex items-center gap-2\">\n {hopcNarrativeLocked ? (\n <span className=\"rounded bg-amber-50 px-1.5 py-0.5 text-[10px] font-medium text-amber-900 ring-1 ring-amber-200/80\">\n You edited this summary. Use{' '}\n <span className=\"italic\">'Regenerate'</span> to update it from the form.\n </span>\n ) : null}\n {hopcNarrativeLocked ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-7 shrink-0 px-2 text-xs\"\n disabled={disabled || hopcField.disabled}\n onClick={() => {\n setHopcNarrativeLocked(false);\n hopcField.setValue(\n formatUrologySmartHistoryToSymptomsNarrative(\n normalizeUrologySmartHistory(value),\n { showPain, showLUTS, showHaem, showSex },\n ),\n );\n }}\n >\n Regenerate\n </Button>\n ) : null}\n </div>\n </div>\n {hopcNarrativeLocked ? (\n <p className=\"text-[10px] text-muted-foreground\">\n Edit this box anytime. Use Regenerate to replace with fresh text from the structured fields.\n </p>\n ) : null}\n <Textarea\n className=\"min-h-[88px] rounded-md border border-input bg-white text-sm\"\n placeholder=\"Auto-filled from chief complaints + smart history…\"\n value={\n typeof hopcField.value === 'string'\n ? hopcField.value\n : hopcField.value == null\n ? ''\n : String(hopcField.value)\n }\n onChange={(e) => {\n setHopcNarrativeLocked(true);\n hopcField.setValue(e.target.value);\n hopcField.setTouched();\n }}\n disabled={disabled || hopcField.disabled}\n />\n </div>\n </div>\n\n {showError ? <p className=\"px-3 pb-2 text-xs text-red-500\">{error}</p> : null}\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/widgets/UrologySmartHistoryWidget.tsx"],"names":[],"mappings":"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","file":"UrologySmartHistoryWidget-ET6CU36D.mjs","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { useFormStore } from '../../react/FormProvider';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\nimport { Button } from '../shadcn/button';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../shadcn/select';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport type { UrologySmartHistoryValue } from '../../core/urologyPathway';\nimport {\n formatUrologySmartHistoryToSymptomsNarrative,\n normalizeUrologySmartHistory,\n urologyIpssBand,\n urologyIpssSevenTotal,\n} from '../../core/urologyPathway';\n\nconst CHIEF_CHIPS_FIELD = 'chief_complaints_chips';\nconst ACTIVE_SYNDROME_FIELD = 'uro_active_syndrome';\nconst CHIEF_TEXT_FIELD = 'chief_complaints';\nconst SYMPTOMS_FIELD = 'symptoms';\nconst DIAGNOSIS_FIELD = 'diagnosis';\nconst URO_DURATION_FIELD = 'uro_chief_duration';\nconst URO_ONSET_FIELD = 'uro_chief_onset';\nconst URO_PROGRESSION_FIELD = 'uro_chief_progression';\n\nconst SYNDROME_LABELS: Record<string, string> = {\n luts: 'LUTS / BPH',\n stone: 'Urolithiasis (stone)',\n haematuria: 'Haematuria',\n scrotal: 'Scrotal swelling',\n retention: 'Acute retention',\n ed_infertility: 'ED / Infertility',\n uti: 'UTI / infection',\n};\n\nfunction chipList(state: { values: Record<string, unknown> }): string[] {\n const raw = state.values[CHIEF_CHIPS_FIELD];\n return Array.isArray(raw) ? raw.filter((x): x is string => typeof x === 'string') : [];\n}\n\nfunction str(x: unknown): string {\n return typeof x === 'string' ? x : '';\n}\n\n/** Embedded chief fields often use `value: \"none\"` for \"—\"; do not merge that into `chief_complaints`. */\nfunction chiefOptionalFieldDisplay(x: unknown): string {\n const s = str(x).trim();\n if (!s || s.toLowerCase() === 'none') return '';\n return s;\n}\n\nfunction nonEmptyLines(lines: Array<string | undefined | null>): string[] {\n return lines.map((s) => (s ?? '').trim()).filter(Boolean);\n}\n\nconst IPSS_LABELS: Record<keyof UrologySmartHistoryValue['ipss'], string> = {\n incomplete: 'Incomplete emptying',\n frequency: 'Frequency (<2h)',\n intermittency: 'Intermittency',\n urgency: 'Urgency',\n weakStream: 'Weak stream',\n straining: 'Straining',\n nocturia: 'Nocturia (×/night)',\n};\n\nconst SOCRATES_KEYS = [\n 'site',\n 'onset',\n 'character',\n 'radiation',\n 'associated',\n 'timing',\n 'exacerbating',\n] as const;\n\nfunction Panel({\n title,\n right,\n children,\n}: {\n title: string;\n right?: React.ReactNode;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"overflow-hidden rounded-md border border-[#D0D0D0] bg-white\">\n <div className=\"flex items-center justify-between border-b border-[#D0D0D0] bg-[#FEE8EC]/50 px-3 py-1.5\">\n <span className=\"text-xs font-semibold text-slate-700\">{title}</span>\n {right}\n </div>\n <div className=\"p-3\">{children}</div>\n </div>\n );\n}\n\nexport const UrologySmartHistoryWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const hopcField = useField(SYMPTOMS_FIELD);\n const syndromeField = useField(ACTIVE_SYNDROME_FIELD);\n const { state } = useForm();\n const store = useFormStore();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologySmartHistory(value), [value]);\n const chips = useMemo(() => chipList(state), [state]);\n\n const rawSyndrome = syndromeField.value ?? state.values[ACTIVE_SYNDROME_FIELD];\n const syndrome =\n typeof rawSyndrome === 'string' && rawSyndrome !== '' && rawSyndrome !== 'none'\n ? rawSyndrome\n : 'none';\n\n const showPain =\n chips.includes('pain abdomen flank') ||\n chips.includes('scrotal swelling pain') ||\n syndrome === 'stone' ||\n syndrome === 'scrotal';\n\n const showLUTS =\n syndrome === 'luts' ||\n syndrome === 'retention' ||\n chips.includes('frequency urgency') ||\n chips.includes('poor stream') ||\n chips.includes('acute retention');\n\n const showHaem = syndrome === 'haematuria' || chips.includes('haematuria');\n\n const showSex =\n syndrome === 'ed_infertility' ||\n chips.includes('erectile dysfunction') ||\n chips.includes('infertility concern');\n\n const update = (next: UrologySmartHistoryValue) => {\n setValue(next);\n setTouched();\n };\n\n const ipssTotal = urologyIpssSevenTotal(safe.ipss);\n const ipssBandLabel = urologyIpssBand(ipssTotal);\n const bandClass =\n ipssBandLabel === 'Severe'\n ? 'bg-red-500/15 text-red-700'\n : ipssBandLabel === 'Moderate'\n ? 'bg-amber-500/15 text-amber-800'\n : 'bg-emerald-500/15 text-emerald-800';\n\n const setSocrates = (key: (typeof SOCRATES_KEYS)[number] | 'severity', v: string | number) => {\n if (key === 'severity') {\n const n = typeof v === 'number' ? v : Number(v);\n const sev = Number.isFinite(n) ? Math.min(10, Math.max(0, Math.round(n))) : 0;\n update({ ...safe, socrates: { ...safe.socrates, severity: sev } });\n return;\n }\n update({ ...safe, socrates: { ...safe.socrates, [key]: String(v) } });\n };\n\n const setIpss = (key: keyof UrologySmartHistoryValue['ipss'], v: number) => {\n update({ ...safe, ipss: { ...safe.ipss, [key]: v } });\n };\n\n const [hopcNarrativeLocked, setHopcNarrativeLocked] = useState(false);\n\n useEffect(() => {\n if (hopcNarrativeLocked || disabled) return;\n const next = formatUrologySmartHistoryToSymptomsNarrative(normalizeUrologySmartHistory(value), {\n showPain,\n showLUTS,\n showHaem,\n showSex,\n });\n hopcField.setValue(next);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, hopcNarrativeLocked, showPain, showLUTS, showHaem, showSex, disabled]);\n\n useEffect(() => {\n if (disabled) return;\n const label = syndrome && syndrome !== 'none' ? SYNDROME_LABELS[syndrome] ?? syndrome : '';\n const prev = store.getFieldState(DIAGNOSIS_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n const syndromeLabels = new Set(Object.values(SYNDROME_LABELS));\n const keptLines = prevText\n .split('\\n')\n .map((l) => l.trim())\n .filter(Boolean)\n .filter((l) => !syndromeLabels.has(l));\n\n const nextLines = label ? [...keptLines, label] : keptLines;\n const next = nextLines.join('\\n');\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [DIAGNOSIS_FIELD]: next }, { touch: false });\n }, [disabled, store, syndrome]);\n\n useEffect(() => {\n if (disabled) return;\n const duration = chiefOptionalFieldDisplay(state.values[URO_DURATION_FIELD]);\n const onset = chiefOptionalFieldDisplay(state.values[URO_ONSET_FIELD]);\n const progression = chiefOptionalFieldDisplay(state.values[URO_PROGRESSION_FIELD]);\n\n const prev = store.getFieldState(CHIEF_TEXT_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n // `chief_complaints` is a chip-driven suggestion textarea (comma-separated tokens).\n // Keep it comma-delimited so chip toggling keeps working.\n const kept = prevText\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean)\n .filter((t) => {\n const lower = t.toLowerCase();\n return (\n !lower.startsWith('duration:') &&\n !lower.startsWith('onset:') &&\n !lower.startsWith('progression:')\n );\n });\n\n const extra = nonEmptyLines([\n duration ? `Duration: ${duration}` : '',\n onset ? `Onset: ${onset}` : '',\n progression ? `Progression: ${progression}` : '',\n ]);\n\n const next = [...kept, ...extra].join(', ').trim();\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [CHIEF_TEXT_FIELD]: next }, { touch: false });\n }, [\n disabled,\n state.values[URO_DURATION_FIELD],\n state.values[URO_ONSET_FIELD],\n state.values[URO_PROGRESSION_FIELD],\n store,\n ]);\n\n if (!fieldDef) return null;\n\n const theme = getThemeConfig('textarea', fieldDef.theme);\n const wrapperClass =\n theme?.wrapperClassName ?? 'rounded-md overflow-hidden flex flex-col border border-[#D0D0D0]';\n const labelClass = theme?.labelClassName;\n\n const labelContent = (\n <>\n {fieldDef.label}\n <FieldRequiredIndicator fieldDef={fieldDef} />\n </>\n );\n\n const labelEl = theme ? (\n <Label className={labelClass}>{labelContent}</Label>\n ) : (\n <Label className=\"text-sm font-medium\">{labelContent}</Label>\n );\n\n const bodyClass = cn(\n '-mt-1 flex min-w-0 flex-col gap-3 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n\n <div className={bodyClass}>\n <p className=\"text-[11px] text-muted-foreground\">\n Panels follow chief complaint chips and active syndrome (Clearsight SmartHistoryUro).\n </p>\n\n {showPain ? (\n <Panel title=\"SOCRATES — Pain (flank / suprapubic / testicular)\">\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {SOCRATES_KEYS.map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {k}\n </span>\n <Input\n className=\"h-8 text-xs\"\n value={safe.socrates[k]}\n onChange={(e) => setSocrates(k, e.target.value)}\n placeholder={\n k === 'radiation'\n ? 'e.g. groin → ureteric'\n : k === 'character'\n ? 'colicky / dull'\n : ''\n }\n disabled={disabled}\n />\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n Severity 0–10\n </span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={safe.socrates.severity}\n onChange={(e) => setSocrates('severity', e.target.value)}\n disabled={disabled}\n />\n </div>\n </div>\n </Panel>\n ) : null}\n\n {showLUTS ? (\n <Panel\n title=\"IPSS — International Prostate Symptom Score\"\n right={\n <span className={`rounded-full px-2 py-0.5 text-[10px] font-medium ${bandClass}`}>\n {ipssTotal}/35 — {ipssBandLabel}\n </span>\n }\n >\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {(Object.keys(IPSS_LABELS) as Array<keyof UrologySmartHistoryValue['ipss']>).map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n {IPSS_LABELS[k]}\n </span>\n <Select\n value={String(safe.ipss[k])}\n onValueChange={(val) => setIpss(k, Number(val))}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n QoL (0–6)\n </span>\n <Select\n value={String(safe.ipssQoL)}\n onValueChange={(val) =>\n update({ ...safe, ipssQoL: Math.min(6, Math.max(0, Number(val))) })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5, 6].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <p className=\"mt-2 text-[10px] text-muted-foreground\">\n Bands: 0–7 mild · 8–19 moderate · 20–35 severe.{' '}\n <span className=\"font-semibold text-foreground\">IPSS ≥ 20 → consider surgical intervention.</span>\n </p>\n </Panel>\n ) : null}\n\n {showHaem ? (\n <Panel title=\"Haematuria profile\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.present}\n onCheckedChange={(c) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, present: c === true },\n })\n }\n disabled={disabled}\n />\n Present\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Timing</span>\n <Select\n value={safe.haematuria.timing || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, timing: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Initial\">Initial</SelectItem>\n <SelectItem value=\"Terminal\">Terminal</SelectItem>\n <SelectItem value=\"Total\">Total</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.painful}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, painful: c === true } })\n }\n disabled={disabled}\n />\n Painful\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.clots}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, clots: c === true } })\n }\n disabled={disabled}\n />\n Clots\n </label>\n </div>\n <p className=\"mt-2 text-[10px] text-red-600\">\n Painless haematuria = malignancy until proven otherwise.\n </p>\n </Panel>\n ) : null}\n\n {showSex ? (\n <Panel title=\"Sexual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Erectile function</span>\n <Select\n value={safe.sexual.erectile || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, erectile: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Mild\">Mild</SelectItem>\n <SelectItem value=\"Moderate\">Moderate</SelectItem>\n <SelectItem value=\"Severe\">Severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Libido</span>\n <Select\n value={safe.sexual.libido || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, libido: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Reduced\">Reduced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Ejaculation</span>\n <Select\n value={safe.sexual.ejaculation || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, ejaculation: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Premature\">Premature</SelectItem>\n <SelectItem value=\"Retrograde\">Retrograde</SelectItem>\n <SelectItem value=\"Anejaculation\">Anejaculation</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Infertility (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.sexual.infertilityMonths}\n onChange={(e) =>\n update({\n ...safe,\n sexual: {\n ...safe.sexual,\n infertilityMonths: Math.max(0, Math.round(Number(e.target.value)) || 0),\n },\n })\n }\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <Label className=\"text-xs font-semibold text-slate-700\">\n {hopcField.fieldDef?.label ?? 'History of presenting complaint'}\n </Label>\n <div className=\"flex items-center gap-2\">\n {hopcNarrativeLocked ? (\n <span className=\"rounded bg-amber-50 px-1.5 py-0.5 text-[10px] font-medium text-amber-900 ring-1 ring-amber-200/80\">\n You edited this summary. Use{' '}\n <span className=\"italic\">'Regenerate'</span> to update it from the form.\n </span>\n ) : null}\n {hopcNarrativeLocked ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-7 shrink-0 px-2 text-xs\"\n disabled={disabled || hopcField.disabled}\n onClick={() => {\n setHopcNarrativeLocked(false);\n hopcField.setValue(\n formatUrologySmartHistoryToSymptomsNarrative(\n normalizeUrologySmartHistory(value),\n { showPain, showLUTS, showHaem, showSex },\n ),\n );\n }}\n >\n Regenerate\n </Button>\n ) : null}\n </div>\n </div>\n {hopcNarrativeLocked ? (\n <p className=\"text-[10px] text-muted-foreground\">\n Edit this box anytime. Use Regenerate to replace with fresh text from the structured fields.\n </p>\n ) : null}\n <Textarea\n className=\"min-h-[88px] rounded-md border border-input bg-white text-sm\"\n placeholder=\"Auto-filled from chief complaints + smart history…\"\n value={\n typeof hopcField.value === 'string'\n ? hopcField.value\n : hopcField.value == null\n ? ''\n : String(hopcField.value)\n }\n onChange={(e) => {\n setHopcNarrativeLocked(true);\n hopcField.setValue(e.target.value);\n hopcField.setTouched();\n }}\n disabled={disabled || hopcField.disabled}\n />\n </div>\n </div>\n\n {showError ? <p className=\"px-3 pb-2 text-xs text-red-500\">{error}</p> : null}\n </div>\n );\n};\n"]}
|
package/dist/{UrologySmartHistoryWidget-P3KTQE7L.cjs → UrologySmartHistoryWidget-SLBJALMO.cjs}
RENAMED
|
@@ -4,11 +4,11 @@ var chunkPZBJYPWW_cjs = require('./chunk-PZBJYPWW.cjs');
|
|
|
4
4
|
var chunkPHADAQSH_cjs = require('./chunk-PHADAQSH.cjs');
|
|
5
5
|
var chunkP62377LB_cjs = require('./chunk-P62377LB.cjs');
|
|
6
6
|
var chunk5E3APMY6_cjs = require('./chunk-5E3APMY6.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunkXGO2HG3N_cjs = require('./chunk-XGO2HG3N.cjs');
|
|
8
8
|
var chunkTJHG5WHX_cjs = require('./chunk-TJHG5WHX.cjs');
|
|
9
9
|
var chunk4KSZUIJE_cjs = require('./chunk-4KSZUIJE.cjs');
|
|
10
10
|
var chunkO3VQBPEW_cjs = require('./chunk-O3VQBPEW.cjs');
|
|
11
|
-
var
|
|
11
|
+
var chunkJVIU4OBK_cjs = require('./chunk-JVIU4OBK.cjs');
|
|
12
12
|
var chunkJMGUUFOJ_cjs = require('./chunk-JMGUUFOJ.cjs');
|
|
13
13
|
var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
|
|
14
14
|
var react = require('react');
|
|
@@ -78,13 +78,13 @@ function Panel({
|
|
|
78
78
|
] });
|
|
79
79
|
}
|
|
80
80
|
var UrologySmartHistoryWidget = ({ fieldId }) => {
|
|
81
|
-
const { fieldDef, value, setValue, setTouched, error, touched, disabled } =
|
|
82
|
-
const hopcField =
|
|
83
|
-
const syndromeField =
|
|
84
|
-
const { state } =
|
|
85
|
-
const store =
|
|
81
|
+
const { fieldDef, value, setValue, setTouched, error, touched, disabled } = chunkJVIU4OBK_cjs.useField(fieldId);
|
|
82
|
+
const hopcField = chunkJVIU4OBK_cjs.useField(SYMPTOMS_FIELD);
|
|
83
|
+
const syndromeField = chunkJVIU4OBK_cjs.useField(ACTIVE_SYNDROME_FIELD);
|
|
84
|
+
const { state } = chunkXGO2HG3N_cjs.useForm();
|
|
85
|
+
const store = chunkJVIU4OBK_cjs.useFormStore();
|
|
86
86
|
const showError = !!error && (touched || state.submitAttempted);
|
|
87
|
-
const safe = react.useMemo(() =>
|
|
87
|
+
const safe = react.useMemo(() => chunkJVIU4OBK_cjs.normalizeUrologySmartHistory(value), [value]);
|
|
88
88
|
const chips = react.useMemo(() => chipList(state), [state]);
|
|
89
89
|
const rawSyndrome = syndromeField.value ?? state.values[ACTIVE_SYNDROME_FIELD];
|
|
90
90
|
const syndrome = typeof rawSyndrome === "string" && rawSyndrome !== "" && rawSyndrome !== "none" ? rawSyndrome : "none";
|
|
@@ -96,8 +96,8 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
|
|
|
96
96
|
setValue(next);
|
|
97
97
|
setTouched();
|
|
98
98
|
};
|
|
99
|
-
const ipssTotal =
|
|
100
|
-
const ipssBandLabel =
|
|
99
|
+
const ipssTotal = chunkJVIU4OBK_cjs.urologyIpssSevenTotal(safe.ipss);
|
|
100
|
+
const ipssBandLabel = chunkJVIU4OBK_cjs.urologyIpssBand(ipssTotal);
|
|
101
101
|
const bandClass = ipssBandLabel === "Severe" ? "bg-red-500/15 text-red-700" : ipssBandLabel === "Moderate" ? "bg-amber-500/15 text-amber-800" : "bg-emerald-500/15 text-emerald-800";
|
|
102
102
|
const setSocrates = (key, v) => {
|
|
103
103
|
if (key === "severity") {
|
|
@@ -114,7 +114,7 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
|
|
|
114
114
|
const [hopcNarrativeLocked, setHopcNarrativeLocked] = react.useState(false);
|
|
115
115
|
react.useEffect(() => {
|
|
116
116
|
if (hopcNarrativeLocked || disabled) return;
|
|
117
|
-
const next =
|
|
117
|
+
const next = chunkJVIU4OBK_cjs.formatUrologySmartHistoryToSymptomsNarrative(chunkJVIU4OBK_cjs.normalizeUrologySmartHistory(value), {
|
|
118
118
|
showPain,
|
|
119
119
|
showLUTS,
|
|
120
120
|
showHaem,
|
|
@@ -434,8 +434,8 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
|
|
|
434
434
|
onClick: () => {
|
|
435
435
|
setHopcNarrativeLocked(false);
|
|
436
436
|
hopcField.setValue(
|
|
437
|
-
|
|
438
|
-
|
|
437
|
+
chunkJVIU4OBK_cjs.formatUrologySmartHistoryToSymptomsNarrative(
|
|
438
|
+
chunkJVIU4OBK_cjs.normalizeUrologySmartHistory(value),
|
|
439
439
|
{ showPain, showLUTS, showHaem, showSex }
|
|
440
440
|
)
|
|
441
441
|
);
|
|
@@ -467,5 +467,5 @@ var UrologySmartHistoryWidget = ({ fieldId }) => {
|
|
|
467
467
|
};
|
|
468
468
|
|
|
469
469
|
exports.UrologySmartHistoryWidget = UrologySmartHistoryWidget;
|
|
470
|
-
//# sourceMappingURL=UrologySmartHistoryWidget-
|
|
471
|
-
//# sourceMappingURL=UrologySmartHistoryWidget-
|
|
470
|
+
//# sourceMappingURL=UrologySmartHistoryWidget-SLBJALMO.cjs.map
|
|
471
|
+
//# sourceMappingURL=UrologySmartHistoryWidget-SLBJALMO.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/widgets/UrologySmartHistoryWidget.tsx"],"names":["jsxs","jsx","useField","useForm","useFormStore","useMemo","normalizeUrologySmartHistory","urologyIpssSevenTotal","urologyIpssBand","useState","useEffect","formatUrologySmartHistoryToSymptomsNarrative","getThemeConfig","Fragment","FieldRequiredIndicator","Label","cn","Input","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Checkbox","Button","Textarea"],"mappings":"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","file":"UrologySmartHistoryWidget-P3KTQE7L.cjs","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { useFormStore } from '../../react/FormProvider';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\nimport { Button } from '../shadcn/button';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../shadcn/select';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport type { UrologySmartHistoryValue } from '../../core/urologyPathway';\nimport {\n formatUrologySmartHistoryToSymptomsNarrative,\n normalizeUrologySmartHistory,\n urologyIpssBand,\n urologyIpssSevenTotal,\n} from '../../core/urologyPathway';\n\nconst CHIEF_CHIPS_FIELD = 'chief_complaints_chips';\nconst ACTIVE_SYNDROME_FIELD = 'uro_active_syndrome';\nconst CHIEF_TEXT_FIELD = 'chief_complaints';\nconst SYMPTOMS_FIELD = 'symptoms';\nconst DIAGNOSIS_FIELD = 'diagnosis';\nconst URO_DURATION_FIELD = 'uro_chief_duration';\nconst URO_ONSET_FIELD = 'uro_chief_onset';\nconst URO_PROGRESSION_FIELD = 'uro_chief_progression';\n\nconst SYNDROME_LABELS: Record<string, string> = {\n luts: 'LUTS / BPH',\n stone: 'Urolithiasis (stone)',\n haematuria: 'Haematuria',\n scrotal: 'Scrotal swelling',\n retention: 'Acute retention',\n ed_infertility: 'ED / Infertility',\n uti: 'UTI / infection',\n};\n\nfunction chipList(state: { values: Record<string, unknown> }): string[] {\n const raw = state.values[CHIEF_CHIPS_FIELD];\n return Array.isArray(raw) ? raw.filter((x): x is string => typeof x === 'string') : [];\n}\n\nfunction str(x: unknown): string {\n return typeof x === 'string' ? x : '';\n}\n\n/** Embedded chief fields often use `value: \"none\"` for \"—\"; do not merge that into `chief_complaints`. */\nfunction chiefOptionalFieldDisplay(x: unknown): string {\n const s = str(x).trim();\n if (!s || s.toLowerCase() === 'none') return '';\n return s;\n}\n\nfunction nonEmptyLines(lines: Array<string | undefined | null>): string[] {\n return lines.map((s) => (s ?? '').trim()).filter(Boolean);\n}\n\nconst IPSS_LABELS: Record<keyof UrologySmartHistoryValue['ipss'], string> = {\n incomplete: 'Incomplete emptying',\n frequency: 'Frequency (<2h)',\n intermittency: 'Intermittency',\n urgency: 'Urgency',\n weakStream: 'Weak stream',\n straining: 'Straining',\n nocturia: 'Nocturia (×/night)',\n};\n\nconst SOCRATES_KEYS = [\n 'site',\n 'onset',\n 'character',\n 'radiation',\n 'associated',\n 'timing',\n 'exacerbating',\n] as const;\n\nfunction Panel({\n title,\n right,\n children,\n}: {\n title: string;\n right?: React.ReactNode;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"overflow-hidden rounded-md border border-[#D0D0D0] bg-white\">\n <div className=\"flex items-center justify-between border-b border-[#D0D0D0] bg-[#FEE8EC]/50 px-3 py-1.5\">\n <span className=\"text-xs font-semibold text-slate-700\">{title}</span>\n {right}\n </div>\n <div className=\"p-3\">{children}</div>\n </div>\n );\n}\n\nexport const UrologySmartHistoryWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const hopcField = useField(SYMPTOMS_FIELD);\n const syndromeField = useField(ACTIVE_SYNDROME_FIELD);\n const { state } = useForm();\n const store = useFormStore();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologySmartHistory(value), [value]);\n const chips = useMemo(() => chipList(state), [state]);\n\n const rawSyndrome = syndromeField.value ?? state.values[ACTIVE_SYNDROME_FIELD];\n const syndrome =\n typeof rawSyndrome === 'string' && rawSyndrome !== '' && rawSyndrome !== 'none'\n ? rawSyndrome\n : 'none';\n\n const showPain =\n chips.includes('pain abdomen flank') ||\n chips.includes('scrotal swelling pain') ||\n syndrome === 'stone' ||\n syndrome === 'scrotal';\n\n const showLUTS =\n syndrome === 'luts' ||\n syndrome === 'retention' ||\n chips.includes('frequency urgency') ||\n chips.includes('poor stream') ||\n chips.includes('acute retention');\n\n const showHaem = syndrome === 'haematuria' || chips.includes('haematuria');\n\n const showSex =\n syndrome === 'ed_infertility' ||\n chips.includes('erectile dysfunction') ||\n chips.includes('infertility concern');\n\n const update = (next: UrologySmartHistoryValue) => {\n setValue(next);\n setTouched();\n };\n\n const ipssTotal = urologyIpssSevenTotal(safe.ipss);\n const ipssBandLabel = urologyIpssBand(ipssTotal);\n const bandClass =\n ipssBandLabel === 'Severe'\n ? 'bg-red-500/15 text-red-700'\n : ipssBandLabel === 'Moderate'\n ? 'bg-amber-500/15 text-amber-800'\n : 'bg-emerald-500/15 text-emerald-800';\n\n const setSocrates = (key: (typeof SOCRATES_KEYS)[number] | 'severity', v: string | number) => {\n if (key === 'severity') {\n const n = typeof v === 'number' ? v : Number(v);\n const sev = Number.isFinite(n) ? Math.min(10, Math.max(0, Math.round(n))) : 0;\n update({ ...safe, socrates: { ...safe.socrates, severity: sev } });\n return;\n }\n update({ ...safe, socrates: { ...safe.socrates, [key]: String(v) } });\n };\n\n const setIpss = (key: keyof UrologySmartHistoryValue['ipss'], v: number) => {\n update({ ...safe, ipss: { ...safe.ipss, [key]: v } });\n };\n\n const [hopcNarrativeLocked, setHopcNarrativeLocked] = useState(false);\n\n useEffect(() => {\n if (hopcNarrativeLocked || disabled) return;\n const next = formatUrologySmartHistoryToSymptomsNarrative(normalizeUrologySmartHistory(value), {\n showPain,\n showLUTS,\n showHaem,\n showSex,\n });\n hopcField.setValue(next);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, hopcNarrativeLocked, showPain, showLUTS, showHaem, showSex, disabled]);\n\n useEffect(() => {\n if (disabled) return;\n const label = syndrome && syndrome !== 'none' ? SYNDROME_LABELS[syndrome] ?? syndrome : '';\n const prev = store.getFieldState(DIAGNOSIS_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n const syndromeLabels = new Set(Object.values(SYNDROME_LABELS));\n const keptLines = prevText\n .split('\\n')\n .map((l) => l.trim())\n .filter(Boolean)\n .filter((l) => !syndromeLabels.has(l));\n\n const nextLines = label ? [...keptLines, label] : keptLines;\n const next = nextLines.join('\\n');\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [DIAGNOSIS_FIELD]: next }, { touch: false });\n }, [disabled, store, syndrome]);\n\n useEffect(() => {\n if (disabled) return;\n const duration = chiefOptionalFieldDisplay(state.values[URO_DURATION_FIELD]);\n const onset = chiefOptionalFieldDisplay(state.values[URO_ONSET_FIELD]);\n const progression = chiefOptionalFieldDisplay(state.values[URO_PROGRESSION_FIELD]);\n\n const prev = store.getFieldState(CHIEF_TEXT_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n // `chief_complaints` is a chip-driven suggestion textarea (comma-separated tokens).\n // Keep it comma-delimited so chip toggling keeps working.\n const kept = prevText\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean)\n .filter((t) => {\n const lower = t.toLowerCase();\n return (\n !lower.startsWith('duration:') &&\n !lower.startsWith('onset:') &&\n !lower.startsWith('progression:')\n );\n });\n\n const extra = nonEmptyLines([\n duration ? `Duration: ${duration}` : '',\n onset ? `Onset: ${onset}` : '',\n progression ? `Progression: ${progression}` : '',\n ]);\n\n const next = [...kept, ...extra].join(', ').trim();\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [CHIEF_TEXT_FIELD]: next }, { touch: false });\n }, [\n disabled,\n state.values[URO_DURATION_FIELD],\n state.values[URO_ONSET_FIELD],\n state.values[URO_PROGRESSION_FIELD],\n store,\n ]);\n\n if (!fieldDef) return null;\n\n const theme = getThemeConfig('textarea', fieldDef.theme);\n const wrapperClass =\n theme?.wrapperClassName ?? 'rounded-md overflow-hidden flex flex-col border border-[#D0D0D0]';\n const labelClass = theme?.labelClassName;\n\n const labelContent = (\n <>\n {fieldDef.label}\n <FieldRequiredIndicator fieldDef={fieldDef} />\n </>\n );\n\n const labelEl = theme ? (\n <Label className={labelClass}>{labelContent}</Label>\n ) : (\n <Label className=\"text-sm font-medium\">{labelContent}</Label>\n );\n\n const bodyClass = cn(\n '-mt-1 flex min-w-0 flex-col gap-3 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n\n <div className={bodyClass}>\n <p className=\"text-[11px] text-muted-foreground\">\n Panels follow chief complaint chips and active syndrome (Clearsight SmartHistoryUro).\n </p>\n\n {showPain ? (\n <Panel title=\"SOCRATES — Pain (flank / suprapubic / testicular)\">\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {SOCRATES_KEYS.map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {k}\n </span>\n <Input\n className=\"h-8 text-xs\"\n value={safe.socrates[k]}\n onChange={(e) => setSocrates(k, e.target.value)}\n placeholder={\n k === 'radiation'\n ? 'e.g. groin → ureteric'\n : k === 'character'\n ? 'colicky / dull'\n : ''\n }\n disabled={disabled}\n />\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n Severity 0–10\n </span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={safe.socrates.severity}\n onChange={(e) => setSocrates('severity', e.target.value)}\n disabled={disabled}\n />\n </div>\n </div>\n </Panel>\n ) : null}\n\n {showLUTS ? (\n <Panel\n title=\"IPSS — International Prostate Symptom Score\"\n right={\n <span className={`rounded-full px-2 py-0.5 text-[10px] font-medium ${bandClass}`}>\n {ipssTotal}/35 — {ipssBandLabel}\n </span>\n }\n >\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {(Object.keys(IPSS_LABELS) as Array<keyof UrologySmartHistoryValue['ipss']>).map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n {IPSS_LABELS[k]}\n </span>\n <Select\n value={String(safe.ipss[k])}\n onValueChange={(val) => setIpss(k, Number(val))}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n QoL (0–6)\n </span>\n <Select\n value={String(safe.ipssQoL)}\n onValueChange={(val) =>\n update({ ...safe, ipssQoL: Math.min(6, Math.max(0, Number(val))) })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5, 6].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <p className=\"mt-2 text-[10px] text-muted-foreground\">\n Bands: 0–7 mild · 8–19 moderate · 20–35 severe.{' '}\n <span className=\"font-semibold text-foreground\">IPSS ≥ 20 → consider surgical intervention.</span>\n </p>\n </Panel>\n ) : null}\n\n {showHaem ? (\n <Panel title=\"Haematuria profile\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.present}\n onCheckedChange={(c) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, present: c === true },\n })\n }\n disabled={disabled}\n />\n Present\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Timing</span>\n <Select\n value={safe.haematuria.timing || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, timing: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Initial\">Initial</SelectItem>\n <SelectItem value=\"Terminal\">Terminal</SelectItem>\n <SelectItem value=\"Total\">Total</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.painful}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, painful: c === true } })\n }\n disabled={disabled}\n />\n Painful\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.clots}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, clots: c === true } })\n }\n disabled={disabled}\n />\n Clots\n </label>\n </div>\n <p className=\"mt-2 text-[10px] text-red-600\">\n Painless haematuria = malignancy until proven otherwise.\n </p>\n </Panel>\n ) : null}\n\n {showSex ? (\n <Panel title=\"Sexual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Erectile function</span>\n <Select\n value={safe.sexual.erectile || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, erectile: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Mild\">Mild</SelectItem>\n <SelectItem value=\"Moderate\">Moderate</SelectItem>\n <SelectItem value=\"Severe\">Severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Libido</span>\n <Select\n value={safe.sexual.libido || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, libido: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Reduced\">Reduced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Ejaculation</span>\n <Select\n value={safe.sexual.ejaculation || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, ejaculation: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Premature\">Premature</SelectItem>\n <SelectItem value=\"Retrograde\">Retrograde</SelectItem>\n <SelectItem value=\"Anejaculation\">Anejaculation</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Infertility (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.sexual.infertilityMonths}\n onChange={(e) =>\n update({\n ...safe,\n sexual: {\n ...safe.sexual,\n infertilityMonths: Math.max(0, Math.round(Number(e.target.value)) || 0),\n },\n })\n }\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <Label className=\"text-xs font-semibold text-slate-700\">\n {hopcField.fieldDef?.label ?? 'History of presenting complaint'}\n </Label>\n <div className=\"flex items-center gap-2\">\n {hopcNarrativeLocked ? (\n <span className=\"rounded bg-amber-50 px-1.5 py-0.5 text-[10px] font-medium text-amber-900 ring-1 ring-amber-200/80\">\n You edited this summary. Use{' '}\n <span className=\"italic\">'Regenerate'</span> to update it from the form.\n </span>\n ) : null}\n {hopcNarrativeLocked ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-7 shrink-0 px-2 text-xs\"\n disabled={disabled || hopcField.disabled}\n onClick={() => {\n setHopcNarrativeLocked(false);\n hopcField.setValue(\n formatUrologySmartHistoryToSymptomsNarrative(\n normalizeUrologySmartHistory(value),\n { showPain, showLUTS, showHaem, showSex },\n ),\n );\n }}\n >\n Regenerate\n </Button>\n ) : null}\n </div>\n </div>\n {hopcNarrativeLocked ? (\n <p className=\"text-[10px] text-muted-foreground\">\n Edit this box anytime. Use Regenerate to replace with fresh text from the structured fields.\n </p>\n ) : null}\n <Textarea\n className=\"min-h-[88px] rounded-md border border-input bg-white text-sm\"\n placeholder=\"Auto-filled from chief complaints + smart history…\"\n value={\n typeof hopcField.value === 'string'\n ? hopcField.value\n : hopcField.value == null\n ? ''\n : String(hopcField.value)\n }\n onChange={(e) => {\n setHopcNarrativeLocked(true);\n hopcField.setValue(e.target.value);\n hopcField.setTouched();\n }}\n disabled={disabled || hopcField.disabled}\n />\n </div>\n </div>\n\n {showError ? <p className=\"px-3 pb-2 text-xs text-red-500\">{error}</p> : null}\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/widgets/UrologySmartHistoryWidget.tsx"],"names":["jsxs","jsx","useField","useForm","useFormStore","useMemo","normalizeUrologySmartHistory","urologyIpssSevenTotal","urologyIpssBand","useState","useEffect","formatUrologySmartHistoryToSymptomsNarrative","getThemeConfig","Fragment","FieldRequiredIndicator","Label","cn","Input","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Checkbox","Button","Textarea"],"mappings":"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","file":"UrologySmartHistoryWidget-SLBJALMO.cjs","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { useFormStore } from '../../react/FormProvider';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\nimport { Button } from '../shadcn/button';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../shadcn/select';\nimport { cn } from '../../core/utils';\nimport { FieldRequiredIndicator } from '../../react/fieldStyle';\nimport { getThemeConfig } from '../themes';\nimport type { UrologySmartHistoryValue } from '../../core/urologyPathway';\nimport {\n formatUrologySmartHistoryToSymptomsNarrative,\n normalizeUrologySmartHistory,\n urologyIpssBand,\n urologyIpssSevenTotal,\n} from '../../core/urologyPathway';\n\nconst CHIEF_CHIPS_FIELD = 'chief_complaints_chips';\nconst ACTIVE_SYNDROME_FIELD = 'uro_active_syndrome';\nconst CHIEF_TEXT_FIELD = 'chief_complaints';\nconst SYMPTOMS_FIELD = 'symptoms';\nconst DIAGNOSIS_FIELD = 'diagnosis';\nconst URO_DURATION_FIELD = 'uro_chief_duration';\nconst URO_ONSET_FIELD = 'uro_chief_onset';\nconst URO_PROGRESSION_FIELD = 'uro_chief_progression';\n\nconst SYNDROME_LABELS: Record<string, string> = {\n luts: 'LUTS / BPH',\n stone: 'Urolithiasis (stone)',\n haematuria: 'Haematuria',\n scrotal: 'Scrotal swelling',\n retention: 'Acute retention',\n ed_infertility: 'ED / Infertility',\n uti: 'UTI / infection',\n};\n\nfunction chipList(state: { values: Record<string, unknown> }): string[] {\n const raw = state.values[CHIEF_CHIPS_FIELD];\n return Array.isArray(raw) ? raw.filter((x): x is string => typeof x === 'string') : [];\n}\n\nfunction str(x: unknown): string {\n return typeof x === 'string' ? x : '';\n}\n\n/** Embedded chief fields often use `value: \"none\"` for \"—\"; do not merge that into `chief_complaints`. */\nfunction chiefOptionalFieldDisplay(x: unknown): string {\n const s = str(x).trim();\n if (!s || s.toLowerCase() === 'none') return '';\n return s;\n}\n\nfunction nonEmptyLines(lines: Array<string | undefined | null>): string[] {\n return lines.map((s) => (s ?? '').trim()).filter(Boolean);\n}\n\nconst IPSS_LABELS: Record<keyof UrologySmartHistoryValue['ipss'], string> = {\n incomplete: 'Incomplete emptying',\n frequency: 'Frequency (<2h)',\n intermittency: 'Intermittency',\n urgency: 'Urgency',\n weakStream: 'Weak stream',\n straining: 'Straining',\n nocturia: 'Nocturia (×/night)',\n};\n\nconst SOCRATES_KEYS = [\n 'site',\n 'onset',\n 'character',\n 'radiation',\n 'associated',\n 'timing',\n 'exacerbating',\n] as const;\n\nfunction Panel({\n title,\n right,\n children,\n}: {\n title: string;\n right?: React.ReactNode;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"overflow-hidden rounded-md border border-[#D0D0D0] bg-white\">\n <div className=\"flex items-center justify-between border-b border-[#D0D0D0] bg-[#FEE8EC]/50 px-3 py-1.5\">\n <span className=\"text-xs font-semibold text-slate-700\">{title}</span>\n {right}\n </div>\n <div className=\"p-3\">{children}</div>\n </div>\n );\n}\n\nexport const UrologySmartHistoryWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const hopcField = useField(SYMPTOMS_FIELD);\n const syndromeField = useField(ACTIVE_SYNDROME_FIELD);\n const { state } = useForm();\n const store = useFormStore();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeUrologySmartHistory(value), [value]);\n const chips = useMemo(() => chipList(state), [state]);\n\n const rawSyndrome = syndromeField.value ?? state.values[ACTIVE_SYNDROME_FIELD];\n const syndrome =\n typeof rawSyndrome === 'string' && rawSyndrome !== '' && rawSyndrome !== 'none'\n ? rawSyndrome\n : 'none';\n\n const showPain =\n chips.includes('pain abdomen flank') ||\n chips.includes('scrotal swelling pain') ||\n syndrome === 'stone' ||\n syndrome === 'scrotal';\n\n const showLUTS =\n syndrome === 'luts' ||\n syndrome === 'retention' ||\n chips.includes('frequency urgency') ||\n chips.includes('poor stream') ||\n chips.includes('acute retention');\n\n const showHaem = syndrome === 'haematuria' || chips.includes('haematuria');\n\n const showSex =\n syndrome === 'ed_infertility' ||\n chips.includes('erectile dysfunction') ||\n chips.includes('infertility concern');\n\n const update = (next: UrologySmartHistoryValue) => {\n setValue(next);\n setTouched();\n };\n\n const ipssTotal = urologyIpssSevenTotal(safe.ipss);\n const ipssBandLabel = urologyIpssBand(ipssTotal);\n const bandClass =\n ipssBandLabel === 'Severe'\n ? 'bg-red-500/15 text-red-700'\n : ipssBandLabel === 'Moderate'\n ? 'bg-amber-500/15 text-amber-800'\n : 'bg-emerald-500/15 text-emerald-800';\n\n const setSocrates = (key: (typeof SOCRATES_KEYS)[number] | 'severity', v: string | number) => {\n if (key === 'severity') {\n const n = typeof v === 'number' ? v : Number(v);\n const sev = Number.isFinite(n) ? Math.min(10, Math.max(0, Math.round(n))) : 0;\n update({ ...safe, socrates: { ...safe.socrates, severity: sev } });\n return;\n }\n update({ ...safe, socrates: { ...safe.socrates, [key]: String(v) } });\n };\n\n const setIpss = (key: keyof UrologySmartHistoryValue['ipss'], v: number) => {\n update({ ...safe, ipss: { ...safe.ipss, [key]: v } });\n };\n\n const [hopcNarrativeLocked, setHopcNarrativeLocked] = useState(false);\n\n useEffect(() => {\n if (hopcNarrativeLocked || disabled) return;\n const next = formatUrologySmartHistoryToSymptomsNarrative(normalizeUrologySmartHistory(value), {\n showPain,\n showLUTS,\n showHaem,\n showSex,\n });\n hopcField.setValue(next);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, hopcNarrativeLocked, showPain, showLUTS, showHaem, showSex, disabled]);\n\n useEffect(() => {\n if (disabled) return;\n const label = syndrome && syndrome !== 'none' ? SYNDROME_LABELS[syndrome] ?? syndrome : '';\n const prev = store.getFieldState(DIAGNOSIS_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n const syndromeLabels = new Set(Object.values(SYNDROME_LABELS));\n const keptLines = prevText\n .split('\\n')\n .map((l) => l.trim())\n .filter(Boolean)\n .filter((l) => !syndromeLabels.has(l));\n\n const nextLines = label ? [...keptLines, label] : keptLines;\n const next = nextLines.join('\\n');\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [DIAGNOSIS_FIELD]: next }, { touch: false });\n }, [disabled, store, syndrome]);\n\n useEffect(() => {\n if (disabled) return;\n const duration = chiefOptionalFieldDisplay(state.values[URO_DURATION_FIELD]);\n const onset = chiefOptionalFieldDisplay(state.values[URO_ONSET_FIELD]);\n const progression = chiefOptionalFieldDisplay(state.values[URO_PROGRESSION_FIELD]);\n\n const prev = store.getFieldState(CHIEF_TEXT_FIELD)?.value;\n const prevText = typeof prev === 'string' ? prev : '';\n\n // `chief_complaints` is a chip-driven suggestion textarea (comma-separated tokens).\n // Keep it comma-delimited so chip toggling keeps working.\n const kept = prevText\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean)\n .filter((t) => {\n const lower = t.toLowerCase();\n return (\n !lower.startsWith('duration:') &&\n !lower.startsWith('onset:') &&\n !lower.startsWith('progression:')\n );\n });\n\n const extra = nonEmptyLines([\n duration ? `Duration: ${duration}` : '',\n onset ? `Onset: ${onset}` : '',\n progression ? `Progression: ${progression}` : '',\n ]);\n\n const next = [...kept, ...extra].join(', ').trim();\n if (prevText.trim() === next.trim()) return;\n store.setValues({ [CHIEF_TEXT_FIELD]: next }, { touch: false });\n }, [\n disabled,\n state.values[URO_DURATION_FIELD],\n state.values[URO_ONSET_FIELD],\n state.values[URO_PROGRESSION_FIELD],\n store,\n ]);\n\n if (!fieldDef) return null;\n\n const theme = getThemeConfig('textarea', fieldDef.theme);\n const wrapperClass =\n theme?.wrapperClassName ?? 'rounded-md overflow-hidden flex flex-col border border-[#D0D0D0]';\n const labelClass = theme?.labelClassName;\n\n const labelContent = (\n <>\n {fieldDef.label}\n <FieldRequiredIndicator fieldDef={fieldDef} />\n </>\n );\n\n const labelEl = theme ? (\n <Label className={labelClass}>{labelContent}</Label>\n ) : (\n <Label className=\"text-sm font-medium\">{labelContent}</Label>\n );\n\n const bodyClass = cn(\n '-mt-1 flex min-w-0 flex-col gap-3 border-t border-[#D0D0D0] bg-white px-3 py-3',\n disabled && 'pointer-events-none opacity-60',\n );\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n\n <div className={bodyClass}>\n <p className=\"text-[11px] text-muted-foreground\">\n Panels follow chief complaint chips and active syndrome (Clearsight SmartHistoryUro).\n </p>\n\n {showPain ? (\n <Panel title=\"SOCRATES — Pain (flank / suprapubic / testicular)\">\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {SOCRATES_KEYS.map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {k}\n </span>\n <Input\n className=\"h-8 text-xs\"\n value={safe.socrates[k]}\n onChange={(e) => setSocrates(k, e.target.value)}\n placeholder={\n k === 'radiation'\n ? 'e.g. groin → ureteric'\n : k === 'character'\n ? 'colicky / dull'\n : ''\n }\n disabled={disabled}\n />\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n Severity 0–10\n </span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={safe.socrates.severity}\n onChange={(e) => setSocrates('severity', e.target.value)}\n disabled={disabled}\n />\n </div>\n </div>\n </Panel>\n ) : null}\n\n {showLUTS ? (\n <Panel\n title=\"IPSS — International Prostate Symptom Score\"\n right={\n <span className={`rounded-full px-2 py-0.5 text-[10px] font-medium ${bandClass}`}>\n {ipssTotal}/35 — {ipssBandLabel}\n </span>\n }\n >\n <div className=\"grid grid-cols-2 gap-2 md:grid-cols-4\">\n {(Object.keys(IPSS_LABELS) as Array<keyof UrologySmartHistoryValue['ipss']>).map((k) => (\n <div key={k} className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n {IPSS_LABELS[k]}\n </span>\n <Select\n value={String(safe.ipss[k])}\n onValueChange={(val) => setIpss(k, Number(val))}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n ))}\n <div className=\"space-y-1\">\n <span className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">\n QoL (0–6)\n </span>\n <Select\n value={String(safe.ipssQoL)}\n onValueChange={(val) =>\n update({ ...safe, ipssQoL: Math.min(6, Math.max(0, Number(val))) })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {[0, 1, 2, 3, 4, 5, 6].map((n) => (\n <SelectItem key={n} value={String(n)}>\n {n}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <p className=\"mt-2 text-[10px] text-muted-foreground\">\n Bands: 0–7 mild · 8–19 moderate · 20–35 severe.{' '}\n <span className=\"font-semibold text-foreground\">IPSS ≥ 20 → consider surgical intervention.</span>\n </p>\n </Panel>\n ) : null}\n\n {showHaem ? (\n <Panel title=\"Haematuria profile\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.present}\n onCheckedChange={(c) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, present: c === true },\n })\n }\n disabled={disabled}\n />\n Present\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Timing</span>\n <Select\n value={safe.haematuria.timing || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n haematuria: { ...safe.haematuria, timing: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Initial\">Initial</SelectItem>\n <SelectItem value=\"Terminal\">Terminal</SelectItem>\n <SelectItem value=\"Total\">Total</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.painful}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, painful: c === true } })\n }\n disabled={disabled}\n />\n Painful\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.haematuria.clots}\n onCheckedChange={(c) =>\n update({ ...safe, haematuria: { ...safe.haematuria, clots: c === true } })\n }\n disabled={disabled}\n />\n Clots\n </label>\n </div>\n <p className=\"mt-2 text-[10px] text-red-600\">\n Painless haematuria = malignancy until proven otherwise.\n </p>\n </Panel>\n ) : null}\n\n {showSex ? (\n <Panel title=\"Sexual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 text-xs md:grid-cols-4\">\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Erectile function</span>\n <Select\n value={safe.sexual.erectile || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, erectile: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Mild\">Mild</SelectItem>\n <SelectItem value=\"Moderate\">Moderate</SelectItem>\n <SelectItem value=\"Severe\">Severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Libido</span>\n <Select\n value={safe.sexual.libido || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, libido: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Reduced\">Reduced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Ejaculation</span>\n <Select\n value={safe.sexual.ejaculation || 'none'}\n onValueChange={(val) =>\n update({\n ...safe,\n sexual: { ...safe.sexual, ejaculation: val === 'none' ? '' : val },\n })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">—</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Premature\">Premature</SelectItem>\n <SelectItem value=\"Retrograde\">Retrograde</SelectItem>\n <SelectItem value=\"Anejaculation\">Anejaculation</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex flex-col gap-1\">\n <span className=\"font-medium\">Infertility (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={safe.sexual.infertilityMonths}\n onChange={(e) =>\n update({\n ...safe,\n sexual: {\n ...safe.sexual,\n infertilityMonths: Math.max(0, Math.round(Number(e.target.value)) || 0),\n },\n })\n }\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <Label className=\"text-xs font-semibold text-slate-700\">\n {hopcField.fieldDef?.label ?? 'History of presenting complaint'}\n </Label>\n <div className=\"flex items-center gap-2\">\n {hopcNarrativeLocked ? (\n <span className=\"rounded bg-amber-50 px-1.5 py-0.5 text-[10px] font-medium text-amber-900 ring-1 ring-amber-200/80\">\n You edited this summary. Use{' '}\n <span className=\"italic\">'Regenerate'</span> to update it from the form.\n </span>\n ) : null}\n {hopcNarrativeLocked ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-7 shrink-0 px-2 text-xs\"\n disabled={disabled || hopcField.disabled}\n onClick={() => {\n setHopcNarrativeLocked(false);\n hopcField.setValue(\n formatUrologySmartHistoryToSymptomsNarrative(\n normalizeUrologySmartHistory(value),\n { showPain, showLUTS, showHaem, showSex },\n ),\n );\n }}\n >\n Regenerate\n </Button>\n ) : null}\n </div>\n </div>\n {hopcNarrativeLocked ? (\n <p className=\"text-[10px] text-muted-foreground\">\n Edit this box anytime. Use Regenerate to replace with fresh text from the structured fields.\n </p>\n ) : null}\n <Textarea\n className=\"min-h-[88px] rounded-md border border-input bg-white text-sm\"\n placeholder=\"Auto-filled from chief complaints + smart history…\"\n value={\n typeof hopcField.value === 'string'\n ? hopcField.value\n : hopcField.value == null\n ? ''\n : String(hopcField.value)\n }\n onChange={(e) => {\n setHopcNarrativeLocked(true);\n hopcField.setValue(e.target.value);\n hopcField.setTouched();\n }}\n disabled={disabled || hopcField.disabled}\n />\n </div>\n </div>\n\n {showError ? <p className=\"px-3 pb-2 text-xs text-red-500\">{error}</p> : null}\n </div>\n );\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJVIU4OBK_cjs = require('./chunk-JVIU4OBK.cjs');
|
|
4
4
|
var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var lucideReact = require('lucide-react');
|
|
@@ -169,8 +169,8 @@ var Vitals = ({
|
|
|
169
169
|
);
|
|
170
170
|
};
|
|
171
171
|
var VitalsWidget = ({ fieldId }) => {
|
|
172
|
-
const { value, setValue, fieldDef } =
|
|
173
|
-
const handlers =
|
|
172
|
+
const { value, setValue, fieldDef } = chunkJVIU4OBK_cjs.useField(fieldId);
|
|
173
|
+
const handlers = chunkJVIU4OBK_cjs.useFieldHandlers(fieldId);
|
|
174
174
|
const [loading, setLoading] = React.useState(false);
|
|
175
175
|
const [error, setError] = React.useState(null);
|
|
176
176
|
console.log("[VitalsWidget] fieldId:", fieldId, "| onFetch present:", !!handlers.onFetch, "| value:", value);
|
|
@@ -204,5 +204,5 @@ var VitalsWidget = ({ fieldId }) => {
|
|
|
204
204
|
};
|
|
205
205
|
|
|
206
206
|
exports.VitalsWidget = VitalsWidget;
|
|
207
|
-
//# sourceMappingURL=VitalsWidget-
|
|
208
|
-
//# sourceMappingURL=VitalsWidget-
|
|
207
|
+
//# sourceMappingURL=VitalsWidget-MGUUJZP4.cjs.map
|
|
208
|
+
//# sourceMappingURL=VitalsWidget-MGUUJZP4.cjs.map
|