Parse dicoms into a template database and alert on non-conforming sequences.
See
make docs/
for building sphinx documentation- locally in
sphinx/index.rst
) - reference for restructured text
sphinx docstrings
make test
for usingdoctests
schema.sql
for DB schema
- build sqlite db of all acquisitions with subset of parameters
- use db summary to pull out "ideal template"
- check new sessions' acquisitions against template to alert via cron
#m h dom mon dow command
30 0 * * * /home/npac/src/mrrc-hdr-qa/02_update_db.sh
-
"Sequence Name(0018,0024)" called "SequenceType" in
taglist.txt
is different per diffusion dcm (likeep_b5#1
..ep_b1540#27
) -
should look at n echos 0018,0086 and collapse across dicoms to make protocol mutliecho parameter
-
precision changes between realtime streaming and offline dicom writes? see
check_template.py
-
inotify
CREATE
is catches files before they finish writing. WatchCLOSE_WRITE
instead. Test slower write withsmbclient
smbclient -U mrqart //localhost/dicomstream/ -c 'put 001_000001_000002.dcm sim/y.dcm'
MR QA in Real Time (python port)
Use show_debug
in a console to get a simdata
textarea to send mock data.
MRQART can be extended to support
- motion/framewise displacement (FD) measure reporting a la FIRRM
- dynamic EPI acquisition angle selection
- ntp (accurate) clock sync with trigger pulse (very limited analog to https://github.com/ReproNim/reprostim)
- mrQA
- sister project https://github.com/NPACore/mrqart/
exdcm=Resting-state_ME_476x504.14/MR.1.3.12.2.1107.5.2.43.167046.202208231445351851262117
hyperfine "./dcmmeta2tsv.py $exdcm" "./dcmmeta2tsv.bash $exdcm"
Benchmark 1: ./dcmmeta2tsv.py Resting-state_ME_476x504.14/MR.1.3.12.2.1107.5.2.43.167046.202208231445351851262117
Time (mean ± σ): 952.2 ms ± 37.4 ms [User: 559.1 ms, System: 86.9 ms]
Range (min … max): 876.5 ms … 1014.5 ms 10 runs
Benchmark 2: ./dcmmeta2tsv.bash Resting-state_ME_476x504.14/MR.1.3.12.2.1107.5.2.43.167046.202208231445351851262117
Time (mean ± σ): 822.5 ms ± 69.3 ms [User: 73.3 ms, System: 51.0 ms]
Range (min … max): 703.1 ms … 896.1 ms 10 runs
Summary
./dcmmeta2tsv.bash Resting-state_ME_476x504.14/MR.1.3.12.2.1107.5.2.43.167046.202208231445351851262117 ran
1.16 ± 0.11 times faster than ./dcmmeta2tsv.py Resting-state_ME_476x504.14/MR.1.3.12.2.1107.5.2.43.167046.202208231445351851262117