{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\User\\\\Downloads\\\\medora5\\\\frontend\\\\src\\\\pages\\\\procedures\\\\ProcedureResultForm.js\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { procedureService } from '../../services/procedureService';\nimport { patientService } from '../../services/patientService';\nimport { medicalRecordService } from '../../services/medicalRecordService';\nimport ErrorAlert from '../../components/ErrorAlert';\nimport SuccessAlert from '../../components/SuccessAlert';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction ProcedureResultForm() {\n _s();\n var _selectedProcedure$pr;\n const navigate = useNavigate();\n const [error, setError] = useState(null);\n const [success, setSuccess] = useState(null);\n const [loading, setLoading] = useState(false);\n const [searchEmbg, setSearchEmbg] = useState('');\n const [patient, setPatient] = useState(null);\n const [performedProcedures, setPerformedProcedures] = useState([]);\n const [selectedProcedure, setSelectedProcedure] = useState(null);\n const [medicalRecordId, setMedicalRecordId] = useState(null);\n const [formData, setFormData] = useState({\n medicalRecordId: '',\n procedureId: '',\n resultDescription: '',\n resultDate: new Date().toISOString().split('T')[0]\n });\n const handleSearch = async e => {\n e.preventDefault();\n setError(null);\n setLoading(true);\n try {\n if (!searchEmbg.trim()) {\n setError('Please enter patient EMBG');\n setLoading(false);\n return;\n }\n const patientRes = await patientService.getPatientByEmbg(searchEmbg);\n setPatient(patientRes.data);\n\n // Get medical record\n const medicalRecordRes = await medicalRecordService.getMedicalRecordByPatientId(patientRes.data.patientId);\n setMedicalRecordId(medicalRecordRes.data.recordId);\n\n // Get performed procedures\n try {\n const proceduresRes = await procedureService.getPerformedProceduresForPatient(patientRes.data.patientId);\n setPerformedProcedures(Array.isArray(proceduresRes.data) ? proceduresRes.data : []);\n } catch (err) {\n console.error('Failed to fetch performed procedures:', err);\n setPerformedProcedures([]);\n }\n setFormData(prev => ({\n ...prev,\n medicalRecordId: medicalRecordRes.data.recordId\n }));\n } catch (err) {\n var _err$response, _err$response$data;\n console.error('Search error:', err);\n setError(`Error: ${((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.error) || err.message || 'Patient not found'}`);\n setPatient(null);\n setPerformedProcedures([]);\n } finally {\n setLoading(false);\n }\n };\n const handleSelectProcedure = procedure => {\n setSelectedProcedure(procedure);\n setFormData(prev => {\n var _procedure$procedure;\n return {\n ...prev,\n procedureId: ((_procedure$procedure = procedure.procedure) === null || _procedure$procedure === void 0 ? void 0 : _procedure$procedure.procedureId) || procedure.procedureId,\n medicalRecordId: medicalRecordId || prev.medicalRecordId\n };\n });\n };\n const handleChange = e => {\n const {\n name,\n value\n } = e.target;\n setFormData({\n ...formData,\n [name]: value\n });\n };\n const handleSubmit = async e => {\n e.preventDefault();\n setError(null);\n setSuccess(null);\n if (!formData.medicalRecordId || !formData.procedureId || !formData.resultDescription) {\n setError('Please fill in all required fields');\n return;\n }\n try {\n setLoading(true);\n const submitData = {\n medicalRecordId: parseInt(formData.medicalRecordId),\n procedureId: parseInt(formData.procedureId),\n resultDescription: formData.resultDescription,\n resultDate: formData.resultDate\n };\n await procedureService.submitProcedureResult(submitData);\n setSuccess('Procedure result submitted successfully!');\n setFormData({\n medicalRecordId: '',\n procedureId: '',\n resultDescription: '',\n resultDate: new Date().toISOString().split('T')[0]\n });\n setSelectedProcedure(null);\n setPatient(null);\n setSearchEmbg('');\n setPerformedProcedures([]);\n\n // Navigate back to procedures page after a short delay\n setTimeout(() => navigate('/procedures'), 2000);\n } catch (err) {\n var _err$response2, _err$response2$data;\n setError('Failed to submit procedure result: ' + (((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.error) || err.message));\n setLoading(false);\n }\n };\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-w-3xl mx-auto\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n className: \"text-3xl font-bold mb-6\",\n children: \"Submit Procedure Result\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 7\n }, this), error && /*#__PURE__*/_jsxDEV(ErrorAlert, {\n message: error,\n onClose: () => setError(null)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 17\n }, this), success && /*#__PURE__*/_jsxDEV(SuccessAlert, {\n message: success,\n onClose: () => setSuccess(null)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6 mb-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-xl font-bold mb-4\",\n children: \"Search Patient\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSearch,\n className: \"flex gap-4\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n value: searchEmbg,\n onChange: e => setSearchEmbg(e.target.value),\n placeholder: \"Enter patient EMBG\",\n className: \"flex-1 px-4 py-2 border rounded-lg\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n disabled: loading,\n className: \"bg-purple-600 text-white px-8 py-2 rounded hover:bg-purple-700 disabled:bg-gray-400\",\n children: loading ? 'Searching...' : 'Search'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this), patient && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-6\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-2xl font-bold mb-4\",\n children: [patient.firstName, \" \", patient.lastName]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-3 gap-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"EMBG\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-semibold\",\n children: patient.embg\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"Blood Type\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-semibold\",\n children: patient.bloodType || 'N/A'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-600\",\n children: \"Date of Birth\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-semibold\",\n children: patient.dateOfBirth\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 11\n }, this), performedProcedures.length > 0 ? /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-xl font-bold mb-4\",\n children: \"Performed Procedures\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-2\",\n children: performedProcedures.map(proc => {\n var _proc$procedure, _proc$doctor, _proc$doctor2;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n onClick: () => handleSelectProcedure(proc),\n className: `p-4 rounded-lg border-2 cursor-pointer transition ${(selectedProcedure === null || selectedProcedure === void 0 ? void 0 : selectedProcedure.performedId) === proc.performedId ? 'border-purple-600 bg-blue-50' : 'border-gray-200 bg-gray-50 hover:border-blue-400'}`,\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-semibold text-lg\",\n children: ((_proc$procedure = proc.procedure) === null || _proc$procedure === void 0 ? void 0 : _proc$procedure.procedureType) || 'Procedure'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-600\",\n children: [\"Requested by: \", (_proc$doctor = proc.doctor) === null || _proc$doctor === void 0 ? void 0 : _proc$doctor.firstName, \" \", (_proc$doctor2 = proc.doctor) === null || _proc$doctor2 === void 0 ? void 0 : _proc$doctor2.lastName]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-600\",\n children: [\"Procedure Date: \", proc.procedureDate]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 21\n }, this), proc.notes && /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: [\"Notes: \", proc.notes]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 23\n }, this)]\n }, proc.performedId, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 19\n }, this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 13\n }, this) : /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-blue-50 rounded-lg p-6 text-center\",\n children: /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-gray-600\",\n children: \"No performed procedures for this patient\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 13\n }, this), selectedProcedure && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-xl font-bold mb-4\",\n children: [\"Submit Result for \", (_selectedProcedure$pr = selectedProcedure.procedure) === null || _selectedProcedure$pr === void 0 ? void 0 : _selectedProcedure$pr.procedureType]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-2 gap-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-semibold mb-2\",\n children: \"Procedure ID\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"number\",\n value: formData.procedureId,\n disabled: true,\n className: \"w-full px-4 py-2 border rounded-lg bg-gray-100\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-semibold mb-2\",\n children: \"Medical Record ID\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"number\",\n value: formData.medicalRecordId,\n disabled: true,\n className: \"w-full px-4 py-2 border rounded-lg bg-gray-100\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 21\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-semibold mb-2\",\n children: \"Procedure Outcome *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n name: \"resultDescription\",\n value: formData.resultDescription,\n onChange: handleChange,\n placeholder: \"Describe the procedure outcome and any findings\",\n className: \"w-full px-4 py-2 border rounded-lg\",\n rows: \"6\",\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-semibold mb-2\",\n children: \"Result Date\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"date\",\n name: \"resultDate\",\n value: formData.resultDate,\n onChange: handleChange,\n className: \"w-full px-4 py-2 border rounded-lg\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex gap-4 pt-6\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n disabled: loading,\n className: \"flex-1 bg-purple-600 text-white py-2 rounded-lg hover:bg-purple-700 disabled:bg-gray-400\",\n children: loading ? 'Submitting...' : 'Submit Result'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n onClick: () => navigate('/procedures'),\n className: \"flex-1 bg-gray-400 text-white py-2 rounded-lg hover:bg-gray-500\",\n children: \"Cancel\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 9\n }, this), !patient && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-gray-50 rounded-lg p-12 text-center\",\n children: /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-gray-600 text-lg\",\n children: \"Enter a patient EMBG to view performed procedures\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 284,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 5\n }, this);\n}\n_s(ProcedureResultForm, \"xez97QAq/Xsj72bTrAqU4qaiJkw=\", false, function () {\n return [useNavigate];\n});\n_c = ProcedureResultForm;\nexport default ProcedureResultForm;\nvar _c;\n$RefreshReg$(_c, \"ProcedureResultForm\");","map":{"version":3,"names":["React","useState","useNavigate","procedureService","patientService","medicalRecordService","ErrorAlert","SuccessAlert","jsxDEV","_jsxDEV","ProcedureResultForm","_s","_selectedProcedure$pr","navigate","error","setError","success","setSuccess","loading","setLoading","searchEmbg","setSearchEmbg","patient","setPatient","performedProcedures","setPerformedProcedures","selectedProcedure","setSelectedProcedure","medicalRecordId","setMedicalRecordId","formData","setFormData","procedureId","resultDescription","resultDate","Date","toISOString","split","handleSearch","e","preventDefault","trim","patientRes","getPatientByEmbg","data","medicalRecordRes","getMedicalRecordByPatientId","patientId","recordId","proceduresRes","getPerformedProceduresForPatient","Array","isArray","err","console","prev","_err$response","_err$response$data","response","message","handleSelectProcedure","procedure","_procedure$procedure","handleChange","name","value","target","handleSubmit","submitData","parseInt","submitProcedureResult","setTimeout","_err$response2","_err$response2$data","className","children","fileName","_jsxFileName","lineNumber","columnNumber","onClose","onSubmit","type","onChange","placeholder","disabled","firstName","lastName","embg","bloodType","dateOfBirth","length","map","proc","_proc$procedure","_proc$doctor","_proc$doctor2","onClick","performedId","procedureType","doctor","procedureDate","notes","rows","required","_c","$RefreshReg$"],"sources":["C:/Users/User/Downloads/medora5/frontend/src/pages/procedures/ProcedureResultForm.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { procedureService } from '../../services/procedureService';\nimport { patientService } from '../../services/patientService';\nimport { medicalRecordService } from '../../services/medicalRecordService';\nimport ErrorAlert from '../../components/ErrorAlert';\nimport SuccessAlert from '../../components/SuccessAlert';\n\nfunction ProcedureResultForm() {\n const navigate = useNavigate();\n const [error, setError] = useState(null);\n const [success, setSuccess] = useState(null);\n const [loading, setLoading] = useState(false);\n const [searchEmbg, setSearchEmbg] = useState('');\n const [patient, setPatient] = useState(null);\n const [performedProcedures, setPerformedProcedures] = useState([]);\n const [selectedProcedure, setSelectedProcedure] = useState(null);\n const [medicalRecordId, setMedicalRecordId] = useState(null);\n\n const [formData, setFormData] = useState({\n medicalRecordId: '',\n procedureId: '',\n resultDescription: '',\n resultDate: new Date().toISOString().split('T')[0],\n });\n\n const handleSearch = async (e) => {\n e.preventDefault();\n setError(null);\n setLoading(true);\n\n try {\n if (!searchEmbg.trim()) {\n setError('Please enter patient EMBG');\n setLoading(false);\n return;\n }\n\n const patientRes = await patientService.getPatientByEmbg(searchEmbg);\n setPatient(patientRes.data);\n\n // Get medical record\n const medicalRecordRes = await medicalRecordService.getMedicalRecordByPatientId(patientRes.data.patientId);\n setMedicalRecordId(medicalRecordRes.data.recordId);\n\n // Get performed procedures\n try {\n const proceduresRes = await procedureService.getPerformedProceduresForPatient(patientRes.data.patientId);\n setPerformedProcedures(Array.isArray(proceduresRes.data) ? proceduresRes.data : []);\n } catch (err) {\n console.error('Failed to fetch performed procedures:', err);\n setPerformedProcedures([]);\n }\n\n setFormData(prev => ({\n ...prev,\n medicalRecordId: medicalRecordRes.data.recordId\n }));\n } catch (err) {\n console.error('Search error:', err);\n setError(`Error: ${err.response?.data?.error || err.message || 'Patient not found'}`);\n setPatient(null);\n setPerformedProcedures([]);\n } finally {\n setLoading(false);\n }\n };\n\n const handleSelectProcedure = (procedure) => {\n setSelectedProcedure(procedure);\n setFormData(prev => ({\n ...prev,\n procedureId: procedure.procedure?.procedureId || procedure.procedureId,\n medicalRecordId: medicalRecordId || prev.medicalRecordId\n }));\n };\n\n const handleChange = (e) => {\n const { name, value } = e.target;\n setFormData({\n ...formData,\n [name]: value,\n });\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setError(null);\n setSuccess(null);\n\n if (!formData.medicalRecordId || !formData.procedureId || !formData.resultDescription) {\n setError('Please fill in all required fields');\n return;\n }\n\n try {\n setLoading(true);\n\n const submitData = {\n medicalRecordId: parseInt(formData.medicalRecordId),\n procedureId: parseInt(formData.procedureId),\n resultDescription: formData.resultDescription,\n resultDate: formData.resultDate,\n };\n\n await procedureService.submitProcedureResult(submitData);\n\n setSuccess('Procedure result submitted successfully!');\n setFormData({\n medicalRecordId: '',\n procedureId: '',\n resultDescription: '',\n resultDate: new Date().toISOString().split('T')[0],\n });\n setSelectedProcedure(null);\n setPatient(null);\n setSearchEmbg('');\n setPerformedProcedures([]);\n\n // Navigate back to procedures page after a short delay\n setTimeout(() => navigate('/procedures'), 2000);\n } catch (err) {\n setError('Failed to submit procedure result: ' + (err.response?.data?.error || err.message));\n setLoading(false);\n }\n };\n\n return (\n
EMBG
\n{patient.embg}
\nBlood Type
\n{patient.bloodType || 'N/A'}
\nDate of Birth
\n{patient.dateOfBirth}
\n{proc.procedure?.procedureType || 'Procedure'}
\nRequested by: {proc.doctor?.firstName} {proc.doctor?.lastName}
\nProcedure Date: {proc.procedureDate}
\n {proc.notes && (\nNotes: {proc.notes}
\n )}\nNo performed procedures for this patient
\nEnter a patient EMBG to view performed procedures
\n