formanitor 0.2.7 → 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 +133 -129
- package/dist/index.d.cts +6 -3
- package/dist/index.d.ts +6 -3
- package/dist/index.mjs +51 -51
- 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
package/dist/{ObstetricHistoryWidget-OOWCVFRB.cjs.map → ObstetricHistoryWidget-XGZM2HL4.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/widgets/AntenatalPanels.tsx","../src/ui/widgets/ObstetricHistoryWidget.tsx"],"names":["useField","useObgSymptomsSync","useMemo","normalizeObgPathway","useState","useRef","useEffect","jsxs","jsx","Panel","Input","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","ChipRow","Checkbox","Card","cn","CardHeader","CardTitle","CardContent","Label","Textarea"],"mappings":"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","file":"ObstetricHistoryWidget-OOWCVFRB.cjs","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { Input } from '../shadcn/input';\nimport { Checkbox } from '../shadcn/checkbox';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../shadcn/select';\nimport {\n normalizeObgPathway,\n type ObgAntenatal,\n type ObgPathwayValue,\n} from '../../core/obgPathway';\nimport { ChipRow, Panel } from './_obgPanels';\nimport { useObgSymptomsSync } from './_obgSymptomsSync';\n\nconst OBG_PATHWAY_FIELD = 'obg_pathway';\n\n/**\n * Antenatal-specific panels (current pregnancy, symptoms, examination,\n * investigations) that live on the `obg_pathway` field but render under the\n * Obstetric-history widget when the antenatal zone is active. Designed to be\n * embedded into ObstetricHistoryWidget so that pregnancy-related capture lives\n * in one visual block.\n *\n * The component mirrors the antenatal subtree of `obg_pathway` into local\n * state so inputs update immediately on keystroke, even though `useField`'s\n * external-store subscription can lag re-renders for sibling components in\n * React 18 concurrent mode. Writes flow through to the form store on the same\n * tick.\n */\nexport const AntenatalPanels: React.FC = () => {\n const pathwayField = useField(OBG_PATHWAY_FIELD);\n const { writeSymptoms } = useObgSymptomsSync();\n\n // If the form has no obg_pathway field (non-OBG templates), render nothing.\n const hasField = !!pathwayField.fieldDef;\n\n const safe = useMemo<ObgPathwayValue>(\n () => normalizeObgPathway(pathwayField.value),\n [pathwayField.value],\n );\n\n // Local mirror of the antenatal subtree. Inputs read from this; writes both\n // update local state (for an instant re-render) and the form store.\n const [ant, setAnt] = useState<ObgAntenatal>(() => safe.antenatal);\n\n // Track the last antenatal we wrote to the store so we can ignore the\n // resulting \"echo\" snapshot from the subscription and only resync local\n // state when the antenatal subtree changes from outside (AI prefill, reset,\n // chip toggle that only changes zones, …).\n const lastWrittenRef = useRef<ObgAntenatal>(safe.antenatal);\n\n useEffect(() => {\n if (safe.antenatal === lastWrittenRef.current) return;\n if (JSON.stringify(safe.antenatal) === JSON.stringify(lastWrittenRef.current)) return;\n setAnt(safe.antenatal);\n lastWrittenRef.current = safe.antenatal;\n }, [safe.antenatal]);\n\n if (!hasField) return null;\n if (!safe.zones.includes('antenatal')) return null;\n\n const disabled = pathwayField.disabled;\n\n const commit = (nextAnt: ObgAntenatal) => {\n // Build `prev` from local `ant` (always up-to-date with our last commit)\n // rather than `safe` (which can lag if the field-store subscription hasn't\n // propagated yet). This keeps the prev/next prose check correct across\n // rapid keystrokes so HOPC stays in sync without ever mis-classifying our\n // own previous auto-write as user-typed prose.\n const prev: ObgPathwayValue = { ...safe, antenatal: ant };\n const nextPathway: ObgPathwayValue = { ...safe, antenatal: nextAnt };\n setAnt(nextAnt);\n lastWrittenRef.current = nextAnt;\n pathwayField.setValue(nextPathway);\n pathwayField.setTouched();\n writeSymptoms(prev, nextPathway);\n };\n\n const a = ant;\n const setAntenatal = (patch: Partial<ObgAntenatal>) => commit({ ...a, ...patch });\n const setAntenatalSymptom = (key: keyof ObgAntenatal['symptoms']) =>\n commit({ ...a, symptoms: { ...a.symptoms, [key]: !a.symptoms[key] } });\n const setAntenatalExam = (patch: Partial<ObgAntenatal['exam']>) =>\n commit({ ...a, exam: { ...a.exam, ...patch } });\n const setAntenatalInv = (patch: Partial<ObgAntenatal['investigations']>) =>\n commit({ ...a, investigations: { ...a.investigations, ...patch } });\n\n return (\n <div className=\"space-y-3 text-xs\">\n <Panel title=\"Current pregnancy details\">\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\">Gravida</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={a.gravida}\n onChange={(e) => setAntenatal({ gravida: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <div className=\"space-y-1\">\n <span className=\"block font-medium\">GA (LMP) — w / d</span>\n <div className=\"flex items-center gap-1\">\n <Input\n type=\"number\"\n min={0}\n max={45}\n className=\"h-8 text-xs\"\n value={a.gaWeeksLmp}\n onChange={(e) => setAntenatal({ gaWeeksLmp: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n <span className=\"text-[10px] text-muted-foreground\">w</span>\n <Input\n type=\"number\"\n min={0}\n max={6}\n className=\"h-8 text-xs\"\n value={a.gaDaysLmp}\n onChange={(e) => setAntenatal({ gaDaysLmp: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n <span className=\"text-[10px] text-muted-foreground\">d</span>\n </div>\n </div>\n <div className=\"space-y-1\">\n <span className=\"block font-medium\">GA (USG) — w / d</span>\n <div className=\"flex items-center gap-1\">\n <Input\n type=\"number\"\n min={0}\n max={45}\n className=\"h-8 text-xs\"\n value={a.gaWeeksUsg}\n onChange={(e) => setAntenatal({ gaWeeksUsg: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n <span className=\"text-[10px] text-muted-foreground\">w</span>\n <Input\n type=\"number\"\n min={0}\n max={6}\n className=\"h-8 text-xs\"\n value={a.gaDaysUsg}\n onChange={(e) => setAntenatal({ gaDaysUsg: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n <span className=\"text-[10px] text-muted-foreground\">d</span>\n </div>\n </div>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">EDD</span>\n <Input\n type=\"date\"\n className=\"h-8 text-xs\"\n value={a.edd}\n onChange={(e) => setAntenatal({ edd: 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\">Risk category</span>\n <Select\n value={a.riskCategory === '' ? 'none' : a.riskCategory}\n onValueChange={(v) =>\n setAntenatal({\n riskCategory: v === 'none' ? '' : (v as typeof a.riskCategory),\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=\"Low\">Low</SelectItem>\n <SelectItem value=\"High\">High</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Antenatal symptoms\">\n <ChipRow\n options={[\n { key: 'nauseaVomiting', label: 'Nausea / vomiting' },\n { key: 'bleedingPV', label: 'Bleeding PV' },\n { key: 'painAbdomen', label: 'Pain abdomen' },\n { key: 'decreasedFetalMovements', label: 'Decreased fetal movements' },\n ]}\n selected={a.symptoms as unknown as Record<string, boolean>}\n onToggle={(k) => setAntenatalSymptom(k as keyof typeof a.symptoms)}\n disabled={disabled}\n />\n </Panel>\n\n <Panel title=\"Antenatal examination\">\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\">Weight (kg)</span>\n <Input\n type=\"number\"\n className=\"h-8 text-xs\"\n value={a.exam.weightKg}\n onChange={(e) => setAntenatalExam({ weightKg: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Height (cm)</span>\n <Input\n type=\"number\"\n className=\"h-8 text-xs\"\n value={a.exam.heightCm}\n onChange={(e) => setAntenatalExam({ heightCm: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">BMI</span>\n <Input\n type=\"number\"\n step={0.1}\n className=\"h-8 text-xs\"\n value={a.exam.bmi}\n onChange={(e) => setAntenatalExam({ bmi: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">BP</span>\n <Input\n placeholder=\"e.g. 120/80\"\n className=\"h-8 text-xs\"\n value={a.exam.bp}\n onChange={(e) => setAntenatalExam({ bp: e.target.value })}\n disabled={disabled}\n />\n </label>\n\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={a.exam.pallor}\n onCheckedChange={(c) => setAntenatalExam({ pallor: c === true })}\n disabled={disabled}\n />\n <span>Pallor</span>\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={a.exam.oedema}\n onCheckedChange={(c) => setAntenatalExam({ oedema: c === true })}\n disabled={disabled}\n />\n <span>Oedema</span>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Fundal height (cm)</span>\n <Input\n type=\"number\"\n className=\"h-8 text-xs\"\n value={a.exam.fundalHeightCm}\n onChange={(e) =>\n setAntenatalExam({ fundalHeightCm: Number(e.target.value) || 0 })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">FHR (bpm)</span>\n <Input\n type=\"number\"\n className=\"h-8 text-xs\"\n value={a.exam.fhrBpm}\n onChange={(e) => setAntenatalExam({ fhrBpm: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Presentation</span>\n <Select\n value={a.exam.presentation === '' ? 'none' : a.exam.presentation}\n onValueChange={(v) =>\n setAntenatalExam({\n presentation: v === 'none' ? '' : (v as typeof a.exam.presentation),\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=\"Cephalic\">Cephalic</SelectItem>\n <SelectItem value=\"Breech\">Breech</SelectItem>\n <SelectItem value=\"Other\">Other</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Lie</span>\n <Select\n value={a.exam.lie === '' ? 'none' : a.exam.lie}\n onValueChange={(v) =>\n setAntenatalExam({ lie: v === 'none' ? '' : (v as typeof a.exam.lie) })\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=\"Longitudinal\">Longitudinal</SelectItem>\n <SelectItem value=\"Transverse\">Transverse</SelectItem>\n <SelectItem value=\"Oblique\">Oblique</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Investigations tracker\">\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\">Blood Group / Rh</span>\n <Input\n className=\"h-8 text-xs\"\n placeholder=\"e.g. O+ve\"\n value={a.investigations.bloodGroup}\n onChange={(e) => setAntenatalInv({ bloodGroup: e.target.value })}\n disabled={disabled}\n />\n </label>\n {(\n [\n { key: 'cbc', label: 'CBC' },\n { key: 'tsh', label: 'TSH' },\n { key: 'rbsOgtt', label: 'RBS / OGTT' },\n { key: 'serology', label: 'HIV / HBsAg / VDRL' },\n { key: 'urine', label: 'Urine routine' },\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 <Select\n value={a.investigations[row.key] === '' ? 'none' : a.investigations[row.key]}\n onValueChange={(v) =>\n setAntenatalInv({\n [row.key]: v === 'none' ? '' : v,\n } as Partial<typeof a.investigations>)\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=\"Done\">Done</SelectItem>\n <SelectItem value=\"Pending\">Pending</SelectItem>\n <SelectItem value=\"Abnormal\">Abnormal</SelectItem>\n </SelectContent>\n </Select>\n </label>\n ))}\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">USG</span>\n <Select\n value={a.investigations.usg === '' ? 'none' : a.investigations.usg}\n onValueChange={(v) =>\n setAntenatalInv({\n usg: (v === 'none' ? '' : v) as typeof a.investigations.usg,\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=\"Dating\">Dating</SelectItem>\n <SelectItem value=\"NT\">NT</SelectItem>\n <SelectItem value=\"Anomaly\">Anomaly</SelectItem>\n <SelectItem value=\"Growth\">Growth</SelectItem>\n <SelectItem value=\"Pending\">Pending</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n </div>\n );\n};\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { Card, CardContent, CardHeader, CardTitle } from '../shadcn/card';\nimport { Input } from '../shadcn/input';\nimport { Label } from '../shadcn/label';\nimport { Textarea } from '../shadcn/textarea';\nimport { cn } from '../../core/utils';\nimport { AntenatalPanels } from './AntenatalPanels';\n\ntype BasedOn = 'lmp' | 'usg';\ntype OutcomeType = '' | 'delivery' | 'cesarean' | 'abortion' | 'miscarriage' | 'stillbirth';\ntype PregnancyStatus = 'not_pregnant' | 'pregnant' | 'unknown';\ntype Dysmenorrhea = 0 | 1 | 2 | 3;\n\ntype GestationalAge = {\n weeks: number;\n days: number;\n totalDays: number;\n basedOn: BasedOn;\n};\n\ntype Outcome = {\n type: OutcomeType;\n date: string; // yyyy-mm-dd (or '' while incomplete)\n notes: string;\n is_final: boolean;\n};\n\ntype StoredMenstrual = {\n menarche_age: number;\n cycle_length: number;\n flow_days: number;\n cycle_regular: boolean;\n dysmenorrhea: Dysmenorrhea;\n};\n\ntype StoredObgHistory = {\n gpal: { G: number; P: number; A: number; L: number };\n lmp: string | null; // yyyy-mm-dd\n /** @deprecated Use `pregnancy_status`. Kept for backward compatibility (true === 'pregnant'). */\n is_pregnant: boolean;\n pregnancy_status: PregnancyStatus;\n edd: { lmp: string | null; usg: string | null; primary: BasedOn } | null;\n gestationalAge: GestationalAge | null;\n trimester: 1 | 2 | 3 | null;\n complications: string | null;\n outcome: Outcome | null;\n menstrual: StoredMenstrual;\n};\n\ntype Draft = {\n gpal: { G: number; P: number; A: number; L: number };\n lmp: string; // '' or yyyy-mm-dd\n pregnancy_status: PregnancyStatus;\n eddUSG: string; // '' or yyyy-mm-dd\n primaryEDD: BasedOn;\n complications: string;\n outcome: Outcome | null;\n menstrual: StoredMenstrual;\n};\n\nconst DEFAULT_MENSTRUAL: StoredMenstrual = {\n menarche_age: 13,\n cycle_length: 28,\n flow_days: 4,\n cycle_regular: true,\n dysmenorrhea: 0,\n};\n\nconst DEFAULT_DRAFT: Draft = {\n gpal: { G: 0, P: 0, A: 0, L: 0 },\n lmp: '',\n pregnancy_status: 'not_pregnant',\n eddUSG: '',\n primaryEDD: 'lmp',\n complications: '',\n outcome: null,\n menstrual: { ...DEFAULT_MENSTRUAL },\n};\n\nfunction pad2(n: number): string {\n return String(n).padStart(2, '0');\n}\n\nfunction formatDdMmYyyy(iso: string): string {\n // expects yyyy-mm-dd\n const [y, m, d] = iso.split('-');\n if (!y || !m || !d) return iso;\n return `${pad2(Number(d))}/${pad2(Number(m))}/${y}`;\n}\n\nfunction todayIso(): string {\n const d = new Date();\n const y = d.getFullYear();\n const m = pad2(d.getMonth() + 1);\n const day = pad2(d.getDate());\n return `${y}-${m}-${day}`;\n}\n\nfunction isValidIsoDate(val: string): boolean {\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(val)) return false;\n const dt = new Date(`${val}T00:00:00.000Z`);\n return !Number.isNaN(dt.getTime());\n}\n\nfunction safeJsonParse(val: string): any | null {\n try {\n return JSON.parse(val);\n } catch {\n return null;\n }\n}\n\nfunction clampInt(val: number, min: number, max: number): number {\n if (!Number.isFinite(val)) return min;\n return Math.max(min, Math.min(max, Math.trunc(val)));\n}\n\nfunction clampDysmenorrhea(val: unknown): Dysmenorrhea {\n const n = Math.round(Number(val));\n if (!Number.isFinite(n)) return 0;\n if (n <= 0) return 0;\n if (n >= 3) return 3;\n return n as 1 | 2;\n}\n\nfunction isPregnancyStatus(x: unknown): x is PregnancyStatus {\n return x === 'not_pregnant' || x === 'pregnant' || x === 'unknown';\n}\n\nfunction normalizeMenstrual(raw: unknown): StoredMenstrual {\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {\n return { ...DEFAULT_MENSTRUAL };\n }\n const o = raw as Record<string, unknown>;\n const num = (v: unknown, fb: number) => {\n const n = Number(v);\n return Number.isFinite(n) ? n : fb;\n };\n return {\n menarche_age: num(o.menarche_age, DEFAULT_MENSTRUAL.menarche_age),\n cycle_length: num(o.cycle_length, DEFAULT_MENSTRUAL.cycle_length),\n flow_days: num(o.flow_days, DEFAULT_MENSTRUAL.flow_days),\n cycle_regular:\n typeof o.cycle_regular === 'boolean' ? o.cycle_regular : DEFAULT_MENSTRUAL.cycle_regular,\n dysmenorrhea: clampDysmenorrhea(o.dysmenorrhea),\n };\n}\n\nfunction parseLegacyString(input: string): Partial<Draft> {\n const result: Partial<Draft> = {};\n const gpalMatch = input.match(/G(\\d+)\\s*P(\\d+)\\s*A(\\d+)\\s*L(\\d+)/i);\n if (gpalMatch) {\n const [, g, p, a, l] = gpalMatch;\n result.gpal = {\n G: clampInt(Number(g), 0, 20),\n P: clampInt(Number(p), 0, 20),\n A: clampInt(Number(a), 0, 20),\n L: clampInt(Number(l), 0, 20),\n };\n }\n\n const lmpMatch = input.match(/LMP:\\s*([^\\n]+)/i);\n if (lmpMatch?.[1]) result.lmp = lmpMatch[1].trim();\n\n const eddUsgMatch = input.match(/EDD\\s*\\(USG\\):\\s*([^\\n]+)/i);\n if (eddUsgMatch?.[1]) result.eddUSG = eddUsgMatch[1].trim();\n\n const primaryMatch = input.match(/Primary\\s*EDD:\\s*(lmp|usg)/i);\n if (primaryMatch?.[1]) result.primaryEDD = primaryMatch[1].toLowerCase() as BasedOn;\n\n const compMatch = input.match(/Complications:\\s*([^\\n]+)/i);\n if (compMatch?.[1]) result.complications = compMatch[1].trim();\n\n return result;\n}\n\nfunction normalizeToDraft(value: unknown): { draft: Draft; isNewEntry: boolean } {\n if (!value) return { draft: { ...DEFAULT_DRAFT }, isNewEntry: true };\n\n let parsed: any = value;\n if (typeof value === 'string') {\n const json = safeJsonParse(value);\n parsed = json ?? value;\n }\n\n const resolvePregnancyStatus = (o: any): PregnancyStatus => {\n if (isPregnancyStatus(o?.pregnancy_status)) return o.pregnancy_status;\n if (typeof o?.is_pregnant === 'boolean') return o.is_pregnant ? 'pregnant' : 'not_pregnant';\n return 'not_pregnant';\n };\n\n // New JSON format: has gpal object\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed) && 'gpal' in parsed && parsed.gpal && typeof parsed.gpal === 'object') {\n const gpal = parsed.gpal ?? {};\n const edd = parsed.edd ?? null;\n const eddUSG = (edd && typeof edd === 'object' ? edd.usg : undefined) ?? parsed.eddUSG ?? '';\n const primaryEDD = (edd && typeof edd === 'object' ? edd.primary : undefined) ?? parsed.primaryEDD ?? 'lmp';\n const lmp = parsed.lmp ?? '';\n const complications = parsed.complications ?? '';\n const outcome = parsed.outcome ?? null;\n return {\n isNewEntry: false,\n draft: {\n gpal: {\n G: clampInt(Number(gpal.G ?? 0), 0, 20),\n P: clampInt(Number(gpal.P ?? 0), 0, 20),\n A: clampInt(Number(gpal.A ?? 0), 0, 20),\n L: clampInt(Number(gpal.L ?? 0), 0, 20),\n },\n lmp: typeof lmp === 'string' ? lmp : '',\n pregnancy_status: resolvePregnancyStatus(parsed),\n eddUSG: typeof eddUSG === 'string' ? eddUSG : '',\n primaryEDD: primaryEDD === 'usg' ? 'usg' : 'lmp',\n complications: typeof complications === 'string' ? complications : '',\n outcome: outcome && typeof outcome === 'object'\n ? {\n type: (outcome.type ?? '') as OutcomeType,\n date: typeof outcome.date === 'string' ? outcome.date : '',\n notes: typeof outcome.notes === 'string' ? outcome.notes : '',\n is_final: !!outcome.is_final,\n }\n : null,\n menstrual: normalizeMenstrual(parsed.menstrual),\n },\n };\n }\n\n // Legacy flat JSON object\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n const gpalFromFlat = {\n G: clampInt(Number((parsed as any).G ?? (parsed as any).g ?? 0), 0, 20),\n P: clampInt(Number((parsed as any).P ?? (parsed as any).p ?? 0), 0, 20),\n A: clampInt(Number((parsed as any).A ?? (parsed as any).a ?? 0), 0, 20),\n L: clampInt(Number((parsed as any).L ?? (parsed as any).l ?? 0), 0, 20),\n };\n return {\n isNewEntry: false,\n draft: {\n ...DEFAULT_DRAFT,\n gpal: gpalFromFlat,\n lmp: typeof (parsed as any).lmp === 'string' ? (parsed as any).lmp : '',\n eddUSG: typeof (parsed as any).eddUSG === 'string' ? (parsed as any).eddUSG : '',\n primaryEDD: (parsed as any).primaryEDD === 'usg' ? 'usg' : 'lmp',\n complications: typeof (parsed as any).complications === 'string' ? (parsed as any).complications : '',\n outcome: (parsed as any).outcome && typeof (parsed as any).outcome === 'object'\n ? {\n type: ((parsed as any).outcome.type ?? '') as OutcomeType,\n date: typeof (parsed as any).outcome.date === 'string' ? (parsed as any).outcome.date : '',\n notes: typeof (parsed as any).outcome.notes === 'string' ? (parsed as any).outcome.notes : '',\n is_final: !!(parsed as any).outcome.is_final,\n }\n : null,\n pregnancy_status: resolvePregnancyStatus(parsed),\n menstrual: normalizeMenstrual((parsed as any).menstrual),\n },\n };\n }\n\n // Legacy human-readable string\n if (typeof parsed === 'string') {\n const legacy = parseLegacyString(parsed);\n return { isNewEntry: false, draft: { ...DEFAULT_DRAFT, ...legacy } as Draft };\n }\n\n return { draft: { ...DEFAULT_DRAFT }, isNewEntry: true };\n}\n\nfunction computeEddFromLmp(lmpIso: string): string | null {\n if (!isValidIsoDate(lmpIso)) return null;\n const base = new Date(`${lmpIso}T00:00:00.000Z`);\n base.setUTCDate(base.getUTCDate() + 280);\n const y = base.getUTCFullYear();\n const m = pad2(base.getUTCMonth() + 1);\n const d = pad2(base.getUTCDate());\n return `${y}-${m}-${d}`;\n}\n\nfunction diffDaysUtc(fromIso: string, toIso: string): number | null {\n if (!isValidIsoDate(fromIso) || !isValidIsoDate(toIso)) return null;\n const a = new Date(`${fromIso}T00:00:00.000Z`).getTime();\n const b = new Date(`${toIso}T00:00:00.000Z`).getTime();\n return Math.floor((b - a) / (1000 * 60 * 60 * 24));\n}\n\nfunction computeGestationalAgeFromLmp(lmpIso: string, today: string): GestationalAge | null {\n const days = diffDaysUtc(lmpIso, today);\n if (days == null || days < 0) return null;\n const weeks = Math.floor(days / 7);\n const rem = days % 7;\n return { weeks, days: rem, totalDays: days, basedOn: 'lmp' };\n}\n\nfunction computeGestationalAgeFromUsgEdd(eddUsgIso: string, today: string): GestationalAge | null {\n const daysToEdd = diffDaysUtc(today, eddUsgIso);\n if (daysToEdd == null) return null;\n const daysElapsed = 280 - daysToEdd;\n if (daysElapsed < 0) return null;\n const weeks = Math.floor(daysElapsed / 7);\n const rem = daysElapsed % 7;\n return { weeks, days: rem, totalDays: daysElapsed, basedOn: 'usg' };\n}\n\nfunction computeTrimester(ga: GestationalAge | null): 1 | 2 | 3 | null {\n if (!ga) return null;\n if (ga.weeks < 13) return 1;\n if (ga.weeks < 27) return 2;\n if (ga.weeks < 42) return 3;\n return null;\n}\n\nfunction buildStored(draft: Draft, today: string): StoredObgHistory {\n const lmpIso = isValidIsoDate(draft.lmp) ? draft.lmp : null;\n const eddUsgIso = isValidIsoDate(draft.eddUSG) ? draft.eddUSG : null;\n\n if (draft.pregnancy_status !== 'pregnant') {\n return {\n gpal: draft.gpal,\n lmp: lmpIso,\n is_pregnant: false,\n pregnancy_status: draft.pregnancy_status,\n edd: null,\n gestationalAge: null,\n trimester: null,\n complications: draft.complications.trim() ? draft.complications : null,\n outcome: draft.outcome,\n menstrual: { ...draft.menstrual },\n };\n }\n\n const eddFromLmp = lmpIso ? computeEddFromLmp(lmpIso) : null;\n const gaFromLmp = lmpIso ? computeGestationalAgeFromLmp(lmpIso, today) : null;\n const gaFromUsg = eddUsgIso ? computeGestationalAgeFromUsgEdd(eddUsgIso, today) : null;\n\n const primary = draft.primaryEDD;\n const gaPrimary = primary === 'usg' && gaFromUsg ? gaFromUsg : gaFromLmp ? gaFromLmp : null;\n\n return {\n gpal: draft.gpal,\n lmp: lmpIso,\n is_pregnant: true,\n pregnancy_status: 'pregnant',\n edd: { lmp: eddFromLmp, usg: eddUsgIso, primary },\n gestationalAge: gaPrimary,\n trimester: computeTrimester(gaPrimary),\n complications: draft.complications.trim() ? draft.complications : null,\n outcome: draft.outcome,\n menstrual: { ...draft.menstrual },\n };\n}\n\nfunction stripGpalSuffix(label: string): string {\n return label.replace(/\\s*\\(G-P-A-L\\)\\s*$/i, '').trim();\n}\n\nfunction useDebouncedCommit(commit: (next: Draft) => void, delayMs: number) {\n const timeoutRef = useRef<number | null>(null);\n const latestCommit = useRef(commit);\n latestCommit.current = commit;\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current != null) window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n return (next: Draft) => {\n if (timeoutRef.current != null) window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(() => latestCommit.current(next), delayMs);\n };\n}\n\nexport const ObstetricHistoryWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, disabled } = useField(fieldId);\n\n const [{ draft, isNewEntry }, setDraftState] = useState(() => normalizeToDraft(value));\n const [lmpError, setLmpError] = useState<string | null>(null);\n const [primaryEddError, setPrimaryEddError] = useState<string | null>(null);\n const [activeGpalKey, setActiveGpalKey] = useState<keyof Draft['gpal'] | null>(null);\n\n const refs = {\n G: useRef<HTMLInputElement | null>(null),\n P: useRef<HTMLInputElement | null>(null),\n A: useRef<HTMLInputElement | null>(null),\n L: useRef<HTMLInputElement | null>(null),\n } as const;\n\n const today = useMemo(() => todayIso(), []);\n\n // Keep local draft in sync with external updates (AI, reset, initial load).\n useEffect(() => {\n const next = normalizeToDraft(value);\n const currStr = JSON.stringify(buildStored(draft, today));\n const nextStr = JSON.stringify(buildStored(next.draft, today));\n if (currStr !== nextStr) setDraftState(next);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const commitImmediate = (nextDraft: Draft) => {\n const stored = buildStored(nextDraft, today);\n setValue(JSON.stringify(stored));\n };\n const commitDebounced = useDebouncedCommit(commitImmediate, 500);\n\n const storedComputed = useMemo(() => buildStored(draft, today), [draft, today]);\n\n const isPregnant = draft.pregnancy_status === 'pregnant';\n const rightPanelEnabled = isPregnant && (!!storedComputed.lmp || !!(storedComputed.edd?.usg));\n const headerLabel = fieldDef?.label ? stripGpalSuffix(fieldDef.label) : 'Obstetric History';\n\n const setDraft = (updater: (prev: Draft) => Draft, persist: 'debounce' | 'immediate') => {\n setDraftState((prev) => {\n const nextDraft = updater(prev.draft);\n const nextState = { ...prev, draft: nextDraft };\n if (persist === 'immediate') commitImmediate(nextDraft);\n else commitDebounced(nextDraft);\n return nextState;\n });\n };\n\n const sanitizeGpalInput = (raw: string): number => {\n const digits = raw.replace(/[^\\d]/g, '').slice(0, 2);\n if (!digits) return 0;\n return clampInt(Number(digits), 0, 20);\n };\n\n const handleGpalChange = (key: keyof Draft['gpal'], raw: string) => {\n const prevWasEmpty = draft.gpal[key] === 0 && (activeGpalKey === key);\n const val = sanitizeGpalInput(raw);\n setDraft((prev) => ({ ...prev, gpal: { ...prev.gpal, [key]: val } }), 'debounce');\n\n const digitsOnly = raw.replace(/[^\\d]/g, '');\n const shouldAutoTab = digitsOnly.length === 1 && (prevWasEmpty || String(draft.gpal[key]).length >= 1);\n if (shouldAutoTab) {\n const order: (keyof Draft['gpal'])[] = ['G', 'P', 'A', 'L'];\n const idx = order.indexOf(key);\n const nextKey = order[idx + 1];\n if (nextKey) refs[nextKey].current?.focus();\n }\n };\n\n const handleLmpChange = (nextIso: string) => {\n setPrimaryEddError(null);\n if (nextIso && nextIso > today) {\n setLmpError('LMP cannot be in the future');\n return;\n }\n setLmpError(null);\n setDraft((prev) => ({ ...prev, lmp: nextIso }), 'debounce');\n };\n\n const handlePregStatus = (status: PregnancyStatus) => {\n setLmpError(null);\n setPrimaryEddError(null);\n setDraft((prev) => ({ ...prev, pregnancy_status: status }), 'immediate');\n };\n\n const setMenstrualPatch = (patch: Partial<StoredMenstrual>) => {\n setDraft((prev) => ({ ...prev, menstrual: { ...prev.menstrual, ...patch } }), 'debounce');\n };\n\n const handleEddUsgChange = (nextIso: string) => {\n setPrimaryEddError(null);\n setDraft((prev) => ({ ...prev, eddUSG: nextIso }), 'debounce');\n };\n\n const handlePrimaryEdd = (next: BasedOn) => {\n if (next === 'usg' && !isValidIsoDate(draft.eddUSG)) {\n setPrimaryEddError('Please enter EDD from USG first');\n return;\n }\n setPrimaryEddError(null);\n setDraft((prev) => ({ ...prev, primaryEDD: next }), 'immediate');\n };\n\n const ensureOutcome = () => {\n if (draft.outcome) return;\n setDraft(\n (prev) => ({\n ...prev,\n outcome: { type: '', date: '', notes: '', is_final: false },\n }),\n 'immediate'\n );\n };\n\n const clearOutcome = () => {\n setDraft((prev) => ({ ...prev, outcome: null }), 'immediate');\n };\n\n const updateOutcomeImmediate = (updater: (o: Outcome) => Outcome) => {\n setDraft(\n (prev) => {\n const o = prev.outcome ?? { type: '', date: '', notes: '', is_final: false };\n return { ...prev, outcome: updater(o) };\n },\n 'immediate'\n );\n };\n\n const updateOutcomeNotesDebounced = (notes: string) => {\n setDraft(\n (prev) => {\n const o = prev.outcome ?? { type: '', date: '', notes: '', is_final: false };\n return { ...prev, outcome: { ...o, notes } };\n },\n 'debounce'\n );\n };\n\n return (\n <Card className={cn('w-full', disabled && 'opacity-70 pointer-events-none')}>\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"text-base font-semibold\">{headerLabel}</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {isNewEntry && (\n <div className=\"rounded-md border border-blue-200 bg-blue-50 px-3 py-2 text-xs text-blue-900\">\n No previous maternity episode found. Please fill obstetric details to start tracking.\n </div>\n )}\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 items-start\">\n {/* Left panel */}\n <div className=\"space-y-4\">\n <div className=\"rounded-lg border bg-white p-4\">\n <div className=\"text-xs font-medium text-muted-foreground mb-2\">G-P-A-L</div>\n <div className=\"grid grid-cols-4 gap-3\">\n {(['G', 'P', 'A', 'L'] as const).map((k) => (\n <div key={k} className=\"space-y-1\">\n <Label htmlFor={`${fieldId}-gpal-${k}`} className=\"text-[11px] text-muted-foreground\">\n {k}\n </Label>\n <Input\n ref={refs[k]}\n id={`${fieldId}-gpal-${k}`}\n inputMode=\"numeric\"\n pattern=\"\\d*\"\n maxLength={2}\n value={String(draft.gpal[k] ?? 0)}\n onFocus={() => {\n setActiveGpalKey(k);\n const el = refs[k].current;\n if (el) el.select();\n }}\n onChange={(e) => handleGpalChange(k, e.target.value)}\n onKeyDown={(e) => {\n const allowed = ['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Home', 'End'];\n if (allowed.includes(e.key)) return;\n if (/^\\d$/.test(e.key)) return;\n e.preventDefault();\n }}\n className=\"text-center text-base\"\n />\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3\">\n <div className=\"space-y-2 rounded-lg border bg-white p-4\">\n <Label htmlFor={`${fieldId}-lmp`} className={cn('text-sm', lmpError && 'text-red-600')}>\n Last Menstrual Period (LMP)\n </Label>\n <Input\n id={`${fieldId}-lmp`}\n type=\"date\"\n max={today}\n value={draft.lmp}\n onChange={(e) => handleLmpChange(e.target.value)}\n className={cn(lmpError && 'border-red-500')}\n />\n {lmpError && <p className=\"text-xs text-red-600\">{lmpError}</p>}\n </div>\n\n <div className=\"space-y-2 rounded-lg border bg-white p-4 min-w-0\">\n <div className=\"text-sm font-medium\">Pregnancy Status</div>\n <div className=\"flex min-w-0 flex-wrap gap-2\">\n <button\n type=\"button\"\n onClick={() => handlePregStatus('not_pregnant')}\n className={cn(\n 'shrink-0 rounded-full border px-3 py-1.5 text-[11px] font-medium transition-colors',\n draft.pregnancy_status === 'not_pregnant'\n ? 'border-green-600 bg-green-600 text-white'\n : 'border-slate-300 bg-white text-slate-700 hover:bg-slate-50',\n )}\n >\n Not Pregnant\n </button>\n <button\n type=\"button\"\n onClick={() => handlePregStatus('pregnant')}\n className={cn(\n 'shrink-0 rounded-full border px-3 py-1.5 text-[11px] font-medium transition-colors',\n draft.pregnancy_status === 'pregnant'\n ? 'border-green-600 bg-green-600 text-white'\n : 'border-slate-300 bg-white text-slate-700 hover:bg-slate-50',\n )}\n >\n Pregnant\n </button>\n <button\n type=\"button\"\n onClick={() => handlePregStatus('unknown')}\n className={cn(\n 'shrink-0 rounded-full border px-3 py-1.5 text-[11px] font-medium transition-colors',\n draft.pregnancy_status === 'unknown'\n ? 'border-amber-500 bg-amber-500 text-white'\n : 'border-slate-300 bg-white text-slate-700 hover:bg-slate-50',\n )}\n >\n Unknown\n </button>\n </div>\n </div>\n </div>\n\n <div className=\"rounded-lg border bg-white p-4\">\n <div className=\"text-xs font-medium text-muted-foreground mb-3\">Menstrual</div>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-4\">\n <label className=\"space-y-1\">\n <Label htmlFor={`${fieldId}-menarche`} className=\"text-[11px] text-muted-foreground\">\n Menarche (age)\n </Label>\n <Input\n id={`${fieldId}-menarche`}\n type=\"number\"\n min={5}\n max={25}\n value={draft.menstrual.menarche_age}\n onChange={(e) => setMenstrualPatch({ menarche_age: Number(e.target.value) || 0 })}\n />\n </label>\n <label className=\"space-y-1\">\n <Label htmlFor={`${fieldId}-cycle-length`} className=\"text-[11px] text-muted-foreground\">\n Cycle (days)\n </Label>\n <Input\n id={`${fieldId}-cycle-length`}\n type=\"number\"\n min={0}\n max={120}\n value={draft.menstrual.cycle_length}\n onChange={(e) => setMenstrualPatch({ cycle_length: Number(e.target.value) || 0 })}\n />\n </label>\n <label className=\"space-y-1\">\n <Label htmlFor={`${fieldId}-flow-days`} className=\"text-[11px] text-muted-foreground\">\n Flow (days)\n </Label>\n <Input\n id={`${fieldId}-flow-days`}\n type=\"number\"\n min={0}\n max={30}\n value={draft.menstrual.flow_days}\n onChange={(e) => setMenstrualPatch({ flow_days: Number(e.target.value) || 0 })}\n />\n </label>\n <label className=\"space-y-1\">\n <Label className=\"text-[11px] text-muted-foreground\">Dysmenorrhea</Label>\n <select\n className=\"h-9 w-full rounded-md border border-input bg-background px-2 text-sm\"\n value={String(draft.menstrual.dysmenorrhea)}\n onChange={(e) =>\n setMenstrualPatch({\n dysmenorrhea: clampDysmenorrhea(Number(e.target.value)),\n })\n }\n >\n <option value=\"0\">0 — none</option>\n <option value=\"1\">1 — mild</option>\n <option value=\"2\">2 — moderate</option>\n <option value=\"3\">3 — severe</option>\n </select>\n </label>\n </div>\n <label className=\"mt-3 flex items-center gap-2 text-sm\">\n <input\n type=\"checkbox\"\n checked={draft.menstrual.cycle_regular}\n onChange={(e) => setMenstrualPatch({ cycle_regular: e.target.checked })}\n />\n Regular cycle\n </label>\n </div>\n\n <div className=\"space-y-2 rounded-lg border bg-white p-4\">\n <Label htmlFor={`${fieldId}-complications`} className=\"text-sm\">\n Previous Pregnancy Complications\n </Label>\n <Textarea\n id={`${fieldId}-complications`}\n placeholder=\"e.g. Pre-eclampsia, Gestational diabetes, C-section, etc.\"\n value={draft.complications}\n onChange={(e) => setDraft((prev) => ({ ...prev, complications: e.target.value }), 'debounce')}\n className=\"min-h-[140px]\"\n />\n </div>\n </div>\n\n {/* Right panel */}\n <div className=\"rounded-lg border bg-white p-4 min-h-[260px]\">\n {!isPregnant && (\n <div className=\"h-full flex items-center justify-center text-center text-sm text-muted-foreground px-6 py-10\">\n {draft.pregnancy_status === 'unknown'\n ? 'Pregnancy status unknown — confirm with UPT/USG to enable gestational age and EDD.'\n : 'Only for \"Pregnant Women\" and enter LMP to calculate gestational age and EDD'}\n </div>\n )}\n\n {isPregnant && !rightPanelEnabled && (\n <div className=\"h-full flex items-center justify-center text-center text-sm text-muted-foreground px-6 py-10\">\n Enter LMP and/or EDD (USG) to enable gestational age and EDD calculations.\n </div>\n )}\n\n {isPregnant && rightPanelEnabled && (\n <div className=\"space-y-4\">\n <div className=\"rounded-lg border p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"text-sm font-semibold text-blue-700\">Expected Delivery Date (EDD)</div>\n {storedComputed.gestationalAge?.basedOn && (\n <span className=\"rounded-full bg-blue-100 px-2 py-1 text-[11px] text-blue-700\">\n Based on {storedComputed.gestationalAge.basedOn.toUpperCase()}\n </span>\n )}\n </div>\n <div className=\"mt-3\">\n <div className=\"text-xs text-muted-foreground\">Gestational Age:</div>\n <div className=\"text-lg font-semibold\">\n {storedComputed.gestationalAge\n ? `${storedComputed.gestationalAge.weeks} weeks ${storedComputed.gestationalAge.days} days`\n : '—'}\n </div>\n <div className=\"text-xs text-muted-foreground mt-1\">\n {storedComputed.trimester ? `Trimester ${storedComputed.trimester}` : 'Trimester —'}\n </div>\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <div className=\"text-xs text-muted-foreground\">EDD (from LMP):</div>\n <div className=\"rounded-md border bg-muted/20 px-3 py-2 text-sm font-semibold\">\n {storedComputed.edd?.lmp ? formatDdMmYyyy(storedComputed.edd.lmp) : '—'}\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor={`${fieldId}-edd-usg`} className=\"text-sm\">\n EDD (from USG):\n </Label>\n <Input\n id={`${fieldId}-edd-usg`}\n type=\"date\"\n value={draft.eddUSG}\n onChange={(e) => handleEddUsgChange(e.target.value)}\n />\n </div>\n\n <div className=\"space-y-2\">\n <div className=\"text-sm font-medium\">Primary EDD:</div>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n onClick={() => handlePrimaryEdd('lmp')}\n className={cn(\n 'flex-1 rounded-md border px-3 py-2 text-sm',\n draft.primaryEDD === 'lmp' ? 'bg-blue-600 text-white border-blue-600' : 'bg-white'\n )}\n >\n LMP\n </button>\n <button\n type=\"button\"\n onClick={() => handlePrimaryEdd('usg')}\n className={cn(\n 'flex-1 rounded-md border px-3 py-2 text-sm',\n draft.primaryEDD === 'usg' ? 'bg-blue-600 text-white border-blue-600' : 'bg-white'\n )}\n >\n USG\n </button>\n </div>\n {primaryEddError && <p className=\"text-xs text-red-600\">{primaryEddError}</p>}\n </div>\n </div>\n )}\n </div>\n </div>\n\n {/* Antenatal panels (full width of the card) */}\n <AntenatalPanels />\n\n {/* Outcome section */}\n <div className=\"rounded-lg border bg-yellow-50/60 p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"text-sm font-semibold\">\n Pregnancy Outcome (Optional - To Close Episode)\n </div>\n {draft.outcome && (\n <button type=\"button\" className=\"text-sm text-red-600 hover:underline\" onClick={clearOutcome}>\n Clear\n </button>\n )}\n </div>\n\n {!draft.outcome && (\n <button\n type=\"button\"\n onClick={ensureOutcome}\n className=\"mt-3 w-full rounded-md border border-yellow-300 bg-yellow-100 px-3 py-2 text-sm font-medium\"\n >\n + Add Pregnancy Outcome\n </button>\n )}\n\n {draft.outcome && (\n <div className=\"mt-4 space-y-3\">\n <div className=\"space-y-2\">\n <Label className=\"text-sm\">\n Outcome Type <span className=\"text-red-500\">*</span>\n </Label>\n <select\n className=\"w-full rounded-md border px-3 py-2 text-sm bg-white\"\n value={draft.outcome.type}\n onChange={(e) => updateOutcomeImmediate((o) => ({ ...o, type: e.target.value as OutcomeType }))}\n >\n <option value=\"\">Select outcome...</option>\n <option value=\"delivery\">Normal Delivery</option>\n <option value=\"cesarean\">Cesarean Section</option>\n <option value=\"abortion\">Abortion</option>\n <option value=\"miscarriage\">Miscarriage</option>\n <option value=\"stillbirth\">Stillbirth</option>\n </select>\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor={`${fieldId}-outcome-date`} className=\"text-sm\">\n Date <span className=\"text-red-500\">*</span>\n </Label>\n <Input\n id={`${fieldId}-outcome-date`}\n type=\"date\"\n max={today}\n value={draft.outcome.date}\n onChange={(e) => updateOutcomeImmediate((o) => ({ ...o, date: e.target.value }))}\n />\n {draft.outcome.date && (\n <p className=\"text-xs text-muted-foreground\">\n Selected: {formatDdMmYyyy(draft.outcome.date)}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor={`${fieldId}-outcome-notes`} className=\"text-sm\">\n Notes\n </Label>\n <Textarea\n id={`${fieldId}-outcome-notes`}\n placeholder=\"e.g. Normal vaginal delivery, healthy baby boy, 3.2kg\"\n value={draft.outcome.notes}\n onChange={(e) => updateOutcomeNotesDebounced(e.target.value)}\n className=\"min-h-[90px]\"\n />\n </div>\n\n <div className=\"rounded-md border bg-white p-3\">\n <label className=\"flex items-center gap-2 text-sm\">\n <input\n type=\"checkbox\"\n checked={!!draft.outcome.is_final}\n onChange={(e) => updateOutcomeImmediate((o) => ({ ...o, is_final: e.target.checked }))}\n />\n Close this pregnancy episode\n </label>\n {draft.outcome.is_final && (\n <div className=\"mt-3 rounded-md border border-red-300 bg-red-50 px-3 py-2 text-xs text-red-800\">\n Checking this will mark the pregnancy as completed and is intended to close the maternity episode.\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n );\n};\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/widgets/AntenatalPanels.tsx","../src/ui/widgets/ObstetricHistoryWidget.tsx"],"names":["useField","useObgSymptomsSync","useMemo","normalizeObgPathway","useState","useRef","useEffect","jsxs","jsx","Panel","Input","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","ChipRow","Checkbox","Card","cn","CardHeader","CardTitle","CardContent","Label","Textarea"],"mappings":"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","file":"ObstetricHistoryWidget-XGZM2HL4.cjs","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { Input } from '../shadcn/input';\nimport { Checkbox } from '../shadcn/checkbox';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../shadcn/select';\nimport {\n normalizeObgPathway,\n type ObgAntenatal,\n type ObgPathwayValue,\n} from '../../core/obgPathway';\nimport { ChipRow, Panel } from './_obgPanels';\nimport { useObgSymptomsSync } from './_obgSymptomsSync';\n\nconst OBG_PATHWAY_FIELD = 'obg_pathway';\n\n/**\n * Antenatal-specific panels (current pregnancy, symptoms, examination,\n * investigations) that live on the `obg_pathway` field but render under the\n * Obstetric-history widget when the antenatal zone is active. Designed to be\n * embedded into ObstetricHistoryWidget so that pregnancy-related capture lives\n * in one visual block.\n *\n * The component mirrors the antenatal subtree of `obg_pathway` into local\n * state so inputs update immediately on keystroke, even though `useField`'s\n * external-store subscription can lag re-renders for sibling components in\n * React 18 concurrent mode. Writes flow through to the form store on the same\n * tick.\n */\nexport const AntenatalPanels: React.FC = () => {\n const pathwayField = useField(OBG_PATHWAY_FIELD);\n const { writeSymptoms } = useObgSymptomsSync();\n\n // If the form has no obg_pathway field (non-OBG templates), render nothing.\n const hasField = !!pathwayField.fieldDef;\n\n const safe = useMemo<ObgPathwayValue>(\n () => normalizeObgPathway(pathwayField.value),\n [pathwayField.value],\n );\n\n // Local mirror of the antenatal subtree. Inputs read from this; writes both\n // update local state (for an instant re-render) and the form store.\n const [ant, setAnt] = useState<ObgAntenatal>(() => safe.antenatal);\n\n // Track the last antenatal we wrote to the store so we can ignore the\n // resulting \"echo\" snapshot from the subscription and only resync local\n // state when the antenatal subtree changes from outside (AI prefill, reset,\n // chip toggle that only changes zones, …).\n const lastWrittenRef = useRef<ObgAntenatal>(safe.antenatal);\n\n useEffect(() => {\n if (safe.antenatal === lastWrittenRef.current) return;\n if (JSON.stringify(safe.antenatal) === JSON.stringify(lastWrittenRef.current)) return;\n setAnt(safe.antenatal);\n lastWrittenRef.current = safe.antenatal;\n }, [safe.antenatal]);\n\n if (!hasField) return null;\n if (!safe.zones.includes('antenatal')) return null;\n\n const disabled = pathwayField.disabled;\n\n const commit = (nextAnt: ObgAntenatal) => {\n // Build `prev` from local `ant` (always up-to-date with our last commit)\n // rather than `safe` (which can lag if the field-store subscription hasn't\n // propagated yet). This keeps the prev/next prose check correct across\n // rapid keystrokes so HOPC stays in sync without ever mis-classifying our\n // own previous auto-write as user-typed prose.\n const prev: ObgPathwayValue = { ...safe, antenatal: ant };\n const nextPathway: ObgPathwayValue = { ...safe, antenatal: nextAnt };\n setAnt(nextAnt);\n lastWrittenRef.current = nextAnt;\n pathwayField.setValue(nextPathway);\n pathwayField.setTouched();\n writeSymptoms(prev, nextPathway);\n };\n\n const a = ant;\n const setAntenatal = (patch: Partial<ObgAntenatal>) => commit({ ...a, ...patch });\n const setAntenatalSymptom = (key: keyof ObgAntenatal['symptoms']) =>\n commit({ ...a, symptoms: { ...a.symptoms, [key]: !a.symptoms[key] } });\n const setAntenatalExam = (patch: Partial<ObgAntenatal['exam']>) =>\n commit({ ...a, exam: { ...a.exam, ...patch } });\n const setAntenatalInv = (patch: Partial<ObgAntenatal['investigations']>) =>\n commit({ ...a, investigations: { ...a.investigations, ...patch } });\n\n return (\n <div className=\"space-y-3 text-xs\">\n <Panel title=\"Current pregnancy details\">\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\">Gravida</span>\n <Input\n type=\"number\"\n min={0}\n className=\"h-8 text-xs\"\n value={a.gravida}\n onChange={(e) => setAntenatal({ gravida: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <div className=\"space-y-1\">\n <span className=\"block font-medium\">GA (LMP) — w / d</span>\n <div className=\"flex items-center gap-1\">\n <Input\n type=\"number\"\n min={0}\n max={45}\n className=\"h-8 text-xs\"\n value={a.gaWeeksLmp}\n onChange={(e) => setAntenatal({ gaWeeksLmp: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n <span className=\"text-[10px] text-muted-foreground\">w</span>\n <Input\n type=\"number\"\n min={0}\n max={6}\n className=\"h-8 text-xs\"\n value={a.gaDaysLmp}\n onChange={(e) => setAntenatal({ gaDaysLmp: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n <span className=\"text-[10px] text-muted-foreground\">d</span>\n </div>\n </div>\n <div className=\"space-y-1\">\n <span className=\"block font-medium\">GA (USG) — w / d</span>\n <div className=\"flex items-center gap-1\">\n <Input\n type=\"number\"\n min={0}\n max={45}\n className=\"h-8 text-xs\"\n value={a.gaWeeksUsg}\n onChange={(e) => setAntenatal({ gaWeeksUsg: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n <span className=\"text-[10px] text-muted-foreground\">w</span>\n <Input\n type=\"number\"\n min={0}\n max={6}\n className=\"h-8 text-xs\"\n value={a.gaDaysUsg}\n onChange={(e) => setAntenatal({ gaDaysUsg: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n <span className=\"text-[10px] text-muted-foreground\">d</span>\n </div>\n </div>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">EDD</span>\n <Input\n type=\"date\"\n className=\"h-8 text-xs\"\n value={a.edd}\n onChange={(e) => setAntenatal({ edd: 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\">Risk category</span>\n <Select\n value={a.riskCategory === '' ? 'none' : a.riskCategory}\n onValueChange={(v) =>\n setAntenatal({\n riskCategory: v === 'none' ? '' : (v as typeof a.riskCategory),\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=\"Low\">Low</SelectItem>\n <SelectItem value=\"High\">High</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Antenatal symptoms\">\n <ChipRow\n options={[\n { key: 'nauseaVomiting', label: 'Nausea / vomiting' },\n { key: 'bleedingPV', label: 'Bleeding PV' },\n { key: 'painAbdomen', label: 'Pain abdomen' },\n { key: 'decreasedFetalMovements', label: 'Decreased fetal movements' },\n ]}\n selected={a.symptoms as unknown as Record<string, boolean>}\n onToggle={(k) => setAntenatalSymptom(k as keyof typeof a.symptoms)}\n disabled={disabled}\n />\n </Panel>\n\n <Panel title=\"Antenatal examination\">\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\">Weight (kg)</span>\n <Input\n type=\"number\"\n className=\"h-8 text-xs\"\n value={a.exam.weightKg}\n onChange={(e) => setAntenatalExam({ weightKg: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Height (cm)</span>\n <Input\n type=\"number\"\n className=\"h-8 text-xs\"\n value={a.exam.heightCm}\n onChange={(e) => setAntenatalExam({ heightCm: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">BMI</span>\n <Input\n type=\"number\"\n step={0.1}\n className=\"h-8 text-xs\"\n value={a.exam.bmi}\n onChange={(e) => setAntenatalExam({ bmi: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">BP</span>\n <Input\n placeholder=\"e.g. 120/80\"\n className=\"h-8 text-xs\"\n value={a.exam.bp}\n onChange={(e) => setAntenatalExam({ bp: e.target.value })}\n disabled={disabled}\n />\n </label>\n\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={a.exam.pallor}\n onCheckedChange={(c) => setAntenatalExam({ pallor: c === true })}\n disabled={disabled}\n />\n <span>Pallor</span>\n </label>\n <label className=\"flex items-end gap-2 pb-1\">\n <Checkbox\n checked={a.exam.oedema}\n onCheckedChange={(c) => setAntenatalExam({ oedema: c === true })}\n disabled={disabled}\n />\n <span>Oedema</span>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Fundal height (cm)</span>\n <Input\n type=\"number\"\n className=\"h-8 text-xs\"\n value={a.exam.fundalHeightCm}\n onChange={(e) =>\n setAntenatalExam({ fundalHeightCm: Number(e.target.value) || 0 })\n }\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">FHR (bpm)</span>\n <Input\n type=\"number\"\n className=\"h-8 text-xs\"\n value={a.exam.fhrBpm}\n onChange={(e) => setAntenatalExam({ fhrBpm: Number(e.target.value) || 0 })}\n disabled={disabled}\n />\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Presentation</span>\n <Select\n value={a.exam.presentation === '' ? 'none' : a.exam.presentation}\n onValueChange={(v) =>\n setAntenatalExam({\n presentation: v === 'none' ? '' : (v as typeof a.exam.presentation),\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=\"Cephalic\">Cephalic</SelectItem>\n <SelectItem value=\"Breech\">Breech</SelectItem>\n <SelectItem value=\"Other\">Other</SelectItem>\n </SelectContent>\n </Select>\n </label>\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">Lie</span>\n <Select\n value={a.exam.lie === '' ? 'none' : a.exam.lie}\n onValueChange={(v) =>\n setAntenatalExam({ lie: v === 'none' ? '' : (v as typeof a.exam.lie) })\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=\"Longitudinal\">Longitudinal</SelectItem>\n <SelectItem value=\"Transverse\">Transverse</SelectItem>\n <SelectItem value=\"Oblique\">Oblique</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n\n <Panel title=\"Investigations tracker\">\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\">Blood Group / Rh</span>\n <Input\n className=\"h-8 text-xs\"\n placeholder=\"e.g. O+ve\"\n value={a.investigations.bloodGroup}\n onChange={(e) => setAntenatalInv({ bloodGroup: e.target.value })}\n disabled={disabled}\n />\n </label>\n {(\n [\n { key: 'cbc', label: 'CBC' },\n { key: 'tsh', label: 'TSH' },\n { key: 'rbsOgtt', label: 'RBS / OGTT' },\n { key: 'serology', label: 'HIV / HBsAg / VDRL' },\n { key: 'urine', label: 'Urine routine' },\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 <Select\n value={a.investigations[row.key] === '' ? 'none' : a.investigations[row.key]}\n onValueChange={(v) =>\n setAntenatalInv({\n [row.key]: v === 'none' ? '' : v,\n } as Partial<typeof a.investigations>)\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=\"Done\">Done</SelectItem>\n <SelectItem value=\"Pending\">Pending</SelectItem>\n <SelectItem value=\"Abnormal\">Abnormal</SelectItem>\n </SelectContent>\n </Select>\n </label>\n ))}\n <label className=\"space-y-1\">\n <span className=\"block font-medium\">USG</span>\n <Select\n value={a.investigations.usg === '' ? 'none' : a.investigations.usg}\n onValueChange={(v) =>\n setAntenatalInv({\n usg: (v === 'none' ? '' : v) as typeof a.investigations.usg,\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=\"Dating\">Dating</SelectItem>\n <SelectItem value=\"NT\">NT</SelectItem>\n <SelectItem value=\"Anomaly\">Anomaly</SelectItem>\n <SelectItem value=\"Growth\">Growth</SelectItem>\n <SelectItem value=\"Pending\">Pending</SelectItem>\n </SelectContent>\n </Select>\n </label>\n </div>\n </Panel>\n </div>\n );\n};\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useField } from '../../react/useField';\nimport { Card, CardContent, CardHeader, CardTitle } from '../shadcn/card';\nimport { Input } from '../shadcn/input';\nimport { Label } from '../shadcn/label';\nimport { Textarea } from '../shadcn/textarea';\nimport { cn } from '../../core/utils';\nimport { AntenatalPanels } from './AntenatalPanels';\n\ntype BasedOn = 'lmp' | 'usg';\ntype OutcomeType = '' | 'delivery' | 'cesarean' | 'abortion' | 'miscarriage' | 'stillbirth';\ntype PregnancyStatus = 'not_pregnant' | 'pregnant' | 'unknown';\ntype Dysmenorrhea = 0 | 1 | 2 | 3;\n\ntype GestationalAge = {\n weeks: number;\n days: number;\n totalDays: number;\n basedOn: BasedOn;\n};\n\ntype Outcome = {\n type: OutcomeType;\n date: string; // yyyy-mm-dd (or '' while incomplete)\n notes: string;\n is_final: boolean;\n};\n\ntype StoredMenstrual = {\n menarche_age: number;\n cycle_length: number;\n flow_days: number;\n cycle_regular: boolean;\n dysmenorrhea: Dysmenorrhea;\n};\n\ntype StoredObgHistory = {\n gpal: { G: number; P: number; A: number; L: number };\n lmp: string | null; // yyyy-mm-dd\n /** @deprecated Use `pregnancy_status`. Kept for backward compatibility (true === 'pregnant'). */\n is_pregnant: boolean;\n pregnancy_status: PregnancyStatus;\n edd: { lmp: string | null; usg: string | null; primary: BasedOn } | null;\n gestationalAge: GestationalAge | null;\n trimester: 1 | 2 | 3 | null;\n complications: string | null;\n outcome: Outcome | null;\n menstrual: StoredMenstrual;\n};\n\ntype Draft = {\n gpal: { G: number; P: number; A: number; L: number };\n lmp: string; // '' or yyyy-mm-dd\n pregnancy_status: PregnancyStatus;\n eddUSG: string; // '' or yyyy-mm-dd\n primaryEDD: BasedOn;\n complications: string;\n outcome: Outcome | null;\n menstrual: StoredMenstrual;\n};\n\nconst DEFAULT_MENSTRUAL: StoredMenstrual = {\n menarche_age: 13,\n cycle_length: 28,\n flow_days: 4,\n cycle_regular: true,\n dysmenorrhea: 0,\n};\n\nconst DEFAULT_DRAFT: Draft = {\n gpal: { G: 0, P: 0, A: 0, L: 0 },\n lmp: '',\n pregnancy_status: 'not_pregnant',\n eddUSG: '',\n primaryEDD: 'lmp',\n complications: '',\n outcome: null,\n menstrual: { ...DEFAULT_MENSTRUAL },\n};\n\nfunction pad2(n: number): string {\n return String(n).padStart(2, '0');\n}\n\nfunction formatDdMmYyyy(iso: string): string {\n // expects yyyy-mm-dd\n const [y, m, d] = iso.split('-');\n if (!y || !m || !d) return iso;\n return `${pad2(Number(d))}/${pad2(Number(m))}/${y}`;\n}\n\nfunction todayIso(): string {\n const d = new Date();\n const y = d.getFullYear();\n const m = pad2(d.getMonth() + 1);\n const day = pad2(d.getDate());\n return `${y}-${m}-${day}`;\n}\n\nfunction isValidIsoDate(val: string): boolean {\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(val)) return false;\n const dt = new Date(`${val}T00:00:00.000Z`);\n return !Number.isNaN(dt.getTime());\n}\n\nfunction safeJsonParse(val: string): any | null {\n try {\n return JSON.parse(val);\n } catch {\n return null;\n }\n}\n\nfunction clampInt(val: number, min: number, max: number): number {\n if (!Number.isFinite(val)) return min;\n return Math.max(min, Math.min(max, Math.trunc(val)));\n}\n\nfunction clampDysmenorrhea(val: unknown): Dysmenorrhea {\n const n = Math.round(Number(val));\n if (!Number.isFinite(n)) return 0;\n if (n <= 0) return 0;\n if (n >= 3) return 3;\n return n as 1 | 2;\n}\n\nfunction isPregnancyStatus(x: unknown): x is PregnancyStatus {\n return x === 'not_pregnant' || x === 'pregnant' || x === 'unknown';\n}\n\nfunction normalizeMenstrual(raw: unknown): StoredMenstrual {\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {\n return { ...DEFAULT_MENSTRUAL };\n }\n const o = raw as Record<string, unknown>;\n const num = (v: unknown, fb: number) => {\n const n = Number(v);\n return Number.isFinite(n) ? n : fb;\n };\n return {\n menarche_age: num(o.menarche_age, DEFAULT_MENSTRUAL.menarche_age),\n cycle_length: num(o.cycle_length, DEFAULT_MENSTRUAL.cycle_length),\n flow_days: num(o.flow_days, DEFAULT_MENSTRUAL.flow_days),\n cycle_regular:\n typeof o.cycle_regular === 'boolean' ? o.cycle_regular : DEFAULT_MENSTRUAL.cycle_regular,\n dysmenorrhea: clampDysmenorrhea(o.dysmenorrhea),\n };\n}\n\nfunction parseLegacyString(input: string): Partial<Draft> {\n const result: Partial<Draft> = {};\n const gpalMatch = input.match(/G(\\d+)\\s*P(\\d+)\\s*A(\\d+)\\s*L(\\d+)/i);\n if (gpalMatch) {\n const [, g, p, a, l] = gpalMatch;\n result.gpal = {\n G: clampInt(Number(g), 0, 20),\n P: clampInt(Number(p), 0, 20),\n A: clampInt(Number(a), 0, 20),\n L: clampInt(Number(l), 0, 20),\n };\n }\n\n const lmpMatch = input.match(/LMP:\\s*([^\\n]+)/i);\n if (lmpMatch?.[1]) result.lmp = lmpMatch[1].trim();\n\n const eddUsgMatch = input.match(/EDD\\s*\\(USG\\):\\s*([^\\n]+)/i);\n if (eddUsgMatch?.[1]) result.eddUSG = eddUsgMatch[1].trim();\n\n const primaryMatch = input.match(/Primary\\s*EDD:\\s*(lmp|usg)/i);\n if (primaryMatch?.[1]) result.primaryEDD = primaryMatch[1].toLowerCase() as BasedOn;\n\n const compMatch = input.match(/Complications:\\s*([^\\n]+)/i);\n if (compMatch?.[1]) result.complications = compMatch[1].trim();\n\n return result;\n}\n\nfunction normalizeToDraft(value: unknown): { draft: Draft; isNewEntry: boolean } {\n if (!value) return { draft: { ...DEFAULT_DRAFT }, isNewEntry: true };\n\n let parsed: any = value;\n if (typeof value === 'string') {\n const json = safeJsonParse(value);\n parsed = json ?? value;\n }\n\n const resolvePregnancyStatus = (o: any): PregnancyStatus => {\n if (isPregnancyStatus(o?.pregnancy_status)) return o.pregnancy_status;\n if (typeof o?.is_pregnant === 'boolean') return o.is_pregnant ? 'pregnant' : 'not_pregnant';\n return 'not_pregnant';\n };\n\n // New JSON format: has gpal object\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed) && 'gpal' in parsed && parsed.gpal && typeof parsed.gpal === 'object') {\n const gpal = parsed.gpal ?? {};\n const edd = parsed.edd ?? null;\n const eddUSG = (edd && typeof edd === 'object' ? edd.usg : undefined) ?? parsed.eddUSG ?? '';\n const primaryEDD = (edd && typeof edd === 'object' ? edd.primary : undefined) ?? parsed.primaryEDD ?? 'lmp';\n const lmp = parsed.lmp ?? '';\n const complications = parsed.complications ?? '';\n const outcome = parsed.outcome ?? null;\n return {\n isNewEntry: false,\n draft: {\n gpal: {\n G: clampInt(Number(gpal.G ?? 0), 0, 20),\n P: clampInt(Number(gpal.P ?? 0), 0, 20),\n A: clampInt(Number(gpal.A ?? 0), 0, 20),\n L: clampInt(Number(gpal.L ?? 0), 0, 20),\n },\n lmp: typeof lmp === 'string' ? lmp : '',\n pregnancy_status: resolvePregnancyStatus(parsed),\n eddUSG: typeof eddUSG === 'string' ? eddUSG : '',\n primaryEDD: primaryEDD === 'usg' ? 'usg' : 'lmp',\n complications: typeof complications === 'string' ? complications : '',\n outcome: outcome && typeof outcome === 'object'\n ? {\n type: (outcome.type ?? '') as OutcomeType,\n date: typeof outcome.date === 'string' ? outcome.date : '',\n notes: typeof outcome.notes === 'string' ? outcome.notes : '',\n is_final: !!outcome.is_final,\n }\n : null,\n menstrual: normalizeMenstrual(parsed.menstrual),\n },\n };\n }\n\n // Legacy flat JSON object\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n const gpalFromFlat = {\n G: clampInt(Number((parsed as any).G ?? (parsed as any).g ?? 0), 0, 20),\n P: clampInt(Number((parsed as any).P ?? (parsed as any).p ?? 0), 0, 20),\n A: clampInt(Number((parsed as any).A ?? (parsed as any).a ?? 0), 0, 20),\n L: clampInt(Number((parsed as any).L ?? (parsed as any).l ?? 0), 0, 20),\n };\n return {\n isNewEntry: false,\n draft: {\n ...DEFAULT_DRAFT,\n gpal: gpalFromFlat,\n lmp: typeof (parsed as any).lmp === 'string' ? (parsed as any).lmp : '',\n eddUSG: typeof (parsed as any).eddUSG === 'string' ? (parsed as any).eddUSG : '',\n primaryEDD: (parsed as any).primaryEDD === 'usg' ? 'usg' : 'lmp',\n complications: typeof (parsed as any).complications === 'string' ? (parsed as any).complications : '',\n outcome: (parsed as any).outcome && typeof (parsed as any).outcome === 'object'\n ? {\n type: ((parsed as any).outcome.type ?? '') as OutcomeType,\n date: typeof (parsed as any).outcome.date === 'string' ? (parsed as any).outcome.date : '',\n notes: typeof (parsed as any).outcome.notes === 'string' ? (parsed as any).outcome.notes : '',\n is_final: !!(parsed as any).outcome.is_final,\n }\n : null,\n pregnancy_status: resolvePregnancyStatus(parsed),\n menstrual: normalizeMenstrual((parsed as any).menstrual),\n },\n };\n }\n\n // Legacy human-readable string\n if (typeof parsed === 'string') {\n const legacy = parseLegacyString(parsed);\n return { isNewEntry: false, draft: { ...DEFAULT_DRAFT, ...legacy } as Draft };\n }\n\n return { draft: { ...DEFAULT_DRAFT }, isNewEntry: true };\n}\n\nfunction computeEddFromLmp(lmpIso: string): string | null {\n if (!isValidIsoDate(lmpIso)) return null;\n const base = new Date(`${lmpIso}T00:00:00.000Z`);\n base.setUTCDate(base.getUTCDate() + 280);\n const y = base.getUTCFullYear();\n const m = pad2(base.getUTCMonth() + 1);\n const d = pad2(base.getUTCDate());\n return `${y}-${m}-${d}`;\n}\n\nfunction diffDaysUtc(fromIso: string, toIso: string): number | null {\n if (!isValidIsoDate(fromIso) || !isValidIsoDate(toIso)) return null;\n const a = new Date(`${fromIso}T00:00:00.000Z`).getTime();\n const b = new Date(`${toIso}T00:00:00.000Z`).getTime();\n return Math.floor((b - a) / (1000 * 60 * 60 * 24));\n}\n\nfunction computeGestationalAgeFromLmp(lmpIso: string, today: string): GestationalAge | null {\n const days = diffDaysUtc(lmpIso, today);\n if (days == null || days < 0) return null;\n const weeks = Math.floor(days / 7);\n const rem = days % 7;\n return { weeks, days: rem, totalDays: days, basedOn: 'lmp' };\n}\n\nfunction computeGestationalAgeFromUsgEdd(eddUsgIso: string, today: string): GestationalAge | null {\n const daysToEdd = diffDaysUtc(today, eddUsgIso);\n if (daysToEdd == null) return null;\n const daysElapsed = 280 - daysToEdd;\n if (daysElapsed < 0) return null;\n const weeks = Math.floor(daysElapsed / 7);\n const rem = daysElapsed % 7;\n return { weeks, days: rem, totalDays: daysElapsed, basedOn: 'usg' };\n}\n\nfunction computeTrimester(ga: GestationalAge | null): 1 | 2 | 3 | null {\n if (!ga) return null;\n if (ga.weeks < 13) return 1;\n if (ga.weeks < 27) return 2;\n if (ga.weeks < 42) return 3;\n return null;\n}\n\nfunction buildStored(draft: Draft, today: string): StoredObgHistory {\n const lmpIso = isValidIsoDate(draft.lmp) ? draft.lmp : null;\n const eddUsgIso = isValidIsoDate(draft.eddUSG) ? draft.eddUSG : null;\n\n if (draft.pregnancy_status !== 'pregnant') {\n return {\n gpal: draft.gpal,\n lmp: lmpIso,\n is_pregnant: false,\n pregnancy_status: draft.pregnancy_status,\n edd: null,\n gestationalAge: null,\n trimester: null,\n complications: draft.complications.trim() ? draft.complications : null,\n outcome: draft.outcome,\n menstrual: { ...draft.menstrual },\n };\n }\n\n const eddFromLmp = lmpIso ? computeEddFromLmp(lmpIso) : null;\n const gaFromLmp = lmpIso ? computeGestationalAgeFromLmp(lmpIso, today) : null;\n const gaFromUsg = eddUsgIso ? computeGestationalAgeFromUsgEdd(eddUsgIso, today) : null;\n\n const primary = draft.primaryEDD;\n const gaPrimary = primary === 'usg' && gaFromUsg ? gaFromUsg : gaFromLmp ? gaFromLmp : null;\n\n return {\n gpal: draft.gpal,\n lmp: lmpIso,\n is_pregnant: true,\n pregnancy_status: 'pregnant',\n edd: { lmp: eddFromLmp, usg: eddUsgIso, primary },\n gestationalAge: gaPrimary,\n trimester: computeTrimester(gaPrimary),\n complications: draft.complications.trim() ? draft.complications : null,\n outcome: draft.outcome,\n menstrual: { ...draft.menstrual },\n };\n}\n\nfunction stripGpalSuffix(label: string): string {\n return label.replace(/\\s*\\(G-P-A-L\\)\\s*$/i, '').trim();\n}\n\nfunction useDebouncedCommit(commit: (next: Draft) => void, delayMs: number) {\n const timeoutRef = useRef<number | null>(null);\n const latestCommit = useRef(commit);\n latestCommit.current = commit;\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current != null) window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n return (next: Draft) => {\n if (timeoutRef.current != null) window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(() => latestCommit.current(next), delayMs);\n };\n}\n\nexport const ObstetricHistoryWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, disabled } = useField(fieldId);\n\n const [{ draft, isNewEntry }, setDraftState] = useState(() => normalizeToDraft(value));\n const [lmpError, setLmpError] = useState<string | null>(null);\n const [primaryEddError, setPrimaryEddError] = useState<string | null>(null);\n const [activeGpalKey, setActiveGpalKey] = useState<keyof Draft['gpal'] | null>(null);\n\n const refs = {\n G: useRef<HTMLInputElement | null>(null),\n P: useRef<HTMLInputElement | null>(null),\n A: useRef<HTMLInputElement | null>(null),\n L: useRef<HTMLInputElement | null>(null),\n } as const;\n\n const today = useMemo(() => todayIso(), []);\n\n // Keep local draft in sync with external updates (AI, reset, initial load).\n useEffect(() => {\n const next = normalizeToDraft(value);\n const currStr = JSON.stringify(buildStored(draft, today));\n const nextStr = JSON.stringify(buildStored(next.draft, today));\n if (currStr !== nextStr) setDraftState(next);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const commitImmediate = (nextDraft: Draft) => {\n const stored = buildStored(nextDraft, today);\n setValue(JSON.stringify(stored));\n };\n const commitDebounced = useDebouncedCommit(commitImmediate, 500);\n\n const storedComputed = useMemo(() => buildStored(draft, today), [draft, today]);\n\n const isPregnant = draft.pregnancy_status === 'pregnant';\n const rightPanelEnabled = isPregnant && (!!storedComputed.lmp || !!(storedComputed.edd?.usg));\n const headerLabel = fieldDef?.label ? stripGpalSuffix(fieldDef.label) : 'Obstetric History';\n\n const setDraft = (updater: (prev: Draft) => Draft, persist: 'debounce' | 'immediate') => {\n setDraftState((prev) => {\n const nextDraft = updater(prev.draft);\n const nextState = { ...prev, draft: nextDraft };\n if (persist === 'immediate') commitImmediate(nextDraft);\n else commitDebounced(nextDraft);\n return nextState;\n });\n };\n\n const sanitizeGpalInput = (raw: string): number => {\n const digits = raw.replace(/[^\\d]/g, '').slice(0, 2);\n if (!digits) return 0;\n return clampInt(Number(digits), 0, 20);\n };\n\n const handleGpalChange = (key: keyof Draft['gpal'], raw: string) => {\n const prevWasEmpty = draft.gpal[key] === 0 && (activeGpalKey === key);\n const val = sanitizeGpalInput(raw);\n setDraft((prev) => ({ ...prev, gpal: { ...prev.gpal, [key]: val } }), 'debounce');\n\n const digitsOnly = raw.replace(/[^\\d]/g, '');\n const shouldAutoTab = digitsOnly.length === 1 && (prevWasEmpty || String(draft.gpal[key]).length >= 1);\n if (shouldAutoTab) {\n const order: (keyof Draft['gpal'])[] = ['G', 'P', 'A', 'L'];\n const idx = order.indexOf(key);\n const nextKey = order[idx + 1];\n if (nextKey) refs[nextKey].current?.focus();\n }\n };\n\n const handleLmpChange = (nextIso: string) => {\n setPrimaryEddError(null);\n if (nextIso && nextIso > today) {\n setLmpError('LMP cannot be in the future');\n return;\n }\n setLmpError(null);\n setDraft((prev) => ({ ...prev, lmp: nextIso }), 'debounce');\n };\n\n const handlePregStatus = (status: PregnancyStatus) => {\n setLmpError(null);\n setPrimaryEddError(null);\n setDraft((prev) => ({ ...prev, pregnancy_status: status }), 'immediate');\n };\n\n const setMenstrualPatch = (patch: Partial<StoredMenstrual>) => {\n setDraft((prev) => ({ ...prev, menstrual: { ...prev.menstrual, ...patch } }), 'debounce');\n };\n\n const handleEddUsgChange = (nextIso: string) => {\n setPrimaryEddError(null);\n setDraft((prev) => ({ ...prev, eddUSG: nextIso }), 'debounce');\n };\n\n const handlePrimaryEdd = (next: BasedOn) => {\n if (next === 'usg' && !isValidIsoDate(draft.eddUSG)) {\n setPrimaryEddError('Please enter EDD from USG first');\n return;\n }\n setPrimaryEddError(null);\n setDraft((prev) => ({ ...prev, primaryEDD: next }), 'immediate');\n };\n\n const ensureOutcome = () => {\n if (draft.outcome) return;\n setDraft(\n (prev) => ({\n ...prev,\n outcome: { type: '', date: '', notes: '', is_final: false },\n }),\n 'immediate'\n );\n };\n\n const clearOutcome = () => {\n setDraft((prev) => ({ ...prev, outcome: null }), 'immediate');\n };\n\n const updateOutcomeImmediate = (updater: (o: Outcome) => Outcome) => {\n setDraft(\n (prev) => {\n const o = prev.outcome ?? { type: '', date: '', notes: '', is_final: false };\n return { ...prev, outcome: updater(o) };\n },\n 'immediate'\n );\n };\n\n const updateOutcomeNotesDebounced = (notes: string) => {\n setDraft(\n (prev) => {\n const o = prev.outcome ?? { type: '', date: '', notes: '', is_final: false };\n return { ...prev, outcome: { ...o, notes } };\n },\n 'debounce'\n );\n };\n\n return (\n <Card className={cn('w-full', disabled && 'opacity-70 pointer-events-none')}>\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"text-base font-semibold\">{headerLabel}</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {isNewEntry && (\n <div className=\"rounded-md border border-blue-200 bg-blue-50 px-3 py-2 text-xs text-blue-900\">\n No previous maternity episode found. Please fill obstetric details to start tracking.\n </div>\n )}\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 items-start\">\n {/* Left panel */}\n <div className=\"space-y-4\">\n <div className=\"rounded-lg border bg-white p-4\">\n <div className=\"text-xs font-medium text-muted-foreground mb-2\">G-P-A-L</div>\n <div className=\"grid grid-cols-4 gap-3\">\n {(['G', 'P', 'A', 'L'] as const).map((k) => (\n <div key={k} className=\"space-y-1\">\n <Label htmlFor={`${fieldId}-gpal-${k}`} className=\"text-[11px] text-muted-foreground\">\n {k}\n </Label>\n <Input\n ref={refs[k]}\n id={`${fieldId}-gpal-${k}`}\n inputMode=\"numeric\"\n pattern=\"\\d*\"\n maxLength={2}\n value={String(draft.gpal[k] ?? 0)}\n onFocus={() => {\n setActiveGpalKey(k);\n const el = refs[k].current;\n if (el) el.select();\n }}\n onChange={(e) => handleGpalChange(k, e.target.value)}\n onKeyDown={(e) => {\n const allowed = ['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Home', 'End'];\n if (allowed.includes(e.key)) return;\n if (/^\\d$/.test(e.key)) return;\n e.preventDefault();\n }}\n className=\"text-center text-base\"\n />\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3\">\n <div className=\"space-y-2 rounded-lg border bg-white p-4\">\n <Label htmlFor={`${fieldId}-lmp`} className={cn('text-sm', lmpError && 'text-red-600')}>\n Last Menstrual Period (LMP)\n </Label>\n <Input\n id={`${fieldId}-lmp`}\n type=\"date\"\n max={today}\n value={draft.lmp}\n onChange={(e) => handleLmpChange(e.target.value)}\n className={cn(lmpError && 'border-red-500')}\n />\n {lmpError && <p className=\"text-xs text-red-600\">{lmpError}</p>}\n </div>\n\n <div className=\"space-y-2 rounded-lg border bg-white p-4 min-w-0\">\n <div className=\"text-sm font-medium\">Pregnancy Status</div>\n <div className=\"flex min-w-0 flex-wrap gap-2\">\n <button\n type=\"button\"\n onClick={() => handlePregStatus('not_pregnant')}\n className={cn(\n 'shrink-0 rounded-full border px-3 py-1.5 text-[11px] font-medium transition-colors',\n draft.pregnancy_status === 'not_pregnant'\n ? 'border-green-600 bg-green-600 text-white'\n : 'border-slate-300 bg-white text-slate-700 hover:bg-slate-50',\n )}\n >\n Not Pregnant\n </button>\n <button\n type=\"button\"\n onClick={() => handlePregStatus('pregnant')}\n className={cn(\n 'shrink-0 rounded-full border px-3 py-1.5 text-[11px] font-medium transition-colors',\n draft.pregnancy_status === 'pregnant'\n ? 'border-green-600 bg-green-600 text-white'\n : 'border-slate-300 bg-white text-slate-700 hover:bg-slate-50',\n )}\n >\n Pregnant\n </button>\n <button\n type=\"button\"\n onClick={() => handlePregStatus('unknown')}\n className={cn(\n 'shrink-0 rounded-full border px-3 py-1.5 text-[11px] font-medium transition-colors',\n draft.pregnancy_status === 'unknown'\n ? 'border-amber-500 bg-amber-500 text-white'\n : 'border-slate-300 bg-white text-slate-700 hover:bg-slate-50',\n )}\n >\n Unknown\n </button>\n </div>\n </div>\n </div>\n\n <div className=\"rounded-lg border bg-white p-4\">\n <div className=\"text-xs font-medium text-muted-foreground mb-3\">Menstrual</div>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-4\">\n <label className=\"space-y-1\">\n <Label htmlFor={`${fieldId}-menarche`} className=\"text-[11px] text-muted-foreground\">\n Menarche (age)\n </Label>\n <Input\n id={`${fieldId}-menarche`}\n type=\"number\"\n min={5}\n max={25}\n value={draft.menstrual.menarche_age}\n onChange={(e) => setMenstrualPatch({ menarche_age: Number(e.target.value) || 0 })}\n />\n </label>\n <label className=\"space-y-1\">\n <Label htmlFor={`${fieldId}-cycle-length`} className=\"text-[11px] text-muted-foreground\">\n Cycle (days)\n </Label>\n <Input\n id={`${fieldId}-cycle-length`}\n type=\"number\"\n min={0}\n max={120}\n value={draft.menstrual.cycle_length}\n onChange={(e) => setMenstrualPatch({ cycle_length: Number(e.target.value) || 0 })}\n />\n </label>\n <label className=\"space-y-1\">\n <Label htmlFor={`${fieldId}-flow-days`} className=\"text-[11px] text-muted-foreground\">\n Flow (days)\n </Label>\n <Input\n id={`${fieldId}-flow-days`}\n type=\"number\"\n min={0}\n max={30}\n value={draft.menstrual.flow_days}\n onChange={(e) => setMenstrualPatch({ flow_days: Number(e.target.value) || 0 })}\n />\n </label>\n <label className=\"space-y-1\">\n <Label className=\"text-[11px] text-muted-foreground\">Dysmenorrhea</Label>\n <select\n className=\"h-9 w-full rounded-md border border-input bg-background px-2 text-sm\"\n value={String(draft.menstrual.dysmenorrhea)}\n onChange={(e) =>\n setMenstrualPatch({\n dysmenorrhea: clampDysmenorrhea(Number(e.target.value)),\n })\n }\n >\n <option value=\"0\">0 — none</option>\n <option value=\"1\">1 — mild</option>\n <option value=\"2\">2 — moderate</option>\n <option value=\"3\">3 — severe</option>\n </select>\n </label>\n </div>\n <label className=\"mt-3 flex items-center gap-2 text-sm\">\n <input\n type=\"checkbox\"\n checked={draft.menstrual.cycle_regular}\n onChange={(e) => setMenstrualPatch({ cycle_regular: e.target.checked })}\n />\n Regular cycle\n </label>\n </div>\n\n <div className=\"space-y-2 rounded-lg border bg-white p-4\">\n <Label htmlFor={`${fieldId}-complications`} className=\"text-sm\">\n Previous Pregnancy Complications\n </Label>\n <Textarea\n id={`${fieldId}-complications`}\n placeholder=\"e.g. Pre-eclampsia, Gestational diabetes, C-section, etc.\"\n value={draft.complications}\n onChange={(e) => setDraft((prev) => ({ ...prev, complications: e.target.value }), 'debounce')}\n className=\"min-h-[140px]\"\n />\n </div>\n </div>\n\n {/* Right panel */}\n <div className=\"rounded-lg border bg-white p-4 min-h-[260px]\">\n {!isPregnant && (\n <div className=\"h-full flex items-center justify-center text-center text-sm text-muted-foreground px-6 py-10\">\n {draft.pregnancy_status === 'unknown'\n ? 'Pregnancy status unknown — confirm with UPT/USG to enable gestational age and EDD.'\n : 'Only for \"Pregnant Women\" and enter LMP to calculate gestational age and EDD'}\n </div>\n )}\n\n {isPregnant && !rightPanelEnabled && (\n <div className=\"h-full flex items-center justify-center text-center text-sm text-muted-foreground px-6 py-10\">\n Enter LMP and/or EDD (USG) to enable gestational age and EDD calculations.\n </div>\n )}\n\n {isPregnant && rightPanelEnabled && (\n <div className=\"space-y-4\">\n <div className=\"rounded-lg border p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"text-sm font-semibold text-blue-700\">Expected Delivery Date (EDD)</div>\n {storedComputed.gestationalAge?.basedOn && (\n <span className=\"rounded-full bg-blue-100 px-2 py-1 text-[11px] text-blue-700\">\n Based on {storedComputed.gestationalAge.basedOn.toUpperCase()}\n </span>\n )}\n </div>\n <div className=\"mt-3\">\n <div className=\"text-xs text-muted-foreground\">Gestational Age:</div>\n <div className=\"text-lg font-semibold\">\n {storedComputed.gestationalAge\n ? `${storedComputed.gestationalAge.weeks} weeks ${storedComputed.gestationalAge.days} days`\n : '—'}\n </div>\n <div className=\"text-xs text-muted-foreground mt-1\">\n {storedComputed.trimester ? `Trimester ${storedComputed.trimester}` : 'Trimester —'}\n </div>\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <div className=\"text-xs text-muted-foreground\">EDD (from LMP):</div>\n <div className=\"rounded-md border bg-muted/20 px-3 py-2 text-sm font-semibold\">\n {storedComputed.edd?.lmp ? formatDdMmYyyy(storedComputed.edd.lmp) : '—'}\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor={`${fieldId}-edd-usg`} className=\"text-sm\">\n EDD (from USG):\n </Label>\n <Input\n id={`${fieldId}-edd-usg`}\n type=\"date\"\n value={draft.eddUSG}\n onChange={(e) => handleEddUsgChange(e.target.value)}\n />\n </div>\n\n <div className=\"space-y-2\">\n <div className=\"text-sm font-medium\">Primary EDD:</div>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n onClick={() => handlePrimaryEdd('lmp')}\n className={cn(\n 'flex-1 rounded-md border px-3 py-2 text-sm',\n draft.primaryEDD === 'lmp' ? 'bg-blue-600 text-white border-blue-600' : 'bg-white'\n )}\n >\n LMP\n </button>\n <button\n type=\"button\"\n onClick={() => handlePrimaryEdd('usg')}\n className={cn(\n 'flex-1 rounded-md border px-3 py-2 text-sm',\n draft.primaryEDD === 'usg' ? 'bg-blue-600 text-white border-blue-600' : 'bg-white'\n )}\n >\n USG\n </button>\n </div>\n {primaryEddError && <p className=\"text-xs text-red-600\">{primaryEddError}</p>}\n </div>\n </div>\n )}\n </div>\n </div>\n\n {/* Antenatal panels (full width of the card) */}\n <AntenatalPanels />\n\n {/* Outcome section */}\n <div className=\"rounded-lg border bg-yellow-50/60 p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"text-sm font-semibold\">\n Pregnancy Outcome (Optional - To Close Episode)\n </div>\n {draft.outcome && (\n <button type=\"button\" className=\"text-sm text-red-600 hover:underline\" onClick={clearOutcome}>\n Clear\n </button>\n )}\n </div>\n\n {!draft.outcome && (\n <button\n type=\"button\"\n onClick={ensureOutcome}\n className=\"mt-3 w-full rounded-md border border-yellow-300 bg-yellow-100 px-3 py-2 text-sm font-medium\"\n >\n + Add Pregnancy Outcome\n </button>\n )}\n\n {draft.outcome && (\n <div className=\"mt-4 space-y-3\">\n <div className=\"space-y-2\">\n <Label className=\"text-sm\">\n Outcome Type <span className=\"text-red-500\">*</span>\n </Label>\n <select\n className=\"w-full rounded-md border px-3 py-2 text-sm bg-white\"\n value={draft.outcome.type}\n onChange={(e) => updateOutcomeImmediate((o) => ({ ...o, type: e.target.value as OutcomeType }))}\n >\n <option value=\"\">Select outcome...</option>\n <option value=\"delivery\">Normal Delivery</option>\n <option value=\"cesarean\">Cesarean Section</option>\n <option value=\"abortion\">Abortion</option>\n <option value=\"miscarriage\">Miscarriage</option>\n <option value=\"stillbirth\">Stillbirth</option>\n </select>\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor={`${fieldId}-outcome-date`} className=\"text-sm\">\n Date <span className=\"text-red-500\">*</span>\n </Label>\n <Input\n id={`${fieldId}-outcome-date`}\n type=\"date\"\n max={today}\n value={draft.outcome.date}\n onChange={(e) => updateOutcomeImmediate((o) => ({ ...o, date: e.target.value }))}\n />\n {draft.outcome.date && (\n <p className=\"text-xs text-muted-foreground\">\n Selected: {formatDdMmYyyy(draft.outcome.date)}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor={`${fieldId}-outcome-notes`} className=\"text-sm\">\n Notes\n </Label>\n <Textarea\n id={`${fieldId}-outcome-notes`}\n placeholder=\"e.g. Normal vaginal delivery, healthy baby boy, 3.2kg\"\n value={draft.outcome.notes}\n onChange={(e) => updateOutcomeNotesDebounced(e.target.value)}\n className=\"min-h-[90px]\"\n />\n </div>\n\n <div className=\"rounded-md border bg-white p-3\">\n <label className=\"flex items-center gap-2 text-sm\">\n <input\n type=\"checkbox\"\n checked={!!draft.outcome.is_final}\n onChange={(e) => updateOutcomeImmediate((o) => ({ ...o, is_final: e.target.checked }))}\n />\n Close this pregnancy episode\n </label>\n {draft.outcome.is_final && (\n <div className=\"mt-3 rounded-md border border-red-300 bg-red-50 px-3 py-2 text-xs text-red-800\">\n Checking this will mark the pregnancy as completed and is intended to close the maternity episode.\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n );\n};\n\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkPHADAQSH_cjs = require('./chunk-PHADAQSH.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkJVIU4OBK_cjs = require('./chunk-JVIU4OBK.cjs');
|
|
5
5
|
var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -34,7 +34,7 @@ var tableClass = "w-full text-xs";
|
|
|
34
34
|
var headerCellClass = "border border-slate-200 px-2 py-1 text-center font-semibold align-middle";
|
|
35
35
|
var cellClass = "border border-slate-200 px-2 py-1 align-top";
|
|
36
36
|
var OphthalDiagnosisWidget = ({ fieldId }) => {
|
|
37
|
-
const { fieldDef, value, setValue, disabled } =
|
|
37
|
+
const { fieldDef, value, setValue, disabled } = chunkJVIU4OBK_cjs.useField(fieldId);
|
|
38
38
|
const safe = react.useMemo(() => ensureValue(value), [value]);
|
|
39
39
|
const label = fieldDef?.label || "";
|
|
40
40
|
const updateEyeField = (eye, fieldLabel, next) => {
|
|
@@ -87,5 +87,5 @@ var OphthalDiagnosisWidget = ({ fieldId }) => {
|
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
exports.OphthalDiagnosisWidget = OphthalDiagnosisWidget;
|
|
90
|
-
//# sourceMappingURL=OphthalDiagnosisWidget-
|
|
91
|
-
//# sourceMappingURL=OphthalDiagnosisWidget-
|
|
90
|
+
//# sourceMappingURL=OphthalDiagnosisWidget-7WY633CI.cjs.map
|
|
91
|
+
//# sourceMappingURL=OphthalDiagnosisWidget-7WY633CI.cjs.map
|
package/dist/{OphthalDiagnosisWidget-UXXYGKD5.cjs.map → OphthalDiagnosisWidget-7WY633CI.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/widgets/OphthalDiagnosisWidget.tsx"],"names":["useField","useMemo","cn","jsx","jsxs","Textarea"],"mappings":"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","file":"OphthalDiagnosisWidget-
|
|
1
|
+
{"version":3,"sources":["../src/ui/widgets/OphthalDiagnosisWidget.tsx"],"names":["useField","useMemo","cn","jsx","jsxs","Textarea"],"mappings":"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","file":"OphthalDiagnosisWidget-7WY633CI.cjs","sourcesContent":["import React, { useMemo } from 'react';\nimport { useField } from '../../react/useField';\nimport { Textarea } from '../shadcn/textarea';\nimport { cn } from '../../core/utils';\n\ntype EyeSide = 'right_eye' | 'left_eye';\n\ntype EyeDiagnosis = Record<string, string>;\n\ntype OphthalDiagnosisValue = {\n right_eye: EyeDiagnosis;\n left_eye: EyeDiagnosis;\n};\n\nconst DIAGNOSIS_FIELDS: string[] = [\n 'INJURY',\n 'APPENDAGES',\n 'CONJUNCTIVA',\n 'SCLERA',\n 'CORNEA',\n 'ANTERIOR CHAMBER (AC)',\n 'PUPIL',\n 'IRIS',\n 'LENS',\n 'EXTRAOCULAR MOVEMENTS & SQUINT',\n 'INTRAOCULAR PRESSURE (IOP)',\n 'GONIOSCOPY',\n 'FUNDUS',\n];\n\nfunction ensureValue(raw: unknown): OphthalDiagnosisValue {\n const v = (raw || {}) as Partial<OphthalDiagnosisValue>;\n return {\n right_eye: v.right_eye ?? {},\n left_eye: v.left_eye ?? {},\n };\n}\n\nconst containerClass =\n 'rounded-md bg-white overflow-hidden flex flex-col';\n\nconst headerClass = 'px-3 py-2 text-sm font-medium text-slate-800 border-b border-slate-200';\n\nconst tableClass = 'w-full text-xs';\n\nconst headerCellClass =\n 'border border-slate-200 px-2 py-1 text-center font-semibold align-middle';\n\nconst cellClass = 'border border-slate-200 px-2 py-1 align-top';\n\nexport const OphthalDiagnosisWidget: React.FC<{ fieldId: string }> = ({ fieldId }) => {\n const { fieldDef, value, setValue, disabled } = useField(fieldId);\n\n const safe = useMemo(() => ensureValue(value), [value]);\n\n const label = fieldDef?.label || '';\n\n const updateEyeField = (eye: EyeSide, fieldLabel: string, next: string) => {\n if (disabled) return;\n const prev = ensureValue(value);\n setValue({\n ...prev,\n [eye]: {\n ...prev[eye],\n [fieldLabel]: next,\n },\n });\n };\n\n return (\n <div className={cn('space-y-2', disabled && 'opacity-70 pointer-events-none')}>\n {label && <h3 className=\"text-base font-semibold text-slate-800\">{label}</h3>}\n\n <section className={containerClass}>\n <div className={headerClass}>\n <span className=\"text-sm\">Diagnosis</span>\n </div>\n <div className=\"overflow-x-auto\">\n <table className={tableClass}>\n <thead>\n <tr>\n <th className={cn(headerCellClass, 'text-left px-3')}>Field</th>\n <th className={headerCellClass}>Right Eye</th>\n <th className={headerCellClass}>Left Eye</th>\n </tr>\n </thead>\n <tbody>\n {DIAGNOSIS_FIELDS.map((fieldLabel) => (\n <tr key={fieldLabel}>\n <td className={cn(cellClass, 'text-left font-semibold px-3')}>{fieldLabel}</td>\n <td className={cellClass}>\n <Textarea\n disabled={disabled}\n rows={2}\n className=\"w-full text-xs min-h-[60px] resize-none\"\n value={safe.right_eye[fieldLabel] ?? ''}\n onChange={(e) => updateEyeField('right_eye', fieldLabel, e.target.value)}\n />\n </td>\n <td className={cellClass}>\n <Textarea\n disabled={disabled}\n rows={2}\n className=\"w-full text-xs min-h-[60px] resize-none\"\n value={safe.left_eye[fieldLabel] ?? ''}\n onChange={(e) => updateEyeField('left_eye', fieldLabel, e.target.value)}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </section>\n </div>\n );\n};\n\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Textarea } from './chunk-4BAKQIPJ.mjs';
|
|
2
|
-
import { useField } from './chunk-
|
|
2
|
+
import { useField } from './chunk-HKEUAERY.mjs';
|
|
3
3
|
import { cn } from './chunk-VPU66PI6.mjs';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -85,5 +85,5 @@ var OphthalDiagnosisWidget = ({ fieldId }) => {
|
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
export { OphthalDiagnosisWidget };
|
|
88
|
-
//# sourceMappingURL=OphthalDiagnosisWidget-
|
|
89
|
-
//# sourceMappingURL=OphthalDiagnosisWidget-
|
|
88
|
+
//# sourceMappingURL=OphthalDiagnosisWidget-YHEDHIX5.mjs.map
|
|
89
|
+
//# sourceMappingURL=OphthalDiagnosisWidget-YHEDHIX5.mjs.map
|