jerdra / niviz-rater Goto Github PK
View Code? Open in Web Editor NEWSimple flexible web application to configure and carry out rating of MR images
License: GNU General Public License v3.0
Simple flexible web application to configure and carry out rating of MR images
License: GNU General Public License v3.0
A summary statistics page will enable users to identify recurring QC trends in their dataset and, in addition, allow aggregating multi-user QC ratings to assess inter-rater reliability. The following requirements should be met:
The following values would be useful to display:
Ideally with multiple users in the database we should present:
The rater is still in the development sphere where it creates a .db
file in the current directory - this is obviously not ideal.
Instead there should be a cmdline argument where the user may provide authentication and/or an endpoint for where the database should be created. Alternatively, Niviz may write to an existing database instead.
The feature requirements are as follows:
.db
file will be outputted using SQLite, this is meant for local sessions onlyDuring the QC process users may choose to add new rating categories that they discover. However, with the current setup of inputting a YAML config file into the program this is fixed and not allowed. The following requirements should be met when implementing configurable ratings:
Bottle.config
because if we ever want to work with multiple users then we'd like to allow all users to see the updated available ratingsNote that when removing a rating one should appropriately handle other QC images that have already been rated using category that is to be removed.
The following documentation components would be good to cover for new users:
Provide python packaging for installing the niviz-rater scripts and dependencies.
See https://github.com/jerdra/niviz as an example for the files needed. Specifically:
Are the key files that are needed. These should sit on the top level directory of the github repository. In addition, installation of the niviz_rater package should provide a command-line tool niviz-app
that can be used to initialize the application (calling app.py
)
Is your feature request related to a problem? Please describe.
Currently when the index tries to build without the --use-existing-index
flag it assumes that no DB file exists in the current directory. With --use-existing-index
the index build will skip indexing entirely. This means that if a researcher wants to update their existing database it is not possible to do so
Describe the solution you'd like
The --use-existing-index
flag should be complimented by a --no-updates
flag. This means that by default the index builder will attempt to find new files to update the database with. Using --no-updates
should skip this step entirely.
A caveat to this process is that we expect that the user does not change their YAML config file from what is represented in the database. Appropriate handling will be required here (i.e represent the YAML file in the DB and check against it?).
At some point niviz-rater will need to handle multiple users performing ratings on a given study to allow for collaborative QC of imaging data. To this end the database should be extended to store a user-id for ratings. The following requirements need to be met:
Currently the transitions between modals when going from one QC item to another is a bit rough. Need a way to smooth this out using svelte's transitions.
I'm not aware of how to do this off the top of my head at the moment.
There's been user feedback for the implementation of exemplar QC items for each qc category. The purpose of this is to serve as an example of the typical characteristics a certain QC image should have in order to be rated for a given category.
The requirements we hope to meet in this issue are the following:
Describe the bug
Path provided to -i
is used as-is without resolving to full path. As a result users need to use the path they originally gave to the database or otherwise risk images not being served correctly from the fileserver.
Expected behavior
The path fed to -i
should be fully resolved so that it is independent of how the user specifies it
niviz-rater was a cow-boy project of trying to solve the problem of QC sucking. As a result, its lacking in structure and testing. This issue is my hopes and dreams of making this a properly set up project. Tests are needed for the following major items:
index.py
does it create the correct database when initialized?api.py
does it return the correct values from GET requestsapi.py
does it implement the current SQL calls on POST requestsNote that part of this may require some refactoring to make sure that the backend is sufficiently testable
Svelte is relatively new territory for me, but this is probably a good place to start:
Is your feature request related to a problem? Please describe.
Outputs of BIDS pipelines often-times include a dataset_description.json
which instructs pyBIDS
on how to define the entities it uses. This means that niviz-rater
does not have a constant bids configuration it uses and specification YAMLs are highly dependent on how pyBIDS
parses the input file tree.
The resultant behaviour is that niviz-rater sometimes fails to get images because it is unclear what bids
configuration is being used - the only way to debug this is to investigate the dataset_description.json before making a .yaml
file. This reduces specification YAML re-usability.
Describe the solution you'd like
Niviz-Rater should be wholly independent of the dataset_description.json
potentially by forcing an override of PyBIDS' internal configuration and instead favouring the configuration file found in niviz_rater/data/bids.json
.
Describe alternatives you've considered
Since we don't actually use many of pyBIDS' features and it is quite slow due to its construction of an index (which we do not actually use), it may be a good idea to remove the dependency entirely. This will also remove other unwanted dependencies as well.
Pagination is needed within each of the Row components so that larger datasets can be handled more elegantly than a large page
niviz-rater enforces a YAML schema for configuring the qc process. The following are captured:
Description for how to initialize rows
QC components
The following schema generation and validation framework seems like a promising option:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.