exam-manager.app.db.postgres#

Database file for the MRI sequence manager service.

Attributes#

Classes#

Base

Declarative base class.

Exam

Abstract exam ORM model.

Workflow

Workflow ORM model.

Task

Abstract task ORM model.

AcquisitionTask

Acquisition task ORM model.

DAGTask

DAG task ORM model.

Result

Abstract result ORM model.

Functions#

init_db(→ None)

Initialize the database.

Module Contents#

class exam-manager.app.db.postgres.Base#

Bases: sqlalchemy.orm.DeclarativeBase

Declarative base class.

update(data: pydantic.BaseModel) None#

Update a exam entry.

Parameters#

data

Data to be written

exam-manager.app.db.postgres.postgres_user_filepath = '/run/secrets/scanhub_database_postgres_user'#
exam-manager.app.db.postgres.postgres_password_filepath = '/run/secrets/scanhub_database_postgres_password'#
exam-manager.app.db.postgres.postgres_db_name_filepath = '/run/secrets/scanhub_database_postgres_db_name'#
exam-manager.app.db.postgres.postgres_user#
exam-manager.app.db.postgres.init_db() None#

Initialize the database.

class exam-manager.app.db.postgres.Exam#

Bases: Base

Abstract exam ORM model.

__tablename__ = 'exam'#
__table_args__#
id: sqlalchemy.orm.Mapped[uuid.UUID]#
creator: sqlalchemy.orm.Mapped[str]#
datetime_created: sqlalchemy.orm.Mapped[datetime.datetime]#
datetime_updated: sqlalchemy.orm.Mapped[datetime.datetime]#
workflows: sqlalchemy.orm.Mapped[list[Workflow]]#
patient_id: sqlalchemy.orm.Mapped[uuid.UUID]#
name: sqlalchemy.orm.Mapped[str]#
description: sqlalchemy.orm.Mapped[str]#
indication: sqlalchemy.orm.Mapped[str]#
patient_height_cm: sqlalchemy.orm.Mapped[int]#
patient_weight_kg: sqlalchemy.orm.Mapped[int]#
comment: sqlalchemy.orm.Mapped[str]#
status: sqlalchemy.orm.Mapped[scanhub_libraries.models.ItemStatus]#
is_template: sqlalchemy.orm.Mapped[bool]#
class exam-manager.app.db.postgres.Workflow#

Bases: Base

Workflow ORM model.

__tablename__ = 'workflow'#
__table_args__#
id: sqlalchemy.orm.Mapped[uuid.UUID]#
creator: sqlalchemy.orm.Mapped[str]#
datetime_created: sqlalchemy.orm.Mapped[datetime.datetime]#
datetime_updated: sqlalchemy.orm.Mapped[datetime.datetime]#
tasks: sqlalchemy.orm.Mapped[list[Task]]#
exam_id: sqlalchemy.orm.Mapped[uuid.UUID]#
name: sqlalchemy.orm.Mapped[str]#
description: sqlalchemy.orm.Mapped[str]#
comment: sqlalchemy.orm.Mapped[str]#
status: sqlalchemy.orm.Mapped[scanhub_libraries.models.ItemStatus]#
is_template: sqlalchemy.orm.Mapped[bool]#
class exam-manager.app.db.postgres.Task#

Bases: Base

Abstract task ORM model.

__tablename__ = 'task'#
__table_args__#
id: sqlalchemy.orm.Mapped[uuid.UUID]#
creator: sqlalchemy.orm.Mapped[str]#
datetime_created: sqlalchemy.orm.Mapped[datetime.datetime]#
datetime_updated: sqlalchemy.orm.Mapped[datetime.datetime]#
workflow_id: sqlalchemy.orm.Mapped[uuid.UUID]#
name: sqlalchemy.orm.Mapped[str]#
description: sqlalchemy.orm.Mapped[str]#
task_type: sqlalchemy.orm.Mapped[scanhub_libraries.models.TaskType]#
destination: sqlalchemy.orm.Mapped[str]#
status: sqlalchemy.orm.Mapped[scanhub_libraries.models.ItemStatus]#
progress: sqlalchemy.orm.Mapped[int]#
is_template: sqlalchemy.orm.Mapped[bool]#
results: sqlalchemy.orm.Mapped[list[Result]]#
__mapper_args__#
class exam-manager.app.db.postgres.AcquisitionTask#

Bases: Task

Acquisition task ORM model.

__tablename__ = 'acquisition_task'#
__mapper_args__#
id: sqlalchemy.orm.Mapped[uuid.UUID]#
sequence_id: sqlalchemy.orm.Mapped[str]#
device_id: sqlalchemy.orm.Mapped[uuid.UUID]#
acquisition_parameter: sqlalchemy.orm.Mapped[scanhub_libraries.models.AcquisitionParameter]#
acquisition_limits: sqlalchemy.orm.Mapped[scanhub_libraries.models.AcquisitionLimits]#
class exam-manager.app.db.postgres.DAGTask#

Bases: Task

DAG task ORM model.

__tablename__ = 'dag_task'#
__mapper_args__#
id: sqlalchemy.orm.Mapped[uuid.UUID]#
dag_type: sqlalchemy.orm.Mapped[scanhub_libraries.models.TaskType]#
dag_id: sqlalchemy.orm.Mapped[str]#
input_id: sqlalchemy.orm.Mapped[uuid.UUID]#
parameter: sqlalchemy.orm.Mapped[dict]#
class exam-manager.app.db.postgres.Result#

Bases: Base

Abstract result ORM model.

__tablename__ = 'result'#
__table_args__#
id: sqlalchemy.orm.Mapped[uuid.UUID]#
datetime_created: sqlalchemy.orm.Mapped[datetime.datetime]#
task_id: sqlalchemy.orm.Mapped[uuid.UUID]#
progress: sqlalchemy.orm.Mapped[float]#
status: sqlalchemy.orm.Mapped[scanhub_libraries.models.ItemStatus]#
type: sqlalchemy.orm.Mapped[scanhub_libraries.models.ResultType]#
directory: sqlalchemy.orm.Mapped[str]#
filename: sqlalchemy.orm.Mapped[str]#
exam-manager.app.db.postgres.MappedBase#
exam-manager.app.db.postgres.Device#