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 } export default function PainAnalysisSection4({handleFormSection4Data}: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={patient.chiefComplaint} /> What makes your pain worse? } label="Bending" /> } label="Standing" /> } label="Sitting" /> } label="Walking" /> } label="Others" /> What makes your pain better? } label="laying down" /> } label="Standing" /> } label="Sitting" /> } label="Walking" /> } label="Others" /> What is the quality of your pain? } label="Sharp" /> } label="Dull/Ache" /> } label="Throbbing" /> } label="Tingling/Numbness/Burning" /> } label="Others" /> What is the worst time for your pain? } label="Morning" /> } label="During day" /> } label="Evening" /> } label="Lying in bed" /> } label="Others" /> How much of the day do you experience your chief complaint? { setPatient((prevValues) => ({ ...prevValues, painDuration: e.target.value, })); }} value={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" /> } label="Bowel/Bladder problem" /> } label="Digestion" /> } label="Cardiac/Respiratory" /> 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={patient.selfTreatment} sx={{display:'flex', flexDirection:'row'}} > } label="Yes" /> } label="No" /> Expected Treatment Result: { setPatient((prevValues) => ({ ...prevValues, treatmentGoal: e.target.value, })); }} value={patient.treatmentGoal} /> )}