Source code for orm.bioreplicate
from typing import List
import sqlalchemy as sql
from sqlalchemy.orm import (
Mapped,
mapped_column,
relationship,
)
from app.model.orm.orm_base import OrmBase
[docs]
class Bioreplicate(OrmBase):
# Only set if the bioreplicate was generated and not uploaded
[docs]
measurementContexts: Mapped[List['MeasurementContext']] = relationship(
back_populates='bioreplicate',
cascade='all, delete-orphan'
)
[docs]
measurements: Mapped[List['Measurement']] = relationship(
order_by='Measurement.timeInSeconds',
secondary='MeasurementContexts',
viewonly=True,
)
@staticmethod
[docs]
def find_for_study(db_session, study_id, name):
return db_session.scalars(
sql.select(Bioreplicate.id)
.where(
Bioreplicate.studyId == study_id,
Bioreplicate.name == name,
)
).one()