File size: 810 Bytes
151ec26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from sqlalchemy import Column, String, Integer, Float, ForeignKey
from sqlalchemy.orm import relationship
from backend.app.models.base import BaseModel


class MedicalEntity(BaseModel):
    __tablename__ = "medical_entities"

    analysis_id = Column(String(36), ForeignKey("document_analyses.id", ondelete="CASCADE"), nullable=False, index=True)
    text = Column(String(255), nullable=False)
    label = Column(String(50), nullable=False)  # CHEMICAL, DISEASE, MEDICINE, etc.
    start_offset = Column(Integer, nullable=False)
    end_offset = Column(Integer, nullable=False)
    confidence = Column(Float, nullable=True)
    model_name = Column(String(100), default="tner/roberta-large-bc5cdr", nullable=False)

    # Relationships
    analysis = relationship("DocumentAnalysis", back_populates="entities")