{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\User\\\\Downloads\\\\medora5\\\\frontend\\\\src\\\\pages\\\\medical-records\\\\MedicalRecordDetail.js\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { medicalRecordService } from '../../services/medicalRecordService';\nimport { doctorService } from '../../services/doctorService';\nimport { labService } from '../../services/labService';\nimport { procedureService } from '../../services/procedureService';\nimport ErrorAlert from '../../components/ErrorAlert';\nimport SuccessAlert from '../../components/SuccessAlert';\nimport Loading from '../../components/Loading';\nimport apiClient from '../../services/api';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction MedicalRecordDetail() {\n  _s();\n  const {\n    id\n  } = useParams();\n  const navigate = useNavigate();\n  const user = JSON.parse(localStorage.getItem('user') || '{}');\n  const isDoctor = user.role === 'DOCTOR';\n  const [record, setRecord] = useState(null);\n  const [loading, setLoading] = useState(true);\n  const [error, setError] = useState(null);\n  const [success, setSuccess] = useState(null);\n  const [activeTab, setActiveTab] = useState('view');\n  const [doctors, setDoctors] = useState([]);\n  const [selectedDoctorId, setSelectedDoctorId] = useState(isDoctor ? user.doctorId : '');\n\n  // Diagnosis form\n  const [diagnosisForm, setDiagnosisForm] = useState({\n    diagnosisId: '',\n    doctorId: ''\n  });\n\n  // Symptoms form\n  const [symptomsForm, setSymptomsForm] = useState({\n    symptomId: ''\n  });\n\n  // Allergies form\n  const [allergyForm, setAllergyForm] = useState({\n    allergyId: '',\n    severity: 'MEDIUM',\n    reaction: ''\n  });\n\n  // Prescription form\n  const [prescriptionForm, setPrescriptionForm] = useState({\n    prescriptionId: '',\n    dosage: '',\n    frequency: '',\n    duration: '',\n    reason: ''\n  });\n\n  // Dropdown options\n  const [diagnoses, setDiagnoses] = useState([]);\n  const [symptoms, setSymptoms] = useState([]);\n  const [allergies, setAllergies] = useState([]);\n  const [prescriptions, setPrescriptions] = useState([]);\n  const [labTests, setLabTests] = useState([]);\n  const [procedures, setProcedures] = useState([]);\n\n  // Lab test form\n  const [labTestForm, setLabTestForm] = useState({\n    testId: '',\n    testDate: new Date().toISOString().split('T')[0],\n    notes: ''\n  });\n\n  // Procedure form\n  const [procedureForm, setProcedureForm] = useState({\n    procedureId: '',\n    procedureDate: new Date().toISOString().split('T')[0],\n    notes: '',\n    diagnosisId: ''\n  });\n  const [labResults, setLabResults] = useState([]);\n  const [procedureResults, setProcedureResults] = useState([]);\n  const fetchRecord = useCallback(async () => {\n    try {\n      setLoading(true);\n      const response = await medicalRecordService.getMedicalRecordByPatientId(id);\n      setRecord(response.data);\n\n      // Fetch lab results\n      try {\n        const resultsResponse = await labService.getLabResultsForMedicalRecord(response.data.recordId);\n        setLabResults(resultsResponse.data || []);\n      } catch (err) {\n        console.error('Failed to fetch lab results:', err);\n        setLabResults([]);\n      }\n\n      // Fetch procedure results\n      try {\n        const procedureResultsResponse = await procedureService.getProcedureResultsForMedicalRecord(response.data.recordId);\n        setProcedureResults(procedureResultsResponse.data || []);\n      } catch (err) {\n        console.error('Failed to fetch procedure results:', err);\n        setProcedureResults([]);\n      }\n    } catch (err) {\n      setError('Failed to fetch medical record');\n      console.error(err);\n    } finally {\n      setLoading(false);\n    }\n  }, [id]);\n  useEffect(() => {\n    const fetchDoctors = async () => {\n      try {\n        if (!isDoctor) {\n          const response = await doctorService.getAllDoctors();\n          setDoctors(response.data);\n          if (response.data.length > 0 && !selectedDoctorId) {\n            setSelectedDoctorId(response.data[0].doctorId);\n          }\n        }\n      } catch (err) {\n        console.error('Failed to fetch doctors', err);\n      }\n    };\n    const fetchDropdownOptions = async () => {\n      try {\n        console.log('Fetching dropdown options...');\n        const diagnosesRes = await apiClient.get('/medical-records/dropdown/diagnoses');\n        console.log('Diagnoses:', diagnosesRes.data);\n        const symptomsRes = await apiClient.get('/medical-records/dropdown/symptoms');\n        console.log('Symptoms:', symptomsRes.data);\n        const allergiesRes = await apiClient.get('/medical-records/dropdown/allergies');\n        console.log('Allergies:', allergiesRes.data);\n        const prescriptionsRes = await apiClient.get('/medical-records/dropdown/prescriptions');\n        console.log('Prescriptions:', prescriptionsRes.data);\n        const testsRes = await labService.getAllLabTests();\n        console.log('Lab Tests:', testsRes.data);\n        const proceduresRes = await procedureService.getAllProcedures();\n        console.log('Procedures:', proceduresRes.data);\n        setDiagnoses(diagnosesRes.data || []);\n        setSymptoms(symptomsRes.data || []);\n        setAllergies(allergiesRes.data || []);\n        setPrescriptions(prescriptionsRes.data || []);\n        setLabTests(testsRes.data || []);\n        setProcedures(proceduresRes.data || []);\n        console.log('Dropdown options set successfully');\n      } catch (err) {\n        var _err$response, _err$response$data;\n        console.error('Error fetching dropdown options:', err);\n        setError('Failed to load dropdown options: ' + (((_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));\n      }\n    };\n    fetchRecord();\n    fetchDoctors();\n    fetchDropdownOptions();\n  }, [id, isDoctor, fetchRecord, selectedDoctorId]);\n  const handleAddDiagnosis = async e => {\n    e.preventDefault();\n    try {\n      if (!diagnosisForm.diagnosisId) {\n        setError('Please select a diagnosis');\n        return;\n      }\n      if (!selectedDoctorId) {\n        setError('Please select a doctor');\n        return;\n      }\n      const selectedDiagnosis = diagnoses.find(d => d.id === parseInt(diagnosisForm.diagnosisId));\n      await apiClient.post('/diagnoses', {\n        patientId: parseInt(record.patientId),\n        doctorId: parseInt(selectedDoctorId),\n        name: selectedDiagnosis.name,\n        description: ''\n      });\n      setSuccess('Diagnosis recorded successfully');\n      setDiagnosisForm({\n        diagnosisId: '',\n        doctorId: ''\n      });\n      setTimeout(() => fetchRecord(), 1000);\n    } catch (err) {\n      var _err$response2, _err$response2$data;\n      setError(((_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) || 'Failed to record diagnosis');\n    }\n  };\n  const handleAddSymptom = async e => {\n    e.preventDefault();\n    try {\n      if (!symptomsForm.symptomId) {\n        setError('Please select a symptom');\n        return;\n      }\n      await apiClient.post(`/medical-records/${record.recordId}/symptoms`, {\n        symptomId: parseInt(symptomsForm.symptomId),\n        severity: 'MEDIUM'\n      });\n      setSuccess('Symptom recorded successfully');\n      setSymptomsForm({\n        symptomId: ''\n      });\n      setTimeout(() => fetchRecord(), 1000);\n    } catch (err) {\n      var _err$response3, _err$response3$data;\n      setError(((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.error) || 'Failed to record symptom');\n    }\n  };\n  const handleAddAllergy = async e => {\n    e.preventDefault();\n    try {\n      if (!allergyForm.allergyId) {\n        setError('Please select an allergy');\n        return;\n      }\n      await apiClient.post(`/medical-records/${record.recordId}/allergies`, {\n        allergyId: parseInt(allergyForm.allergyId),\n        severity: allergyForm.severity,\n        reaction: allergyForm.reaction\n      });\n      setSuccess('Allergy recorded successfully');\n      setAllergyForm({\n        allergyId: '',\n        severity: 'MEDIUM',\n        reaction: ''\n      });\n      setTimeout(() => fetchRecord(), 1000);\n    } catch (err) {\n      var _err$response4, _err$response4$data;\n      setError(((_err$response4 = err.response) === null || _err$response4 === void 0 ? void 0 : (_err$response4$data = _err$response4.data) === null || _err$response4$data === void 0 ? void 0 : _err$response4$data.error) || 'Failed to record allergy');\n    }\n  };\n  const handleAddPrescription = async e => {\n    e.preventDefault();\n    try {\n      if (!prescriptionForm.prescriptionId) {\n        setError('Please select a prescription medication');\n        return;\n      }\n      if (!prescriptionForm.dosage.trim()) {\n        setError('Dosage is required');\n        return;\n      }\n      if (!prescriptionForm.frequency.trim()) {\n        setError('Frequency is required');\n        return;\n      }\n      if (!prescriptionForm.duration.trim()) {\n        setError('Duration is required');\n        return;\n      }\n      const selectedPrescription = prescriptions.find(p => p.id === parseInt(prescriptionForm.prescriptionId));\n      await apiClient.post('/prescriptions', {\n        medicalRecordId: record.recordId,\n        medicationName: selectedPrescription.name,\n        dosage: prescriptionForm.dosage,\n        frequency: prescriptionForm.frequency,\n        duration: prescriptionForm.duration,\n        notes: prescriptionForm.reason\n      });\n      setSuccess('Prescription recorded successfully');\n      setPrescriptionForm({\n        prescriptionId: '',\n        dosage: '',\n        frequency: '',\n        duration: '',\n        reason: ''\n      });\n      setTimeout(() => fetchRecord(), 1000);\n    } catch (err) {\n      var _err$response5, _err$response5$data;\n      setError(((_err$response5 = err.response) === null || _err$response5 === void 0 ? void 0 : (_err$response5$data = _err$response5.data) === null || _err$response5$data === void 0 ? void 0 : _err$response5$data.error) || 'Failed to record prescription');\n    }\n  };\n  if (loading) return /*#__PURE__*/_jsxDEV(Loading, {}, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 271,\n    columnNumber: 23\n  }, this);\n  if (!record) {\n    return /*#__PURE__*/_jsxDEV(\"div\", {\n      children: /*#__PURE__*/_jsxDEV(ErrorAlert, {\n        message: \"Medical record not found\",\n        onClose: () => navigate('/medical-records')\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 276,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 275,\n      columnNumber: 7\n    }, this);\n  }\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"flex justify-between items-center mb-6\",\n      children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n        style: {\n          fontSize: '36px',\n          fontWeight: 'normal'\n        },\n        children: \"Medical Record\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 284,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => navigate('/medical-records'),\n        className: \"bg-gray-300 text-gray-700 px-4 py-2 rounded hover:bg-gray-400\",\n        children: \"Back\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 285,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 283,\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: 293,\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: 294,\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        style: {\n          fontSize: '20px',\n          fontWeight: 'normal',\n          marginBottom: '16px'\n        },\n        children: \"Patient Information\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 298,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"grid grid-cols-4 gap-4\",\n        children: [/*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"font-normal text-sm text-gray-600\",\n            children: \"Patient Name\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 301,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"font-normal\",\n            children: record.patientName\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 302,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 300,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"font-normal text-sm text-gray-600\",\n            children: \"EMBG\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 305,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"font-normal\",\n            children: record.embg\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 306,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 304,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"font-normal text-sm text-gray-600\",\n            children: \"Record ID\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 309,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"font-normal\",\n            children: record.recordId\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 310,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 308,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"font-normal text-sm text-gray-600\",\n            children: \"Patient ID\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 313,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"font-normal\",\n            children: record.patientId\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 314,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 312,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 299,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 297,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"flex gap-2 mb-6 border-b\",\n      children: [/*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => setActiveTab('view'),\n        style: {\n          fontWeight: 'normal'\n        },\n        className: `px-6 py-3 ${activeTab === 'view' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n        children: \"View Medical Data\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 321,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"text-gray-600 px-3\",\n        style: {\n          fontWeight: 'normal'\n        },\n        children: \"|\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 332,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => setActiveTab('diagnosis'),\n        style: {\n          fontWeight: 'normal'\n        },\n        className: `px-6 py-3 ${activeTab === 'diagnosis' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n        children: \"Record Diagnosis\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 333,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"text-gray-600 px-3\",\n        style: {\n          fontWeight: 'normal'\n        },\n        children: \"|\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 344,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => setActiveTab('symptoms'),\n        style: {\n          fontWeight: 'normal'\n        },\n        className: `px-6 py-3 ${activeTab === 'symptoms' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n        children: \"Record Symptoms\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 345,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"text-gray-600 px-3\",\n        style: {\n          fontWeight: 'normal'\n        },\n        children: \"|\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 356,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => setActiveTab('allergies'),\n        style: {\n          fontWeight: 'normal'\n        },\n        className: `px-6 py-3 ${activeTab === 'allergies' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n        children: \"Record Allergies\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 357,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"text-gray-600 px-3\",\n        style: {\n          fontWeight: 'normal'\n        },\n        children: \"|\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 368,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => setActiveTab('prescription'),\n        style: {\n          fontWeight: 'normal'\n        },\n        className: `px-6 py-3 ${activeTab === 'prescription' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n        children: \"Record Prescription\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 369,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"text-gray-600 px-3\",\n        style: {\n          fontWeight: 'normal'\n        },\n        children: \"|\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 380,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => setActiveTab('lab-tests'),\n        style: {\n          fontWeight: 'normal'\n        },\n        className: `px-6 py-3 ${activeTab === 'lab-tests' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n        children: \"Request Lab Test\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 381,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"text-gray-600 px-3\",\n        style: {\n          fontWeight: 'normal'\n        },\n        children: \"|\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 392,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => setActiveTab('procedures'),\n        style: {\n          fontWeight: 'normal'\n        },\n        className: `px-6 py-3 ${activeTab === 'procedures' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n        children: \"Request Procedure\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 393,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 320,\n      columnNumber: 7\n    }, this), activeTab === 'view' && /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"space-y-6\",\n      children: [record.diagnoses && record.diagnoses.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"bg-white rounded-lg shadow p-6\",\n        children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n          className: \"font-normal\",\n          style: {\n            fontSize: '20px',\n            marginBottom: '16px'\n          },\n          children: \"Diagnoses\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 412,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"space-y-3\",\n          children: record.diagnoses.map(diagnosis => /*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"border-l-4 border-purple-500 pl-4 py-2\",\n            children: [/*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal\",\n              style: {\n                fontSize: '18px'\n              },\n              children: diagnosis.name\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 416,\n              columnNumber: 21\n            }, this), diagnosis.description && /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-gray-600 text-sm\",\n              children: diagnosis.description\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 418,\n              columnNumber: 23\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-xs text-gray-500\",\n              children: [\"By: \", diagnosis.doctorName]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 420,\n              columnNumber: 21\n            }, this)]\n          }, diagnosis.diagnosisId, true, {\n            fileName: _jsxFileName,\n            lineNumber: 415,\n            columnNumber: 19\n          }, this))\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 413,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 411,\n        columnNumber: 13\n      }, this), record.symptoms && record.symptoms.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"bg-white rounded-lg shadow p-6\",\n        children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n          className: \"font-normal\",\n          style: {\n            fontSize: '20px',\n            marginBottom: '16px'\n          },\n          children: \"Symptoms\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 430,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"flex flex-wrap gap-2\",\n          children: record.symptoms.map(symptom => /*#__PURE__*/_jsxDEV(\"span\", {\n            className: \"bg-yellow-100 text-yellow-800 px-3 py-1 rounded-full text-sm font-normal\",\n            children: symptom.symptomName\n          }, symptom.symptomId, false, {\n            fileName: _jsxFileName,\n            lineNumber: 433,\n            columnNumber: 19\n          }, this))\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 431,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 429,\n        columnNumber: 13\n      }, this), record.allergies && record.allergies.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"bg-white rounded-lg shadow p-6\",\n        children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n          className: \"font-normal\",\n          style: {\n            fontSize: '20px',\n            marginBottom: '16px'\n          },\n          children: \"Allergies\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 447,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"space-y-3\",\n          children: record.allergies.map(allergy => /*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"border-l-4 border-red-500 pl-4 py-2\",\n            children: [/*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal\",\n              children: allergy.allergyName\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 451,\n              columnNumber: 21\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal\",\n              style: {\n                fontSize: '14px'\n              },\n              children: /*#__PURE__*/_jsxDEV(\"span\", {\n                className: \"font-normal\",\n                style: {\n                  padding: '4px 8px',\n                  borderRadius: '4px',\n                  color: 'white',\n                  fontSize: '12px',\n                  background: allergy.severity === 'CRITICAL' ? '#dc2626' : allergy.severity === 'HIGH' ? '#ef4444' : allergy.severity === 'MEDIUM' ? '#eab308' : '#22c55e'\n                },\n                children: [allergy.severity, \" Severity\"]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 453,\n                columnNumber: 23\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 452,\n              columnNumber: 21\n            }, this), allergy.reaction && /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-gray-600 text-sm\",\n              children: [\"Reaction: \", allergy.reaction]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 467,\n              columnNumber: 23\n            }, this)]\n          }, allergy.allergyId, true, {\n            fileName: _jsxFileName,\n            lineNumber: 450,\n            columnNumber: 19\n          }, this))\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 448,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 446,\n        columnNumber: 13\n      }, this), record.prescriptions && record.prescriptions.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"bg-white rounded-lg shadow p-6\",\n        children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n          className: \"font-normal\",\n          style: {\n            fontSize: '20px',\n            marginBottom: '16px'\n          },\n          children: \"Prescriptions\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 478,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"space-y-3\",\n          children: record.prescriptions.map(prescription => /*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"border-l-4 border-purple-500 pl-4 py-2\",\n            children: [/*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal\",\n              children: prescription.medicationName\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 482,\n              columnNumber: 21\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-sm text-gray-600\",\n              children: [\"Dosage: \", prescription.dosage]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 483,\n              columnNumber: 21\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-sm text-gray-600\",\n              children: [\"Frequency: \", prescription.frequency]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 484,\n              columnNumber: 21\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-sm text-gray-600\",\n              children: [\"Duration: \", prescription.duration]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 485,\n              columnNumber: 21\n            }, this)]\n          }, prescription.prescriptionId, true, {\n            fileName: _jsxFileName,\n            lineNumber: 481,\n            columnNumber: 19\n          }, this))\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 479,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 477,\n        columnNumber: 13\n      }, this), record.reports && record.reports.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"bg-white rounded-lg shadow p-6\",\n        children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n          className: \"font-normal\",\n          style: {\n            fontSize: '20px',\n            marginBottom: '16px'\n          },\n          children: \"Medical Reports\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 495,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"space-y-3\",\n          children: record.reports.map(report => /*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"border-l-4 border-green-500 pl-4 py-2\",\n            children: [/*#__PURE__*/_jsxDEV(\"p\", {\n              style: {\n                fontWeight: 'normal'\n              },\n              children: [\"Report from \", report.doctorName]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 499,\n              columnNumber: 21\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-gray-600 text-sm\",\n              children: report.description\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 500,\n              columnNumber: 21\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-xs text-gray-500\",\n              children: [\"Date: \", report.reportDate]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 501,\n              columnNumber: 21\n            }, this)]\n          }, report.reportId, true, {\n            fileName: _jsxFileName,\n            lineNumber: 498,\n            columnNumber: 19\n          }, this))\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 496,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 494,\n        columnNumber: 13\n      }, this), labResults && labResults.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"bg-white rounded-lg shadow p-6\",\n        children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n          className: \"font-normal\",\n          style: {\n            fontSize: '20px',\n            marginBottom: '16px'\n          },\n          children: \"Lab Test Results\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 511,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"space-y-3\",\n          children: labResults.map(result => /*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"border-l-4 border-cyan-500 pl-4 py-3 bg-cyan-50 rounded\",\n            children: [/*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal\",\n              style: {\n                fontSize: '18px',\n                color: '#0891b2'\n              },\n              children: result.testName\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 515,\n              columnNumber: 21\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-sm text-gray-700 mt-2\",\n              children: [\"Results: \", result.results]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 516,\n              columnNumber: 21\n            }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n              className: \"font-normal text-sm text-gray-600\",\n              children: [\"Result Date: \", result.resultDate]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 517,\n              columnNumber: 21\n            }, this)]\n          }, result.resultId, true, {\n            fileName: _jsxFileName,\n            lineNumber: 514,\n            columnNumber: 19\n          }, this))\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 512,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 510,\n        columnNumber: 13\n      }, this), procedureResults && procedureResults.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"bg-white rounded-lg shadow p-6\",\n        children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n          className: \"font-normal\",\n          style: {\n            fontSize: '20px',\n            marginBottom: '16px'\n          },\n          children: \"Procedure Results\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 527,\n          columnNumber: 15\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"space-y-3\",\n          children: procedureResults.map(result => {\n            var _result$procedure;\n            return /*#__PURE__*/_jsxDEV(\"div\", {\n              className: \"border-l-4 border-orange-500 pl-4 py-3 bg-orange-50 rounded\",\n              children: [/*#__PURE__*/_jsxDEV(\"p\", {\n                className: \"font-normal\",\n                style: {\n                  fontSize: '18px',\n                  color: '#b45309'\n                },\n                children: ((_result$procedure = result.procedure) === null || _result$procedure === void 0 ? void 0 : _result$procedure.procedureType) || 'Procedure'\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 531,\n                columnNumber: 21\n              }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n                className: \"font-normal text-sm text-gray-700 mt-2\",\n                children: [\"Outcome: \", result.resultDescription]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 532,\n                columnNumber: 21\n              }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n                className: \"font-normal text-sm text-gray-600\",\n                children: [\"Result Date: \", result.resultDate]\n              }, void 0, true, {\n                fileName: _jsxFileName,\n                lineNumber: 533,\n                columnNumber: 21\n              }, this)]\n            }, result.resultId, true, {\n              fileName: _jsxFileName,\n              lineNumber: 530,\n              columnNumber: 19\n            }, this);\n          })\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 528,\n          columnNumber: 15\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 526,\n        columnNumber: 13\n      }, this), (!record.diagnoses || record.diagnoses.length === 0) && (!record.symptoms || record.symptoms.length === 0) && (!record.allergies || record.allergies.length === 0) && (!record.reports || record.reports.length === 0) && (!labResults || labResults.length === 0) && (!procedureResults || procedureResults.length === 0) && /*#__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 medical data recorded yet\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 547,\n          columnNumber: 17\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 546,\n        columnNumber: 15\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 408,\n      columnNumber: 9\n    }, this), activeTab === 'diagnosis' && /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"bg-white rounded-lg shadow p-6\",\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        style: {\n          fontSize: '20px',\n          fontWeight: 'normal',\n          marginBottom: '16px'\n        },\n        children: \"Record New Diagnosis\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 556,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n        onSubmit: handleAddDiagnosis,\n        className: \"space-y-4 max-w-2xl\",\n        children: [/*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Doctor *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 559,\n            columnNumber: 15\n          }, this), isDoctor ? /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\",\n            children: [\"Dr. \", user.firstName, \" \", user.lastName]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 561,\n            columnNumber: 17\n          }, this) : /*#__PURE__*/_jsxDEV(\"select\", {\n            value: selectedDoctorId,\n            onChange: e => setSelectedDoctorId(e.target.value),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            required: true,\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: \"Select doctor\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 571,\n              columnNumber: 19\n            }, this), doctors.map(doc => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: doc.doctorId,\n              children: [\"Dr. \", doc.firstName, \" \", doc.lastName]\n            }, doc.doctorId, true, {\n              fileName: _jsxFileName,\n              lineNumber: 573,\n              columnNumber: 21\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 565,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 558,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Diagnosis *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 581,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n            value: diagnosisForm.diagnosisId,\n            onChange: e => setDiagnosisForm({\n              ...diagnosisForm,\n              diagnosisId: e.target.value\n            }),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            required: true,\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: diagnoses.length === 0 ? 'Loading diagnoses...' : 'Select diagnosis'\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 588,\n              columnNumber: 17\n            }, this), diagnoses && diagnoses.length > 0 && diagnoses.map(diagnosis => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: diagnosis.id,\n              children: diagnosis.name\n            }, diagnosis.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 590,\n              columnNumber: 19\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 582,\n            columnNumber: 15\n          }, this), diagnoses.length === 0 && /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"text-sm text-gray-500 mt-1\",\n            children: \"No diagnoses available. Please wait...\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 596,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 580,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n          type: \"submit\",\n          style: {\n            background: '#9333ea',\n            color: 'white',\n            padding: '6px 14px',\n            borderRadius: '6px',\n            border: 'none',\n            cursor: 'pointer',\n            fontSize: '14px',\n            fontWeight: '600'\n          },\n          onMouseEnter: e => e.currentTarget.style.background = '#7e22ce',\n          onMouseLeave: e => e.currentTarget.style.background = '#9333ea',\n          children: \"Record Diagnosis\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 599,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 557,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 555,\n      columnNumber: 9\n    }, this), activeTab === 'symptoms' && /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"bg-white rounded-lg shadow p-6\",\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        style: {\n          fontSize: '20px',\n          fontWeight: 'normal',\n          marginBottom: '16px'\n        },\n        children: \"Record Patient Symptoms\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 612,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n        onSubmit: handleAddSymptom,\n        className: \"space-y-4 max-w-2xl\",\n        children: [/*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Doctor *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 615,\n            columnNumber: 15\n          }, this), isDoctor ? /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\",\n            children: [\"Dr. \", user.firstName, \" \", user.lastName]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 617,\n            columnNumber: 17\n          }, this) : /*#__PURE__*/_jsxDEV(\"select\", {\n            value: selectedDoctorId,\n            onChange: e => setSelectedDoctorId(e.target.value),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            required: true,\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: \"Select doctor\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 627,\n              columnNumber: 19\n            }, this), doctors.map(doc => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: doc.doctorId,\n              children: [\"Dr. \", doc.firstName, \" \", doc.lastName]\n            }, doc.doctorId, true, {\n              fileName: _jsxFileName,\n              lineNumber: 629,\n              columnNumber: 21\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 621,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 614,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Symptom *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 637,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n            value: symptomsForm.symptomId,\n            onChange: e => setSymptomsForm({\n              ...symptomsForm,\n              symptomId: e.target.value\n            }),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            required: true,\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: \"Select symptom\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 644,\n              columnNumber: 17\n            }, this), symptoms.filter(s => {\n              var _record$symptoms;\n              return !((_record$symptoms = record.symptoms) !== null && _record$symptoms !== void 0 && _record$symptoms.some(rs => rs.symptomId === s.id));\n            }).map(symptom => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: symptom.id,\n              children: symptom.name\n            }, symptom.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 646,\n              columnNumber: 19\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 638,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 636,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n          type: \"submit\",\n          style: {\n            background: '#9333ea',\n            color: 'white',\n            padding: '6px 14px',\n            borderRadius: '6px',\n            border: 'none',\n            cursor: 'pointer',\n            fontSize: '14px',\n            fontWeight: '600'\n          },\n          onMouseEnter: e => e.currentTarget.style.background = '#7e22ce',\n          onMouseLeave: e => e.currentTarget.style.background = '#9333ea',\n          children: \"Record Symptom\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 652,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 613,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 611,\n      columnNumber: 9\n    }, this), activeTab === 'allergies' && /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"bg-white rounded-lg shadow p-6\",\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        style: {\n          fontSize: '20px',\n          fontWeight: 'normal',\n          marginBottom: '16px'\n        },\n        children: \"Record Patient Allergies\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 665,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n        onSubmit: handleAddAllergy,\n        className: \"space-y-4 max-w-2xl\",\n        children: [/*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Doctor *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 668,\n            columnNumber: 15\n          }, this), isDoctor ? /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\",\n            children: [\"Dr. \", user.firstName, \" \", user.lastName]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 670,\n            columnNumber: 17\n          }, this) : /*#__PURE__*/_jsxDEV(\"select\", {\n            value: selectedDoctorId,\n            onChange: e => setSelectedDoctorId(e.target.value),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            required: true,\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: \"Select doctor\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 680,\n              columnNumber: 19\n            }, this), doctors.map(doc => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: doc.doctorId,\n              children: [\"Dr. \", doc.firstName, \" \", doc.lastName]\n            }, doc.doctorId, true, {\n              fileName: _jsxFileName,\n              lineNumber: 682,\n              columnNumber: 21\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 674,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 667,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Allergy *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 690,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n            value: allergyForm.allergyId,\n            onChange: e => setAllergyForm({\n              ...allergyForm,\n              allergyId: e.target.value\n            }),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            required: true,\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: \"Select allergy\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 697,\n              columnNumber: 17\n            }, this), allergies.filter(a => {\n              var _record$allergies;\n              return !((_record$allergies = record.allergies) !== null && _record$allergies !== void 0 && _record$allergies.some(ra => ra.allergyId === a.id));\n            }).map(allergy => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: allergy.id,\n              children: allergy.name\n            }, allergy.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 699,\n              columnNumber: 19\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 691,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 689,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Severity *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 706,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n            value: allergyForm.severity,\n            onChange: e => setAllergyForm({\n              ...allergyForm,\n              severity: e.target.value\n            }),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"LOW\",\n              children: \"Low\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 712,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"MEDIUM\",\n              children: \"Medium\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 713,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"HIGH\",\n              children: \"High\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 714,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"CRITICAL\",\n              children: \"Critical\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 715,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 707,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 705,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Reaction\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 719,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n            value: allergyForm.reaction,\n            onChange: e => setAllergyForm({\n              ...allergyForm,\n              reaction: e.target.value\n            }),\n            placeholder: \"Describe the allergic reaction\",\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            rows: \"3\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 720,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 718,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n          type: \"submit\",\n          style: {\n            background: '#9333ea',\n            color: 'white',\n            padding: '6px 14px',\n            borderRadius: '6px',\n            border: 'none',\n            cursor: 'pointer',\n            fontSize: '14px',\n            fontWeight: '600'\n          },\n          onMouseEnter: e => e.currentTarget.style.background = '#7e22ce',\n          onMouseLeave: e => e.currentTarget.style.background = '#9333ea',\n          children: \"Record Allergy\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 728,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 666,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 664,\n      columnNumber: 9\n    }, this), activeTab === 'prescription' && /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"bg-white rounded-lg shadow p-6\",\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        style: {\n          fontSize: '20px',\n          fontWeight: 'normal',\n          marginBottom: '16px'\n        },\n        children: \"Record Prescription\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 741,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n        onSubmit: handleAddPrescription,\n        className: \"space-y-4 max-w-2xl\",\n        children: [/*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Doctor *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 744,\n            columnNumber: 15\n          }, this), isDoctor ? /*#__PURE__*/_jsxDEV(\"p\", {\n            className: \"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\",\n            children: [\"Dr. \", user.firstName, \" \", user.lastName]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 746,\n            columnNumber: 17\n          }, this) : /*#__PURE__*/_jsxDEV(\"select\", {\n            value: selectedDoctorId,\n            onChange: e => setSelectedDoctorId(e.target.value),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            required: true,\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: \"Select doctor\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 756,\n              columnNumber: 19\n            }, this), doctors.map(doc => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: doc.doctorId,\n              children: [\"Dr. \", doc.firstName, \" \", doc.lastName]\n            }, doc.doctorId, true, {\n              fileName: _jsxFileName,\n              lineNumber: 758,\n              columnNumber: 21\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 750,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 743,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Medication *\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 766,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n            value: prescriptionForm.prescriptionId,\n            onChange: e => setPrescriptionForm({\n              ...prescriptionForm,\n              prescriptionId: e.target.value\n            }),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            required: true,\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: \"Select medication\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 775,\n              columnNumber: 17\n            }, this), prescriptions.map(prescription => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: prescription.id,\n              children: prescription.name\n            }, prescription.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 777,\n              columnNumber: 19\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 767,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 765,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"grid grid-cols-2 gap-4\",\n          children: [/*#__PURE__*/_jsxDEV(\"div\", {\n            children: [/*#__PURE__*/_jsxDEV(\"label\", {\n              style: {\n                fontWeight: 'normal'\n              },\n              className: \"block text-sm mb-2\",\n              children: \"Dosage *\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 785,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n              type: \"text\",\n              value: prescriptionForm.dosage,\n              onChange: e => setPrescriptionForm({\n                ...prescriptionForm,\n                dosage: e.target.value\n              }),\n              placeholder: \"e.g., 500mg\",\n              className: \"w-full px-4 py-2 border rounded-lg\",\n              required: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 786,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 784,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            children: [/*#__PURE__*/_jsxDEV(\"label\", {\n              style: {\n                fontWeight: 'normal'\n              },\n              className: \"block text-sm mb-2\",\n              children: \"Frequency *\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 798,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n              type: \"text\",\n              value: prescriptionForm.frequency,\n              onChange: e => setPrescriptionForm({\n                ...prescriptionForm,\n                frequency: e.target.value\n              }),\n              placeholder: \"e.g., Twice daily\",\n              className: \"w-full px-4 py-2 border rounded-lg\",\n              required: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 799,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 797,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            children: [/*#__PURE__*/_jsxDEV(\"label\", {\n              style: {\n                fontWeight: 'normal'\n              },\n              className: \"block text-sm mb-2\",\n              children: \"Duration *\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 811,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n              type: \"text\",\n              value: prescriptionForm.duration,\n              onChange: e => setPrescriptionForm({\n                ...prescriptionForm,\n                duration: e.target.value\n              }),\n              placeholder: \"e.g., 7 days\",\n              className: \"w-full px-4 py-2 border rounded-lg\",\n              required: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 812,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 810,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 783,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Reason for Prescription\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 825,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n            value: prescriptionForm.reason,\n            onChange: e => setPrescriptionForm({\n              ...prescriptionForm,\n              reason: e.target.value\n            }),\n            placeholder: \"Describe why this medication is prescribed\",\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            rows: \"3\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 826,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 824,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n          type: \"submit\",\n          style: {\n            background: '#9333ea',\n            color: 'white',\n            padding: '6px 14px',\n            borderRadius: '6px',\n            border: 'none',\n            cursor: 'pointer',\n            fontSize: '14px',\n            fontWeight: '600'\n          },\n          onMouseEnter: e => e.currentTarget.style.background = '#7e22ce',\n          onMouseLeave: e => e.currentTarget.style.background = '#9333ea',\n          children: \"Record Prescription\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 834,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 742,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 740,\n      columnNumber: 9\n    }, this), activeTab === 'procedures' && /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"bg-white rounded-lg shadow p-6\",\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        style: {\n          fontSize: '20px',\n          fontWeight: 'normal',\n          marginBottom: '16px'\n        },\n        children: \"Request Procedure\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 847,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n        onSubmit: async e => {\n          e.preventDefault();\n          setError(null);\n          if (!procedureForm.procedureId) {\n            setError('Please select a procedure');\n            return;\n          }\n          try {\n            setLoading(true);\n            const doctorId = user.doctorId || 1;\n            const request = {\n              patientId: record.patientId,\n              doctorId: parseInt(doctorId),\n              procedureId: parseInt(procedureForm.procedureId),\n              procedureDate: procedureForm.procedureDate,\n              notes: procedureForm.notes,\n              diagnosisId: procedureForm.diagnosisId ? parseInt(procedureForm.diagnosisId) : null\n            };\n            await procedureService.requestProcedure(request);\n            setSuccess('Procedure requested successfully');\n            setProcedureForm({\n              procedureId: '',\n              procedureDate: new Date().toISOString().split('T')[0],\n              notes: '',\n              diagnosisId: ''\n            });\n            setTimeout(() => setSuccess(null), 3000);\n          } catch (err) {\n            var _err$response6, _err$response6$data;\n            setError('Failed to request procedure: ' + (((_err$response6 = err.response) === null || _err$response6 === void 0 ? void 0 : (_err$response6$data = _err$response6.data) === null || _err$response6$data === void 0 ? void 0 : _err$response6$data.error) || err.message));\n          } finally {\n            setLoading(false);\n          }\n        },\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              style: {\n                fontWeight: 'normal'\n              },\n              className: \"block text-sm mb-2\",\n              children: \"Procedure *\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 889,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n              value: procedureForm.procedureId,\n              onChange: e => setProcedureForm({\n                ...procedureForm,\n                procedureId: e.target.value\n              }),\n              className: \"w-full px-4 py-2 border rounded-lg\",\n              required: true,\n              children: [/*#__PURE__*/_jsxDEV(\"option\", {\n                value: \"\",\n                children: \"Select a procedure\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 896,\n                columnNumber: 19\n              }, this), procedures.map(proc => /*#__PURE__*/_jsxDEV(\"option\", {\n                value: proc.procedureId,\n                children: [proc.procedureType, \" ($\", proc.cost, \")\"]\n              }, proc.procedureId, true, {\n                fileName: _jsxFileName,\n                lineNumber: 898,\n                columnNumber: 21\n              }, this))]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 890,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 888,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            children: [/*#__PURE__*/_jsxDEV(\"label\", {\n              style: {\n                fontWeight: 'normal'\n              },\n              className: \"block text-sm mb-2\",\n              children: \"Procedure Date *\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 905,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n              type: \"date\",\n              value: procedureForm.procedureDate,\n              onChange: e => setProcedureForm({\n                ...procedureForm,\n                procedureDate: e.target.value\n              }),\n              className: \"w-full px-4 py-2 border rounded-lg\",\n              required: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 906,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 904,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 887,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Related Diagnosis (Optional)\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 916,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n            value: procedureForm.diagnosisId,\n            onChange: e => setProcedureForm({\n              ...procedureForm,\n              diagnosisId: e.target.value\n            }),\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            children: [/*#__PURE__*/_jsxDEV(\"option\", {\n              value: \"\",\n              children: \"Select diagnosis (optional)\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 922,\n              columnNumber: 17\n            }, this), diagnoses.map(diagnosis => /*#__PURE__*/_jsxDEV(\"option\", {\n              value: diagnosis.id,\n              children: diagnosis.name\n            }, diagnosis.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 924,\n              columnNumber: 19\n            }, this))]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 917,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 915,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Notes\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 931,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n            value: procedureForm.notes,\n            onChange: e => setProcedureForm({\n              ...procedureForm,\n              notes: e.target.value\n            }),\n            placeholder: \"Pre-procedure instructions or special notes\",\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            rows: \"3\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 932,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 930,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n          type: \"submit\",\n          disabled: loading,\n          style: {\n            background: loading ? '#9ca3af' : '#9333ea',\n            color: 'white',\n            padding: '6px 14px',\n            borderRadius: '6px',\n            border: 'none',\n            cursor: 'pointer',\n            fontSize: '14px',\n            fontWeight: '600'\n          },\n          onMouseEnter: e => !loading && (e.currentTarget.style.background = '#7e22ce'),\n          onMouseLeave: e => !loading && (e.currentTarget.style.background = '#9333ea'),\n          children: loading ? 'Requesting...' : 'Request Procedure'\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 940,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 848,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 846,\n      columnNumber: 9\n    }, this), activeTab === 'lab-tests' && /*#__PURE__*/_jsxDEV(\"div\", {\n      className: \"bg-white rounded-lg shadow p-6\",\n      children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n        style: {\n          fontSize: '20px',\n          fontWeight: 'normal',\n          marginBottom: '16px'\n        },\n        children: \"Request Lab Test\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 954,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n        onSubmit: async e => {\n          e.preventDefault();\n          setError(null);\n          if (!labTestForm.testId) {\n            setError('Please select a test');\n            return;\n          }\n          try {\n            setLoading(true);\n            const doctorId = user.doctorId || 1;\n            const request = {\n              patientId: record.patientId,\n              medicalRecordId: record.recordId,\n              doctorId: parseInt(doctorId),\n              testId: parseInt(labTestForm.testId),\n              testDate: labTestForm.testDate,\n              notes: labTestForm.notes\n            };\n            await labService.requestLabTest(request);\n            setSuccess('Lab test requested successfully');\n            setLabTestForm({\n              testId: '',\n              testDate: new Date().toISOString().split('T')[0],\n              notes: ''\n            });\n            setTimeout(() => setSuccess(null), 3000);\n          } catch (err) {\n            var _err$response7, _err$response7$data;\n            setError('Failed to request lab test: ' + (((_err$response7 = err.response) === null || _err$response7 === void 0 ? void 0 : (_err$response7$data = _err$response7.data) === null || _err$response7$data === void 0 ? void 0 : _err$response7$data.error) || err.message));\n          } finally {\n            setLoading(false);\n          }\n        },\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              style: {\n                fontWeight: 'normal'\n              },\n              className: \"block text-sm mb-2\",\n              children: \"Test\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 995,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n              value: labTestForm.testId,\n              onChange: e => setLabTestForm({\n                ...labTestForm,\n                testId: e.target.value\n              }),\n              className: \"w-full px-4 py-2 border rounded-lg\",\n              required: true,\n              children: [/*#__PURE__*/_jsxDEV(\"option\", {\n                value: \"\",\n                children: \"Select a test\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 1002,\n                columnNumber: 19\n              }, this), labTests.map(test => /*#__PURE__*/_jsxDEV(\"option\", {\n                value: test.testId,\n                children: [test.testName, \" ($\", test.cost, \")\"]\n              }, test.testId, true, {\n                fileName: _jsxFileName,\n                lineNumber: 1004,\n                columnNumber: 21\n              }, this))]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 996,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 994,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            children: [/*#__PURE__*/_jsxDEV(\"label\", {\n              style: {\n                fontWeight: 'normal'\n              },\n              className: \"block text-sm mb-2\",\n              children: \"Test Date\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1011,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n              type: \"date\",\n              value: labTestForm.testDate,\n              onChange: e => setLabTestForm({\n                ...labTestForm,\n                testDate: e.target.value\n              }),\n              className: \"w-full px-4 py-2 border rounded-lg\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 1012,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 1010,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 993,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            style: {\n              fontWeight: 'normal'\n            },\n            className: \"block text-sm mb-2\",\n            children: \"Notes\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1021,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n            value: labTestForm.notes,\n            onChange: e => setLabTestForm({\n              ...labTestForm,\n              notes: e.target.value\n            }),\n            placeholder: \"Additional notes for the lab technician\",\n            className: \"w-full px-4 py-2 border rounded-lg\",\n            rows: \"3\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 1022,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 1020,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n          type: \"submit\",\n          disabled: loading,\n          style: {\n            background: loading ? '#9ca3af' : '#9333ea',\n            color: 'white',\n            padding: '6px 14px',\n            borderRadius: '6px',\n            border: 'none',\n            cursor: 'pointer',\n            fontSize: '14px',\n            fontWeight: '600'\n          },\n          onMouseEnter: e => !loading && (e.currentTarget.style.background = '#7e22ce'),\n          onMouseLeave: e => !loading && (e.currentTarget.style.background = '#9333ea'),\n          children: loading ? 'Requesting...' : 'Request Test'\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 1030,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 955,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 953,\n      columnNumber: 9\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 282,\n    columnNumber: 5\n  }, this);\n}\n_s(MedicalRecordDetail, \"Jmsg0lGN8qywKXO6ctw8J6N/Ynk=\", false, function () {\n  return [useParams, useNavigate];\n});\n_c = MedicalRecordDetail;\nexport default MedicalRecordDetail;\nvar _c;\n$RefreshReg$(_c, \"MedicalRecordDetail\");","map":{"version":3,"names":["React","useState","useEffect","useCallback","useParams","useNavigate","medicalRecordService","doctorService","labService","procedureService","ErrorAlert","SuccessAlert","Loading","apiClient","jsxDEV","_jsxDEV","MedicalRecordDetail","_s","id","navigate","user","JSON","parse","localStorage","getItem","isDoctor","role","record","setRecord","loading","setLoading","error","setError","success","setSuccess","activeTab","setActiveTab","doctors","setDoctors","selectedDoctorId","setSelectedDoctorId","doctorId","diagnosisForm","setDiagnosisForm","diagnosisId","symptomsForm","setSymptomsForm","symptomId","allergyForm","setAllergyForm","allergyId","severity","reaction","prescriptionForm","setPrescriptionForm","prescriptionId","dosage","frequency","duration","reason","diagnoses","setDiagnoses","symptoms","setSymptoms","allergies","setAllergies","prescriptions","setPrescriptions","labTests","setLabTests","procedures","setProcedures","labTestForm","setLabTestForm","testId","testDate","Date","toISOString","split","notes","procedureForm","setProcedureForm","procedureId","procedureDate","labResults","setLabResults","procedureResults","setProcedureResults","fetchRecord","response","getMedicalRecordByPatientId","data","resultsResponse","getLabResultsForMedicalRecord","recordId","err","console","procedureResultsResponse","getProcedureResultsForMedicalRecord","fetchDoctors","getAllDoctors","length","fetchDropdownOptions","log","diagnosesRes","get","symptomsRes","allergiesRes","prescriptionsRes","testsRes","getAllLabTests","proceduresRes","getAllProcedures","_err$response","_err$response$data","message","handleAddDiagnosis","e","preventDefault","selectedDiagnosis","find","d","parseInt","post","patientId","name","description","setTimeout","_err$response2","_err$response2$data","handleAddSymptom","_err$response3","_err$response3$data","handleAddAllergy","_err$response4","_err$response4$data","handleAddPrescription","trim","selectedPrescription","p","medicalRecordId","medicationName","_err$response5","_err$response5$data","fileName","_jsxFileName","lineNumber","columnNumber","children","onClose","className","style","fontSize","fontWeight","onClick","marginBottom","patientName","embg","map","diagnosis","doctorName","symptom","symptomName","allergy","allergyName","padding","borderRadius","color","background","prescription","reports","report","reportDate","reportId","result","testName","results","resultDate","resultId","_result$procedure","procedure","procedureType","resultDescription","onSubmit","firstName","lastName","value","onChange","target","required","doc","type","border","cursor","onMouseEnter","currentTarget","onMouseLeave","filter","s","_record$symptoms","some","rs","a","_record$allergies","ra","placeholder","rows","request","requestProcedure","_err$response6","_err$response6$data","proc","cost","disabled","requestLabTest","_err$response7","_err$response7$data","test","_c","$RefreshReg$"],"sources":["C:/Users/User/Downloads/medora5/frontend/src/pages/medical-records/MedicalRecordDetail.js"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { medicalRecordService } from '../../services/medicalRecordService';\nimport { doctorService } from '../../services/doctorService';\nimport { labService } from '../../services/labService';\nimport { procedureService } from '../../services/procedureService';\nimport ErrorAlert from '../../components/ErrorAlert';\nimport SuccessAlert from '../../components/SuccessAlert';\nimport Loading from '../../components/Loading';\nimport apiClient from '../../services/api';\n\nfunction MedicalRecordDetail() {\n  const { id } = useParams();\n  const navigate = useNavigate();\n  const user = JSON.parse(localStorage.getItem('user') || '{}');\n  const isDoctor = user.role === 'DOCTOR';\n\n  const [record, setRecord] = useState(null);\n  const [loading, setLoading] = useState(true);\n  const [error, setError] = useState(null);\n  const [success, setSuccess] = useState(null);\n  const [activeTab, setActiveTab] = useState('view');\n  const [doctors, setDoctors] = useState([]);\n  const [selectedDoctorId, setSelectedDoctorId] = useState(isDoctor ? user.doctorId : '');\n\n  // Diagnosis form\n  const [diagnosisForm, setDiagnosisForm] = useState({\n    diagnosisId: '',\n    doctorId: '',\n  });\n\n  // Symptoms form\n  const [symptomsForm, setSymptomsForm] = useState({\n    symptomId: '',\n  });\n\n  // Allergies form\n  const [allergyForm, setAllergyForm] = useState({\n    allergyId: '',\n    severity: 'MEDIUM',\n    reaction: '',\n  });\n\n  // Prescription form\n  const [prescriptionForm, setPrescriptionForm] = useState({\n    prescriptionId: '',\n    dosage: '',\n    frequency: '',\n    duration: '',\n    reason: '',\n  });\n\n  // Dropdown options\n  const [diagnoses, setDiagnoses] = useState([]);\n  const [symptoms, setSymptoms] = useState([]);\n  const [allergies, setAllergies] = useState([]);\n  const [prescriptions, setPrescriptions] = useState([]);\n  const [labTests, setLabTests] = useState([]);\n  const [procedures, setProcedures] = useState([]);\n\n  // Lab test form\n  const [labTestForm, setLabTestForm] = useState({\n    testId: '',\n    testDate: new Date().toISOString().split('T')[0],\n    notes: '',\n  });\n\n  // Procedure form\n  const [procedureForm, setProcedureForm] = useState({\n    procedureId: '',\n    procedureDate: new Date().toISOString().split('T')[0],\n    notes: '',\n    diagnosisId: '',\n  });\n\n  const [labResults, setLabResults] = useState([]);\n  const [procedureResults, setProcedureResults] = useState([]);\n\n  const fetchRecord = useCallback(async () => {\n    try {\n      setLoading(true);\n      const response = await medicalRecordService.getMedicalRecordByPatientId(id);\n      setRecord(response.data);\n\n      // Fetch lab results\n      try {\n        const resultsResponse = await labService.getLabResultsForMedicalRecord(response.data.recordId);\n        setLabResults(resultsResponse.data || []);\n      } catch (err) {\n        console.error('Failed to fetch lab results:', err);\n        setLabResults([]);\n      }\n\n      // Fetch procedure results\n      try {\n        const procedureResultsResponse = await procedureService.getProcedureResultsForMedicalRecord(response.data.recordId);\n        setProcedureResults(procedureResultsResponse.data || []);\n      } catch (err) {\n        console.error('Failed to fetch procedure results:', err);\n        setProcedureResults([]);\n      }\n    } catch (err) {\n      setError('Failed to fetch medical record');\n      console.error(err);\n    } finally {\n      setLoading(false);\n    }\n  }, [id]);\n\n  useEffect(() => {\n    const fetchDoctors = async () => {\n      try {\n        if (!isDoctor) {\n          const response = await doctorService.getAllDoctors();\n          setDoctors(response.data);\n          if (response.data.length > 0 && !selectedDoctorId) {\n            setSelectedDoctorId(response.data[0].doctorId);\n          }\n        }\n      } catch (err) {\n        console.error('Failed to fetch doctors', err);\n      }\n    };\n\n    const fetchDropdownOptions = async () => {\n      try {\n        console.log('Fetching dropdown options...');\n        const diagnosesRes = await apiClient.get('/medical-records/dropdown/diagnoses');\n        console.log('Diagnoses:', diagnosesRes.data);\n\n        const symptomsRes = await apiClient.get('/medical-records/dropdown/symptoms');\n        console.log('Symptoms:', symptomsRes.data);\n\n        const allergiesRes = await apiClient.get('/medical-records/dropdown/allergies');\n        console.log('Allergies:', allergiesRes.data);\n\n        const prescriptionsRes = await apiClient.get('/medical-records/dropdown/prescriptions');\n        console.log('Prescriptions:', prescriptionsRes.data);\n\n        const testsRes = await labService.getAllLabTests();\n        console.log('Lab Tests:', testsRes.data);\n\n        const proceduresRes = await procedureService.getAllProcedures();\n        console.log('Procedures:', proceduresRes.data);\n\n        setDiagnoses(diagnosesRes.data || []);\n        setSymptoms(symptomsRes.data || []);\n        setAllergies(allergiesRes.data || []);\n        setPrescriptions(prescriptionsRes.data || []);\n        setLabTests(testsRes.data || []);\n        setProcedures(proceduresRes.data || []);\n        console.log('Dropdown options set successfully');\n      } catch (err) {\n        console.error('Error fetching dropdown options:', err);\n        setError('Failed to load dropdown options: ' + (err.response?.data?.error || err.message));\n      }\n    };\n\n    fetchRecord();\n    fetchDoctors();\n    fetchDropdownOptions();\n  }, [id, isDoctor, fetchRecord, selectedDoctorId]);\n\n  const handleAddDiagnosis = async (e) => {\n    e.preventDefault();\n    try {\n      if (!diagnosisForm.diagnosisId) {\n        setError('Please select a diagnosis');\n        return;\n      }\n      if (!selectedDoctorId) {\n        setError('Please select a doctor');\n        return;\n      }\n      const selectedDiagnosis = diagnoses.find(d => d.id === parseInt(diagnosisForm.diagnosisId));\n      await apiClient.post('/diagnoses', {\n        patientId: parseInt(record.patientId),\n        doctorId: parseInt(selectedDoctorId),\n        name: selectedDiagnosis.name,\n        description: '',\n      });\n      setSuccess('Diagnosis recorded successfully');\n      setDiagnosisForm({ diagnosisId: '', doctorId: '' });\n      setTimeout(() => fetchRecord(), 1000);\n    } catch (err) {\n      setError(err.response?.data?.error || 'Failed to record diagnosis');\n    }\n  };\n\n  const handleAddSymptom = async (e) => {\n    e.preventDefault();\n    try {\n      if (!symptomsForm.symptomId) {\n        setError('Please select a symptom');\n        return;\n      }\n      await apiClient.post(`/medical-records/${record.recordId}/symptoms`, {\n        symptomId: parseInt(symptomsForm.symptomId),\n        severity: 'MEDIUM',\n      });\n      setSuccess('Symptom recorded successfully');\n      setSymptomsForm({ symptomId: '' });\n      setTimeout(() => fetchRecord(), 1000);\n    } catch (err) {\n      setError(err.response?.data?.error || 'Failed to record symptom');\n    }\n  };\n\n  const handleAddAllergy = async (e) => {\n    e.preventDefault();\n    try {\n      if (!allergyForm.allergyId) {\n        setError('Please select an allergy');\n        return;\n      }\n      await apiClient.post(`/medical-records/${record.recordId}/allergies`, {\n        allergyId: parseInt(allergyForm.allergyId),\n        severity: allergyForm.severity,\n        reaction: allergyForm.reaction,\n      });\n      setSuccess('Allergy recorded successfully');\n      setAllergyForm({ allergyId: '', severity: 'MEDIUM', reaction: '' });\n      setTimeout(() => fetchRecord(), 1000);\n    } catch (err) {\n      setError(err.response?.data?.error || 'Failed to record allergy');\n    }\n  };\n\n  const handleAddPrescription = async (e) => {\n    e.preventDefault();\n    try {\n      if (!prescriptionForm.prescriptionId) {\n        setError('Please select a prescription medication');\n        return;\n      }\n      if (!prescriptionForm.dosage.trim()) {\n        setError('Dosage is required');\n        return;\n      }\n      if (!prescriptionForm.frequency.trim()) {\n        setError('Frequency is required');\n        return;\n      }\n      if (!prescriptionForm.duration.trim()) {\n        setError('Duration is required');\n        return;\n      }\n      const selectedPrescription = prescriptions.find(p => p.id === parseInt(prescriptionForm.prescriptionId));\n      await apiClient.post('/prescriptions', {\n        medicalRecordId: record.recordId,\n        medicationName: selectedPrescription.name,\n        dosage: prescriptionForm.dosage,\n        frequency: prescriptionForm.frequency,\n        duration: prescriptionForm.duration,\n        notes: prescriptionForm.reason,\n      });\n      setSuccess('Prescription recorded successfully');\n      setPrescriptionForm({\n        prescriptionId: '',\n        dosage: '',\n        frequency: '',\n        duration: '',\n        reason: '',\n      });\n      setTimeout(() => fetchRecord(), 1000);\n    } catch (err) {\n      setError(err.response?.data?.error || 'Failed to record prescription');\n    }\n  };\n\n  if (loading) return <Loading />;\n\n  if (!record) {\n    return (\n      <div>\n        <ErrorAlert message=\"Medical record not found\" onClose={() => navigate('/medical-records')} />\n      </div>\n    );\n  }\n\n  return (\n    <div>\n      <div className=\"flex justify-between items-center mb-6\">\n        <h1 style={{ fontSize: '36px', fontWeight: 'normal' }}>Medical Record</h1>\n        <button\n          onClick={() => navigate('/medical-records')}\n          className=\"bg-gray-300 text-gray-700 px-4 py-2 rounded hover:bg-gray-400\"\n        >\n          Back\n        </button>\n      </div>\n\n      {error && <ErrorAlert message={error} onClose={() => setError(null)} />}\n      {success && <SuccessAlert message={success} onClose={() => setSuccess(null)} />}\n\n      {/* Patient Info */}\n      <div className=\"bg-white rounded-lg shadow p-6 mb-6\">\n        <h2 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Patient Information</h2>\n        <div className=\"grid grid-cols-4 gap-4\">\n          <div>\n            <p className=\"font-normal text-sm text-gray-600\">Patient Name</p>\n            <p className=\"font-normal\">{record.patientName}</p>\n          </div>\n          <div>\n            <p className=\"font-normal text-sm text-gray-600\">EMBG</p>\n            <p className=\"font-normal\">{record.embg}</p>\n          </div>\n          <div>\n            <p className=\"font-normal text-sm text-gray-600\">Record ID</p>\n            <p className=\"font-normal\">{record.recordId}</p>\n          </div>\n          <div>\n            <p className=\"font-normal text-sm text-gray-600\">Patient ID</p>\n            <p className=\"font-normal\">{record.patientId}</p>\n          </div>\n        </div>\n      </div>\n\n      {/* Tabs */}\n      <div className=\"flex gap-2 mb-6 border-b\">\n        <button\n          onClick={() => setActiveTab('view')}\n          style={{ fontWeight: 'normal' }}\n          className={`px-6 py-3 ${\n            activeTab === 'view'\n              ? 'border-b-2 border-purple-600 text-purple-600'\n              : 'text-purple-600 hover:text-purple-700'\n          }`}\n        >\n          View Medical Data\n        </button>\n        <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n        <button\n          onClick={() => setActiveTab('diagnosis')}\n          style={{ fontWeight: 'normal' }}\n          className={`px-6 py-3 ${\n            activeTab === 'diagnosis'\n              ? 'border-b-2 border-purple-600 text-purple-600'\n              : 'text-purple-600 hover:text-purple-700'\n          }`}\n        >\n          Record Diagnosis\n        </button>\n        <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n        <button\n          onClick={() => setActiveTab('symptoms')}\n          style={{ fontWeight: 'normal' }}\n          className={`px-6 py-3 ${\n            activeTab === 'symptoms'\n              ? 'border-b-2 border-purple-600 text-purple-600'\n              : 'text-purple-600 hover:text-purple-700'\n          }`}\n        >\n          Record Symptoms\n        </button>\n        <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n        <button\n          onClick={() => setActiveTab('allergies')}\n          style={{ fontWeight: 'normal' }}\n          className={`px-6 py-3 ${\n            activeTab === 'allergies'\n              ? 'border-b-2 border-purple-600 text-purple-600'\n              : 'text-purple-600 hover:text-purple-700'\n          }`}\n        >\n          Record Allergies\n        </button>\n        <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n        <button\n          onClick={() => setActiveTab('prescription')}\n          style={{ fontWeight: 'normal' }}\n          className={`px-6 py-3 ${\n            activeTab === 'prescription'\n              ? 'border-b-2 border-purple-600 text-purple-600'\n              : 'text-purple-600 hover:text-purple-700'\n          }`}\n        >\n          Record Prescription\n        </button>\n        <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n        <button\n          onClick={() => setActiveTab('lab-tests')}\n          style={{ fontWeight: 'normal' }}\n          className={`px-6 py-3 ${\n            activeTab === 'lab-tests'\n              ? 'border-b-2 border-purple-600 text-purple-600'\n              : 'text-purple-600 hover:text-purple-700'\n          }`}\n        >\n          Request Lab Test\n        </button>\n        <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n        <button\n          onClick={() => setActiveTab('procedures')}\n          style={{ fontWeight: 'normal' }}\n          className={`px-6 py-3 ${\n            activeTab === 'procedures'\n              ? 'border-b-2 border-purple-600 text-purple-600'\n              : 'text-purple-600 hover:text-purple-700'\n          }`}\n        >\n          Request Procedure\n        </button>\n      </div>\n\n      {/* View Medical Data Tab */}\n      {activeTab === 'view' && (\n        <div className=\"space-y-6\">\n          {/* Diagnoses */}\n          {record.diagnoses && record.diagnoses.length > 0 && (\n            <div className=\"bg-white rounded-lg shadow p-6\">\n              <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Diagnoses</h3>\n              <div className=\"space-y-3\">\n                {record.diagnoses.map((diagnosis) => (\n                  <div key={diagnosis.diagnosisId} className=\"border-l-4 border-purple-500 pl-4 py-2\">\n                    <p className=\"font-normal\" style={{ fontSize: '18px' }}>{diagnosis.name}</p>\n                    {diagnosis.description && (\n                      <p className=\"font-normal text-gray-600 text-sm\">{diagnosis.description}</p>\n                    )}\n                    <p className=\"font-normal text-xs text-gray-500\">By: {diagnosis.doctorName}</p>\n                  </div>\n                ))}\n              </div>\n            </div>\n          )}\n\n          {/* Symptoms */}\n          {record.symptoms && record.symptoms.length > 0 && (\n            <div className=\"bg-white rounded-lg shadow p-6\">\n              <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Symptoms</h3>\n              <div className=\"flex flex-wrap gap-2\">\n                {record.symptoms.map((symptom) => (\n                  <span\n                    key={symptom.symptomId}\n                    className=\"bg-yellow-100 text-yellow-800 px-3 py-1 rounded-full text-sm font-normal\"\n                  >\n                    {symptom.symptomName}\n                  </span>\n                ))}\n              </div>\n            </div>\n          )}\n\n          {/* Allergies */}\n          {record.allergies && record.allergies.length > 0 && (\n            <div className=\"bg-white rounded-lg shadow p-6\">\n              <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Allergies</h3>\n              <div className=\"space-y-3\">\n                {record.allergies.map((allergy) => (\n                  <div key={allergy.allergyId} className=\"border-l-4 border-red-500 pl-4 py-2\">\n                    <p className=\"font-normal\">{allergy.allergyName}</p>\n                    <p className=\"font-normal\" style={{ fontSize: '14px' }}>\n                      <span\n                        className=\"font-normal\"\n                        style={{\n                          padding: '4px 8px',\n                          borderRadius: '4px',\n                          color: 'white',\n                          fontSize: '12px',\n                          background: allergy.severity === 'CRITICAL' ? '#dc2626' : allergy.severity === 'HIGH' ? '#ef4444' : allergy.severity === 'MEDIUM' ? '#eab308' : '#22c55e'\n                        }}\n                      >\n                        {allergy.severity} Severity\n                      </span>\n                    </p>\n                    {allergy.reaction && (\n                      <p className=\"font-normal text-gray-600 text-sm\">Reaction: {allergy.reaction}</p>\n                    )}\n                  </div>\n                ))}\n              </div>\n            </div>\n          )}\n\n          {/* Prescriptions */}\n          {record.prescriptions && record.prescriptions.length > 0 && (\n            <div className=\"bg-white rounded-lg shadow p-6\">\n              <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Prescriptions</h3>\n              <div className=\"space-y-3\">\n                {record.prescriptions.map((prescription) => (\n                  <div key={prescription.prescriptionId} className=\"border-l-4 border-purple-500 pl-4 py-2\">\n                    <p className=\"font-normal\">{prescription.medicationName}</p>\n                    <p className=\"font-normal text-sm text-gray-600\">Dosage: {prescription.dosage}</p>\n                    <p className=\"font-normal text-sm text-gray-600\">Frequency: {prescription.frequency}</p>\n                    <p className=\"font-normal text-sm text-gray-600\">Duration: {prescription.duration}</p>\n                  </div>\n                ))}\n              </div>\n            </div>\n          )}\n\n          {/* Reports */}\n          {record.reports && record.reports.length > 0 && (\n            <div className=\"bg-white rounded-lg shadow p-6\">\n              <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Medical Reports</h3>\n              <div className=\"space-y-3\">\n                {record.reports.map((report) => (\n                  <div key={report.reportId} className=\"border-l-4 border-green-500 pl-4 py-2\">\n                    <p style={{ fontWeight: 'normal' }}>Report from {report.doctorName}</p>\n                    <p className=\"font-normal text-gray-600 text-sm\">{report.description}</p>\n                    <p className=\"font-normal text-xs text-gray-500\">Date: {report.reportDate}</p>\n                  </div>\n                ))}\n              </div>\n            </div>\n          )}\n\n          {/* Lab Results */}\n          {labResults && labResults.length > 0 && (\n            <div className=\"bg-white rounded-lg shadow p-6\">\n              <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Lab Test Results</h3>\n              <div className=\"space-y-3\">\n                {labResults.map((result) => (\n                  <div key={result.resultId} className=\"border-l-4 border-cyan-500 pl-4 py-3 bg-cyan-50 rounded\">\n                    <p className=\"font-normal\" style={{ fontSize: '18px', color: '#0891b2' }}>{result.testName}</p>\n                    <p className=\"font-normal text-sm text-gray-700 mt-2\">Results: {result.results}</p>\n                    <p className=\"font-normal text-sm text-gray-600\">Result Date: {result.resultDate}</p>\n                  </div>\n                ))}\n              </div>\n            </div>\n          )}\n\n          {/* Procedure Results */}\n          {procedureResults && procedureResults.length > 0 && (\n            <div className=\"bg-white rounded-lg shadow p-6\">\n              <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Procedure Results</h3>\n              <div className=\"space-y-3\">\n                {procedureResults.map((result) => (\n                  <div key={result.resultId} className=\"border-l-4 border-orange-500 pl-4 py-3 bg-orange-50 rounded\">\n                    <p className=\"font-normal\" style={{ fontSize: '18px', color: '#b45309' }}>{result.procedure?.procedureType || 'Procedure'}</p>\n                    <p className=\"font-normal text-sm text-gray-700 mt-2\">Outcome: {result.resultDescription}</p>\n                    <p className=\"font-normal text-sm text-gray-600\">Result Date: {result.resultDate}</p>\n                  </div>\n                ))}\n              </div>\n            </div>\n          )}\n\n          {(!record.diagnoses || record.diagnoses.length === 0) &&\n            (!record.symptoms || record.symptoms.length === 0) &&\n            (!record.allergies || record.allergies.length === 0) &&\n            (!record.reports || record.reports.length === 0) &&\n            (!labResults || labResults.length === 0) &&\n            (!procedureResults || procedureResults.length === 0) && (\n              <div className=\"bg-blue-50 rounded-lg p-6 text-center\">\n                <p className=\"text-gray-600\">No medical data recorded yet</p>\n              </div>\n            )}\n        </div>\n      )}\n\n      {/* Record Diagnosis Tab */}\n      {activeTab === 'diagnosis' && (\n        <div className=\"bg-white rounded-lg shadow p-6\">\n          <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Record New Diagnosis</h3>\n          <form onSubmit={handleAddDiagnosis} className=\"space-y-4 max-w-2xl\">\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Doctor *</label>\n              {isDoctor ? (\n                <p className=\"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\">\n                  Dr. {user.firstName} {user.lastName}\n                </p>\n              ) : (\n                <select\n                  value={selectedDoctorId}\n                  onChange={(e) => setSelectedDoctorId(e.target.value)}\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                >\n                  <option value=\"\">Select doctor</option>\n                  {doctors.map((doc) => (\n                    <option key={doc.doctorId} value={doc.doctorId}>\n                      Dr. {doc.firstName} {doc.lastName}\n                    </option>\n                  ))}\n                </select>\n              )}\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Diagnosis *</label>\n              <select\n                value={diagnosisForm.diagnosisId}\n                onChange={(e) => setDiagnosisForm({ ...diagnosisForm, diagnosisId: e.target.value })}\n                className=\"w-full px-4 py-2 border rounded-lg\"\n                required\n              >\n                <option value=\"\">{diagnoses.length === 0 ? 'Loading diagnoses...' : 'Select diagnosis'}</option>\n                {diagnoses && diagnoses.length > 0 && diagnoses.map((diagnosis) => (\n                  <option key={diagnosis.id} value={diagnosis.id}>\n                    {diagnosis.name}\n                  </option>\n                ))}\n              </select>\n              {diagnoses.length === 0 && (\n                <p className=\"text-sm text-gray-500 mt-1\">No diagnoses available. Please wait...</p>\n              )}\n            </div>\n            <button\n              type=\"submit\"\n              style={{background: '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => e.currentTarget.style.background = '#7e22ce'} onMouseLeave={(e) => e.currentTarget.style.background = '#9333ea'}\n            >\n              Record Diagnosis\n            </button>\n          </form>\n        </div>\n      )}\n\n      {/* Record Symptoms Tab */}\n      {activeTab === 'symptoms' && (\n        <div className=\"bg-white rounded-lg shadow p-6\">\n          <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Record Patient Symptoms</h3>\n          <form onSubmit={handleAddSymptom} className=\"space-y-4 max-w-2xl\">\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Doctor *</label>\n              {isDoctor ? (\n                <p className=\"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\">\n                  Dr. {user.firstName} {user.lastName}\n                </p>\n              ) : (\n                <select\n                  value={selectedDoctorId}\n                  onChange={(e) => setSelectedDoctorId(e.target.value)}\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                >\n                  <option value=\"\">Select doctor</option>\n                  {doctors.map((doc) => (\n                    <option key={doc.doctorId} value={doc.doctorId}>\n                      Dr. {doc.firstName} {doc.lastName}\n                    </option>\n                  ))}\n                </select>\n              )}\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Symptom *</label>\n              <select\n                value={symptomsForm.symptomId}\n                onChange={(e) => setSymptomsForm({ ...symptomsForm, symptomId: e.target.value })}\n                className=\"w-full px-4 py-2 border rounded-lg\"\n                required\n              >\n                <option value=\"\">Select symptom</option>\n                {symptoms.filter(s => !record.symptoms?.some(rs => rs.symptomId === s.id)).map((symptom) => (\n                  <option key={symptom.id} value={symptom.id}>\n                    {symptom.name}\n                  </option>\n                ))}\n              </select>\n            </div>\n            <button\n              type=\"submit\"\n              style={{background: '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => e.currentTarget.style.background = '#7e22ce'} onMouseLeave={(e) => e.currentTarget.style.background = '#9333ea'}\n            >\n              Record Symptom\n            </button>\n          </form>\n        </div>\n      )}\n\n      {/* Record Allergies Tab */}\n      {activeTab === 'allergies' && (\n        <div className=\"bg-white rounded-lg shadow p-6\">\n          <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Record Patient Allergies</h3>\n          <form onSubmit={handleAddAllergy} className=\"space-y-4 max-w-2xl\">\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Doctor *</label>\n              {isDoctor ? (\n                <p className=\"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\">\n                  Dr. {user.firstName} {user.lastName}\n                </p>\n              ) : (\n                <select\n                  value={selectedDoctorId}\n                  onChange={(e) => setSelectedDoctorId(e.target.value)}\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                >\n                  <option value=\"\">Select doctor</option>\n                  {doctors.map((doc) => (\n                    <option key={doc.doctorId} value={doc.doctorId}>\n                      Dr. {doc.firstName} {doc.lastName}\n                    </option>\n                  ))}\n                </select>\n              )}\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Allergy *</label>\n              <select\n                value={allergyForm.allergyId}\n                onChange={(e) => setAllergyForm({ ...allergyForm, allergyId: e.target.value })}\n                className=\"w-full px-4 py-2 border rounded-lg\"\n                required\n              >\n                <option value=\"\">Select allergy</option>\n                {allergies.filter(a => !record.allergies?.some(ra => ra.allergyId === a.id)).map((allergy) => (\n                  <option key={allergy.id} value={allergy.id}>\n                    {allergy.name}\n                  </option>\n                ))}\n              </select>\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Severity *</label>\n              <select\n                value={allergyForm.severity}\n                onChange={(e) => setAllergyForm({ ...allergyForm, severity: e.target.value })}\n                className=\"w-full px-4 py-2 border rounded-lg\"\n              >\n                <option value=\"LOW\">Low</option>\n                <option value=\"MEDIUM\">Medium</option>\n                <option value=\"HIGH\">High</option>\n                <option value=\"CRITICAL\">Critical</option>\n              </select>\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Reaction</label>\n              <textarea\n                value={allergyForm.reaction}\n                onChange={(e) => setAllergyForm({ ...allergyForm, reaction: e.target.value })}\n                placeholder=\"Describe the allergic reaction\"\n                className=\"w-full px-4 py-2 border rounded-lg\"\n                rows=\"3\"\n              />\n            </div>\n            <button\n              type=\"submit\"\n              style={{background: '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => e.currentTarget.style.background = '#7e22ce'} onMouseLeave={(e) => e.currentTarget.style.background = '#9333ea'}\n            >\n              Record Allergy\n            </button>\n          </form>\n        </div>\n      )}\n\n      {/* Record Prescription Tab */}\n      {activeTab === 'prescription' && (\n        <div className=\"bg-white rounded-lg shadow p-6\">\n          <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Record Prescription</h3>\n          <form onSubmit={handleAddPrescription} className=\"space-y-4 max-w-2xl\">\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Doctor *</label>\n              {isDoctor ? (\n                <p className=\"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\">\n                  Dr. {user.firstName} {user.lastName}\n                </p>\n              ) : (\n                <select\n                  value={selectedDoctorId}\n                  onChange={(e) => setSelectedDoctorId(e.target.value)}\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                >\n                  <option value=\"\">Select doctor</option>\n                  {doctors.map((doc) => (\n                    <option key={doc.doctorId} value={doc.doctorId}>\n                      Dr. {doc.firstName} {doc.lastName}\n                    </option>\n                  ))}\n                </select>\n              )}\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Medication *</label>\n              <select\n                value={prescriptionForm.prescriptionId}\n                onChange={(e) =>\n                  setPrescriptionForm({ ...prescriptionForm, prescriptionId: e.target.value })\n                }\n                className=\"w-full px-4 py-2 border rounded-lg\"\n                required\n              >\n                <option value=\"\">Select medication</option>\n                {prescriptions.map((prescription) => (\n                  <option key={prescription.id} value={prescription.id}>\n                    {prescription.name}\n                  </option>\n                ))}\n              </select>\n            </div>\n            <div className=\"grid grid-cols-2 gap-4\">\n              <div>\n                <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Dosage *</label>\n                <input\n                  type=\"text\"\n                  value={prescriptionForm.dosage}\n                  onChange={(e) =>\n                    setPrescriptionForm({ ...prescriptionForm, dosage: e.target.value })\n                  }\n                  placeholder=\"e.g., 500mg\"\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                />\n              </div>\n              <div>\n                <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Frequency *</label>\n                <input\n                  type=\"text\"\n                  value={prescriptionForm.frequency}\n                  onChange={(e) =>\n                    setPrescriptionForm({ ...prescriptionForm, frequency: e.target.value })\n                  }\n                  placeholder=\"e.g., Twice daily\"\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                />\n              </div>\n              <div>\n                <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Duration *</label>\n                <input\n                  type=\"text\"\n                  value={prescriptionForm.duration}\n                  onChange={(e) =>\n                    setPrescriptionForm({ ...prescriptionForm, duration: e.target.value })\n                  }\n                  placeholder=\"e.g., 7 days\"\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                />\n              </div>\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Reason for Prescription</label>\n              <textarea\n                value={prescriptionForm.reason}\n                onChange={(e) => setPrescriptionForm({ ...prescriptionForm, reason: e.target.value })}\n                placeholder=\"Describe why this medication is prescribed\"\n                className=\"w-full px-4 py-2 border rounded-lg\"\n                rows=\"3\"\n              />\n            </div>\n            <button\n              type=\"submit\"\n              style={{background: '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => e.currentTarget.style.background = '#7e22ce'} onMouseLeave={(e) => e.currentTarget.style.background = '#9333ea'}\n            >\n              Record Prescription\n            </button>\n          </form>\n        </div>\n      )}\n\n      {/* Procedure Request Tab */}\n      {activeTab === 'procedures' && (\n        <div className=\"bg-white rounded-lg shadow p-6\">\n          <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Request Procedure</h3>\n          <form onSubmit={async (e) => {\n            e.preventDefault();\n            setError(null);\n\n            if (!procedureForm.procedureId) {\n              setError('Please select a procedure');\n              return;\n            }\n\n            try {\n              setLoading(true);\n              const doctorId = user.doctorId || 1;\n\n              const request = {\n                patientId: record.patientId,\n                doctorId: parseInt(doctorId),\n                procedureId: parseInt(procedureForm.procedureId),\n                procedureDate: procedureForm.procedureDate,\n                notes: procedureForm.notes,\n                diagnosisId: procedureForm.diagnosisId ? parseInt(procedureForm.diagnosisId) : null,\n              };\n\n              await procedureService.requestProcedure(request);\n\n              setSuccess('Procedure requested successfully');\n              setProcedureForm({\n                procedureId: '',\n                procedureDate: new Date().toISOString().split('T')[0],\n                notes: '',\n                diagnosisId: '',\n              });\n\n              setTimeout(() => setSuccess(null), 3000);\n            } catch (err) {\n              setError('Failed to request procedure: ' + (err.response?.data?.error || err.message));\n            } finally {\n              setLoading(false);\n            }\n          }} className=\"space-y-4\">\n            <div className=\"grid grid-cols-2 gap-4\">\n              <div>\n                <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Procedure *</label>\n                <select\n                  value={procedureForm.procedureId}\n                  onChange={(e) => setProcedureForm({ ...procedureForm, procedureId: e.target.value })}\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                >\n                  <option value=\"\">Select a procedure</option>\n                  {procedures.map((proc) => (\n                    <option key={proc.procedureId} value={proc.procedureId}>\n                      {proc.procedureType} (${proc.cost})\n                    </option>\n                  ))}\n                </select>\n              </div>\n              <div>\n                <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Procedure Date *</label>\n                <input\n                  type=\"date\"\n                  value={procedureForm.procedureDate}\n                  onChange={(e) => setProcedureForm({ ...procedureForm, procedureDate: e.target.value })}\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                />\n              </div>\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Related Diagnosis (Optional)</label>\n              <select\n                value={procedureForm.diagnosisId}\n                onChange={(e) => setProcedureForm({ ...procedureForm, diagnosisId: e.target.value })}\n                className=\"w-full px-4 py-2 border rounded-lg\"\n              >\n                <option value=\"\">Select diagnosis (optional)</option>\n                {diagnoses.map((diagnosis) => (\n                  <option key={diagnosis.id} value={diagnosis.id}>\n                    {diagnosis.name}\n                  </option>\n                ))}\n              </select>\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Notes</label>\n              <textarea\n                value={procedureForm.notes}\n                onChange={(e) => setProcedureForm({ ...procedureForm, notes: e.target.value })}\n                placeholder=\"Pre-procedure instructions or special notes\"\n                className=\"w-full px-4 py-2 border rounded-lg\"\n                rows=\"3\"\n              />\n            </div>\n            <button\n              type=\"submit\"\n              disabled={loading}\n              style={{background: loading ? '#9ca3af' : '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => !loading && (e.currentTarget.style.background = '#7e22ce')} onMouseLeave={(e) => !loading && (e.currentTarget.style.background = '#9333ea')}\n            >\n              {loading ? 'Requesting...' : 'Request Procedure'}\n            </button>\n          </form>\n        </div>\n      )}\n\n      {/* Lab Test Tab */}\n      {activeTab === 'lab-tests' && (\n        <div className=\"bg-white rounded-lg shadow p-6\">\n          <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Request Lab Test</h3>\n          <form onSubmit={async (e) => {\n            e.preventDefault();\n            setError(null);\n\n            if (!labTestForm.testId) {\n              setError('Please select a test');\n              return;\n            }\n\n            try {\n              setLoading(true);\n              const doctorId = user.doctorId || 1;\n\n              const request = {\n                patientId: record.patientId,\n                medicalRecordId: record.recordId,\n                doctorId: parseInt(doctorId),\n                testId: parseInt(labTestForm.testId),\n                testDate: labTestForm.testDate,\n                notes: labTestForm.notes,\n              };\n\n              await labService.requestLabTest(request);\n\n              setSuccess('Lab test requested successfully');\n              setLabTestForm({\n                testId: '',\n                testDate: new Date().toISOString().split('T')[0],\n                notes: '',\n              });\n\n              setTimeout(() => setSuccess(null), 3000);\n            } catch (err) {\n              setError('Failed to request lab test: ' + (err.response?.data?.error || err.message));\n            } finally {\n              setLoading(false);\n            }\n          }} className=\"space-y-4\">\n            <div className=\"grid grid-cols-2 gap-4\">\n              <div>\n                <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Test</label>\n                <select\n                  value={labTestForm.testId}\n                  onChange={(e) => setLabTestForm({ ...labTestForm, testId: e.target.value })}\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                  required\n                >\n                  <option value=\"\">Select a test</option>\n                  {labTests.map((test) => (\n                    <option key={test.testId} value={test.testId}>\n                      {test.testName} (${test.cost})\n                    </option>\n                  ))}\n                </select>\n              </div>\n              <div>\n                <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Test Date</label>\n                <input\n                  type=\"date\"\n                  value={labTestForm.testDate}\n                  onChange={(e) => setLabTestForm({ ...labTestForm, testDate: e.target.value })}\n                  className=\"w-full px-4 py-2 border rounded-lg\"\n                />\n              </div>\n            </div>\n            <div>\n              <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Notes</label>\n              <textarea\n                value={labTestForm.notes}\n                onChange={(e) => setLabTestForm({ ...labTestForm, notes: e.target.value })}\n                placeholder=\"Additional notes for the lab technician\"\n                className=\"w-full px-4 py-2 border rounded-lg\"\n                rows=\"3\"\n              />\n            </div>\n            <button\n              type=\"submit\"\n              disabled={loading}\n              style={{background: loading ? '#9ca3af' : '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => !loading && (e.currentTarget.style.background = '#7e22ce')} onMouseLeave={(e) => !loading && (e.currentTarget.style.background = '#9333ea')}\n            >\n              {loading ? 'Requesting...' : 'Request Test'}\n            </button>\n          </form>\n        </div>\n      )}\n    </div>\n  );\n}\n\nexport default MedicalRecordDetail;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}