import * as React from 'react'; import { Checkbox, FormControlLabel, TextField, FormGroup, Grid, FormControl, FormLabel, Radio, RadioGroup, } from '@mui/material'; import { useFormik } from 'formik'; import * as Yup from 'yup'; import path from 'path'; import { useEffect } from 'react'; interface Patient { chiefComplaint: string; painWorse: string[]; painBetter: string[]; painQuality: string[]; painWorstTime: string[]; currentComplaintIssues: string[]; painDuration: string; currentTreatment: string; treatmentGoal: string; selfTreatment: string; } type Props = { handleFormSection4Data: ( chiefComplaint: string | undefined, painWorse: any, painBetter: any, painQuality: any, painWorstTime: any, currentComplaintIssues: any, painDuration: string | undefined, currentTreatment: string | undefined, treatmentGoal: string | undefined, selfTreatment: string | undefined ) => void; patientDataDiplay: any; type: string; }; export default function PainAnalysisSection4({ handleFormSection4Data, patientDataDiplay, type, }: Props) { const [patient, setPatient] = React.useState({ chiefComplaint: '', painWorse: [], painBetter: [], painQuality: [], painWorstTime: [], currentComplaintIssues: [], painDuration: '', currentTreatment: '', treatmentGoal: '', selfTreatment: '', }); useEffect(() => { handleFormSection4Data( patient.chiefComplaint, patient.painWorse, patient.painBetter, patient.painQuality, patient.painWorstTime, patient.currentComplaintIssues, patient.painDuration, patient.currentTreatment, patient.treatmentGoal, patient.selfTreatment ); }, [patient]); const handlePainWorseChange = ( event: React.ChangeEvent ) => { const { name, checked } = event.target; setPatient((prevValues) => ({ ...prevValues, painWorse: checked ? [...prevValues.painWorse, name] : prevValues.painWorse.filter((item) => item !== name), })); }; const handlePainBetterChange = ( event: React.ChangeEvent ) => { const { name, checked } = event.target; setPatient((prevValues) => ({ ...prevValues, painBetter: checked ? [...prevValues.painBetter, name] : prevValues.painBetter.filter((item) => item !== name), })); }; const handlePainQualityChange = ( event: React.ChangeEvent ) => { const { name, checked } = event.target; setPatient((prevValues) => ({ ...prevValues, painQuality: checked ? [...prevValues.painQuality, name] : prevValues.painQuality.filter((item) => item !== name), })); }; const handlePainWorstTimeChange = ( event: React.ChangeEvent ) => { const { name, checked } = event.target; setPatient((prevValues) => ({ ...prevValues, painWorstTime: checked ? [...prevValues.painWorstTime, name] : prevValues.painWorstTime.filter((item) => item !== name), })); }; const handleCurrentComplaintIssuesTimeChange = ( event: React.ChangeEvent ) => { const { name, checked } = event.target; setPatient((prevValues) => ({ ...prevValues, currentComplaintIssues: checked ? [...prevValues.currentComplaintIssues, name] : prevValues.currentComplaintIssues.filter((item) => item !== name), })); }; return ( <> Issue Details: { setPatient((prevValues) => ({ ...prevValues, chiefComplaint: e.target.value, })); }} value={ type == 'display' ? patientDataDiplay && patientDataDiplay.chiefComplaint : patient.chiefComplaint } disabled={type == 'display'} /> What makes your pain worse? } label='Bending' disabled={type == 'display'} /> } label='Standing' disabled={type == 'display'} /> } label='Sitting' disabled={type == 'display'} /> } label='Walking' disabled={type == 'display'} /> } label='Others' disabled={type == 'display'} /> What makes your pain better? } label='laying down' disabled={type == 'display'} /> } label='Standing' disabled={type == 'display'} /> } label='Sitting' disabled={type == 'display'} /> } label='Walking' disabled={type == 'display'} /> } label='Others' disabled={type == 'display'} /> What is the quality of your pain? } label='Sharp' disabled={type == 'display'} /> } label='Dull/Ache' disabled={type == 'display'} /> } label='Throbbing' disabled={type == 'display'} /> } label='Tingling/Numbness/Burning' disabled={type == 'display'} /> } label='Others' disabled={type == 'display'} /> What is the worst time for your pain? } label='Morning' disabled={type == 'display'} /> } label='During day' disabled={type == 'display'} /> } label='Evening' disabled={type == 'display'} /> } label='Lying in bed' disabled={type == 'display'} /> } label='Others' disabled={type == 'display'} /> How much of the day do you experience your chief complaint? { setPatient((prevValues) => ({ ...prevValues, painDuration: e.target.value, })); }} value={ type == 'display' ? patientDataDiplay && patientDataDiplay.painDuration : patient.painDuration } sx={{ display: 'flex', flexDirection: 'row' }} > } label='0-25%' /> } label='25-50%' /> } label='50-75%' /> } label='75-100%' /> Has your current complaint caused any of the following? } label='Muscle weakness' disabled={type == 'display'} /> } label='Bowel/Bladder problem' disabled={type == 'display'} /> } label='Digestion' disabled={type == 'display'} /> } label='Cardiac/Respiratory' disabled={type == 'display'} /> Have you tried any self treatment (ex-ice, heat, excercise) or taken any medication(over the counter or prescription)? { setPatient((prevValues) => ({ ...prevValues, selfTreatment: e.target.value, })); }} value={ type == 'display' ? patientDataDiplay && patientDataDiplay.selfTreatment : patient.selfTreatment } sx={{ display: 'flex', flexDirection: 'row' }} > } label='Yes' /> } label='No' /> Expected Treatment Result: { setPatient((prevValues) => ({ ...prevValues, treatmentGoal: e.target.value, })); }} value={ type == 'display' ? patientDataDiplay && patientDataDiplay.treatmentGoal : patient.treatmentGoal } disabled={type == 'display'} /> ); }