Code to parse dicoms into a template database and alert on non-conforming sequences.
.. toctree:: :caption: Contents:
.. autosummary:: :toctree: _autosummary :recursive: mrqart dcmmeta2tsv acq2sqlite change_header template_checker compliance_check_html mrrc_dbupdate
MR Quality Assurance in (near) Real Time. See see static debug-enabled page for a demonstration. Full toolchain uses
Samba server receives files from scanner (iceconfig)
:py:func:`mrqart.main` initializes an inotify watcher
New dcm files parsed with :py:func:`dcmmeta2tsv.DicomTagReader.read_dicom_tags`
Headers compared to template :py:func:`template_checker.TemplateChecker.check_header`
Dicom vs template comparisons is sent to the web browser via web sockets
- socket and http server managed by mrqart
- javascript in
static/index.html
provides client websockets ingest and styling
See :py:data:`acq2sqlite.DBQuery.CONSTS`
Here's an example for the RewardedAnti
task acquisitions in the WPC-8620
project. The ideal template is found finding the most frequent set of repeated key parameters. 150 of the RewardedAnti
seqeuences share the same acq_param
set, here stored in the sqlite db on rowid=35. But 4 acquisitions (rows in acq
) don't match. In this case all mismatches can be found in TA
.