Definition: A study is a collection of slides or annotations, in which users/pathologists examine and analyze WSI or ROI to make annotations and/or evaluations for a medical specialty. The studies could be assigned to multiple users/pathologists. The studies could be a hierarchical structure.
functionalities:
- create a studies
- read studies
- update studies
- delete studies
- update the type of studies
- update the specialty of studies
- add slides
- remove slides
- add annotations
- remove annotations
- add users
- remove users
- move studies to (hierarchical structure)
- search studies based on some conditionals
Only a study that has slides or annotations could be assigned to users/pathologies
Definition: a slide is a whole-slide image (also known as a virtual slide).
Support format:
- Aperio (.svs, .tif)
- DICOM (.dcm)
- Hamamatsu (.vms, .vmu, .ndpi)
- Leica (.scn)
- MIRAX (.mrxs)
- Philips (.tiff)
- Sakura (.svslide)
- Trestle (.tif)
- Ventana (.bif, .tif)
- Generic tiled TIFF (.tif)
Schema:
functionalities:
- upload a slide
- upload a slide bundle
- read the matedata of a slide
- update the matedata of a slide
- rename a slide
- read a slide as tiles
- remove a slide
Definition: An annotation is a region of interest that is drawn by users/pathologists. Schema:
functionalities:
- add an annotation
- read an annotation
- update an annotation's shape
- update an annotation's note
- remove an annotation
Definition:
Schema:
functionalities:
- add an evaluation
- read an evaluation
- update an annotation
- remove an annotation
Definition: A medical specialty is a branch of medical practice that focuses on a specific group of patients, diseases, skills, or philosophy.
Schema:
functionalities:
- add a specialty
- read a specialty
- update a specialty
- remove a specialty
Definition: A user is an entity that can complete studies or manage studies. Usually, a user could be a pathologist or/and system administrator.
Schema:
functionalities:
- register users
- activate users
- deactivate users
- read user profile
- update user profile
- delete user
erDiagram
Studies {
ObjectId id PK
ObjectId pid FK "Parent study Ids"
ObjectId spec_id FK "Specialty Ids"
ObjectId[] cids FK "children study Ids"
ObjectId[] sids FK "slide Ids"
Users[] uids FK "User Ids"
string name
text description
string creator
string updater
Date created_at
Date updated_at
}
Slides {
text name
ObjectId id PK
ObjectId spec_id FK "Specialty Ids"
string slide_id "slide unique id such as token_id"
string location
object matedata
ObjectId[] studies
string creator
string updater
Date created_at
Date updated_at
}
Annotations {
ObjectId id PK
ObjectId slide_id FK
ObjectId study_id FK
GeoJson polygon
string creator
string updater
Date created_at
Date updated_at
}
Specialties {
ObjectId id PK
string name
string description
string creator
string updater
Date created_at
Date updated_at
}
Users {
ObjectId id PK
string email
string first_name
string last_name
Object user_info
}
Studies o|--o{ Studies: has
Studies ||--o{ Slides: contains
Studies ||--o{ Annotations: contains
Studies o|--|{ Users: belong
Specialties ||--|{Studies: in
Specialties ||--|{Studies: in
Slides ||--o{ Annotations: has
Users o|--o| Annotations: annotate
Slides ||--o{ Evaluations: has
Users o|--o| Evaluations: evalute
Definition