Skip to content

Latest commit

 

History

History
70 lines (46 loc) · 2.02 KB

index.rst

File metadata and controls

70 lines (46 loc) · 2.02 KB

mrrc-hdr-qa documentation

Code to parse dicoms into a template database and alert on non-conforming sequences.

Code

.. toctree::
   :caption: Contents:

.. autosummary::
   :toctree: _autosummary
   :recursive:

   mrqart
   dcmmeta2tsv
   acq2sqlite
   change_header
   template_checker
   compliance_check_html
   mrrc_dbupdate


Overview

MRQART

MR Quality Assurance in (near) Real Time. See see static debug-enabled page for a demonstration. Full toolchain uses

  1. Samba server receives files from scanner (iceconfig)

  2. :py:func:`mrqart.main` initializes an inotify watcher

  3. New dcm files parsed with :py:func:`dcmmeta2tsv.DicomTagReader.read_dicom_tags`

  4. Headers compared to template :py:func:`template_checker.TemplateChecker.check_header`

  5. 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

../sphinx/imgs/mrqart-browserUI_20241124.png

Template

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.

../sphinx/imgs/nonconforming_example.png

Parameters