formanitor 0.2.1 → 0.2.3
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-RY62UCPM.cjs → AddInvestigationWidget-7FLINCTT.cjs} +7 -7
- package/dist/{AddInvestigationWidget-RY62UCPM.cjs.map → AddInvestigationWidget-7FLINCTT.cjs.map} +1 -1
- package/dist/{AddInvestigationWidget-7UGZQYI5.mjs → AddInvestigationWidget-FABXZDEZ.mjs} +3 -3
- package/dist/{AddInvestigationWidget-7UGZQYI5.mjs.map → AddInvestigationWidget-FABXZDEZ.mjs.map} +1 -1
- package/dist/{AddMedicationWidget-WPI32WAP.cjs → AddMedicationWidget-45T4XVEL.cjs} +6 -6
- package/dist/{AddMedicationWidget-WPI32WAP.cjs.map → AddMedicationWidget-45T4XVEL.cjs.map} +1 -1
- package/dist/{AddMedicationWidget-UG26VMUX.mjs → AddMedicationWidget-B5RXRYBK.mjs} +3 -3
- package/dist/{AddMedicationWidget-UG26VMUX.mjs.map → AddMedicationWidget-B5RXRYBK.mjs.map} +1 -1
- package/dist/{AddProcedureWidget-SQJUKKMK.mjs → AddProcedureWidget-F74WGSFX.mjs} +3 -3
- package/dist/{AddProcedureWidget-SQJUKKMK.mjs.map → AddProcedureWidget-F74WGSFX.mjs.map} +1 -1
- package/dist/{AddProcedureWidget-SF6MTRBV.cjs → AddProcedureWidget-HK7UNRXH.cjs} +6 -6
- package/dist/{AddProcedureWidget-SF6MTRBV.cjs.map → AddProcedureWidget-HK7UNRXH.cjs.map} +1 -1
- package/dist/{BiometryIolWorkupWidget-NL2M7ZAA.mjs → BiometryIolWorkupWidget-5RZP34FF.mjs} +4 -4
- package/dist/{BiometryIolWorkupWidget-NL2M7ZAA.mjs.map → BiometryIolWorkupWidget-5RZP34FF.mjs.map} +1 -1
- package/dist/{BiometryIolWorkupWidget-I5AJOYB2.cjs → BiometryIolWorkupWidget-FWO3IWTF.cjs} +6 -6
- package/dist/{BiometryIolWorkupWidget-I5AJOYB2.cjs.map → BiometryIolWorkupWidget-FWO3IWTF.cjs.map} +1 -1
- package/dist/{DateTimeWidget-LFBB6HOP.mjs → DateTimeWidget-3AUBZYYK.mjs} +4 -4
- package/dist/{DateTimeWidget-LFBB6HOP.mjs.map → DateTimeWidget-3AUBZYYK.mjs.map} +1 -1
- package/dist/{DateTimeWidget-DIDVF2EB.cjs → DateTimeWidget-OS7ER5F6.cjs} +6 -6
- package/dist/{DateTimeWidget-DIDVF2EB.cjs.map → DateTimeWidget-OS7ER5F6.cjs.map} +1 -1
- package/dist/{DateWidget-4ND5TKP2.mjs → DateWidget-KCTE6N5G.mjs} +4 -4
- package/dist/{DateWidget-4ND5TKP2.mjs.map → DateWidget-KCTE6N5G.mjs.map} +1 -1
- package/dist/{DateWidget-BCVR5GDK.cjs → DateWidget-UNLX544Z.cjs} +6 -6
- package/dist/{DateWidget-BCVR5GDK.cjs.map → DateWidget-UNLX544Z.cjs.map} +1 -1
- package/dist/{DiagnosisTextareaWidget-MAOXCXEZ.mjs → DiagnosisTextareaWidget-6UCYCCSB.mjs} +4 -4
- package/dist/{DiagnosisTextareaWidget-MAOXCXEZ.mjs.map → DiagnosisTextareaWidget-6UCYCCSB.mjs.map} +1 -1
- package/dist/{DiagnosisTextareaWidget-E7OQRUMX.cjs → DiagnosisTextareaWidget-XJ47OZYH.cjs} +7 -7
- package/dist/{DiagnosisTextareaWidget-E7OQRUMX.cjs.map → DiagnosisTextareaWidget-XJ47OZYH.cjs.map} +1 -1
- package/dist/{DifferentialDiagnosisWidget-LCY2SA2I.mjs → DifferentialDiagnosisWidget-IZEZVW5F.mjs} +3 -3
- package/dist/{DifferentialDiagnosisWidget-LCY2SA2I.mjs.map → DifferentialDiagnosisWidget-IZEZVW5F.mjs.map} +1 -1
- package/dist/{DifferentialDiagnosisWidget-ANALLNKL.cjs → DifferentialDiagnosisWidget-XESNHNQQ.cjs} +4 -4
- package/dist/{DifferentialDiagnosisWidget-ANALLNKL.cjs.map → DifferentialDiagnosisWidget-XESNHNQQ.cjs.map} +1 -1
- package/dist/{DischargeMedicationOrdersWidget-GYT35W7J.mjs → DischargeMedicationOrdersWidget-KA3HANHE.mjs} +4 -4
- package/dist/{DischargeMedicationOrdersWidget-GYT35W7J.mjs.map → DischargeMedicationOrdersWidget-KA3HANHE.mjs.map} +1 -1
- package/dist/{DischargeMedicationOrdersWidget-ILWNZ7VM.cjs → DischargeMedicationOrdersWidget-WRJRYL6F.cjs} +7 -7
- package/dist/{DischargeMedicationOrdersWidget-ILWNZ7VM.cjs.map → DischargeMedicationOrdersWidget-WRJRYL6F.cjs.map} +1 -1
- package/dist/{EditableTable-VCUNJZEX.cjs → EditableTable-VQ72UEFF.cjs} +4 -4
- package/dist/{EditableTable-VCUNJZEX.cjs.map → EditableTable-VQ72UEFF.cjs.map} +1 -1
- package/dist/{EditableTable-TGCVUBLO.mjs → EditableTable-XFCPKSUY.mjs} +3 -3
- package/dist/{EditableTable-TGCVUBLO.mjs.map → EditableTable-XFCPKSUY.mjs.map} +1 -1
- package/dist/{FollowupWidget-F6FRZO4T.mjs → FollowupWidget-BFZ6P2JE.mjs} +3 -3
- package/dist/{FollowupWidget-F6FRZO4T.mjs.map → FollowupWidget-BFZ6P2JE.mjs.map} +1 -1
- package/dist/{FollowupWidget-NBTOV2ML.cjs → FollowupWidget-MAYTHM2E.cjs} +4 -4
- package/dist/{FollowupWidget-NBTOV2ML.cjs.map → FollowupWidget-MAYTHM2E.cjs.map} +1 -1
- package/dist/{FunctionalImpairmentScoreWidget-5V5SNLTF.cjs → FunctionalImpairmentScoreWidget-FCA4UKQA.cjs} +6 -6
- package/dist/{FunctionalImpairmentScoreWidget-5V5SNLTF.cjs.map → FunctionalImpairmentScoreWidget-FCA4UKQA.cjs.map} +1 -1
- package/dist/{FunctionalImpairmentScoreWidget-QKIZE7KT.mjs → FunctionalImpairmentScoreWidget-TKS6KE7K.mjs} +4 -4
- package/dist/{FunctionalImpairmentScoreWidget-QKIZE7KT.mjs.map → FunctionalImpairmentScoreWidget-TKS6KE7K.mjs.map} +1 -1
- package/dist/{GsExaminationWidget-J4VABGY6.mjs → GsExaminationWidget-ESIEZCP3.mjs} +4 -4
- package/dist/{GsExaminationWidget-J4VABGY6.mjs.map → GsExaminationWidget-ESIEZCP3.mjs.map} +1 -1
- package/dist/{GsExaminationWidget-57SL4BCI.cjs → GsExaminationWidget-KKE5I5GX.cjs} +10 -10
- package/dist/{GsExaminationWidget-57SL4BCI.cjs.map → GsExaminationWidget-KKE5I5GX.cjs.map} +1 -1
- package/dist/{GsGradingWidget-3WTLIP33.mjs → GsGradingWidget-HC4MJ4KJ.mjs} +4 -4
- package/dist/{GsGradingWidget-3WTLIP33.mjs.map → GsGradingWidget-HC4MJ4KJ.mjs.map} +1 -1
- package/dist/{GsGradingWidget-CIXE36HF.cjs → GsGradingWidget-NGCQQVYA.cjs} +12 -12
- package/dist/{GsGradingWidget-CIXE36HF.cjs.map → GsGradingWidget-NGCQQVYA.cjs.map} +1 -1
- package/dist/{GsSmartHistoryWidget-IOGZ6GNS.mjs → GsSmartHistoryWidget-7HYGDU4O.mjs} +4 -4
- package/dist/{GsSmartHistoryWidget-IOGZ6GNS.mjs.map → GsSmartHistoryWidget-7HYGDU4O.mjs.map} +1 -1
- package/dist/{GsSmartHistoryWidget-6Q2IIGDG.cjs → GsSmartHistoryWidget-AAB427Q2.cjs} +12 -12
- package/dist/{GsSmartHistoryWidget-6Q2IIGDG.cjs.map → GsSmartHistoryWidget-AAB427Q2.cjs.map} +1 -1
- package/dist/{HiddenVitalsWidget-HBK7PBPR.cjs → HiddenVitalsWidget-5GFBDDPT.cjs} +6 -6
- package/dist/{HiddenVitalsWidget-HBK7PBPR.cjs.map → HiddenVitalsWidget-5GFBDDPT.cjs.map} +1 -1
- package/dist/{HiddenVitalsWidget-JH3NRZLM.mjs → HiddenVitalsWidget-CIE3KERT.mjs} +4 -4
- package/dist/{HiddenVitalsWidget-JH3NRZLM.mjs.map → HiddenVitalsWidget-CIE3KERT.mjs.map} +1 -1
- package/dist/{LensAssessmentWidget-7WMULFS2.mjs → LensAssessmentWidget-B4OMHTOE.mjs} +4 -4
- package/dist/{LensAssessmentWidget-7WMULFS2.mjs.map → LensAssessmentWidget-B4OMHTOE.mjs.map} +1 -1
- package/dist/{LensAssessmentWidget-GSOOD7BX.cjs → LensAssessmentWidget-SIKJVVAE.cjs} +6 -6
- package/dist/{LensAssessmentWidget-GSOOD7BX.cjs.map → LensAssessmentWidget-SIKJVVAE.cjs.map} +1 -1
- package/dist/{MarMedicationOrdersWidget-3E6GFOR6.cjs → MarMedicationOrdersWidget-767F65K6.cjs} +7 -7
- package/dist/{MarMedicationOrdersWidget-3E6GFOR6.cjs.map → MarMedicationOrdersWidget-767F65K6.cjs.map} +1 -1
- package/dist/{MarMedicationOrdersWidget-QZUVSEB5.mjs → MarMedicationOrdersWidget-LG3WOXN7.mjs} +4 -4
- package/dist/{MarMedicationOrdersWidget-QZUVSEB5.mjs.map → MarMedicationOrdersWidget-LG3WOXN7.mjs.map} +1 -1
- package/dist/{OBGExaminationWidget-POVLALMA.mjs → OBGExaminationWidget-HQKTHSOZ.mjs} +4 -4
- package/dist/{OBGExaminationWidget-POVLALMA.mjs.map → OBGExaminationWidget-HQKTHSOZ.mjs.map} +1 -1
- package/dist/{OBGExaminationWidget-F2ZNSP2M.cjs → OBGExaminationWidget-MRTGWLXJ.cjs} +11 -11
- package/dist/{OBGExaminationWidget-F2ZNSP2M.cjs.map → OBGExaminationWidget-MRTGWLXJ.cjs.map} +1 -1
- package/dist/{OBGPathwayWidget-CGT7Q4T2.mjs → OBGPathwayWidget-X67XKRIH.mjs} +5 -5
- package/dist/{OBGPathwayWidget-CGT7Q4T2.mjs.map → OBGPathwayWidget-X67XKRIH.mjs.map} +1 -1
- package/dist/{OBGPathwayWidget-WCIQENMO.cjs → OBGPathwayWidget-XGN3HEWS.cjs} +17 -17
- package/dist/{OBGPathwayWidget-WCIQENMO.cjs.map → OBGPathwayWidget-XGN3HEWS.cjs.map} +1 -1
- package/dist/{ObstetricHistoryWidget-XU6R7IPP.cjs → ObstetricHistoryWidget-RP7NY4PV.cjs} +12 -12
- package/dist/{ObstetricHistoryWidget-XU6R7IPP.cjs.map → ObstetricHistoryWidget-RP7NY4PV.cjs.map} +1 -1
- package/dist/{ObstetricHistoryWidget-EGVLL4X2.mjs → ObstetricHistoryWidget-Z4VAXH3E.mjs} +4 -4
- package/dist/{ObstetricHistoryWidget-EGVLL4X2.mjs.map → ObstetricHistoryWidget-Z4VAXH3E.mjs.map} +1 -1
- package/dist/{OphthalDiagnosisWidget-G5RCC2QZ.mjs → OphthalDiagnosisWidget-MZYBQTFV.mjs} +3 -3
- package/dist/{OphthalDiagnosisWidget-G5RCC2QZ.mjs.map → OphthalDiagnosisWidget-MZYBQTFV.mjs.map} +1 -1
- package/dist/{OphthalDiagnosisWidget-OQPTHJ7E.cjs → OphthalDiagnosisWidget-UXXYGKD5.cjs} +4 -4
- package/dist/{OphthalDiagnosisWidget-OQPTHJ7E.cjs.map → OphthalDiagnosisWidget-UXXYGKD5.cjs.map} +1 -1
- package/dist/{OphthalmologyWidget-RG2AI6WA.mjs → OphthalmologyWidget-27ZN2E3F.mjs} +3 -3
- package/dist/{OphthalmologyWidget-RG2AI6WA.mjs.map → OphthalmologyWidget-27ZN2E3F.mjs.map} +1 -1
- package/dist/{OphthalmologyWidget-I3BKWOI2.cjs → OphthalmologyWidget-WFSFIHT4.cjs} +4 -4
- package/dist/{OphthalmologyWidget-I3BKWOI2.cjs.map → OphthalmologyWidget-WFSFIHT4.cjs.map} +1 -1
- package/dist/{OrthopedicExamWidget-M4KKU5RC.cjs → OrthopedicExamWidget-ULZTDFXJ.cjs} +6 -6
- package/dist/{OrthopedicExamWidget-M4KKU5RC.cjs.map → OrthopedicExamWidget-ULZTDFXJ.cjs.map} +1 -1
- package/dist/{OrthopedicExamWidget-BBZP6NVT.mjs → OrthopedicExamWidget-WM55M3Y4.mjs} +4 -4
- package/dist/{OrthopedicExamWidget-BBZP6NVT.mjs.map → OrthopedicExamWidget-WM55M3Y4.mjs.map} +1 -1
- package/dist/{PainScaleFlagsWidget-E576R6QB.mjs → PainScaleFlagsWidget-5KN7T4JK.mjs} +4 -4
- package/dist/{PainScaleFlagsWidget-E576R6QB.mjs.map → PainScaleFlagsWidget-5KN7T4JK.mjs.map} +1 -1
- package/dist/{PainScaleFlagsWidget-QHGESXNE.cjs → PainScaleFlagsWidget-IFA3RCEL.cjs} +8 -8
- package/dist/{PainScaleFlagsWidget-QHGESXNE.cjs.map → PainScaleFlagsWidget-IFA3RCEL.cjs.map} +1 -1
- package/dist/{ReferralWidget-J2PWYFDT.cjs → ReferralWidget-27VGZCOQ.cjs} +7 -7
- package/dist/{ReferralWidget-J2PWYFDT.cjs.map → ReferralWidget-27VGZCOQ.cjs.map} +1 -1
- package/dist/{ReferralWidget-UPYWEO5R.mjs → ReferralWidget-GU3JYED2.mjs} +4 -4
- package/dist/{ReferralWidget-UPYWEO5R.mjs.map → ReferralWidget-GU3JYED2.mjs.map} +1 -1
- package/dist/{RichTextWidget-CRQHNVJR.cjs → RichTextWidget-2KLV65QP.cjs} +7 -7
- package/dist/{RichTextWidget-BBCNJPMH.mjs.map → RichTextWidget-2KLV65QP.cjs.map} +1 -1
- package/dist/RichTextWidget-ZBX554ZJ.mjs +11 -0
- package/dist/{RichTextWidget-CRQHNVJR.cjs.map → RichTextWidget-ZBX554ZJ.mjs.map} +1 -1
- package/dist/SmartTextarea-LQDXFCYT.mjs +10 -0
- package/dist/{SmartTextarea-DKWV4R6H.cjs.map → SmartTextarea-LQDXFCYT.mjs.map} +1 -1
- package/dist/SmartTextarea-WITNRNDU.cjs +19 -0
- package/dist/{SmartTextarea-ZTQIW6O2.mjs.map → SmartTextarea-WITNRNDU.cjs.map} +1 -1
- package/dist/{SuggestionTextareaWidget-WCTPWW2E.cjs → SuggestionTextareaWidget-DY6M5JPO.cjs} +18 -18
- package/dist/{SuggestionTextareaWidget-WCTPWW2E.cjs.map → SuggestionTextareaWidget-DY6M5JPO.cjs.map} +1 -1
- package/dist/{SuggestionTextareaWidget-22NR3JWM.mjs → SuggestionTextareaWidget-GQTWCFBG.mjs} +7 -7
- package/dist/{SuggestionTextareaWidget-22NR3JWM.mjs.map → SuggestionTextareaWidget-GQTWCFBG.mjs.map} +1 -1
- package/dist/{SurgicalRiskFlagsWidget-Q5FTWB3M.cjs → SurgicalRiskFlagsWidget-OJKCZIWJ.cjs} +6 -6
- package/dist/{SurgicalRiskFlagsWidget-Q5FTWB3M.cjs.map → SurgicalRiskFlagsWidget-OJKCZIWJ.cjs.map} +1 -1
- package/dist/{SurgicalRiskFlagsWidget-WCAHZKKG.mjs → SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs} +4 -4
- package/dist/{SurgicalRiskFlagsWidget-WCAHZKKG.mjs.map → SurgicalRiskFlagsWidget-ZTQJ6CDF.mjs.map} +1 -1
- package/dist/{UrologyExaminationWidget-JYUGZ5CG.cjs → UrologyExaminationWidget-GQLMV4FB.cjs} +12 -12
- package/dist/{UrologyExaminationWidget-JYUGZ5CG.cjs.map → UrologyExaminationWidget-GQLMV4FB.cjs.map} +1 -1
- package/dist/{UrologyExaminationWidget-QDTD3FJX.mjs → UrologyExaminationWidget-GRBL2SDG.mjs} +4 -4
- package/dist/{UrologyExaminationWidget-QDTD3FJX.mjs.map → UrologyExaminationWidget-GRBL2SDG.mjs.map} +1 -1
- package/dist/{UrologyPathwayWidget-TXZQNGP4.cjs → UrologyPathwayWidget-D6EWSOGW.cjs} +7 -7
- package/dist/{UrologyPathwayWidget-TXZQNGP4.cjs.map → UrologyPathwayWidget-D6EWSOGW.cjs.map} +1 -1
- package/dist/{UrologyPathwayWidget-QTFKUIM7.mjs → UrologyPathwayWidget-PEO5BVQX.mjs} +4 -4
- package/dist/{UrologyPathwayWidget-QTFKUIM7.mjs.map → UrologyPathwayWidget-PEO5BVQX.mjs.map} +1 -1
- package/dist/{UrologySmartHistoryWidget-PBU4QXQJ.mjs → UrologySmartHistoryWidget-BDKRFBYN.mjs} +4 -4
- package/dist/{UrologySmartHistoryWidget-PBU4QXQJ.mjs.map → UrologySmartHistoryWidget-BDKRFBYN.mjs.map} +1 -1
- package/dist/{UrologySmartHistoryWidget-53NATEO3.cjs → UrologySmartHistoryWidget-P3KTQE7L.cjs} +15 -15
- package/dist/{UrologySmartHistoryWidget-53NATEO3.cjs.map → UrologySmartHistoryWidget-P3KTQE7L.cjs.map} +1 -1
- package/dist/{VitalsWidget-BRFUKGNO.mjs → VitalsWidget-63HTXK2M.mjs} +3 -3
- package/dist/{VitalsWidget-BRFUKGNO.mjs.map → VitalsWidget-63HTXK2M.mjs.map} +1 -1
- package/dist/{VitalsWidget-PDCYXNBM.cjs → VitalsWidget-MS3OOZSW.cjs} +5 -5
- package/dist/{VitalsWidget-PDCYXNBM.cjs.map → VitalsWidget-MS3OOZSW.cjs.map} +1 -1
- package/dist/{chunk-ZTT5XJR7.mjs → chunk-2BGJZ44Q.mjs} +3 -2
- package/dist/chunk-2BGJZ44Q.mjs.map +1 -0
- package/dist/{chunk-ULMK3TUI.mjs → chunk-4HDMR2LX.mjs} +3 -3
- package/dist/{chunk-ULMK3TUI.mjs.map → chunk-4HDMR2LX.mjs.map} +1 -1
- package/dist/{chunk-6YX37XBM.cjs → chunk-7DISRJAB.cjs} +4 -4
- package/dist/{chunk-6YX37XBM.cjs.map → chunk-7DISRJAB.cjs.map} +1 -1
- package/dist/{chunk-VZT5YNCD.mjs → chunk-MBZRRYJB.mjs} +4 -4
- package/dist/{chunk-VZT5YNCD.mjs.map → chunk-MBZRRYJB.mjs.map} +1 -1
- package/dist/{chunk-I7TJVWYV.cjs → chunk-ML47UEDU.cjs} +6 -6
- package/dist/{chunk-I7TJVWYV.cjs.map → chunk-ML47UEDU.cjs.map} +1 -1
- package/dist/{chunk-5I2RC47Y.mjs → chunk-Q3K646K4.mjs} +3 -3
- package/dist/{chunk-5I2RC47Y.mjs.map → chunk-Q3K646K4.mjs.map} +1 -1
- package/dist/{chunk-GPU5P3FB.cjs → chunk-RZK44P3C.cjs} +7 -7
- package/dist/{chunk-GPU5P3FB.cjs.map → chunk-RZK44P3C.cjs.map} +1 -1
- package/dist/{chunk-L4CIIT4U.cjs → chunk-T2IKWRV2.cjs} +9 -9
- package/dist/{chunk-L4CIIT4U.cjs.map → chunk-T2IKWRV2.cjs.map} +1 -1
- package/dist/{chunk-7L2JOWGA.mjs → chunk-T3UHPMFX.mjs} +3 -3
- package/dist/{chunk-7L2JOWGA.mjs.map → chunk-T3UHPMFX.mjs.map} +1 -1
- package/dist/{chunk-SHQHDSA4.cjs → chunk-TB33A4PD.cjs} +3 -2
- package/dist/chunk-TB33A4PD.cjs.map +1 -0
- package/dist/{chunk-MQ2JV7HL.cjs → chunk-TVFUWRTE.cjs} +11 -11
- package/dist/{chunk-MQ2JV7HL.cjs.map → chunk-TVFUWRTE.cjs.map} +1 -1
- package/dist/{chunk-BOBX45NY.cjs → chunk-XIUXYHGG.cjs} +5 -5
- package/dist/{chunk-BOBX45NY.cjs.map → chunk-XIUXYHGG.cjs.map} +1 -1
- package/dist/{chunk-YHNI5NIX.mjs → chunk-XLCTFYFD.mjs} +5 -5
- package/dist/{chunk-YHNI5NIX.mjs.map → chunk-XLCTFYFD.mjs.map} +1 -1
- package/dist/{chunk-3KRDT7TX.mjs → chunk-XN2QLBLT.mjs} +5 -5
- package/dist/{chunk-3KRDT7TX.mjs.map → chunk-XN2QLBLT.mjs.map} +1 -1
- package/dist/index.cjs +112 -108
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.mjs +45 -41
- package/dist/index.mjs.map +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.mjs +3 -3
- package/package.json +1 -1
- package/dist/RichTextWidget-BBCNJPMH.mjs +0 -11
- package/dist/SmartTextarea-DKWV4R6H.cjs +0 -19
- package/dist/SmartTextarea-ZTQIW6O2.mjs +0 -10
- package/dist/chunk-SHQHDSA4.cjs.map +0 -1
- package/dist/chunk-ZTT5XJR7.mjs.map +0 -1
package/dist/{OBGExaminationWidget-F2ZNSP2M.cjs.map → OBGExaminationWidget-MRTGWLXJ.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/widgets/OBGExaminationWidget.tsx"],"names":["useField","useForm","useMemo","normalizeObgExamination","useRef","useEffect","parseProseAndChipTokens","OBG_EXAM_ALLOWED_CHIP_LABELS","composeProseAndChips","obgExaminationChipLabels","obgExaminationFromChipLabels","getThemeConfig","jsxs","Fragment","jsx","FieldRequiredIndicator","Label","cn","Checkbox","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Textarea"],"mappings":"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","file":"OBGExaminationWidget-F2ZNSP2M.cjs","sourcesContent":["import React, { useEffect, useMemo, useRef } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { Label } from '../shadcn/label';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\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 {\n normalizeObgExamination,\n obgExaminationChipLabels,\n obgExaminationFromChipLabels,\n OBG_EXAM_ALLOWED_CHIP_LABELS,\n type ObgExaminationValue,\n type ObgUterusSize,\n} from '../../core/obgPathway';\nimport {\n composeProseAndChips,\n parseProseAndChipTokens,\n} from '../../core/suggestionTokens';\n\nconst CLINICAL_EXAMINATION_FIELD = 'clinical_examination';\n\ntype GeneralKey = keyof ObgExaminationValue['general'];\ntype AbdomenKey = keyof ObgExaminationValue['abdomen'];\ntype BreastKey = keyof ObgExaminationValue['breast'];\ntype PelvicKey = keyof ObgExaminationValue['pelvic'];\n\nconst GENERAL_ROWS: { key: GeneralKey; label: string }[] = [\n { key: 'pallor', label: 'Pallor' },\n { key: 'oedema', label: 'Oedema' },\n { key: 'thyroid', label: 'Thyroid' },\n { key: 'hirsutism', label: 'Hirsutism' },\n { key: 'acanthosis', label: 'Acanthosis' },\n];\n\nconst ABDOMEN_ROWS: { key: AbdomenKey; label: string }[] = [\n { key: 'surgicalScars', label: 'Surgical scars' },\n { key: 'massTenderness', label: 'Mass / tenderness' },\n];\n\nconst BREAST_ROWS: { key: BreastKey; label: string }[] = [\n { key: 'lump', label: 'Lump' },\n { key: 'nippleDischarge', label: 'Nipple discharge' },\n { key: 'skinChanges', label: 'Skin changes' },\n { key: 'axillaryNodes', label: 'Axillary nodes' },\n];\n\nconst PELVIC_ROWS: { key: PelvicKey; label: string }[] = [\n { key: 'speculumDone', label: 'Speculum done' },\n { key: 'discharge', label: 'Discharge' },\n { key: 'cervicalErosion', label: 'Cervical erosion' },\n { key: 'cervicalGrowth', label: 'Cervical growth' },\n { key: 'activeBleeding', label: 'Active bleeding' },\n { key: 'bimanualDone', label: 'Bimanual done' },\n { key: 'adnexalMass', label: 'Adnexal mass' },\n { key: 'cmt', label: 'Cervical motion tenderness' },\n];\n\nconst UTERUS_OPTIONS: { value: ObgUterusSize; label: string }[] = [\n { value: '', label: '—' },\n { value: 'Normal', label: 'Normal' },\n { value: 'Bulky', label: 'Bulky' },\n { value: 'Enlarged', label: 'Enlarged' },\n];\n\nexport const OBGExaminationWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const clinicalField = useField(CLINICAL_EXAMINATION_FIELD);\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeObgExamination(value), [value]);\n\n // Tracks user-owned prose (anything above the chip line). When the prose\n // matches what we last auto-wrote (or is empty), structured updates may\n // refresh it. Once the user types, prose is preserved and only the chip\n // line is kept in sync.\n const lastAutoProseRef = useRef<string | null>(null);\n\n useEffect(() => {\n if (lastAutoProseRef.current !== null) return;\n const cur = typeof clinicalField.value === 'string' ? clinicalField.value : '';\n const { prose } = parseProseAndChipTokens(cur, OBG_EXAM_ALLOWED_CHIP_LABELS);\n if (prose === '') lastAutoProseRef.current = '';\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const writeClinical = (next: ObgExaminationValue) => {\n const cur = typeof clinicalField.value === 'string' ? clinicalField.value : '';\n const { prose: curProse } = parseProseAndChipTokens(cur, OBG_EXAM_ALLOWED_CHIP_LABELS);\n const lastAutoProse = lastAutoProseRef.current;\n const proseInput =\n curProse === '' || curProse === lastAutoProse ? '' : curProse;\n const composed = composeProseAndChips(proseInput, obgExaminationChipLabels(next));\n if (composed !== cur) clinicalField.setValue(composed);\n if (proseInput === '' || proseInput === lastAutoProse) {\n lastAutoProseRef.current = '';\n }\n return composed;\n };\n\n const bump = (next: ObgExaminationValue) => {\n if (disabled) {\n setValue(next);\n setTouched();\n return;\n }\n const composed = writeClinical(next);\n setValue({ ...next, examinationNotes: composed });\n setTouched();\n };\n\n const onClinicalChange = (raw: string) => {\n clinicalField.setValue(raw);\n clinicalField.setTouched();\n if (disabled) return;\n const { prose, chips } = parseProseAndChipTokens(raw, OBG_EXAM_ALLOWED_CHIP_LABELS);\n const rebuilt = obgExaminationFromChipLabels(chips, raw);\n setValue(rebuilt);\n setTouched();\n lastAutoProseRef.current = prose === '' ? '' : '\\u0000USER\\u0000';\n };\n\n const toggleGeneral = (key: GeneralKey) =>\n bump({ ...safe, general: { ...safe.general, [key]: !safe.general[key] } });\n const toggleAbdomen = (key: AbdomenKey) =>\n bump({ ...safe, abdomen: { ...safe.abdomen, [key]: !safe.abdomen[key] } });\n const toggleBreast = (key: BreastKey) =>\n bump({ ...safe, breast: { ...safe.breast, [key]: !safe.breast[key] } });\n const togglePelvic = (key: PelvicKey) => {\n const nextPelvic = { ...safe.pelvic, [key]: !safe.pelvic[key] };\n const nextUterus: ObgUterusSize = !nextPelvic.bimanualDone ? '' : safe.uterusSize;\n bump({ ...safe, pelvic: nextPelvic, uterusSize: nextUterus });\n };\n const setUterusSize = (val: ObgUterusSize) => bump({ ...safe, uterusSize: val });\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 {fieldDef.description ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{fieldDef.description}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"grid grid-cols-1 gap-3 text-xs md:grid-cols-2 xl:grid-cols-4\">\n <div className=\"space-y-2\">\n <p className=\"font-semibold text-slate-800\">General</p>\n {GENERAL_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.general[r.key]}\n onCheckedChange={() => toggleGeneral(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n </div>\n <div className=\"space-y-2\">\n <p className=\"font-semibold text-slate-800\">Abdomen</p>\n {ABDOMEN_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.abdomen[r.key]}\n onCheckedChange={() => toggleAbdomen(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n <p className=\"text-[10px] text-muted-foreground\">\n Pregnancy → fundal ht / FHR / lie captured in Antenatal pathway.\n </p>\n </div>\n <div className=\"space-y-2\">\n <p className=\"font-semibold text-slate-800\">Breast</p>\n {BREAST_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.breast[r.key]}\n onCheckedChange={() => toggleBreast(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n </div>\n <div className=\"space-y-2\">\n <p className=\"font-semibold text-slate-800\">Pelvic (consent applied)</p>\n {PELVIC_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.pelvic[r.key]}\n onCheckedChange={() => togglePelvic(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n {safe.pelvic.bimanualDone ? (\n <label className=\"block pt-1\">\n <span className=\"mb-1 block font-medium\">Uterus size (on bimanual)</span>\n <Select\n value={safe.uterusSize === '' ? 'none' : safe.uterusSize}\n onValueChange={(v) =>\n setUterusSize(v === 'none' ? '' : (v as ObgUterusSize))\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n {UTERUS_OPTIONS.map((opt) => (\n <SelectItem key={opt.value || 'none'} value={opt.value === '' ? 'none' : opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </label>\n ) : null}\n </div>\n </div>\n\n <div className=\"space-y-1 border-t border-[#D0D0D0] pt-3\">\n <Label className=\"text-sm font-medium\">\n {clinicalField.fieldDef?.label ?? 'Clinical examination'}\n </Label>\n <Textarea\n className=\"min-h-[80px] text-xs\"\n placeholder=\"Free text on top lines; ticked findings appear as comma-separated chips on the last line. Removing a chip unticks it.\"\n value={\n typeof clinicalField.value === 'string'\n ? clinicalField.value\n : clinicalField.value == null\n ? ''\n : String(clinicalField.value)\n }\n onChange={(e) => onClinicalChange(e.target.value)}\n disabled={disabled || clinicalField.disabled}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/widgets/OBGExaminationWidget.tsx"],"names":["useField","useForm","useMemo","normalizeObgExamination","useRef","useEffect","parseProseAndChipTokens","OBG_EXAM_ALLOWED_CHIP_LABELS","composeProseAndChips","obgExaminationChipLabels","obgExaminationFromChipLabels","getThemeConfig","jsxs","Fragment","jsx","FieldRequiredIndicator","Label","cn","Checkbox","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Textarea"],"mappings":"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","file":"OBGExaminationWidget-MRTGWLXJ.cjs","sourcesContent":["import React, { useEffect, useMemo, useRef } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { Label } from '../shadcn/label';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\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 {\n normalizeObgExamination,\n obgExaminationChipLabels,\n obgExaminationFromChipLabels,\n OBG_EXAM_ALLOWED_CHIP_LABELS,\n type ObgExaminationValue,\n type ObgUterusSize,\n} from '../../core/obgPathway';\nimport {\n composeProseAndChips,\n parseProseAndChipTokens,\n} from '../../core/suggestionTokens';\n\nconst CLINICAL_EXAMINATION_FIELD = 'clinical_examination';\n\ntype GeneralKey = keyof ObgExaminationValue['general'];\ntype AbdomenKey = keyof ObgExaminationValue['abdomen'];\ntype BreastKey = keyof ObgExaminationValue['breast'];\ntype PelvicKey = keyof ObgExaminationValue['pelvic'];\n\nconst GENERAL_ROWS: { key: GeneralKey; label: string }[] = [\n { key: 'pallor', label: 'Pallor' },\n { key: 'oedema', label: 'Oedema' },\n { key: 'thyroid', label: 'Thyroid' },\n { key: 'hirsutism', label: 'Hirsutism' },\n { key: 'acanthosis', label: 'Acanthosis' },\n];\n\nconst ABDOMEN_ROWS: { key: AbdomenKey; label: string }[] = [\n { key: 'surgicalScars', label: 'Surgical scars' },\n { key: 'massTenderness', label: 'Mass / tenderness' },\n];\n\nconst BREAST_ROWS: { key: BreastKey; label: string }[] = [\n { key: 'lump', label: 'Lump' },\n { key: 'nippleDischarge', label: 'Nipple discharge' },\n { key: 'skinChanges', label: 'Skin changes' },\n { key: 'axillaryNodes', label: 'Axillary nodes' },\n];\n\nconst PELVIC_ROWS: { key: PelvicKey; label: string }[] = [\n { key: 'speculumDone', label: 'Speculum done' },\n { key: 'discharge', label: 'Discharge' },\n { key: 'cervicalErosion', label: 'Cervical erosion' },\n { key: 'cervicalGrowth', label: 'Cervical growth' },\n { key: 'activeBleeding', label: 'Active bleeding' },\n { key: 'bimanualDone', label: 'Bimanual done' },\n { key: 'adnexalMass', label: 'Adnexal mass' },\n { key: 'cmt', label: 'Cervical motion tenderness' },\n];\n\nconst UTERUS_OPTIONS: { value: ObgUterusSize; label: string }[] = [\n { value: '', label: '—' },\n { value: 'Normal', label: 'Normal' },\n { value: 'Bulky', label: 'Bulky' },\n { value: 'Enlarged', label: 'Enlarged' },\n];\n\nexport const OBGExaminationWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const clinicalField = useField(CLINICAL_EXAMINATION_FIELD);\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeObgExamination(value), [value]);\n\n // Tracks user-owned prose (anything above the chip line). When the prose\n // matches what we last auto-wrote (or is empty), structured updates may\n // refresh it. Once the user types, prose is preserved and only the chip\n // line is kept in sync.\n const lastAutoProseRef = useRef<string | null>(null);\n\n useEffect(() => {\n if (lastAutoProseRef.current !== null) return;\n const cur = typeof clinicalField.value === 'string' ? clinicalField.value : '';\n const { prose } = parseProseAndChipTokens(cur, OBG_EXAM_ALLOWED_CHIP_LABELS);\n if (prose === '') lastAutoProseRef.current = '';\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const writeClinical = (next: ObgExaminationValue) => {\n const cur = typeof clinicalField.value === 'string' ? clinicalField.value : '';\n const { prose: curProse } = parseProseAndChipTokens(cur, OBG_EXAM_ALLOWED_CHIP_LABELS);\n const lastAutoProse = lastAutoProseRef.current;\n const proseInput =\n curProse === '' || curProse === lastAutoProse ? '' : curProse;\n const composed = composeProseAndChips(proseInput, obgExaminationChipLabels(next));\n if (composed !== cur) clinicalField.setValue(composed);\n if (proseInput === '' || proseInput === lastAutoProse) {\n lastAutoProseRef.current = '';\n }\n return composed;\n };\n\n const bump = (next: ObgExaminationValue) => {\n if (disabled) {\n setValue(next);\n setTouched();\n return;\n }\n const composed = writeClinical(next);\n setValue({ ...next, examinationNotes: composed });\n setTouched();\n };\n\n const onClinicalChange = (raw: string) => {\n clinicalField.setValue(raw);\n clinicalField.setTouched();\n if (disabled) return;\n const { prose, chips } = parseProseAndChipTokens(raw, OBG_EXAM_ALLOWED_CHIP_LABELS);\n const rebuilt = obgExaminationFromChipLabels(chips, raw);\n setValue(rebuilt);\n setTouched();\n lastAutoProseRef.current = prose === '' ? '' : '\\u0000USER\\u0000';\n };\n\n const toggleGeneral = (key: GeneralKey) =>\n bump({ ...safe, general: { ...safe.general, [key]: !safe.general[key] } });\n const toggleAbdomen = (key: AbdomenKey) =>\n bump({ ...safe, abdomen: { ...safe.abdomen, [key]: !safe.abdomen[key] } });\n const toggleBreast = (key: BreastKey) =>\n bump({ ...safe, breast: { ...safe.breast, [key]: !safe.breast[key] } });\n const togglePelvic = (key: PelvicKey) => {\n const nextPelvic = { ...safe.pelvic, [key]: !safe.pelvic[key] };\n const nextUterus: ObgUterusSize = !nextPelvic.bimanualDone ? '' : safe.uterusSize;\n bump({ ...safe, pelvic: nextPelvic, uterusSize: nextUterus });\n };\n const setUterusSize = (val: ObgUterusSize) => bump({ ...safe, uterusSize: val });\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 {fieldDef.description ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{fieldDef.description}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"grid grid-cols-1 gap-3 text-xs md:grid-cols-2 xl:grid-cols-4\">\n <div className=\"space-y-2\">\n <p className=\"font-semibold text-slate-800\">General</p>\n {GENERAL_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.general[r.key]}\n onCheckedChange={() => toggleGeneral(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n </div>\n <div className=\"space-y-2\">\n <p className=\"font-semibold text-slate-800\">Abdomen</p>\n {ABDOMEN_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.abdomen[r.key]}\n onCheckedChange={() => toggleAbdomen(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n <p className=\"text-[10px] text-muted-foreground\">\n Pregnancy → fundal ht / FHR / lie captured in Antenatal pathway.\n </p>\n </div>\n <div className=\"space-y-2\">\n <p className=\"font-semibold text-slate-800\">Breast</p>\n {BREAST_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.breast[r.key]}\n onCheckedChange={() => toggleBreast(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n </div>\n <div className=\"space-y-2\">\n <p className=\"font-semibold text-slate-800\">Pelvic (consent applied)</p>\n {PELVIC_ROWS.map((r) => (\n <label key={r.key} className=\"flex items-center gap-2\">\n <Checkbox\n checked={safe.pelvic[r.key]}\n onCheckedChange={() => togglePelvic(r.key)}\n disabled={disabled}\n />\n {r.label}\n </label>\n ))}\n {safe.pelvic.bimanualDone ? (\n <label className=\"block pt-1\">\n <span className=\"mb-1 block font-medium\">Uterus size (on bimanual)</span>\n <Select\n value={safe.uterusSize === '' ? 'none' : safe.uterusSize}\n onValueChange={(v) =>\n setUterusSize(v === 'none' ? '' : (v as ObgUterusSize))\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"—\" />\n </SelectTrigger>\n <SelectContent>\n {UTERUS_OPTIONS.map((opt) => (\n <SelectItem key={opt.value || 'none'} value={opt.value === '' ? 'none' : opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </label>\n ) : null}\n </div>\n </div>\n\n <div className=\"space-y-1 border-t border-[#D0D0D0] pt-3\">\n <Label className=\"text-sm font-medium\">\n {clinicalField.fieldDef?.label ?? 'Clinical examination'}\n </Label>\n <Textarea\n className=\"min-h-[80px] text-xs\"\n placeholder=\"Free text on top lines; ticked findings appear as comma-separated chips on the last line. Removing a chip unticks it.\"\n value={\n typeof clinicalField.value === 'string'\n ? clinicalField.value\n : clinicalField.value == null\n ? ''\n : String(clinicalField.value)\n }\n onChange={(e) => onClinicalChange(e.target.value)}\n disabled={disabled || clinicalField.disabled}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { useObgSymptomsSync, Panel, ChipRow } from './chunk-
|
|
1
|
+
import { useObgSymptomsSync, Panel, ChipRow } from './chunk-4HDMR2LX.mjs';
|
|
2
2
|
import { normalizeObgPathway, OBG_ZONE_ORDER, obgZoneLabel, OBG_ZONE_ALLOWED_CHIP_LABELS, obgZonesFromChipLabels } from './chunk-IKAKE7TR.mjs';
|
|
3
3
|
import { Checkbox } from './chunk-GNZWSVTB.mjs';
|
|
4
4
|
import { Textarea } from './chunk-4BAKQIPJ.mjs';
|
|
5
5
|
import { getThemeConfig } from './chunk-Y7TIWH4I.mjs';
|
|
6
6
|
import { FieldRequiredIndicator } from './chunk-WYVXXEZI.mjs';
|
|
7
|
-
import { useForm } from './chunk-
|
|
7
|
+
import { useForm } from './chunk-T3UHPMFX.mjs';
|
|
8
8
|
import { Input } from './chunk-VNFBUAZD.mjs';
|
|
9
9
|
import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-AZHTIUOL.mjs';
|
|
10
|
-
import { useField, parseProseAndChipTokens } from './chunk-
|
|
10
|
+
import { useField, parseProseAndChipTokens } from './chunk-2BGJZ44Q.mjs';
|
|
11
11
|
import { Label } from './chunk-HEFZA2AH.mjs';
|
|
12
12
|
import { cn } from './chunk-VPU66PI6.mjs';
|
|
13
13
|
import { useMemo } from 'react';
|
|
@@ -513,5 +513,5 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
513
513
|
};
|
|
514
514
|
|
|
515
515
|
export { OBGPathwayWidget };
|
|
516
|
-
//# sourceMappingURL=OBGPathwayWidget-
|
|
517
|
-
//# sourceMappingURL=OBGPathwayWidget-
|
|
516
|
+
//# sourceMappingURL=OBGPathwayWidget-X67XKRIH.mjs.map
|
|
517
|
+
//# sourceMappingURL=OBGPathwayWidget-X67XKRIH.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/widgets/OBGPathwayWidget.tsx"],"names":[],"mappings":"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","file":"OBGPathwayWidget-CGT7Q4T2.mjs","sourcesContent":["import React, { useMemo } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\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 {\n normalizeObgPathway,\n obgZonesFromChipLabels,\n OBG_ZONE_ALLOWED_CHIP_LABELS,\n OBG_ZONE_ORDER,\n obgZoneLabel,\n type ObgPathwayValue,\n type ObgZone,\n} from '../../core/obgPathway';\nimport { parseProseAndChipTokens } from '../../core/suggestionTokens';\nimport { ChipRow, Panel } from './_obgPanels';\nimport { useObgSymptomsSync } from './_obgSymptomsSync';\n\nexport const OBGPathwayWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const { writeSymptoms, symptomsField } = useObgSymptomsSync();\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeObgPathway(value), [value]);\n\n const update = (next: ObgPathwayValue) => {\n const prev = safe;\n setValue(next);\n setTouched();\n writeSymptoms(prev, next);\n };\n\n const onSymptomsChange = (raw: string) => {\n symptomsField.setValue(raw);\n symptomsField.setTouched();\n if (disabled) return;\n const { chips } = parseProseAndChipTokens(raw, OBG_ZONE_ALLOWED_CHIP_LABELS);\n const nextZones = obgZonesFromChipLabels(chips);\n const sameZones =\n nextZones.length === safe.zones.length &&\n nextZones.every((z, i) => safe.zones[i] === z);\n if (!sameZones) {\n const nextValue: ObgPathwayValue = { ...safe, zones: nextZones };\n setValue(nextValue);\n setTouched();\n }\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 const hasZone = (z: ObgZone) => safe.zones.includes(z);\n const toggleZone = (z: ObgZone) =>\n update({\n ...safe,\n zones: hasZone(z)\n ? safe.zones.filter((x) => x !== z)\n : OBG_ZONE_ORDER.filter((x) => x === z || hasZone(x)),\n });\n\n // ── Menstrual ──\n const m = safe.menstrual;\n const setMenstrual = (patch: Partial<typeof m>) =>\n update({ ...safe, menstrual: { ...m, ...patch } });\n\n // ── Gynae ──\n const gSym = safe.gynae.symptoms;\n const toggleGynae = (key: keyof typeof gSym) =>\n update({ ...safe, gynae: { symptoms: { ...gSym, [key]: !gSym[key] } } });\n\n // ── Infertility ──\n const inf = safe.infertility;\n const setInfertility = (patch: Partial<typeof inf>) =>\n update({ ...safe, infertility: { ...inf, ...patch } });\n\n // ── Post-op ──\n const po = safe.postop;\n const setPostop = (patch: Partial<typeof po>) =>\n update({ ...safe, postop: { ...po, ...patch } });\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n {fieldDef.description ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{fieldDef.description}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"space-y-1\">\n <Label className=\"text-sm font-medium\">\n Primary concern (Consultant zone — multi-select)\n </Label>\n <div className=\"flex flex-wrap gap-2\">\n {OBG_ZONE_ORDER.map((z) => {\n const on = hasZone(z);\n return (\n <button\n key={z}\n type=\"button\"\n onClick={() => toggleZone(z)}\n disabled={disabled}\n aria-pressed={on}\n className={cn(\n 'rounded-full border px-3 py-1 text-[11px] transition-colors',\n on\n ? 'border-rose-500 bg-rose-50 text-rose-700'\n : 'border-slate-300 bg-white text-slate-600 hover:bg-slate-50',\n )}\n >\n {obgZoneLabel(z)}\n </button>\n );\n })}\n </div>\n </div>\n\n {/* MENSTRUAL */}\n {hasZone('menstrual_reproductive') ? (\n <Panel title=\"Menstrual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-4\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Menarche (age)</span>\n <Input\n type=\"number\"\n min={5}\n max={25}\n className=\"h-8 text-xs\"\n value={m.menarcheAge}\n onChange={(e) => setMenstrual({ menarcheAge: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Cycle (days)</span>\n <Input\n type=\"number\"\n min={0}\n max={120}\n className=\"h-8 text-xs\"\n value={m.cycleLength}\n onChange={(e) => setMenstrual({ cycleLength: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Flow (days)</span>\n <Input\n type=\"number\"\n min={0}\n max={30}\n className=\"h-8 text-xs\"\n value={m.flowDays}\n onChange={(e) => setMenstrual({ flowDays: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={m.cycleRegular}\n onCheckedChange={(c) => setMenstrual({ cycleRegular: c === true })}\n disabled={disabled}\n />\n <span>Regular cycle</span>\n </label>\n\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Amount of flow</span>\n <Select\n value={m.amount === '' ? 'none' : m.amount}\n onValueChange={(v) =>\n setMenstrual({ amount: v === 'none' ? '' : (v as typeof m.amount) })\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=\"Scanty\">Scanty</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Heavy\">Heavy</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Dysmenorrhea</span>\n <Select\n value={String(m.dysmenorrhea)}\n onValueChange={(v) =>\n setMenstrual({ dysmenorrhea: (Number(v) as 0 | 1 | 2 | 3) ?? 0 })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"0\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"0\">0 — none</SelectItem>\n <SelectItem value=\"1\">1 — mild</SelectItem>\n <SelectItem value=\"2\">2 — moderate</SelectItem>\n <SelectItem value=\"3\">3 — severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">LMP</span>\n <Input\n type=\"date\"\n className=\"h-8 text-xs\"\n value={m.lmp}\n onChange={(e) => setMenstrual({ lmp: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Menopause status</span>\n <Select\n value={m.menopauseStatus === '' ? 'none' : m.menopauseStatus}\n onValueChange={(v) =>\n setMenstrual({\n menopauseStatus: v === 'none' ? '' : (v as typeof m.menopauseStatus),\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=\"Pre\">Pre</SelectItem>\n <SelectItem value=\"Peri\">Peri</SelectItem>\n <SelectItem value=\"Post\">Post</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n ) : null}\n\n {/* GYNAE */}\n {hasZone('gynaecological') ? (\n <Panel title=\"Gynaecological symptoms\">\n <ChipRow\n options={[\n { key: 'aub', label: 'Abnormal uterine bleeding' },\n { key: 'whiteDischarge', label: 'White discharge' },\n { key: 'pelvicPain', label: 'Pelvic pain' },\n { key: 'dyspareunia', label: 'Dyspareunia' },\n { key: 'urinaryComplaints', label: 'Urinary complaints' },\n { key: 'prolapse', label: 'Prolapse' },\n ]}\n selected={gSym as unknown as Record<string, boolean>}\n onToggle={(k) => toggleGynae(k as keyof typeof gSym)}\n disabled={disabled}\n />\n </Panel>\n ) : null}\n\n {/* INFERTILITY */}\n {hasZone('infertility') ? (\n <div className=\"space-y-3\">\n <Panel title=\"Infertility profile\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Type</span>\n <Select\n value={inf.type === '' ? 'none' : inf.type}\n onValueChange={(v) =>\n setInfertility({ type: v === 'none' ? '' : (v as typeof inf.type) })\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=\"Primary\">Primary</SelectItem>\n <SelectItem value=\"Secondary\">Secondary</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Duration (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={inf.durationMonths}\n onChange={(e) =>\n setInfertility({ durationMonths: Number(e.target.value) || 0 })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-1\">\n <span className=\"block font-medium\">Previous treatments</span>\n <Input\n className=\"h-8 text-xs\"\n placeholder=\"IUI ×2, OI cycles…\"\n value={inf.previousTreatments}\n onChange={(e) => setInfertility({ previousTreatments: e.target.value })}\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Female partner evaluation\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Ovulation status</span>\n <Select\n value={inf.female.ovulation === '' ? 'none' : inf.female.ovulation}\n onValueChange={(v) =>\n setInfertility({\n female: {\n ...inf.female,\n ovulation: (v === 'none' ? '' : v) as typeof inf.female.ovulation,\n },\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=\"Ovulatory\">Ovulatory</SelectItem>\n <SelectItem value=\"Anovulatory\">Anovulatory</SelectItem>\n <SelectItem value=\"Unknown\">Unknown</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={inf.female.pcosFeatures}\n onCheckedChange={(c) =>\n setInfertility({\n female: { ...inf.female, pcosFeatures: c === true },\n })\n }\n disabled={disabled}\n />\n <span>PCOS features</span>\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={inf.female.endometriosisSuspicion}\n onCheckedChange={(c) =>\n setInfertility({\n female: { ...inf.female, endometriosisSuspicion: c === true },\n })\n }\n disabled={disabled}\n />\n <span>Endometriosis suspicion</span>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Male partner details\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Age</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={inf.male.age}\n onChange={(e) =>\n setInfertility({ male: { ...inf.male, age: Number(e.target.value) || 0 } })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Semen analysis</span>\n <Select\n value={inf.male.semenAnalysis === '' ? 'none' : inf.male.semenAnalysis}\n onValueChange={(v) =>\n setInfertility({\n male: {\n ...inf.male,\n semenAnalysis: (v === 'none' ? '' : v) as typeof inf.male.semenAnalysis,\n },\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=\"Abnormal\">Abnormal</SelectItem>\n <SelectItem value=\"Pending\">Pending</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Investigations\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n {(\n [\n { key: 'amh', label: 'AMH' },\n { key: 'fshLh', label: 'FSH / LH' },\n { key: 'prolactin', label: 'Prolactin' },\n { key: 'tsh', label: 'TSH' },\n { key: 'tvs', label: 'TVS findings' },\n { key: 'hsg', label: 'HSG findings' },\n ] as const\n ).map((row) => (\n <label key={row.key} className=\"space-y-1\">\n <span className=\"block font-medium\">{row.label}</span>\n <Input\n className=\"h-8 text-xs\"\n value={inf.investigations[row.key]}\n onChange={(e) =>\n setInfertility({\n investigations: { ...inf.investigations, [row.key]: e.target.value },\n })\n }\n disabled={disabled}\n />\n </label>\n ))}\n </div>\n </Panel>\n </div>\n ) : null}\n\n {/* POST-OP */}\n {hasZone('postoperative') ? (\n <Panel title=\"Post-operative follow-up\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Date of surgery</span>\n <Input\n type=\"date\"\n className=\"h-8 text-xs\"\n value={po.surgeryDate}\n onChange={(e) => setPostop({ surgeryDate: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-2\">\n <span className=\"block font-medium\">Procedure performed</span>\n <Input\n className=\"h-8 text-xs\"\n value={po.procedure}\n onChange={(e) => setPostop({ procedure: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-2\">\n <span className=\"block font-medium\">Histopathology result</span>\n <Input\n className=\"h-8 text-xs\"\n value={po.histopathology}\n onChange={(e) => setPostop({ histopathology: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Wound status</span>\n <Select\n value={po.woundStatus === '' ? 'none' : po.woundStatus}\n onValueChange={(v) =>\n setPostop({\n woundStatus: (v === 'none' ? '' : v) as typeof po.woundStatus,\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=\"Healthy\">Healthy</SelectItem>\n <SelectItem value=\"Erythema\">Erythema</SelectItem>\n <SelectItem value=\"Discharge\">Discharge</SelectItem>\n <SelectItem value=\"Dehisced\">Dehisced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Pain score (0-10)</span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={po.painScore}\n onChange={(e) =>\n setPostop({\n painScore: Math.max(0, Math.min(10, Number(e.target.value) || 0)),\n })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-3\">\n <span className=\"block font-medium\">Complications</span>\n <Textarea\n className=\"min-h-[60px] text-xs\"\n value={po.complications}\n onChange={(e) => setPostop({ complications: e.target.value })}\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1 border-t border-[#D0D0D0] pt-3\">\n <Label className=\"text-sm font-medium\">\n {symptomsField.fieldDef?.label ?? 'History of Presenting Complaint'}\n </Label>\n <Textarea\n className=\"min-h-[70px] text-xs\"\n placeholder={\n safe.zones.length > 0\n ? 'Free text on top lines; selected zones appear as comma-separated chips on the last line. Removing a chip closes its panel.'\n : 'Free-text history, or select pathway zones above to add chips on the last line.'\n }\n value={\n typeof symptomsField.value === 'string'\n ? symptomsField.value\n : symptomsField.value == null\n ? ''\n : String(symptomsField.value)\n }\n onChange={(e) => onSymptomsChange(e.target.value)}\n disabled={disabled || symptomsField.disabled}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/widgets/OBGPathwayWidget.tsx"],"names":[],"mappings":"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","file":"OBGPathwayWidget-X67XKRIH.mjs","sourcesContent":["import React, { useMemo } from 'react';\nimport { useField } from '../../react/useField';\nimport { useForm } from '../../react/useForm';\nimport { Label } from '../shadcn/label';\nimport { Input } from '../shadcn/input';\nimport { Textarea } from '../shadcn/textarea';\nimport { Checkbox } from '../shadcn/checkbox';\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 {\n normalizeObgPathway,\n obgZonesFromChipLabels,\n OBG_ZONE_ALLOWED_CHIP_LABELS,\n OBG_ZONE_ORDER,\n obgZoneLabel,\n type ObgPathwayValue,\n type ObgZone,\n} from '../../core/obgPathway';\nimport { parseProseAndChipTokens } from '../../core/suggestionTokens';\nimport { ChipRow, Panel } from './_obgPanels';\nimport { useObgSymptomsSync } from './_obgSymptomsSync';\n\nexport const OBGPathwayWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, setTouched, error, touched, disabled } = useField(fieldId);\n const { writeSymptoms, symptomsField } = useObgSymptomsSync();\n const { state } = useForm();\n const showError = !!error && (touched || state.submitAttempted);\n\n const safe = useMemo(() => normalizeObgPathway(value), [value]);\n\n const update = (next: ObgPathwayValue) => {\n const prev = safe;\n setValue(next);\n setTouched();\n writeSymptoms(prev, next);\n };\n\n const onSymptomsChange = (raw: string) => {\n symptomsField.setValue(raw);\n symptomsField.setTouched();\n if (disabled) return;\n const { chips } = parseProseAndChipTokens(raw, OBG_ZONE_ALLOWED_CHIP_LABELS);\n const nextZones = obgZonesFromChipLabels(chips);\n const sameZones =\n nextZones.length === safe.zones.length &&\n nextZones.every((z, i) => safe.zones[i] === z);\n if (!sameZones) {\n const nextValue: ObgPathwayValue = { ...safe, zones: nextZones };\n setValue(nextValue);\n setTouched();\n }\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 const hasZone = (z: ObgZone) => safe.zones.includes(z);\n const toggleZone = (z: ObgZone) =>\n update({\n ...safe,\n zones: hasZone(z)\n ? safe.zones.filter((x) => x !== z)\n : OBG_ZONE_ORDER.filter((x) => x === z || hasZone(x)),\n });\n\n // ── Menstrual ──\n const m = safe.menstrual;\n const setMenstrual = (patch: Partial<typeof m>) =>\n update({ ...safe, menstrual: { ...m, ...patch } });\n\n // ── Gynae ──\n const gSym = safe.gynae.symptoms;\n const toggleGynae = (key: keyof typeof gSym) =>\n update({ ...safe, gynae: { symptoms: { ...gSym, [key]: !gSym[key] } } });\n\n // ── Infertility ──\n const inf = safe.infertility;\n const setInfertility = (patch: Partial<typeof inf>) =>\n update({ ...safe, infertility: { ...inf, ...patch } });\n\n // ── Post-op ──\n const po = safe.postop;\n const setPostop = (patch: Partial<typeof po>) =>\n update({ ...safe, postop: { ...po, ...patch } });\n\n return (\n <div className={cn('w-full min-w-0', wrapperClass)}>\n {labelEl}\n {fieldDef.description ? (\n <p className=\"px-3 pt-2 text-[11px] text-muted-foreground\">{fieldDef.description}</p>\n ) : null}\n\n <div className={bodyClass}>\n {showError ? <p className=\"text-xs text-red-600\">{error}</p> : null}\n\n <div className=\"space-y-1\">\n <Label className=\"text-sm font-medium\">\n Primary concern (Consultant zone — multi-select)\n </Label>\n <div className=\"flex flex-wrap gap-2\">\n {OBG_ZONE_ORDER.map((z) => {\n const on = hasZone(z);\n return (\n <button\n key={z}\n type=\"button\"\n onClick={() => toggleZone(z)}\n disabled={disabled}\n aria-pressed={on}\n className={cn(\n 'rounded-full border px-3 py-1 text-[11px] transition-colors',\n on\n ? 'border-rose-500 bg-rose-50 text-rose-700'\n : 'border-slate-300 bg-white text-slate-600 hover:bg-slate-50',\n )}\n >\n {obgZoneLabel(z)}\n </button>\n );\n })}\n </div>\n </div>\n\n {/* MENSTRUAL */}\n {hasZone('menstrual_reproductive') ? (\n <Panel title=\"Menstrual & reproductive history\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-4\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Menarche (age)</span>\n <Input\n type=\"number\"\n min={5}\n max={25}\n className=\"h-8 text-xs\"\n value={m.menarcheAge}\n onChange={(e) => setMenstrual({ menarcheAge: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Cycle (days)</span>\n <Input\n type=\"number\"\n min={0}\n max={120}\n className=\"h-8 text-xs\"\n value={m.cycleLength}\n onChange={(e) => setMenstrual({ cycleLength: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Flow (days)</span>\n <Input\n type=\"number\"\n min={0}\n max={30}\n className=\"h-8 text-xs\"\n value={m.flowDays}\n onChange={(e) => setMenstrual({ flowDays: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={m.cycleRegular}\n onCheckedChange={(c) => setMenstrual({ cycleRegular: c === true })}\n disabled={disabled}\n />\n <span>Regular cycle</span>\n </label>\n\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Amount of flow</span>\n <Select\n value={m.amount === '' ? 'none' : m.amount}\n onValueChange={(v) =>\n setMenstrual({ amount: v === 'none' ? '' : (v as typeof m.amount) })\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=\"Scanty\">Scanty</SelectItem>\n <SelectItem value=\"Normal\">Normal</SelectItem>\n <SelectItem value=\"Heavy\">Heavy</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Dysmenorrhea</span>\n <Select\n value={String(m.dysmenorrhea)}\n onValueChange={(v) =>\n setMenstrual({ dysmenorrhea: (Number(v) as 0 | 1 | 2 | 3) ?? 0 })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"0\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"0\">0 — none</SelectItem>\n <SelectItem value=\"1\">1 — mild</SelectItem>\n <SelectItem value=\"2\">2 — moderate</SelectItem>\n <SelectItem value=\"3\">3 — severe</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">LMP</span>\n <Input\n type=\"date\"\n className=\"h-8 text-xs\"\n value={m.lmp}\n onChange={(e) => setMenstrual({ lmp: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Menopause status</span>\n <Select\n value={m.menopauseStatus === '' ? 'none' : m.menopauseStatus}\n onValueChange={(v) =>\n setMenstrual({\n menopauseStatus: v === 'none' ? '' : (v as typeof m.menopauseStatus),\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=\"Pre\">Pre</SelectItem>\n <SelectItem value=\"Peri\">Peri</SelectItem>\n <SelectItem value=\"Post\">Post</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n ) : null}\n\n {/* GYNAE */}\n {hasZone('gynaecological') ? (\n <Panel title=\"Gynaecological symptoms\">\n <ChipRow\n options={[\n { key: 'aub', label: 'Abnormal uterine bleeding' },\n { key: 'whiteDischarge', label: 'White discharge' },\n { key: 'pelvicPain', label: 'Pelvic pain' },\n { key: 'dyspareunia', label: 'Dyspareunia' },\n { key: 'urinaryComplaints', label: 'Urinary complaints' },\n { key: 'prolapse', label: 'Prolapse' },\n ]}\n selected={gSym as unknown as Record<string, boolean>}\n onToggle={(k) => toggleGynae(k as keyof typeof gSym)}\n disabled={disabled}\n />\n </Panel>\n ) : null}\n\n {/* INFERTILITY */}\n {hasZone('infertility') ? (\n <div className=\"space-y-3\">\n <Panel title=\"Infertility profile\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Type</span>\n <Select\n value={inf.type === '' ? 'none' : inf.type}\n onValueChange={(v) =>\n setInfertility({ type: v === 'none' ? '' : (v as typeof inf.type) })\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=\"Primary\">Primary</SelectItem>\n <SelectItem value=\"Secondary\">Secondary</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Duration (months)</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={inf.durationMonths}\n onChange={(e) =>\n setInfertility({ durationMonths: Number(e.target.value) || 0 })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-1\">\n <span className=\"block font-medium\">Previous treatments</span>\n <Input\n className=\"h-8 text-xs\"\n placeholder=\"IUI ×2, OI cycles…\"\n value={inf.previousTreatments}\n onChange={(e) => setInfertility({ previousTreatments: e.target.value })}\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Female partner evaluation\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Ovulation status</span>\n <Select\n value={inf.female.ovulation === '' ? 'none' : inf.female.ovulation}\n onValueChange={(v) =>\n setInfertility({\n female: {\n ...inf.female,\n ovulation: (v === 'none' ? '' : v) as typeof inf.female.ovulation,\n },\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=\"Ovulatory\">Ovulatory</SelectItem>\n <SelectItem value=\"Anovulatory\">Anovulatory</SelectItem>\n <SelectItem value=\"Unknown\">Unknown</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={inf.female.pcosFeatures}\n onCheckedChange={(c) =>\n setInfertility({\n female: { ...inf.female, pcosFeatures: c === true },\n })\n }\n disabled={disabled}\n />\n <span>PCOS features</span>\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={inf.female.endometriosisSuspicion}\n onCheckedChange={(c) =>\n setInfertility({\n female: { ...inf.female, endometriosisSuspicion: c === true },\n })\n }\n disabled={disabled}\n />\n <span>Endometriosis suspicion</span>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Male partner details\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Age</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={inf.male.age}\n onChange={(e) =>\n setInfertility({ male: { ...inf.male, age: Number(e.target.value) || 0 } })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Semen analysis</span>\n <Select\n value={inf.male.semenAnalysis === '' ? 'none' : inf.male.semenAnalysis}\n onValueChange={(v) =>\n setInfertility({\n male: {\n ...inf.male,\n semenAnalysis: (v === 'none' ? '' : v) as typeof inf.male.semenAnalysis,\n },\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=\"Abnormal\">Abnormal</SelectItem>\n <SelectItem value=\"Pending\">Pending</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Investigations\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n {(\n [\n { key: 'amh', label: 'AMH' },\n { key: 'fshLh', label: 'FSH / LH' },\n { key: 'prolactin', label: 'Prolactin' },\n { key: 'tsh', label: 'TSH' },\n { key: 'tvs', label: 'TVS findings' },\n { key: 'hsg', label: 'HSG findings' },\n ] as const\n ).map((row) => (\n <label key={row.key} className=\"space-y-1\">\n <span className=\"block font-medium\">{row.label}</span>\n <Input\n className=\"h-8 text-xs\"\n value={inf.investigations[row.key]}\n onChange={(e) =>\n setInfertility({\n investigations: { ...inf.investigations, [row.key]: e.target.value },\n })\n }\n disabled={disabled}\n />\n </label>\n ))}\n </div>\n </Panel>\n </div>\n ) : null}\n\n {/* POST-OP */}\n {hasZone('postoperative') ? (\n <Panel title=\"Post-operative follow-up\">\n <div className=\"grid grid-cols-2 gap-3 md:grid-cols-3\">\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Date of surgery</span>\n <Input\n type=\"date\"\n className=\"h-8 text-xs\"\n value={po.surgeryDate}\n onChange={(e) => setPostop({ surgeryDate: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-2\">\n <span className=\"block font-medium\">Procedure performed</span>\n <Input\n className=\"h-8 text-xs\"\n value={po.procedure}\n onChange={(e) => setPostop({ procedure: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-2\">\n <span className=\"block font-medium\">Histopathology result</span>\n <Input\n className=\"h-8 text-xs\"\n value={po.histopathology}\n onChange={(e) => setPostop({ histopathology: e.target.value })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Wound status</span>\n <Select\n value={po.woundStatus === '' ? 'none' : po.woundStatus}\n onValueChange={(v) =>\n setPostop({\n woundStatus: (v === 'none' ? '' : v) as typeof po.woundStatus,\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=\"Healthy\">Healthy</SelectItem>\n <SelectItem value=\"Erythema\">Erythema</SelectItem>\n <SelectItem value=\"Discharge\">Discharge</SelectItem>\n <SelectItem value=\"Dehisced\">Dehisced</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Pain score (0-10)</span>\n <Input\n type=\"number\"\n min={0}\n max={10}\n className=\"h-8 text-xs\"\n value={po.painScore}\n onChange={(e) =>\n setPostop({\n painScore: Math.max(0, Math.min(10, Number(e.target.value) || 0)),\n })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1 md:col-span-3\">\n <span className=\"block font-medium\">Complications</span>\n <Textarea\n className=\"min-h-[60px] text-xs\"\n value={po.complications}\n onChange={(e) => setPostop({ complications: e.target.value })}\n disabled={disabled}\n />\n </label>\n </div>\n </Panel>\n ) : null}\n\n <div className=\"space-y-1 border-t border-[#D0D0D0] pt-3\">\n <Label className=\"text-sm font-medium\">\n {symptomsField.fieldDef?.label ?? 'History of Presenting Complaint'}\n </Label>\n <Textarea\n className=\"min-h-[70px] text-xs\"\n placeholder={\n safe.zones.length > 0\n ? 'Free text on top lines; selected zones appear as comma-separated chips on the last line. Removing a chip closes its panel.'\n : 'Free-text history, or select pathway zones above to add chips on the last line.'\n }\n value={\n typeof symptomsField.value === 'string'\n ? symptomsField.value\n : symptomsField.value == null\n ? ''\n : String(symptomsField.value)\n }\n onChange={(e) => onSymptomsChange(e.target.value)}\n disabled={disabled || symptomsField.disabled}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkML47UEDU_cjs = require('./chunk-ML47UEDU.cjs');
|
|
4
4
|
var chunkQKJ7BQSR_cjs = require('./chunk-QKJ7BQSR.cjs');
|
|
5
5
|
var chunkPZBJYPWW_cjs = require('./chunk-PZBJYPWW.cjs');
|
|
6
6
|
var chunkPHADAQSH_cjs = require('./chunk-PHADAQSH.cjs');
|
|
7
7
|
var chunkP62377LB_cjs = require('./chunk-P62377LB.cjs');
|
|
8
8
|
var chunk5E3APMY6_cjs = require('./chunk-5E3APMY6.cjs');
|
|
9
|
-
var
|
|
9
|
+
var chunk7DISRJAB_cjs = require('./chunk-7DISRJAB.cjs');
|
|
10
10
|
var chunkTJHG5WHX_cjs = require('./chunk-TJHG5WHX.cjs');
|
|
11
11
|
var chunk4KSZUIJE_cjs = require('./chunk-4KSZUIJE.cjs');
|
|
12
|
-
var
|
|
12
|
+
var chunkTB33A4PD_cjs = require('./chunk-TB33A4PD.cjs');
|
|
13
13
|
var chunkJMGUUFOJ_cjs = require('./chunk-JMGUUFOJ.cjs');
|
|
14
14
|
var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
|
|
15
15
|
var react = require('react');
|
|
16
16
|
var jsxRuntime = require('react/jsx-runtime');
|
|
17
17
|
|
|
18
18
|
var OBGPathwayWidget = ({ fieldId }) => {
|
|
19
|
-
const { fieldDef, value, setValue, setTouched, error, touched, disabled } =
|
|
20
|
-
const { writeSymptoms, symptomsField } =
|
|
21
|
-
const { state } =
|
|
19
|
+
const { fieldDef, value, setValue, setTouched, error, touched, disabled } = chunkTB33A4PD_cjs.useField(fieldId);
|
|
20
|
+
const { writeSymptoms, symptomsField } = chunkML47UEDU_cjs.useObgSymptomsSync();
|
|
21
|
+
const { state } = chunk7DISRJAB_cjs.useForm();
|
|
22
22
|
const showError = !!error && (touched || state.submitAttempted);
|
|
23
23
|
const safe = react.useMemo(() => chunkQKJ7BQSR_cjs.normalizeObgPathway(value), [value]);
|
|
24
24
|
const update = (next) => {
|
|
@@ -31,7 +31,7 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
31
31
|
symptomsField.setValue(raw);
|
|
32
32
|
symptomsField.setTouched();
|
|
33
33
|
if (disabled) return;
|
|
34
|
-
const { chips } =
|
|
34
|
+
const { chips } = chunkTB33A4PD_cjs.parseProseAndChipTokens(raw, chunkQKJ7BQSR_cjs.OBG_ZONE_ALLOWED_CHIP_LABELS);
|
|
35
35
|
const nextZones = chunkQKJ7BQSR_cjs.obgZonesFromChipLabels(chips);
|
|
36
36
|
const sameZones = nextZones.length === safe.zones.length && nextZones.every((z, i) => safe.zones[i] === z);
|
|
37
37
|
if (!sameZones) {
|
|
@@ -92,7 +92,7 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
92
92
|
);
|
|
93
93
|
}) })
|
|
94
94
|
] }),
|
|
95
|
-
hasZone("menstrual_reproductive") ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
95
|
+
hasZone("menstrual_reproductive") ? /* @__PURE__ */ jsxRuntime.jsx(chunkML47UEDU_cjs.Panel, { title: "Menstrual & reproductive history", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-4", children: [
|
|
96
96
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "space-y-1", children: [
|
|
97
97
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block font-medium", children: "Menarche (age)" }),
|
|
98
98
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -225,8 +225,8 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
225
225
|
)
|
|
226
226
|
] })
|
|
227
227
|
] }) }) : null,
|
|
228
|
-
hasZone("gynaecological") ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
229
|
-
|
|
228
|
+
hasZone("gynaecological") ? /* @__PURE__ */ jsxRuntime.jsx(chunkML47UEDU_cjs.Panel, { title: "Gynaecological symptoms", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
229
|
+
chunkML47UEDU_cjs.ChipRow,
|
|
230
230
|
{
|
|
231
231
|
options: [
|
|
232
232
|
{ key: "aub", label: "Abnormal uterine bleeding" },
|
|
@@ -242,7 +242,7 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
242
242
|
}
|
|
243
243
|
) }) : null,
|
|
244
244
|
hasZone("infertility") ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
245
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
245
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkML47UEDU_cjs.Panel, { title: "Infertility profile", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
|
|
246
246
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "space-y-1", children: [
|
|
247
247
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block font-medium", children: "Type" }),
|
|
248
248
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -290,7 +290,7 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
290
290
|
)
|
|
291
291
|
] })
|
|
292
292
|
] }) }),
|
|
293
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
293
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkML47UEDU_cjs.Panel, { title: "Female partner evaluation", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
|
|
294
294
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "space-y-1", children: [
|
|
295
295
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block font-medium", children: "Ovulation status" }),
|
|
296
296
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -343,7 +343,7 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
343
343
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Endometriosis suspicion" })
|
|
344
344
|
] })
|
|
345
345
|
] }) }),
|
|
346
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
346
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkML47UEDU_cjs.Panel, { title: "Male partner details", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
|
|
347
347
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "space-y-1", children: [
|
|
348
348
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block font-medium", children: "Age" }),
|
|
349
349
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -384,7 +384,7 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
384
384
|
)
|
|
385
385
|
] })
|
|
386
386
|
] }) }),
|
|
387
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
387
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkML47UEDU_cjs.Panel, { title: "Investigations", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
|
|
388
388
|
{ key: "amh", label: "AMH" },
|
|
389
389
|
{ key: "fshLh", label: "FSH / LH" },
|
|
390
390
|
{ key: "prolactin", label: "Prolactin" },
|
|
@@ -406,7 +406,7 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
406
406
|
)
|
|
407
407
|
] }, row.key)) }) })
|
|
408
408
|
] }) : null,
|
|
409
|
-
hasZone("postoperative") ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
409
|
+
hasZone("postoperative") ? /* @__PURE__ */ jsxRuntime.jsx(chunkML47UEDU_cjs.Panel, { title: "Post-operative follow-up", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-3", children: [
|
|
410
410
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "space-y-1", children: [
|
|
411
411
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block font-medium", children: "Date of surgery" }),
|
|
412
412
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -515,5 +515,5 @@ var OBGPathwayWidget = ({ fieldId }) => {
|
|
|
515
515
|
};
|
|
516
516
|
|
|
517
517
|
exports.OBGPathwayWidget = OBGPathwayWidget;
|
|
518
|
-
//# sourceMappingURL=OBGPathwayWidget-
|
|
519
|
-
//# sourceMappingURL=OBGPathwayWidget-
|
|
518
|
+
//# sourceMappingURL=OBGPathwayWidget-XGN3HEWS.cjs.map
|
|
519
|
+
//# sourceMappingURL=OBGPathwayWidget-XGN3HEWS.cjs.map
|