Skip to main content

schema

SQLAlchemy ORM for the scan_eligibility cache table (v2).

One row per (scan, trial), keyed by task_hash so a criteria/config change lands in a fresh partition and reads never mix task hashes. evidence_json holds every criterion for the scan (imaging criteria evaluated, patient-level criteria of scan provenance (e.g. DICOM age). file_path is the original scan-file path, captured so a later file-serving endpoint can return the file. Declares its own local Base (isolated MetaData) carrying the shared nullable tags JSON column.

The PHI-bearing columns (evidence_json — clinical values; study_date — a date is a HIPAA identifier; file_path — leaks name/MRN) are stored plaintext. They use the Migrating* decorators, so a legacy enc:v1: value written while encryption was enabled still decrypts on read and converges to plaintext on rewrite.

v1 -> v2 is additive: v2 adds the nullable score column and changes nothing else. A row written under v1 arrives with it NULL, meaning "no ranking signal recorded" (no criteria_tree configured, or its root resolved unknown), so the hop needs no data migration and no backfill. score is the scan's own CriteriaEvaluation.tree_score (see bitfount.steps.criteria_matching_types.evaluate_criterion_tree) — a ranking signal only, entirely separate from status.

Classes​

Base​

class Base(**kwargs: Any):

Local declarative base for scan_eligibility v2.

Owns an isolated MetaData and carries the shared nullable tags JSON column that every ORM in this version inherits.

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance's class are allowed. These could be, for example, any mapped columns or relationships.

Subclasses​

Variables​

  • static metadata
  • static registry
  • static tags : sqlalchemy.orm.base.Mapped[dict[str, typing.Any] | None]

ScanEligibility​

class ScanEligibility(**kwargs):

SQLAlchemy model for the scan_eligibility table.

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance's class are allowed. These could be, for example, any mapped columns or relationships.

Variables​

  • bitfount_patient_id : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • evidence_json : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • file_path : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • file_path_digest : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • laterality : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • processed_at : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • project_id : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • run_id : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • scan_id : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • score : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • status : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • study_date : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • tags : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
  • task_hash : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]