from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Text, Float
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from app.database.base import Base
class MedicalRecord(Base):
__tablename__ = "medical_records"
id = Column(Integer, primary_key=True, index=True)
patient_id = Column(Integer, ForeignKey("patients.id"), nullable=False)
doctor_id = Column(Integer, ForeignKey("doctors.id"), nullable=False)
visit_date = Column(DateTime(timezone=True), nullable=False)
diagnosis = Column(String(500))
symptoms = Column(Text)
treatment = Column(Text)
prescription = Column(Text)
notes = Column(Text)
# Vital signs
blood_pressure_systolic = Column(Integer)
blood_pressure_diastolic = Column(Integer)
heart_rate = Column(Integer)
temperature = Column(Float)
weight = Column(Float)
height = Column(Float)
record_type = Column(String(50))
attachments = Column(Text)
version = Column(Integer, default=1)
access_log = Column(Text)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
# Relationships
patient = relationship("Patient", back_populates="medical_records")
doctor = relationship("Doctor", back_populates="medical_records")