From 5e726b2aab91654c4499d3d25391f99cd42eda63 Mon Sep 17 00:00:00 2001 From: WillForan Date: Fri, 27 Dec 2024 19:04:51 +0000 Subject: [PATCH] deploy: 917dee50f047c4378e97e6a7cb58149305959423 --- .buildinfo | 4 + .doctrees/_autosummary/acq2sqlite.doctree | Bin 0 -> 65273 bytes .doctrees/_autosummary/change_header.doctree | Bin 0 -> 37290 bytes .../compliance_check_html.doctree | Bin 0 -> 16015 bytes .doctrees/_autosummary/dcmmeta2tsv.doctree | Bin 0 -> 59131 bytes .doctrees/_autosummary/mrqart.doctree | Bin 0 -> 59980 bytes .doctrees/_autosummary/mrrc_dbupdate.doctree | Bin 0 -> 21636 bytes .../_autosummary/template_checker.doctree | Bin 0 -> 40555 bytes .doctrees/environment.pickle | Bin 0 -> 58691 bytes .doctrees/index.doctree | Bin 0 -> 35933 bytes .nojekyll | 0 _autosummary/acq2sqlite.html | 372 +++++++ _autosummary/change_header.html | 260 +++++ _autosummary/compliance_check_html.html | 165 ++++ _autosummary/dcmmeta2tsv.html | 364 +++++++ _autosummary/mrqart.html | 320 ++++++ _autosummary/mrrc_dbupdate.html | 183 ++++ _autosummary/template_checker.html | 254 +++++ _images/CheckResults_mrqart.png | Bin 0 -> 75384 bytes _images/mrqart-browserUI_20241124.png | Bin 0 -> 70096 bytes _images/nonconforming_example.png | Bin 0 -> 143360 bytes _sources/_autosummary/acq2sqlite.rst.txt | 20 + _sources/_autosummary/change_header.rst.txt | 16 + .../compliance_check_html.rst.txt | 13 + _sources/_autosummary/dcmmeta2tsv.rst.txt | 30 + _sources/_autosummary/mrqart.rst.txt | 33 + _sources/_autosummary/mrrc_dbupdate.rst.txt | 14 + .../_autosummary/template_checker.rst.txt | 27 + _sources/index.rst.txt | 70 ++ _static/alabaster.css | 663 +++++++++++++ _static/basic.css | 914 ++++++++++++++++++ _static/custom.css | 1 + _static/doctools.js | 149 +++ _static/documentation_options.js | 13 + _static/file.png | Bin 0 -> 286 bytes _static/github-banner.svg | 5 + _static/language_data.js | 192 ++++ _static/minus.png | Bin 0 -> 90 bytes _static/mrqart/index.html | 150 +++ _static/mrqart/main.css | 24 + _static/plus.png | Bin 0 -> 90 bytes _static/pygments.css | 84 ++ _static/searchtools.js | 632 ++++++++++++ _static/sphinx_highlight.js | 154 +++ genindex.html | 427 ++++++++ index.html | 278 ++++++ objects.inv | Bin 0 -> 996 bytes py-modindex.html | 172 ++++ search.html | 126 +++ searchindex.js | 1 + taglist.csv | 24 + 51 files changed, 6154 insertions(+) create mode 100644 .buildinfo create mode 100644 .doctrees/_autosummary/acq2sqlite.doctree create mode 100644 .doctrees/_autosummary/change_header.doctree create mode 100644 .doctrees/_autosummary/compliance_check_html.doctree create mode 100644 .doctrees/_autosummary/dcmmeta2tsv.doctree create mode 100644 .doctrees/_autosummary/mrqart.doctree create mode 100644 .doctrees/_autosummary/mrrc_dbupdate.doctree create mode 100644 .doctrees/_autosummary/template_checker.doctree create mode 100644 .doctrees/environment.pickle create mode 100644 .doctrees/index.doctree create mode 100644 .nojekyll create mode 100644 _autosummary/acq2sqlite.html create mode 100644 _autosummary/change_header.html create mode 100644 _autosummary/compliance_check_html.html create mode 100644 _autosummary/dcmmeta2tsv.html create mode 100644 _autosummary/mrqart.html create mode 100644 _autosummary/mrrc_dbupdate.html create mode 100644 _autosummary/template_checker.html create mode 100644 _images/CheckResults_mrqart.png create mode 100644 _images/mrqart-browserUI_20241124.png create mode 100644 _images/nonconforming_example.png create mode 100644 _sources/_autosummary/acq2sqlite.rst.txt create mode 100644 _sources/_autosummary/change_header.rst.txt create mode 100644 _sources/_autosummary/compliance_check_html.rst.txt create mode 100644 _sources/_autosummary/dcmmeta2tsv.rst.txt create mode 100644 _sources/_autosummary/mrqart.rst.txt create mode 100644 _sources/_autosummary/mrrc_dbupdate.rst.txt create mode 100644 _sources/_autosummary/template_checker.rst.txt create mode 100644 _sources/index.rst.txt create mode 100644 _static/alabaster.css create mode 100644 _static/basic.css create mode 100644 _static/custom.css create mode 100644 _static/doctools.js create mode 100644 _static/documentation_options.js create mode 100644 _static/file.png create mode 100644 _static/github-banner.svg create mode 100644 _static/language_data.js create mode 100644 _static/minus.png create mode 100644 _static/mrqart/index.html create mode 100644 _static/mrqart/main.css create mode 100644 _static/plus.png create mode 100644 _static/pygments.css create mode 100644 _static/searchtools.js create mode 100644 _static/sphinx_highlight.js create mode 100644 genindex.html create mode 100644 index.html create mode 100644 objects.inv create mode 100644 py-modindex.html create mode 100644 search.html create mode 100644 searchindex.js create mode 100644 taglist.csv diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 00000000..b637720f --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file records the configuration used when building these files. When it is not found, a full rebuild will be done. +config: a0fcf460302088f3b558fee9146ad410 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/_autosummary/acq2sqlite.doctree b/.doctrees/_autosummary/acq2sqlite.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c4b11098182f582e7a3fcd429b20217716c392c5 GIT binary patch literal 65273 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

UIa7556Ew>Wd2WmwQmLNkh4jnAa?xqM_qWwZ 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 MSx^?(_Lk!R2UqHIh5!Hn literal 0 HcmV?d00001 diff --git a/.doctrees/_autosummary/change_header.doctree b/.doctrees/_autosummary/change_header.doctree new file mode 100644 index 0000000000000000000000000000000000000000..68f4ca5d18989580097323e6980ac9d1fbe9986d GIT binary patch literal 37290 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 literal 0 HcmV?d00001 diff --git a/.doctrees/_autosummary/compliance_check_html.doctree b/.doctrees/_autosummary/compliance_check_html.doctree new file mode 100644 index 0000000000000000000000000000000000000000..217482d1b72a4f85a2532d33d4c201d94bb4fa1a GIT binary patch literal 16015 zcmdU0du%1wS@*8r_WH4#U6<7B<|a|vYgpTCDQV>_AyI%f-Hr25RG@K~j_-^;b3AwE zb{@NSqNu6bY}et0M|b)JwH2cMqvem3BIU1A1VRN-fe?uQK|qlJi6W%_0SJEIIcH|h zjOWg^H%k&M`QAHczH`p^KIi++`Cc6T%qJfl5`TOy>N&2zw`y9JA6Ryj@(C;GBwgE& z)0^q?$I}IOaP3+U z?yhyiu(RS=;mSwN(r+n&HN#BeAWFJjGu&S*m?B9Pl&*#msC&odlgXAd#7AA=jfKfp=yo&=`Q*QhbV0Fia2AQ!fRKN)BUJ%CX7uPRo>hd780zBsn%9vp>tJ>?7 zpVpoX@TP2ne?5i2x@p?N9x-Q>c=3f+Y{OCslb#tn%TrVDSD3X-zx9EqAG^|$$Pp<& z^XMawKh|<=)3QTBml?WI;9qDt?vCT(KPH;HZqzknOcJe5O?iQ78QB!=>_;}&6}-*o z$zHa$!=T%W9Xm&Dm0U+_+XaEje~ebiRq}^^#yeq<^fdh}{M0xU=a_mkfiBlvD|XV$ zQ=}?gs0xEN`qGJJUa+q=!>#56d{`fVyyjM5?bjkY90u2FUyPEqAMOLYoP?h=cS5u0 zXdQX54s{H+*!oB6G@*5=UWMymANYg4MurqZ3wLU}fYL^qd(eA@71r+T(;K^u%c zxKtgZ%eN7uOdG~MH-H4Yj4L**ic)y1=dYESC(|ES`u(o#G zIK3fWUo%5LJ%9%6uS>_C@^iI<#Uc+Fu@t5oVxHIxckDRjKUxc4>!pOp{5%%Jx0a{8 zd;(%fVVMhjsnNq}vQKr{+kNFnLjJU~QEcO2tv!%%1s` z+v#bumG|}zTA0b-=&b6m>WWowMcw$TV@R!87j8hbFF~{inJBXrroXJ8%)MS|LG0&% zOF+`|W~*bx(|#etf&bL&nnLQ&m$T8F|5omEri6-SJO9&PA==K@kKi)@v&n+6&6FE`HGH%`RTKwY}T|zlEN;Ut()ShzQP(5?7EHe@4>HE~uVOYM424klxHw zkMK0+JR6rmtA(E+qwMUJ1-_WUg`@OR`!*sN|!I_Pawd+R`aafraf{-<)!Z?Npug`@Sq?|XBJ2RMY3J{&+k~~3TW!~G z$t_ELn6!Mnok>&VI>bki2ss=w(q?s*-WZXKh(AukQX=DGE#^%TRIvpXqf!cn@(5Yl z#Tn%b_0A|;!u!20l>Xz5O5f(wAY}z26%+Fr!b5EO#B*u?$~qW|S@?j;v5(QXi|qM) zc>dg*7Y$QRTzTGvLT;<-rqXbQ2|pij9vNhQt4(EFd#`%5(%l42*NHmaPf0bk(d#zNPAw~wYwS7w>M7rv7ffUmgIx0pM%q2B6aOX= z|JMQh;}fnA1Mv~dABa6*61pjW)QRI>w7#~s{aw(-Qnj|8Dz%DHZN!PXiD z&V4ei2;+%~|15F&r$M-kAkIcMbwnhtspCJ&j)i}e&ZCel3jtwLjuxqBm|n`K$dMp$ zNA|p&IpAZ1V)aoOs5@hPVmt9XVa4pTn1D|ianK?Ch@+If{Ukg%HD5>SK)jHCYoT`K zS{5AGCqkBT-GNZAQi}*{DS0E@RVRQbv;%`I*VT6Zf5x!vo#0e|yVo~I5H>~pZ~F2F z!Q88m#!5KJr?y?&v!p+$8ml;n5$_L~IK5I`t82m36PcIEllOX4;WQsU4)fSg6Z9gx zL|;oHg%7t`U{Ra+#OrC~_dPrAPv9iELIc^p?ja&It=!Sq!&dtdI)8dfq`Q|}D=V$X zlem|}MVeVctF-pEI?K3#9jPC~mrzQZlF_tjllg9B#3^+itrlyuNyung^Ju{Tv zZIL}QKmxSn{h}1shXg45Fut;FnbM+SEx03RI-Ml7+OP$69>6+Uzv{j$OEi^wYy5kS zFzCBmt9WguY~ou2-$OP*&H7kXn_$oBhz^5-O!LL>g4y4z4AftZiHS<%|5PB=A5_

_ zgMB@Dgi#-tptPtoWl;!$bqV@j0m>f0S6OY_>>;g=go&I8^ z`PKS2MxFBYk3FHydB}Vo5QnYm-1r(cy4f<*+73b-sK&O{N+_YyGFu;XeP+J9I3LZl z^mUC<(E9e{(29-HB6}Np3{nauKH|x37T>fKUrU^mDSuLGD@c3qaY)O=_#WzXL@^dl zqq^QMAS8f8DR8-RWL#c{XONRNyM_-4ku++wkn+zChGR;~#Ij>ax!FtnBrFGNmTiWe zrE26=v&ONzWv48(sqfU5o)#gNyu(tB($q<;gc?UACzOnR4D{hr6;ea`vmdO;`#bQ} zevti~&6-!_>HPserCw&wrvahDttbbY^MkA{gQJmXzQ~U0s)fu6#42E+h)9|cj%W!RsNyh>%u&L3nJDx z3uXIgGmhEVEBF|kQTinsk>}A`qa>s%j-^@v<&6u(;6F0un z%ng+#Ex5s6rBOwelzp{?TuHuSdHcW334XVcyvCg1AE9g0+E=9aXlJ1EoZmTeC-x6u zjGp|fXW#cV_Q|~k`hDBLzgssVK6S>}dFuKt48@k{*VKr5 zyq>bVsQX;W_S&UXU1lg)1b+h~kY7r+*gfc0@tRs1-%tF|D_N;XGtkUKg5xmBvTE{U4!IasAjcy<6c}u0zWZ;PvllrBtR;B z#7N*S0Xo>`^6*?4T>e~;bbz6BHR>-?EnL4&osMX2cRrj&;ZLgz)Gc|;BMl16Y6C=p z=NFHIr(pf(1e2QSQLHC=ZZqpkVYOm^sjVRGwd0VMIlSMaPDd2MM803SWS#}}DM`K;RhRToDLRLQfN@m2vuTpju@tM(qc9cSXG?K?pkDRZD!R{hL-n27lFxmjd-e(1jFBYR zC+XMpC_Y}we_h9~1NJHLc|&|2h|ibB=P!#-PM_pL>Z0(1>b7%9-yN=qV~G`Uuxw|k z3mrhK55ifxs`Vj3O(Du3mX1vvtD$PBzbnXVq?`-%aUN?p!4mv)zaB==a zrk9{VDLb&_V}Uq;OE;W3+(K8!)ImsB(k&FCM6ucJ;bA%qf*7dU+wNY1j6Q>$3dW%f%EBwqh2Ji!vwiL}b_zYFD`AOHZs~_H5B&P&U@cD#$RC>Yz%>Hux!7B4c>=RU3>v$)_CC!zreG9Ob9&Js13o zal0%kT1PE=E7`$xvvh$U=^Q#ew9PJBCLxH9O;{6tu8-qN1D7`fs;Iyze-dx6yl+L^ zFF0R*Y1m;Hgob1KmS^Mc!Wg02!3F<0$#ZR#Q85aN#VT(qL$HTn6ns{WTi}rOK3{%O z>CESe254R6fJL6TYdGVX{!U`<*xXT@;5MhyqtpwW{2}0kkLRxc)YDK>39;QSf%R!sObcE0wxu^a;KNwjsfd+NNN)o3g(f10 z?7}u;)b~-Pj?kOaKnj`_qd*tF+@g}z7gBzv)Jpd}L^DR)&L76enW7>V;N#RNf3vf+ z?w!U*#3!j)q?iFDUK~Wu-6%d4?{O{o60T{Csj{KWqh~jRifh4_M7Bg^CGADzcy1m1czbbVp0vaTRGDMrogf&* zp|_B!h*qd?cMBz|CD5~##vFRG1U8w?Dn>d}8XpTt7^iRt=c;3=H(0^p6FWgdcj&NO z;x@Sl-GP>1X&!$>wcmtfUrL{Xed9h0JOvabf=bH?bJtjEp3a+vR!+Nq$4e}-f*q=; Qp0db$D@RA06Wr1JUqaDf00000 literal 0 HcmV?d00001 diff --git a/.doctrees/_autosummary/dcmmeta2tsv.doctree b/.doctrees/_autosummary/dcmmeta2tsv.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0824f666242463bec0196cad07af1beec4826d85 GIT binary patch literal 59131 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�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 YZIo-B3dz?Z$?;T$?1E6Cd~}QdAKOI|{{R30 literal 0 HcmV?d00001 diff --git a/.doctrees/_autosummary/mrrc_dbupdate.doctree b/.doctrees/_autosummary/mrrc_dbupdate.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d9c442bd49b2fae9d76dba8efbf8dcda843a67cf GIT binary patch literal 21636 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 V`oBglY`RH)J9cq2Ex|p*{|7nxxd8wG literal 0 HcmV?d00001 diff --git a/.doctrees/_autosummary/template_checker.doctree b/.doctrees/_autosummary/template_checker.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b91a37c362d57072c0caf150b4c8c4bc94393593 GIT binary patch literal 40555 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 Kk + + + + + + + acq2sqlite — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + + +

+
+
+ + +
+ +
+

acq2sqlite

+

Convert db.txt into a sqlite database.

+

Functions

+ + + + + + + + + + + + +

column_names()

These names match what's used by dcmmeta2tsv.py and 00_build_db.bash CSA first, normal dicom headers, and then filename.

have_pipe_data()

none_to_null(row)

Template should match get_header.

+

Classes

+ + + + + + +

DBQuery([sql])

Convenient SQL queries for tracking dicom headers/metadata.

+
+
+class acq2sqlite.DBQuery(sql=None)[source]
+

Convenient SQL queries for tracking dicom headers/metadata.

+

This class is a poorly implemented, ad-hoc/bespoke ORM for database defined in schema.sql

+
+
+CONSTS = ['Project', 'SequenceName', 'iPAT', 'Comments', 'SequenceType', 'PED_major', 'Phase', 'TR', 'TE', 'Matrix', 'PixelResol', 'BWP', 'BWPPE', 'FA', 'TA', 'FoV'][source]
+

CONSTS is a list of expected aquisition-invarient parameters. +The values of these attributes should be the same for every acquisition +sharing a Project × SequenceName pair (across all sessions of a Project).

+

We consider the acquisition to have a Quallity Assurance error +when the value of any of these parameters in a single acquisition +fails to match the template.

+

For example TR for task EPI acquisition identified by +SequenceName=RewardedAnti in Project=WPC-8620 +should always be 1300 ms.

+../_images/nonconforming_example.png +
+ +
+
+check_acq(d)[source]
+

Is this exact acquisition (time, id, series) already in the database?

+
+
Parameters:
+

d (dict[str, str]) – All parameters of an acquisition

+
+
Returns:
+

True/False if dict params exist

+
+
Return type:
+

bool

+
+
+
+ +
+
+dict_to_db_row(d)[source]
+

insert a dicom header (representative of acquisition) into db +:param d: a single acquisition to add to DB +:return: True if added or already exists

+
+
Parameters:
+

d (dict[str, str])

+
+
Return type:
+

bool

+
+
+
+ +
+
+find_acquisitions_since(since_date=None)[source]
+

Retrieve all acquisitions with AcqDate greater than the specified date.

+
+
Parameters:
+

since_date (str | None) – Date string in ‘YYYY-MM-DD’ format; defaults to yesterday if None.

+
+
Returns:
+

List of acquisition rows with AcqDate > since_date.

+
+
+
+ +
+
+get_template(pname, seqname)[source]
+

Find the template from template_by_count. See make_template_by_count.sql

+
+
Parameters:
+
    +
  • pname (str) – protocol name

  • +
  • sqname – sequence name

  • +
  • seqname (str)

  • +
+
+
Returns:
+

template row matching prot+seq name pair

+
+
Return type:
+

Row

+
+
+
+ +
+
+is_template(param_id)[source]
+

Check if param id is the ideal template.

+
+
Parameters:
+

param_id (int)

+
+
Return type:
+

bool

+
+
+
+ +
+
+most_recent(project='%')[source]
+

Find a projects most recent scan in the database +:param project: project name. default to all via wildcard % +:return: timestamp string of most recent seen scan

+
+
Parameters:
+

project (str)

+
+
Return type:
+

Row

+
+
+
+ +
+
+param_rowid(d)[source]
+
+
Parameters:
+

d (dict[str, str]) – dicom headers

+
+
Returns:
+

acq_param (new or existing) rowid identifying unique set of CONSTS

+
+
Return type:
+

int | None

+
+
+

Find or insert the combination of parameters for an acquisition. +Using CONSTS, the header parameters that should be invariant +across acquisitions of the same name within a study.

+
>>> db = DBQuery(sqlite3.connect(':memory:'))
+>>> with open('schema.sql') as f: _ = [db.sql.execute(c) for c in f.read().split(";")]
+...
+>>> # db.sql.execute(".read schema.sql")
+>>> example = {k: 'x' for k in db.CONSTS}
+>>> db.param_rowid(example)
+1
+>>> db.param_rowid(example)
+1
+>>> db.param_rowid({**example, 'Project': 'b'})
+2
+>>> str(db.param_rowid({}))
+'None'
+
+
+
+ +
+
+search_acq_param(d)[source]
+

Try to find aca_param row id of CONSTS part of input d

+
+
Parameters:
+

d (dict[str, str]) – dictionary of tag values (keys in CONSTS)

+
+
Returns:
+

rowid of matching (param_id) or None

+
+
Return type:
+

int | None

+
+
+
+ +
+
+tsv_to_dict(line)[source]
+

Read a tsv line into dictionary.

+
+
Parameters:
+

line (str) – tab separated string. likely line from dcmmeta2tsv.py

+
+
Returns:
+

dictionary with taglist.txt names and acquisition values.

+
+
Return type:
+

dict[str, str]

+
+
+
+ +
+ +
+
+acq2sqlite.column_names()[source]
+

These names match what’s used by dcmmeta2tsv.py and 00_build_db.bash +CSA first, normal dicom headers, and then filename.

+

Defaults to reading from taglist.txt +This provides a language agnostic lookup for columns in schema.sql

+

These column names should match what is output by +./dcmmeta2tsv.bash or ./dcmmeta2tsv.py

+

Also see dcmmeta2tsv.read_known_tags()

+
>>> cn = column_names() # reads taglist.txt
+>>> cn[0] # hard coded here
+'Phase'
+>>> cn[3] # from taglist.xt
+'AcqDate'
+
+
+
+ +
+
+acq2sqlite.none_to_null(row)[source]
+

Template should match get_header. This changes all None``s to ``"null" +:param row: single row from a sqlite query (likely get_template())

+
+
Parameters:
+

row (Row | None)

+
+
+
+ +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/_autosummary/change_header.html b/_autosummary/change_header.html new file mode 100644 index 00000000..0bd3077f --- /dev/null +++ b/_autosummary/change_header.html @@ -0,0 +1,260 @@ + + + + + + + + change_header — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

change_header

+

Modify DICOM header information to simulate failing QA.

+

Functions

+ + + + + + + + + + + + + + + + + + +

change_tags(dcm_dir, new_data[, out_dir])

Change specified tags of all dicoms in a directory.

gen_acqdates()

Generate DataElements for random acquisition day and time.

gen_anon()

Make random date of birth, age, and sex.

gen_ids(new_id)

Generate ID DataElements.

main_make_mods()

Exercise header modification code to make example data we can use.

+
+
+change_header.change_tags(dcm_dir, new_data, out_dir=None)[source]
+

Change specified tags of all dicoms in a directory. Optionally make copies in out_dir.

+

sideffect: writes copies of dcm_dir dicoms into out_dir unless out_dir is None.

+
+
Parameters:
+
    +
  • dcm_dir (Path) – input directory with dicom files (MR*, *IMA , or *dcm)

  • +
  • new_data (List[DataElement]) – list of data elements to replace +like [pydicom.DataElement(value="newpname", VR="LO", tag=(0x0018, 0x1030))]

  • +
  • out_dir (Path | None) – Optional. Where to save modified dicoms

  • +
+
+
Returns:
+

example modified dicom. last if out_dir, first and only if no out_dir.

+
+
Return type:
+

FileDataset | None

+
+
+
>>> new_data = [pydicom.DataElement(value="newpname", VR="LO", tag=(0x0018, 0x1030))]
+>>> ex_path = Path('example_dicoms/')
+>>> ex = change_tags(ex_path, new_data)
+>>> ex.ProtocolName
+'newpname'
+
+
+
+ +
+
+change_header.gen_acqdates()[source]
+

Generate DataElements for random acquisition day and time.

+
+
Returns:
+

ID DataElements List

+
+
Return type:
+

List[DataElement]

+
+
+

See gen_anon() for tag and VR info.

+
+ +
+
+change_header.gen_anon()[source]
+

Make random date of birth, age, and sex.

+
+
Returns:
+

list of DataElements with randomized values

+
+
Return type:
+

List[DataElement]

+
+
+
+

Tip

+

Field tag type and location can be extracted like:

+
x = pydicom.dcmread(example_fname)
+fields = ['AcquisitionDate', 'AcquisitionTime',
+          'PatientBirthDate', 'PatientAge', 'PatientSex']
+[x[k] for k in fields]
+
+# yields
+[(0008,0022) Acquisition Date                    DA: '20221222',
+ (0008,0032) Acquisition Time                    TM: '092132.722500',
+ (0010,0030) Patient's Birth Date                DA: '20070404',
+ (0010,1010) Patient's Age                       AS: '015Y',
+ (0010,0040) Patient's Sex                       CS: 'F']
+
+
+
+

Where the tag is the tuple and “XX:” is the type

+
+ +
+
+change_header.gen_ids(new_id)[source]
+

Generate ID DataElements.

+
+
Parameters:
+

new_id (str) – id string to put into pat name and pat id dicom headers.

+
+
Returns:
+

ID DataElements List

+
+
Return type:
+

List[DataElement]

+
+
+

See gen_anon() for tag and VR info.

+
>>> data_els = gen_ids('example_name')
+>>> data_els[0].value
+'example_name'
+>>> data_els[0].VR
+'PN'
+>>> data_els[0].tag 
+(0010, 0010)
+
+
+
+ +
+
+change_header.main_make_mods()[source]
+

Exercise header modification code to make example data we can use.

+

We can confirm changes are made from shell using AFNI’s dicom_hinfo

+
find example/dicom/mod* -iname 'MR*' -exec dicom_hinfo -tag 0010,0010 -sepstr $'\t' -last {} \+
+
+#   mod1 example/dicom/mod1/HabitTask/MR.1.3.12.2.1107.5.2.43.167046.2022122209214150118864465
+#   mod1 example/dicom/mod1/HabitTask/MR.1.3.12.2.1107.5.2.43.167046.2022122209214176799264617
+#   mod2 example/dicom/mod2/HabitTask/MR.1.3.12.2.1107.5.2.43.167046.2022122209214150118864465
+#   mod2 example/dicom/mod2/HabitTask/MR.1.3.12.2.1107.5.2.43.167046.2022122209214176799264617
+
+
+
+ +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/_autosummary/compliance_check_html.html b/_autosummary/compliance_check_html.html new file mode 100644 index 00000000..adb64c63 --- /dev/null +++ b/_autosummary/compliance_check_html.html @@ -0,0 +1,165 @@ + + + + + + + + compliance_check_html — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

compliance_check_html

+

Functions

+ + + + + + + + + +

generate_html_report(check_result, template_path)

Generate an HTML report of DICOM header comparison, highlighting mismatches.

load_template(template_path)

Load an HTML template from the template.html file

+
+
+compliance_check_html.generate_html_report(check_result, template_path)[source]
+

Generate an HTML report of DICOM header comparison, highlighting mismatches.

+
+
Parameters:
+
    +
  • check_result (CheckResult) – Output from the check_header function, containing the comparison results.

  • +
  • template_path (str)

  • +
+
+
Returns:
+

HTML string with results formatted using a Jinja2 template.

+
+
Return type:
+

str

+
+
+
+ +
+
+compliance_check_html.load_template(template_path)[source]
+

Load an HTML template from the template.html file

+
+
Parameters:
+

template_path (str) – Path to the HTML template file.

+
+
Returns:
+

A Jinja2 Template object.

+
+
Return type:
+

Template

+
+
+
+ +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/_autosummary/dcmmeta2tsv.html b/_autosummary/dcmmeta2tsv.html new file mode 100644 index 00000000..15fb492d --- /dev/null +++ b/_autosummary/dcmmeta2tsv.html @@ -0,0 +1,364 @@ + + + + + + + + dcmmeta2tsv — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

dcmmeta2tsv

+

Give a tab separated metadata value line per dicom file.

+

Module Attributes

+ + + + + + +

TagValues

keys are names from taglist.txt, also has dcm_path key for file

+

Functions

+ + + + + + + + + + + + + + + + + + + + + +

csa_fetch(csa_tr, itemname)

safely look into csa_tr dicom dictionary.

read_csa(csa)

extract parameters from siemens CSA :param csa: content of siemens private tag (0x0029, 0x1010) :return: nibabel's csareader dictionary or None if cannot read

read_known_tags([tagfile])

read in tsv file like with header name,tag,desc.

read_shims(csa_s)

read_tags(dcm_path, tags)

Read dicom header and isolate tags

tagpair_to_hex(csv_str)

move our text files has tags like "0051,1017" to pydicom indexe like (0x51,0x1017)

+

Classes

+ + + + + + + + + +

DicomTagReader()

Class to cache read_known_tags() output

NULLVAL()

Container to imitate pydicom.dcmread.

+
+
+class dcmmeta2tsv.DicomTagReader[source]
+

Class to cache read_known_tags() output

+
+
+read_dicom_tags(dcm_path)[source]
+

return values of dicom header priority fields +ordered as defined in taglist.txt +:param dcm_path: path to dciom +:return: dict[taglist.txt tagname, tag value]

+
>>> dtr = DicomTagReader()
+>>> hdr = dtr.read_dicom_tags('example_dicoms/RewardedAnti_good.dcm')
+>>> list(hdr.values()) 
+[1, 'p2', '154833.265000', '20220913', ...
+
+
+
>>> list(hdr.values())[-1]
+'example_dicoms/RewardedAnti_good.dcm'
+
+
+
+
Parameters:
+

dcm_path (PathLike)

+
+
Return type:
+

dict[str, str]

+
+
+
+ +
+ +
+
+class dcmmeta2tsv.NULLVAL[source]
+

Container to imitate pydicom.dcmread. +object that has obj.value for when a dicom tag does not exist. +Using “null” to match AFNI’s dicom_hinfo missing text

+
+ +
+
+dcmmeta2tsv.TagValues[source]
+

keys are names from taglist.txt, also has dcm_path key for file

+

alias of dict[str, str]

+
+ +
+
+dcmmeta2tsv.csa_fetch(csa_tr, itemname)[source]
+

safely look into csa_tr dicom dictionary. +Expect nested structure like 'tags'->itemname->'items'->[0].

+

In future, might want to check itemname and pull out more than the first array item.

+
>>> csa_fetch({'notags':'badinput'}, 'PhaseEncodingDirectionPositive')
+'null'
+>>> csa_fetch({'tags':{'ImaPATModeText': {'items': [1]}}}, 'ImaPATModeText')
+1
+
+
+
+
Parameters:
+
    +
  • csa_tr (dict)

  • +
  • itemname (str)

  • +
+
+
Return type:
+

str

+
+
+
+ +
+
+dcmmeta2tsv.read_csa(csa)[source]
+

extract parameters from siemens CSA +:param csa: content of siemens private tag (0x0029, 0x1010) +:return: nibabel’s csareader dictionary or None if cannot read

+
>>> read_csa(None) is None
+True
+
+
+
+
Return type:
+

dict | None

+
+
+
+ +
+
+dcmmeta2tsv.read_known_tags(tagfile='taglist.txt')[source]
+

read in tsv file like with header name,tag,desc. +skip comments and header

+
+
Parameters:
+

tagfile – text tsv file to get name,tag(hex pair),desc from

+
+
Returns:
+

file parsed into a list of dictonaires

+
+
Return type:
+

list[Tag]

+
+
+
+ +
+
+dcmmeta2tsv.read_shims(csa_s)[source]
+
+
Param:
+

csa_s 0x0029,0x1020 CSA Series Header Info:: +csa_s = dcmmeta2tsv.read_csa(dcm.get(())

+
+
Returns:
+

list of shim values in order of CHM matlab code

+
+
Parameters:
+

csa_s (dict | None)

+
+
Return type:
+

list

+
+
+
+
CHM maltab code concats

sAdjData.uiAdjShimMode +sGRADSPEC.asGPAData[0].lOffset{X,Y,Z} +sGRADSPEC.alShimCurrent[0:4] +sTXSPEC.asNucleusInfo[0].lFrequency

+
+
+
>>> csa_s = pydicom.dcmread('example_dicoms/RewardedAnti_good.dcm').get((0x0029, 0x1020))
+>>> ",".join(read_shims(read_csa(csa_s)))
+'1174,-2475,4575,531,-20,59,54,-8,123160323,4'
+>>> read_shims(None)  
+['null', ...'null']
+
+
+
+ +
+
+dcmmeta2tsv.read_tags(dcm_path, tags)[source]
+

Read dicom header and isolate tags

+
+
Parameters:
+
    +
  • dcm_path (PathLike) – dicom file with headers to extract

  • +
  • tags (list[Tag]) – ordered dictionary with ‘tag’ key as hex pair, see tagpair_to_hex()

  • +
+
+
Returns:
+

dict[tag,value] values in same order as tags

+
+
Return type:
+

dict[str, str]

+
+
+
>>> tr = {'name': 'TR', 'tag': (0x0018,0x0080), 'loc': 'header'}
+>>> ipat = {'name': 'iPAT', 'tag': 'ImaPATModeText', 'loc': 'csa'}
+>>> list(read_tags('example_dicoms/RewardedAnti_good.dcm', [ipat, tr]).values())
+['p2', '1300.0', 'example_dicoms/RewardedAnti_good.dcm']
+
+
+
>>> list(read_tags('example_dicoms/DNE.dcm', [ipat,tr]).values())
+['null', 'null', 'example_dicoms/DNE.dcm']
+
+
+
+ +
+
+dcmmeta2tsv.tagpair_to_hex(csv_str)[source]
+

move our text files has tags like “0051,1017” +to pydicom indexe like (0x51,0x1017)

+
+
Parameters:
+

csv_str – comma separated string to convert

+
+
Returns:
+

dicom header tag hex pair

+
+
Return type:
+

tuple[int, int]

+
+
+
>>> tagpair_to_hex("0051,1017")
+('0x51', '0x1017')
+
+
+
+ +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/_autosummary/mrqart.html b/_autosummary/mrqart.html new file mode 100644 index 00000000..fdeb4dae --- /dev/null +++ b/_autosummary/mrqart.html @@ -0,0 +1,320 @@ + + + + + + + + mrqart — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

mrqart

+

Broadcast filesystem updates (via inotify) over websockets. +Serve javascript over HTTP for receiving websocket messages in a browser.

+

Module Attributes

+ + + + + + + + + + + + + + + +

WS_PORT

Websocket port used to send updates to browser

HTTP_PORT

HTTP port used to serve static/index.html

WS_CONNECTIONS

list of all web socket connections to broadcast to TODO: will eventually need to track station id when serving multiple scanners

STATE

track the current state of each scanner based on filename we can skip parsing a dicoms (and spamming the browser) if we've already seen the session

+

Functions

+ + + + + + + + + + + + + + + + + + +

http_run()

Actually run web server, listening on HTTP_PORT.

main(paths)

Run all services on different threads.

monitor_dirs(watcher, dcm_checker)

Perpetually wait for new dicom files.

session_from_fname(dcm_fname)

We can use the file name to see if session name has changed. Don't need to read the dicom header -- if we know the station name. Can extract from 001_sequencenum_seriesnum::.

track_ws(websocket)

Track connecting and disconnecting websocket connections.

+

Classes

+ + + + + + + + + + + + +

CurSeqStation(station)

Current Sequence settings at a MR Scanner station

HttpIndex(application, request, **kwargs)

Handle index page request

WebServer()

HTTP server (tornado request handler) Currently (20241102), this is just a fancy way to serve a static page.

+
+
+class mrqart.CurSeqStation(station)[source]
+

Current Sequence settings at a MR Scanner station

+
+
Parameters:
+

station (str)

+
+
+
+
+update_isnew(series, seqname)[source]
+

Maintain count of repeats seen +:return: True if is new

+
+
Parameters:
+

seqname (str)

+
+
Return type:
+

bool

+
+
+
+ +
+ +
+
+mrqart.HTTP_PORT = 8080[source]
+

HTTP port used to serve static/index.html

+
+ +
+
+class mrqart.HttpIndex(application, request, **kwargs)[source]
+

Handle index page request

+
+
Parameters:
+
    +
  • application (Application)

  • +
  • request (HTTPServerRequest)

  • +
  • kwargs (Any)

  • +
+
+
+
+
+async get()[source]
+

Default is just the index page

+
+ +
+ +
+
+mrqart.STATE: dict[str, CurSeqStation] = {}[source]
+

track the current state of each scanner based on filename +we can skip parsing a dicoms (and spamming the browser) if we’ve already seen the session

+
+ +
+
+mrqart.WS_CONNECTIONS = {}[source]
+

list of all web socket connections to broadcast to +TODO: will eventually need to track station id when serving multiple scanners

+
+ +
+
+mrqart.WS_PORT = 5000[source]
+

Websocket port used to send updates to browser

+
+ +
+
+class mrqart.WebServer[source]
+

HTTP server (tornado request handler) +Currently (20241102), this is just a fancy way to serve a static page. Eventually

+
    +
  • will match /scanner-id URL to station id dicom header for scanner specific page

  • +
  • could give more insite into or modify DB.

  • +
+
+ +
+
+mrqart.http_run()[source]
+

Actually run web server, listening on HTTP_PORT. WebServer defines what is actually served (and dispatches to HttpIndex)

+
+ +
+
+async mrqart.main(paths)[source]
+

Run all services on different threads. +HTTP and inotify are forked. Websocket holds the main thread.

+
+ +
+
+async mrqart.monitor_dirs(watcher, dcm_checker)[source]
+

Perpetually wait for new dicom files. +Broadcast new files to the browser over websockets.

+
+ +
+
+mrqart.session_from_fname(dcm_fname)[source]
+

We can use the file name to see if session name has changed. +Don’t need to read the dicom header – if we know the station name. +Can extract from 001_sequencenum_seriesnum:

+
ls /data/dicomstream/20241016.MRQART_test.24.10.16_16_50_16_DST_1.3.12.2.1107.5.2.43.67078/|head
+001_000001_000001.dcm
+...
+001_000017_000066.dcm
+
+
+
+
Parameters:
+

dcm_fname (PathLike)

+
+
Return type:
+

str

+
+
+
+ +
+
+async mrqart.track_ws(websocket)[source]
+

Track connecting and disconnecting websocket connections.

+

Stored in WS_CONNECTIONS. +Might eventually need a dict to broadcast only to dicom specified station id.

+
+ +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/_autosummary/mrrc_dbupdate.html b/_autosummary/mrrc_dbupdate.html new file mode 100644 index 00000000..dcd5a0cb --- /dev/null +++ b/_autosummary/mrrc_dbupdate.html @@ -0,0 +1,183 @@ + + + + + + + + mrrc_dbupdate — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

mrrc_dbupdate

+

Find MRRC organized study acquisitions directories newer than what’s in the DB +and update them.

+

Functions

+ + + + + + + + + + + + +

find_first_dicoms(session_root)

Find a representative dicom for each acquisition in session_root.

is_project(pdir)

Is input a MR project dir? should have subfolder like 2024.06.27-09.19.11/

update_mrrc_db([project_dir_list])

Use DB dates to find projects with new sessions.

+
+
+mrrc_dbupdate.find_first_dicoms(session_root)[source]
+

Find a representative dicom for each acquisition in session_root.

+
+
Parameters:
+

session_root (str) – path to session root directory. likely like .../ProjectName/yyyy.mm.dd-hh.mm.ss

+
+
Returns:
+

list of first dicoms like sessroot/subjid/acquisitonname/MR*

+
+
Return type:
+

list[str]

+
+
+
+ +
+
+mrrc_dbupdate.is_project(pdir)[source]
+

Is input a MR project dir? +should have subfolder like 2024.06.27-09.19.11/

+
+
Parameters:
+

pdir (str) – directory to test

+
+
Returns:
+

True if is a project directory

+
+
Return type:
+

bool

+
+
+

#>>> is_project(‘/disk/mace2/scan_data/WPC-8620/’) +#True +#>>> is_project(‘/disk/mace2/scan_data/7T/’) +#False

+
+ +
+
+mrrc_dbupdate.update_mrrc_db(project_dir_list=None)[source]
+

Use DB dates to find projects with new sessions. Add acquisitions. +Dicoms in structure like Project/yyyy.mm.dd-*/SessionId/AcqustionName-FOV.num/MR*

+
+
Parameters:
+

project_dir_list (list[str]) – list of project dirs. Default is glob("/disk/mace2/scan_data/*").

+
+
+
+ +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/_autosummary/template_checker.html b/_autosummary/template_checker.html new file mode 100644 index 00000000..1a569ad7 --- /dev/null +++ b/_autosummary/template_checker.html @@ -0,0 +1,254 @@ + + + + + + + + template_checker — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

template_checker

+

check a header against best template

+

Module Attributes

+ + + + + + + + + +

ErrorCompare

Dictionary for mismatches in input (have key) and template (expect key)

CheckResult

+

Functions

+ + + + + + +

find_errors(template, current_hdr)

given a template and hdr, find any mismatches (non-conforming errors) :param template: expected values :param current_hdr: values we currently have :returns: dictionary of tag key names and the have/expect values

+

Classes

+ + + + + + + + + + + + +

CheckResult

ErrorCompare

Dictionary for mismatches in input (have key) and template (expect key)

TemplateChecker([db])

cache db connection and list of tags read a dicom file and report if it conforms to the expected template

+
+
+class template_checker.CheckResult[source]
+
    +
  • +
    conforms: false when a acq2sqlite.DBQuery.CONSTS
    +
    template-parameter between input and template mismatch
    +
    +
  • +
  • +
    errors: nested dict of {mismatched_param: {'have':...,'expect':...}} +(parameter keyed dictionary with ErrorCompare values)
    +
    +
  • +
  • +
    input: dict of all parameters of an input dicom header
    + +
    +
  • +
  • +
    template: all the parameters of a template (matching Study, SeriesName)
    + +
    +
  • +
+

Here’s an example of CheckResult datastructure in html/javascript +on the static debug-enabled page

+../_images/CheckResults_mrqart.png +
+ +
+
+class template_checker.ErrorCompare[source]
+

Dictionary for mismatches in input (have key) and template (expect key)

+
+ +
+
+class template_checker.TemplateChecker(db=None)[source]
+

cache db connection and list of tags +read a dicom file and report if it conforms to the expected template

+
+
+check_file(dcm_path)[source]
+

File disbatch for TemplateChecker.check_header()

+
+
Parameters:
+

dcm_path – path to dicom file with header/parameters to read.

+
+
Returns:
+

output of check_header

+
+
Return type:
+

CheckResult

+
+
+
+ +
+
+check_header(hdr)[source]
+

Check acquisition parameters against it’s template.

+
+
Parameters:
+

hdr – DB row or file dictionary desc. acq. to check against template

+
+
Returns:
+

Conforming status, errors, and comparison information

+
+
Return type:
+

CheckResult

+
+
+
+ +
+ +
+
+template_checker.find_errors(template, current_hdr)[source]
+

given a template and hdr, find any mismatches (non-conforming errors) +:param template: expected values +:param current_hdr: values we currently have +:returns: dictionary of tag key names and the have/expect values

+
+
Parameters:
+
    +
  • template (dict[str, str])

  • +
  • current_hdr (dict[str, str])

  • +
+
+
Return type:
+

dict[str, ErrorCompare]

+
+
+
+ +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/_images/CheckResults_mrqart.png b/_images/CheckResults_mrqart.png new file mode 100644 index 0000000000000000000000000000000000000000..d2c399f14b60d8a80f2efd29103e918e13fb6ceb GIT binary patch literal 75384 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%0AZb87X$3Z$qy%6wBtkUjecCQ>v`Ga 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 literal 0 HcmV?d00001 diff --git a/_images/mrqart-browserUI_20241124.png b/_images/mrqart-browserUI_20241124.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e3c9a23091c9948ffe0b49dea2b6d1bb2f792b GIT binary patch literal 70096 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 literal 0 HcmV?d00001 diff --git a/_images/nonconforming_example.png b/_images/nonconforming_example.png new file mode 100644 index 0000000000000000000000000000000000000000..a7ccaed04da8460ccf33de291a24745652b1488b GIT binary patch literal 143360 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 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 + + +.. image:: ../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``. + +.. image:: ../sphinx/imgs/nonconforming_example.png + + + +.. `https://dicom-parser.readthedocs.io/en/latest/siemens/csa_headers.html#csa-headers`_ + + +Parameters +---------- + + .. csv-table:: Dicom tag list + :file: ../docs/taglist.csv + :header-rows: 1 + +.. .. include:: ../readme.md diff --git a/_static/alabaster.css b/_static/alabaster.css new file mode 100644 index 00000000..7e75bf8f --- /dev/null +++ b/_static/alabaster.css @@ -0,0 +1,663 @@ +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: Georgia, serif; + font-size: 17px; + background-color: #fff; + color: #000; + margin: 0; + padding: 0; +} + + +div.document { + width: 940px; + margin: 30px auto 0 auto; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 220px; +} + +div.sphinxsidebar { + width: 220px; + font-size: 14px; + line-height: 1.5; +} + +hr { + border: 1px solid #B1B4B6; +} + +div.body { + background-color: #fff; + color: #3E4349; + padding: 0 30px 0 30px; +} + +div.body > .section { + text-align: left; +} + +div.footer { + width: 940px; + margin: 20px auto 30px auto; + font-size: 14px; + color: #888; + text-align: right; +} + +div.footer a { + color: #888; +} + +p.caption { + font-family: inherit; + font-size: inherit; +} + + +div.relations { + display: none; +} + + +div.sphinxsidebar { + max-height: 100%; + overflow-y: auto; +} + +div.sphinxsidebar a { + color: #444; + text-decoration: none; + border-bottom: 1px dotted #999; +} + +div.sphinxsidebar a:hover { + border-bottom: 1px solid #999; +} + +div.sphinxsidebarwrapper { + padding: 18px 10px; +} + +div.sphinxsidebarwrapper p.logo { + padding: 0; + margin: -10px 0 0 0px; + text-align: center; +} + +div.sphinxsidebarwrapper h1.logo { + margin-top: -10px; + text-align: center; + margin-bottom: 5px; + text-align: left; +} + +div.sphinxsidebarwrapper h1.logo-name { + margin-top: 0px; +} + +div.sphinxsidebarwrapper p.blurb { + margin-top: 0; + font-style: normal; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: Georgia, serif; + color: #444; + font-size: 24px; + font-weight: normal; + margin: 0 0 5px 0; + padding: 0; +} + +div.sphinxsidebar h4 { + font-size: 20px; +} + +div.sphinxsidebar h3 a { + color: #444; +} + +div.sphinxsidebar p.logo a, +div.sphinxsidebar h3 a, +div.sphinxsidebar p.logo a:hover, +div.sphinxsidebar h3 a:hover { + border: none; +} + +div.sphinxsidebar p { + color: #555; + margin: 10px 0; +} + +div.sphinxsidebar ul { + margin: 10px 0; + padding: 0; + color: #000; +} + +div.sphinxsidebar ul li.toctree-l1 > a { + font-size: 120%; +} + +div.sphinxsidebar ul li.toctree-l2 > a { + font-size: 110%; +} + +div.sphinxsidebar input { + border: 1px solid #CCC; + font-family: Georgia, serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox { + margin: 1em 0; +} + +div.sphinxsidebar .search > div { + display: table-cell; +} + +div.sphinxsidebar hr { + border: none; + height: 1px; + color: #AAA; + background: #AAA; + + text-align: left; + margin-left: 0; + width: 50%; +} + +div.sphinxsidebar .badge { + border-bottom: none; +} + +div.sphinxsidebar .badge:hover { + border-bottom: none; +} + +/* To address an issue with donation coming after search */ +div.sphinxsidebar h3.donation { + margin-top: 10px; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #004B6B; + text-decoration: underline; +} + +a:hover { + color: #6D4100; + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: Georgia, serif; + font-weight: normal; + margin: 30px 0px 10px 0px; + padding: 0; +} + +div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } +div.body h2 { font-size: 180%; } +div.body h3 { font-size: 150%; } +div.body h4 { font-size: 130%; } +div.body h5 { font-size: 100%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #DDD; + padding: 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + color: #444; + background: #EAEAEA; +} + +div.body p, div.body dd, div.body li { + line-height: 1.4em; +} + +div.admonition { + margin: 20px 0px; + padding: 10px 30px; + background-color: #EEE; + border: 1px solid #CCC; +} + +div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fafafa; +} + +div.admonition p.admonition-title { + font-family: Georgia, serif; + font-weight: normal; + font-size: 24px; + margin: 0 0 10px 0; + padding: 0; + line-height: 1; +} + +div.admonition p.last { + margin-bottom: 0; +} + +dt:target, .highlight { + background: #FAF3E8; +} + +div.warning { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.danger { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.error { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.caution { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.attention { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.important { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.note { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.tip { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.hint { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.seealso { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.topic { + background-color: #EEE; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre, tt, code { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + font-size: 0.9em; +} + +.hll { + background-color: #FFC; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +img.screenshot { +} + +tt.descname, tt.descclassname, code.descname, code.descclassname { + font-size: 0.95em; +} + +tt.descname, code.descname { + padding-right: 0.08em; +} + +img.screenshot { + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils { + border: 1px solid #888; + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils td, table.docutils th { + border: 1px solid #888; + padding: 0.25em 0.7em; +} + +table.field-list, table.footnote { + border: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +table.footnote { + margin: 15px 0; + width: 100%; + border: 1px solid #EEE; + background: #FDFDFD; + font-size: 0.9em; +} + +table.footnote + table.footnote { + margin-top: -15px; + border-top: none; +} + +table.field-list th { + padding: 0 0.8em 0 0; +} + +table.field-list td { + padding: 0; +} + +table.field-list p { + margin-bottom: 0.8em; +} + +/* Cloned from + * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 + */ +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +table.footnote td.label { + width: .1px; + padding: 0.3em 0 0.3em 0.5em; +} + +table.footnote td { + padding: 0.3em 0.5em; +} + +dl { + margin-left: 0; + margin-right: 0; + margin-top: 0; + padding: 0; +} + +dl dd { + margin-left: 30px; +} + +blockquote { + margin: 0 0 0 30px; + padding: 0; +} + +ul, ol { + /* Matches the 30px from the narrow-screen "li > ul" selector below */ + margin: 10px 0 10px 30px; + padding: 0; +} + +pre { + background: unset; + padding: 7px 30px; + margin: 15px 0px; + line-height: 1.3em; +} + +div.viewcode-block:target { + background: #ffd; +} + +dl pre, blockquote pre, li pre { + margin-left: 0; + padding-left: 30px; +} + +tt, code { + background-color: #ecf0f3; + color: #222; + /* padding: 1px 2px; */ +} + +tt.xref, code.xref, a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fff; +} + +a.reference { + text-decoration: none; + border-bottom: 1px dotted #004B6B; +} + +a.reference:hover { + border-bottom: 1px solid #6D4100; +} + +/* Don't put an underline on images */ +a.image-reference, a.image-reference:hover { + border-bottom: none; +} + +a.footnote-reference { + text-decoration: none; + font-size: 0.7em; + vertical-align: top; + border-bottom: 1px dotted #004B6B; +} + +a.footnote-reference:hover { + border-bottom: 1px solid #6D4100; +} + +a:hover tt, a:hover code { + background: #EEE; +} + +@media screen and (max-width: 940px) { + + body { + margin: 0; + padding: 20px 30px; + } + + div.documentwrapper { + float: none; + background: #fff; + margin-left: 0; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + } + + div.sphinxsidebar { + display: block; + float: none; + width: unset; + margin: 50px -30px -20px -30px; + padding: 10px 20px; + background: #333; + color: #FFF; + } + + div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, + div.sphinxsidebar h3 a { + color: #fff; + } + + div.sphinxsidebar a { + color: #AAA; + } + + div.sphinxsidebar p.logo { + display: none; + } + + div.document { + width: 100%; + margin: 0; + } + + div.footer { + display: none; + } + + div.bodywrapper { + margin: 0; + } + + div.body { + min-height: 0; + min-width: auto; /* fixes width on small screens, breaks .hll */ + padding: 0; + } + + .hll { + /* "fixes" the breakage */ + width: max-content; + } + + .rtd_doc_footer { + display: none; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .github { + display: none; + } + + ul { + margin-left: 0; + } + + li > ul { + /* Matches the 30px from the "ul, ol" selector above */ + margin-left: 30px; + } +} + + +/* misc. */ + +.revsys-inline { + display: none!important; +} + +/* Hide ugly table cell borders in ..bibliography:: directive output */ +table.docutils.citation, table.docutils.citation td, table.docutils.citation th { + border: none; + /* Below needed in some edge cases; if not applied, bottom shadows appear */ + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + + +/* relbar */ + +.related { + line-height: 30px; + width: 100%; + font-size: 0.9rem; +} + +.related.top { + border-bottom: 1px solid #EEE; + margin-bottom: 20px; +} + +.related.bottom { + border-top: 1px solid #EEE; +} + +.related ul { + padding: 0; + margin: 0; + list-style: none; +} + +.related li { + display: inline; +} + +nav#rellinks { + float: right; +} + +nav#rellinks li+li:before { + content: "|"; +} + +nav#breadcrumbs li+li:before { + content: "\00BB"; +} + +/* Hide certain items when printing */ +@media print { + div.related { + display: none; + } +} + +img.github { + position: absolute; + top: 0; + border: 0; + right: 0; +} \ No newline at end of file diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 00000000..d9846dac --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,914 @@ +/* + * Sphinx stylesheet -- basic theme. + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin-top: 10px; +} + +ul.search li { + padding: 5px 0; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: inherit; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/custom.css b/_static/custom.css new file mode 100644 index 00000000..2a924f1d --- /dev/null +++ b/_static/custom.css @@ -0,0 +1 @@ +/* This file intentionally left blank. */ diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 00000000..0398ebb9 --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,149 @@ +/* + * Base JavaScript utilities for all Sphinx HTML documentation. + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 00000000..7e4c114f --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/_static/github-banner.svg b/_static/github-banner.svg new file mode 100644 index 00000000..c47d9dc0 --- /dev/null +++ b/_static/github-banner.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/_static/language_data.js b/_static/language_data.js new file mode 100644 index 00000000..c7fe6c6f --- /dev/null +++ b/_static/language_data.js @@ -0,0 +1,192 @@ +/* + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, if available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/_static/mrqart/index.html b/_static/mrqart/index.html new file mode 100644 index 00000000..27e75bfa --- /dev/null +++ b/_static/mrqart/index.html @@ -0,0 +1,150 @@ + + + MRQART + + + + + + MR Station: +
waiting for scanner
+ + + + diff --git a/_static/mrqart/main.css b/_static/mrqart/main.css new file mode 100644 index 00000000..b0eddf73 --- /dev/null +++ b/_static/mrqart/main.css @@ -0,0 +1,24 @@ +html { + /*max-width: 70ch;*/ + padding: 1em 2em; + margin: auto; + line-height: 1.75; + font-size: 1.25em; +} + +.conform { background: lightgreen; } +.no-conform { background: pink; } + +li { + margin: 1em 0 1em 0; /* top and bottom padding */ + list-style: none; +} +details>table {font-size: smaller;} +td.no-conform { background: red} +th.no-conform { background: red} +td.conform { background: gray; font-size: .5em;} +th.conform { background: lightgreen; font-size: .5em;} +.projname {font-size:smaller;} +.seqname {font-weight:bold;} +.seqnum { font-family: mono; color: gray;} +.seqnum::before { content: "#";} diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 00000000..04a41742 --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,84 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #8f5902; font-style: italic } /* Comment */ +.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ +.highlight .g { color: #000000 } /* Generic */ +.highlight .k { color: #004461; font-weight: bold } /* Keyword */ +.highlight .l { color: #000000 } /* Literal */ +.highlight .n { color: #000000 } /* Name */ +.highlight .o { color: #582800 } /* Operator */ +.highlight .x { color: #000000 } /* Other */ +.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ +.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #8f5902 } /* Comment.Preproc */ +.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #a40000 } /* Generic.Deleted */ +.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ +.highlight .ges { color: #000000 } /* Generic.EmphStrong */ +.highlight .gr { color: #ef2929 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #745334 } /* Generic.Prompt */ +.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ +.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */ +.highlight .ld { color: #000000 } /* Literal.Date */ +.highlight .m { color: #990000 } /* Literal.Number */ +.highlight .s { color: #4e9a06 } /* Literal.String */ +.highlight .na { color: #c4a000 } /* Name.Attribute */ +.highlight .nb { color: #004461 } /* Name.Builtin */ +.highlight .nc { color: #000000 } /* Name.Class */ +.highlight .no { color: #000000 } /* Name.Constant */ +.highlight .nd { color: #888888 } /* Name.Decorator */ +.highlight .ni { color: #ce5c00 } /* Name.Entity */ +.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #000000 } /* Name.Function */ +.highlight .nl { color: #f57900 } /* Name.Label */ +.highlight .nn { color: #000000 } /* Name.Namespace */ +.highlight .nx { color: #000000 } /* Name.Other */ +.highlight .py { color: #000000 } /* Name.Property */ +.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #000000 } /* Name.Variable */ +.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ +.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ +.highlight .w { color: #f8f8f8 } /* Text.Whitespace */ +.highlight .mb { color: #990000 } /* Literal.Number.Bin */ +.highlight .mf { color: #990000 } /* Literal.Number.Float */ +.highlight .mh { color: #990000 } /* Literal.Number.Hex */ +.highlight .mi { color: #990000 } /* Literal.Number.Integer */ +.highlight .mo { color: #990000 } /* Literal.Number.Oct */ +.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ +.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ +.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ +.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ +.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ +.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ +.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ +.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ +.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ +.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ +.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ +.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ +.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #000000 } /* Name.Function.Magic */ +.highlight .vc { color: #000000 } /* Name.Variable.Class */ +.highlight .vg { color: #000000 } /* Name.Variable.Global */ +.highlight .vi { color: #000000 } /* Name.Variable.Instance */ +.highlight .vm { color: #000000 } /* Name.Variable.Magic */ +.highlight .il { color: #990000 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 00000000..2c774d17 --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,632 @@ +/* + * Sphinx JavaScript utilities for the full-text search. + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename, kind] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +// Global search result kind enum, used by themes to style search results. +class SearchResultKind { + static get index() { return "index"; } + static get object() { return "object"; } + static get text() { return "text"; } + static get title() { return "title"; } +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename, kind] = item; + + let listItem = document.createElement("li"); + // Add a class representing the item's type: + // can be used by a theme's CSS selector for styling + // See SearchResultKind for the class names. + listItem.classList.add(`kind-${kind}`); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = Documentation.ngettext( + "Search finished, found one page matching the search query.", + "Search finished, found ${resultCount} pages matching the search query.", + resultCount, + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename, kind]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.setAttribute("role", "list"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename, kind]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score + boost, + filenames[file], + SearchResultKind.title, + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + SearchResultKind.index, + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + SearchResultKind.object, + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + SearchResultKind.text, + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js new file mode 100644 index 00000000..8a96c69a --- /dev/null +++ b/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '
" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/genindex.html b/genindex.html new file mode 100644 index 00000000..798d8d33 --- /dev/null +++ b/genindex.html @@ -0,0 +1,427 @@ + + + + + + + Index — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ + +

Index

+ +
+ A + | C + | D + | E + | F + | G + | H + | I + | L + | M + | N + | P + | R + | S + | T + | U + | W + +
+

A

+ + +
    +
  • + acq2sqlite + +
  • +
+ +

C

+ + + +
+ +

D

+ + + +
+ +

E

+ + +
+ +

F

+ + + +
+ +

G

+ + + +
+ +

H

+ + + +
+ +

I

+ + + +
+ +

L

+ + +
+ +

M

+ + + +
+ +

N

+ + + +
+ +

P

+ + +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

U

+ + + +
+ +

W

+ + + +
+ + + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..1e767416 --- /dev/null +++ b/index.html @@ -0,0 +1,278 @@ + + + + + + + + mrrc-hdr-qa documentation — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

mrrc-hdr-qa documentation

+

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

+
+

Code

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

mrqart

Broadcast filesystem updates (via inotify) over websockets.

dcmmeta2tsv

Give a tab separated metadata value line per dicom file.

acq2sqlite

Convert db.txt into a sqlite database.

change_header

Modify DICOM header information to simulate failing QA.

template_checker

check a header against best template

compliance_check_html

mrrc_dbupdate

Find MRRC organized study acquisitions directories newer than what's in the DB and update them.

+
+
+

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. +
  3. mrqart.main() initializes an inotify watcher

  4. +
  5. New dcm files parsed with dcmmeta2tsv.DicomTagReader.read_dicom_tags()

  6. +
  7. Headers compared to template template_checker.TemplateChecker.check_header()

  8. +
  9. 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

    • +
    +
    +
  10. +
+_images/mrqart-browserUI_20241124.png +
+
+

Template

+

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

+_images/nonconforming_example.png +
+
+
+

Parameters

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dicom tag list

name

tag

desc

Phase

PhaseEncodingDirectionPositive

csa header phase 0/1

iPAT

ImaPATModeText

csa header grappa acceleration

AcqTime

00080032

Acquisition Time like 145446.685000

AcqDate

00080022

like 20241004

SeriesNumber

00200011

REL Series Number

SubID

00100010

patient name

Comments

00204000

REL Image Comments//Unaliased MB3/PE4/LB SENSE1

Operator

00081070

Station

00081010

unique scanner id

Project

00081030

ID Study Description//Brain^wpc-8620

SequenceName

0008103e

series description

SequenceType

00180024

ACQ Sequence Name

PED_major

00181312

ACQ Phase Encoding Direction ROW or COL

TR

00180080

TE

00180081

Matrix

00181310

ACQ Acquisition Matrix

PixelResol

00280030

IMG Pixel Spacing//2.29787230491642.2978723049164

BWP

00180095

ACQ Pixel Bandwidth (?) also unimplemented? need CSA value?

BWPPE

00191028

in matlab S.BandwidthPerPixelPhaseEncode;

FA

00181314

TA

0051100a

FoV

0051100c

eg FoV 1617*1727; but actually cocaluated from matrix and spacing?

Shims

ASCCOV

sAdjData.uiAdjShimModesGRADSPEC.asGPAData[0].lOffset{XYZ}sGRADSPEC.alShimCurrent[0:4]sTXSPEC.asNucleusInfo[0].lFrequency

+
+
+
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/objects.inv b/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..9e0073c216bd7193b64d90d93d80c975adb95bdd GIT binary patch literal 996 zcmVNERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGkya&luW zXk>CNabXH0AXa5^b7^mGIv@%oAXI2&AaZ4GVQFq;WpW^IW*~HEX>%ZEX>4U6X>%ZB zZ*6dLWpi_7WFU2OX>MmAdTeQ8E(&6Pvdx9wf=gKF5=&A-ewls{*yP7?xA5<8NU~xA}DTaKA_vmO_nDd|9Dq!$>Rx z_CiolzZsZJrUOYSXNDL_(j`&yZ8UDhMQZ)3xaNjSp^4^#!D#Lp&`T)FoSN}4uFuCR zq&7qW17Sw9N~&mKkAbJ7SsJKfnLP?pV@Csxey#Ha^JOrL$-F8A5wrkpA*)I-na46k98M+R>R0p!nT7$4>mSSq235LNs3y7!V z9V#dnq@XWAFqngI63doT>?p*wKr0EHVwZaRG&{BMok8I-)K6I9rBo*9v41cBCb^{P zK`$CePg#KlNiVQS{n2PBwPMheU31(mq3g$ejdXtWTDUN0s_@6Q4_WL>rMroo1mFL@ zyL-C28}1o8^+fZ^l^E6I(EqV?#)~sxMmvLm zl5%A`eFlGfqYAa5u4KE*!O2^duv?y0Y5|*tq4j>gOlvZH#?z{_?VNBeATVHgP(PAn zPUa7fi7!=scE*&qB6V@=M^w+zaeH)a3d9VPNfH!YtS0C$x310UD?TN0K_PYpPaXz`zwaG z3YYw$Dr~5A6k}6bUoKV{2jjjYC;VxF+eEwxluG^qW=5lSRlZvsfO{VU+y_21oE~eo z!q!rl+22RdRc^c)-%ahr-6$p13`Y{G;2gYUw=ny7^D`rNH|7=316RJ$_{Obb>;`qN zgN<`A%l$;pO(@nTy-X#GC*jLd{P7(5Cvz{YJ-^2XOVR1+*3b6N!f~f4^34j~9ggRT zxUmp*bUiPq(G+9%cjRvc0m^a1h!2*cU`lwgow*YquSR$g;`Jb5IXPWIZb|Q}&Zr(3 zq7Sv*b`1^d@FYvsWJ6<=Rs{$*9!1! + + + + + + Python Module Index — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ + +

Python Module Index

+ +
+ a | + c | + d | + m | + t +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ a
+ acq2sqlite +
 
+ c
+ change_header +
+ compliance_check_html +
 
+ d
+ dcmmeta2tsv +
 
+ m
+ mrqart +
+ mrrc_dbupdate +
 
+ t
+ template_checker +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 00000000..fc0b7894 --- /dev/null +++ b/search.html @@ -0,0 +1,126 @@ + + + + + + + Search — mrrc-hdr-qa documentation + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +

Search

+ + + + +

+ Searching for multiple words only shows matches that contain + all words. +

+ + +
+ + + +
+ + +
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 00000000..b3de3405 --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"Code": [[7, "code"]], "Dicom tag list": [[7, "id1"]], "MRQART": [[7, "mrqart"]], "Overview": [[7, "overview"]], "Parameters": [[7, "parameters"]], "Template": [[7, "template"]], "acq2sqlite": [[0, null]], "change_header": [[1, null]], "compliance_check_html": [[2, null]], "dcmmeta2tsv": [[3, null]], "mrqart": [[4, null]], "mrrc-hdr-qa documentation": [[7, null]], "mrrc_dbupdate": [[5, null]], "template_checker": [[6, null]]}, "docnames": ["_autosummary/acq2sqlite", "_autosummary/change_header", "_autosummary/compliance_check_html", "_autosummary/dcmmeta2tsv", "_autosummary/mrqart", "_autosummary/mrrc_dbupdate", "_autosummary/template_checker", "index"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["_autosummary/acq2sqlite.rst", "_autosummary/change_header.rst", "_autosummary/compliance_check_html.rst", "_autosummary/dcmmeta2tsv.rst", "_autosummary/mrqart.rst", "_autosummary/mrrc_dbupdate.rst", "_autosummary/template_checker.rst", "index.rst"], "indexentries": {"acq2sqlite": [[0, "module-acq2sqlite", false]], "change_header": [[1, "module-change_header", false]], "change_tags() (in module change_header)": [[1, "change_header.change_tags", false]], "check_acq() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.check_acq", false]], "check_file() (template_checker.templatechecker method)": [[6, "template_checker.TemplateChecker.check_file", false]], "check_header() (template_checker.templatechecker method)": [[6, "template_checker.TemplateChecker.check_header", false]], "checkresult (class in template_checker)": [[6, "template_checker.CheckResult", false]], "column_names() (in module acq2sqlite)": [[0, "acq2sqlite.column_names", false]], "compliance_check_html": [[2, "module-compliance_check_html", false]], "consts (acq2sqlite.dbquery attribute)": [[0, "acq2sqlite.DBQuery.CONSTS", false]], "csa_fetch() (in module dcmmeta2tsv)": [[3, "dcmmeta2tsv.csa_fetch", false]], "curseqstation (class in mrqart)": [[4, "mrqart.CurSeqStation", false]], "dbquery (class in acq2sqlite)": [[0, "acq2sqlite.DBQuery", false]], "dcmmeta2tsv": [[3, "module-dcmmeta2tsv", false]], "dicomtagreader (class in dcmmeta2tsv)": [[3, "dcmmeta2tsv.DicomTagReader", false]], "dict_to_db_row() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.dict_to_db_row", false]], "errorcompare (class in template_checker)": [[6, "template_checker.ErrorCompare", false]], "find_acquisitions_since() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.find_acquisitions_since", false]], "find_errors() (in module template_checker)": [[6, "template_checker.find_errors", false]], "find_first_dicoms() (in module mrrc_dbupdate)": [[5, "mrrc_dbupdate.find_first_dicoms", false]], "gen_acqdates() (in module change_header)": [[1, "change_header.gen_acqdates", false]], "gen_anon() (in module change_header)": [[1, "change_header.gen_anon", false]], "gen_ids() (in module change_header)": [[1, "change_header.gen_ids", false]], "generate_html_report() (in module compliance_check_html)": [[2, "compliance_check_html.generate_html_report", false]], "get() (mrqart.httpindex method)": [[4, "mrqart.HttpIndex.get", false]], "get_template() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.get_template", false]], "http_port (in module mrqart)": [[4, "mrqart.HTTP_PORT", false]], "http_run() (in module mrqart)": [[4, "mrqart.http_run", false]], "httpindex (class in mrqart)": [[4, "mrqart.HttpIndex", false]], "is_project() (in module mrrc_dbupdate)": [[5, "mrrc_dbupdate.is_project", false]], "is_template() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.is_template", false]], "load_template() (in module compliance_check_html)": [[2, "compliance_check_html.load_template", false]], "main() (in module mrqart)": [[4, "mrqart.main", false]], "main_make_mods() (in module change_header)": [[1, "change_header.main_make_mods", false]], "module": [[0, "module-acq2sqlite", false], [1, "module-change_header", false], [2, "module-compliance_check_html", false], [3, "module-dcmmeta2tsv", false], [4, "module-mrqart", false], [5, "module-mrrc_dbupdate", false], [6, "module-template_checker", false]], "monitor_dirs() (in module mrqart)": [[4, "mrqart.monitor_dirs", false]], "most_recent() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.most_recent", false]], "mrqart": [[4, "module-mrqart", false]], "mrrc_dbupdate": [[5, "module-mrrc_dbupdate", false]], "none_to_null() (in module acq2sqlite)": [[0, "acq2sqlite.none_to_null", false]], "nullval (class in dcmmeta2tsv)": [[3, "dcmmeta2tsv.NULLVAL", false]], "param_rowid() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.param_rowid", false]], "read_csa() (in module dcmmeta2tsv)": [[3, "dcmmeta2tsv.read_csa", false]], "read_dicom_tags() (dcmmeta2tsv.dicomtagreader method)": [[3, "dcmmeta2tsv.DicomTagReader.read_dicom_tags", false]], "read_known_tags() (in module dcmmeta2tsv)": [[3, "dcmmeta2tsv.read_known_tags", false]], "read_shims() (in module dcmmeta2tsv)": [[3, "dcmmeta2tsv.read_shims", false]], "read_tags() (in module dcmmeta2tsv)": [[3, "dcmmeta2tsv.read_tags", false]], "search_acq_param() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.search_acq_param", false]], "session_from_fname() (in module mrqart)": [[4, "mrqart.session_from_fname", false]], "state (in module mrqart)": [[4, "mrqart.STATE", false]], "tagpair_to_hex() (in module dcmmeta2tsv)": [[3, "dcmmeta2tsv.tagpair_to_hex", false]], "tagvalues (in module dcmmeta2tsv)": [[3, "dcmmeta2tsv.TagValues", false]], "template_checker": [[6, "module-template_checker", false]], "templatechecker (class in template_checker)": [[6, "template_checker.TemplateChecker", false]], "track_ws() (in module mrqart)": [[4, "mrqart.track_ws", false]], "tsv_to_dict() (acq2sqlite.dbquery method)": [[0, "acq2sqlite.DBQuery.tsv_to_dict", false]], "update_isnew() (mrqart.curseqstation method)": [[4, "mrqart.CurSeqStation.update_isnew", false]], "update_mrrc_db() (in module mrrc_dbupdate)": [[5, "mrrc_dbupdate.update_mrrc_db", false]], "webserver (class in mrqart)": [[4, "mrqart.WebServer", false]], "ws_connections (in module mrqart)": [[4, "mrqart.WS_CONNECTIONS", false]], "ws_port (in module mrqart)": [[4, "mrqart.WS_PORT", false]]}, "objects": {"": [[0, 0, 0, "-", "acq2sqlite"], [1, 0, 0, "-", "change_header"], [2, 0, 0, "-", "compliance_check_html"], [3, 0, 0, "-", "dcmmeta2tsv"], [4, 0, 0, "-", "mrqart"], [5, 0, 0, "-", "mrrc_dbupdate"], [6, 0, 0, "-", "template_checker"]], "acq2sqlite": [[0, 1, 1, "", "DBQuery"], [0, 4, 1, "", "column_names"], [0, 4, 1, "", "none_to_null"]], "acq2sqlite.DBQuery": [[0, 2, 1, "", "CONSTS"], [0, 3, 1, "", "check_acq"], [0, 3, 1, "", "dict_to_db_row"], [0, 3, 1, "", "find_acquisitions_since"], [0, 3, 1, "", "get_template"], [0, 3, 1, "", "is_template"], [0, 3, 1, "", "most_recent"], [0, 3, 1, "", "param_rowid"], [0, 3, 1, "", "search_acq_param"], [0, 3, 1, "", "tsv_to_dict"]], "change_header": [[1, 4, 1, "", "change_tags"], [1, 4, 1, "", "gen_acqdates"], [1, 4, 1, "", "gen_anon"], [1, 4, 1, "", "gen_ids"], [1, 4, 1, "", "main_make_mods"]], "compliance_check_html": [[2, 4, 1, "", "generate_html_report"], [2, 4, 1, "", "load_template"]], "dcmmeta2tsv": [[3, 1, 1, "", "DicomTagReader"], [3, 1, 1, "", "NULLVAL"], [3, 5, 1, "", "TagValues"], [3, 4, 1, "", "csa_fetch"], [3, 4, 1, "", "read_csa"], [3, 4, 1, "", "read_known_tags"], [3, 4, 1, "", "read_shims"], [3, 4, 1, "", "read_tags"], [3, 4, 1, "", "tagpair_to_hex"]], "dcmmeta2tsv.DicomTagReader": [[3, 3, 1, "", "read_dicom_tags"]], "mrqart": [[4, 1, 1, "", "CurSeqStation"], [4, 5, 1, "", "HTTP_PORT"], [4, 1, 1, "", "HttpIndex"], [4, 5, 1, "", "STATE"], [4, 5, 1, "", "WS_CONNECTIONS"], [4, 5, 1, "", "WS_PORT"], [4, 1, 1, "", "WebServer"], [4, 4, 1, "", "http_run"], [4, 4, 1, "", "main"], [4, 4, 1, "", "monitor_dirs"], [4, 4, 1, "", "session_from_fname"], [4, 4, 1, "", "track_ws"]], "mrqart.CurSeqStation": [[4, 3, 1, "", "update_isnew"]], "mrqart.HttpIndex": [[4, 3, 1, "", "get"]], "mrrc_dbupdate": [[5, 4, 1, "", "find_first_dicoms"], [5, 4, 1, "", "is_project"], [5, 4, 1, "", "update_mrrc_db"]], "template_checker": [[6, 1, 1, "", "CheckResult"], [6, 1, 1, "", "ErrorCompare"], [6, 1, 1, "", "TemplateChecker"], [6, 4, 1, "", "find_errors"]], "template_checker.TemplateChecker": [[6, 3, 1, "", "check_file"], [6, 3, 1, "", "check_header"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function", "5": "py:data"}, "terms": {"": [0, 1, 3, 5, 6, 7], "0": [0, 1, 3, 7], "0008": 1, "00080022": 7, "00080032": 7, "00081010": 7, "00081030": 7, "0008103e": 7, "00081070": 7, "0010": 1, "00100010": 7, "00180024": 7, "00180080": 7, "00180081": 7, "00180095": 7, "00181310": 7, "00181312": 7, "00181314": 7, "00191028": 7, "001_000001_000001": 4, "001_000017_000066": 4, "001_sequencenum_seriesnum": 4, "00200011": 7, "00204000": 7, "0022": 1, "00280030": 7, "0030": 1, "0032": 1, "0040": 1, "0051": 3, "0051100a": 7, "0051100c": 7, "00_build_db": 0, "015y": 1, "06": 5, "09": 5, "092132": 1, "0x0018": [1, 3], "0x0029": 3, "0x0080": 3, "0x1010": 3, "0x1017": 3, "0x1020": 3, "0x1030": 1, "0x51": 3, "1": [0, 1, 3, 7], "10": 4, "1010": 1, "1017": 3, "11": 5, "1107": [1, 4], "1174": 3, "12": [1, 4], "123160323": 3, "1300": [0, 3], "145446": 7, "150": 7, "154833": 3, "1617": 7, "167046": 1, "16_16_50_16_dst_1": 4, "1727": 7, "19": 5, "2": [0, 1, 4, 7], "20": 3, "20070404": 1, "20220913": 3, "20221222": 1, "2022122209214150118864465": 1, "2022122209214176799264617": 1, "2024": 5, "20241004": 7, "20241016": 4, "20241102": 4, "24": 4, "2475": 3, "265000": 3, "27": 5, "2978723049164": 7, "29787230491642": 7, "3": [0, 1, 4], "35": 7, "4": [3, 7], "43": [1, 4], "4575": 3, "5": [1, 4], "5000": 4, "531": 3, "54": 3, "59": 3, "67078": 4, "685000": 7, "722500": 1, "7t": 5, "8": 3, "8080": 4, "8620": [0, 5, 7], "A": 2, "AS": 1, "But": 7, "For": 0, "In": [3, 7], "The": [0, 7], "These": 0, "_": 0, "aca_param": 0, "acceler": 7, "acq": [6, 7], "acq2sqlit": [6, 7], "acq_param": [0, 7], "acqdat": [0, 7], "acqtim": 7, "acquisit": [0, 1, 5, 6, 7], "acquisitiond": 1, "acquisitiontim": 1, "acquisitonnam": 5, "acqustionnam": 5, "across": 0, "actual": [4, 7], "ad": 0, "add": [0, 5], "afni": [1, 3], "ag": 1, "against": 6, "agnost": 0, "alert": 7, "alia": 3, "all": [0, 1, 4, 6, 7], "alreadi": [0, 4], "alshimcurr": [3, 7], "also": [0, 3, 6, 7], "alwai": 0, "an": [0, 2, 6, 7], "ani": [0, 4, 6], "applic": 4, "aquisit": 0, "ar": [1, 3, 4], "arrai": 3, "asccov": 7, "asgpadata": [3, 7], "asnucleusinfo": [3, 7], "assur": [0, 7], "async": 4, "attribut": [0, 3, 4, 6], "b": 0, "badinput": 3, "bandwidth": 7, "bandwidthperpixelphaseencod": 7, "base": 4, "bash": 0, "bespok": 0, "best": 6, "between": 6, "birth": 1, "bool": [0, 4, 5], "brain": 7, "broadcast": 4, "browser": [4, 7], "bwp": [0, 7], "bwppe": [0, 7], "c": [0, 1], "cach": [3, 6], "can": [1, 4, 7], "cannot": 3, "case": 7, "chang": [0, 1, 4], "change_tag": 1, "check": [0, 3, 6], "check_acq": 0, "check_fil": 6, "check_head": [2, 6, 7], "check_result": 2, "checkresult": [2, 6], "chm": 3, "class": [0, 3, 4, 6], "client": 7, "cn": 0, "cocalu": 7, "code": [0, 1, 3], "col": 7, "column": 0, "column_nam": 0, "combin": 0, "comma": 3, "comment": [0, 3, 7], "compar": 7, "comparison": [2, 6, 7], "concat": 3, "confirm": 1, "conform": [6, 7], "connect": [0, 4, 6], "consid": 0, "const": [0, 6, 7], "contain": [2, 3], "content": 3, "conveni": 0, "convert": [0, 3], "copi": 1, "could": 4, "count": 4, "csa": [0, 3, 7], "csa_": 3, "csa_fetch": 3, "csa_tr": 3, "csaread": 3, "csv_str": 3, "current": [4, 6], "current_hdr": 6, "curseqst": 4, "d": 0, "da": 1, "dai": 1, "data": [1, 4], "data_el": 1, "databas": [0, 7], "datael": 1, "datastructur": 6, "date": [0, 1, 5], "db": [0, 4, 5, 6, 7], "dbqueri": [0, 6, 7], "dciom": 3, "dcm": [1, 3, 4, 7], "dcm_checker": 4, "dcm_dir": 1, "dcm_fname": 4, "dcm_path": [3, 6], "dcmmeta2tsv": [0, 6, 7], "dcmread": [1, 3], "dd": [0, 5], "debug": [6, 7], "default": [0, 4, 5], "defin": [0, 3, 4], "demonstr": 7, "desc": [3, 6, 7], "descript": 7, "dicom": [0, 1, 2, 3, 4, 5, 6], "dicom_hinfo": [1, 3], "dicomstream": 4, "dicomtagread": [3, 7], "dict": [0, 3, 4, 6], "dict_to_db_row": 0, "dictionari": [0, 3, 6], "dictonair": 3, "differ": 4, "dir": 5, "direct": 7, "directori": [1, 5], "disbatch": 6, "disconnect": 4, "disk": 5, "dispatch": 4, "dne": 3, "doe": 3, "don": [4, 7], "dtr": 3, "each": [4, 5], "eg": 7, "element": 1, "enabl": [6, 7], "encod": 7, "epi": 0, "error": [0, 6], "errorcompar": 6, "eventu": 4, "everi": 0, "ex": 1, "ex_path": 1, "exact": 0, "exampl": [0, 1, 6, 7], "example_dicom": [1, 3], "example_fnam": 1, "example_nam": 1, "exec": 1, "execut": 0, "exercis": 1, "exist": [0, 3], "expect": [0, 3, 6], "extract": [1, 3, 4], "f": [0, 1], "fa": [0, 7], "fail": [0, 1], "fals": [0, 5, 6], "fanci": 4, "field": [1, 3], "file": [1, 2, 3, 4, 6, 7], "filedataset": 1, "filenam": [0, 4], "filesystem": 4, "find": [0, 1, 5, 6, 7], "find_acquisitions_sinc": 0, "find_error": 6, "find_first_dicom": 5, "first": [0, 1, 3, 5], "fork": 4, "format": [0, 2], "found": 7, "fov": [0, 5, 7], "frequent": 7, "from": [0, 1, 2, 3, 4, 7], "full": 7, "function": [0, 1, 2, 3, 4, 5, 6], "futur": 3, "gen_acqd": 1, "gen_anon": 1, "gen_id": 1, "gener": [1, 2], "generate_html_report": 2, "get": [3, 4], "get_head": 0, "get_templ": 0, "give": [3, 4], "given": 6, "glob": 5, "grappa": 7, "greater": 0, "ha": [3, 4], "habittask": 1, "handl": 4, "handler": 4, "hard": 0, "have": [0, 5, 6], "hdr": [3, 6], "head": 4, "header": [0, 1, 2, 3, 4, 6, 7], "here": [0, 6, 7], "hex": 3, "hh": 5, "highlight": 2, "hoc": 0, "hold": 4, "html": [2, 4, 6, 7], "http": [4, 7], "http_port": 4, "http_run": 4, "httpindex": 4, "httpserverrequest": 4, "i": [0, 1, 3, 4, 5, 7], "iceconfig": 7, "id": [0, 1, 4, 7], "ideal": [0, 7], "identifi": 0, "ima": 1, "imag": 7, "imapatmodetext": [3, 7], "img": 7, "imit": 3, "implement": 0, "inam": 1, "index": [3, 4, 7], "info": [1, 3], "inform": [1, 6], "ingest": 7, "initi": 7, "inotifi": [4, 7], "input": [0, 1, 5, 6], "insert": 0, "insit": 4, "int": [0, 3], "invari": 0, "ipat": [0, 3, 7], "is_project": 5, "is_templ": 0, "isol": 3, "item": 3, "itemnam": 3, "javascript": [4, 6, 7], "jinja2": 2, "join": 3, "just": 4, "k": [0, 1], "kei": [0, 3, 6, 7], "know": 4, "kwarg": 4, "l": 4, "languag": 0, "last": 1, "lb": 7, "lfrequenc": [3, 7], "like": [0, 1, 3, 5, 7], "line": [0, 3], "list": [0, 1, 3, 4, 5, 6], "listen": 4, "lo": 1, "load": 2, "load_templ": 2, "loc": 3, "locat": 1, "loffset": [3, 7], "look": 3, "lookup": 0, "m": 0, "mace2": 5, "made": 1, "main": [4, 7], "main_make_mod": 1, "maintain": 4, "make": 1, "make_template_by_count": 0, "maltab": 3, "manag": 7, "match": [0, 3, 4, 6, 7], "matlab": [3, 7], "matrix": [0, 7], "mb3": 7, "memori": 0, "messag": 4, "metadata": [0, 3], "might": [3, 4], "mismatch": [2, 6, 7], "mismatched_param": 6, "miss": 3, "mm": [0, 5], "mod": 1, "mod1": 1, "mod2": 1, "modif": 1, "modifi": [1, 4], "modul": [3, 4, 6], "monitor_dir": 4, "more": [3, 4], "most": [0, 7], "most_rec": 0, "move": 3, "mr": [1, 4, 5, 7], "mrqart_test": 4, "mrrc": 5, "multipl": 4, "name": [0, 1, 3, 4, 6, 7], "need": [4, 7], "nest": [3, 6], "new": [0, 4, 5, 7], "new_data": 1, "new_id": 1, "newer": 5, "newpnam": 1, "nibabel": 3, "non": [6, 7], "none": [0, 1, 3, 5, 6], "none_to_nul": 0, "normal": 0, "notag": 3, "null": [0, 3], "nullval": 3, "num": 5, "number": 7, "obj": 3, "object": [2, 3], "onli": [1, 4], "open": 0, "oper": 7, "option": 1, "order": 3, "organ": 5, "orm": 0, "our": 3, "out": 3, "out_dir": 1, "output": [0, 2, 3, 6], "over": 4, "p2": 3, "page": [4, 6, 7], "pair": [0, 3], "param": [0, 3, 6], "param_id": 0, "param_rowid": 0, "paramet": [0, 1, 2, 3, 4, 5, 6], "pars": [3, 4, 7], "part": 0, "pat": 1, "path": [1, 2, 3, 4, 5, 6], "pathlik": [3, 4], "patient": [1, 7], "patientag": 1, "patientbirthd": 1, "patientsex": 1, "pdir": 5, "pe4": 7, "ped_major": [0, 7], "per": 3, "perpetu": 4, "phase": [0, 7], "phaseencodingdirectionposit": [3, 7], "pixel": 7, "pixelresol": [0, 7], "pn": 1, "pname": 0, "poorli": 0, "port": 4, "prioriti": 3, "privat": 3, "project": [0, 5, 7], "project_dir_list": 5, "projectnam": 5, "prot": 0, "protocol": 0, "protocolnam": 1, "provid": [0, 7], "pull": 3, "put": 1, "py": 0, "pydicom": [1, 3], "qa": 1, "qualiti": 7, "qualliti": 0, "queri": 0, "random": 1, "read": [0, 3, 4, 6], "read_csa": 3, "read_dicom_tag": [3, 7], "read_known_tag": [0, 3], "read_shim": 3, "read_tag": 3, "real": 7, "receiv": [4, 7], "recent": 0, "rel": 7, "repeat": [4, 7], "replac": 1, "report": [2, 6], "repres": [0, 5], "request": 4, "result": 2, "retriev": 0, "return": [0, 1, 2, 3, 4, 5, 6], "rewardedanti": [0, 7], "rewardedanti_good": 3, "root": 5, "row": [0, 6, 7], "rowid": [0, 7], "run": 4, "sadjdata": [3, 7], "safe": 3, "samba": 7, "same": [0, 3, 7], "save": 1, "scan": 0, "scan_data": 5, "scanner": [4, 7], "schema": 0, "search_acq_param": 0, "see": [0, 1, 3, 4, 7], "seen": [0, 4], "send": 4, "sense1": 7, "sent": 7, "separ": [0, 3], "sepstr": 1, "seq": 0, "seqeuenc": 7, "seqnam": [0, 4], "sequenc": [0, 4, 7], "sequencenam": [0, 7], "sequencetyp": [0, 7], "seri": [0, 3, 4, 7], "seriesnam": 6, "seriesnumb": 7, "serv": 4, "server": [4, 7], "servic": 4, "session": [0, 4, 5], "session_from_fnam": 4, "session_root": 5, "sessionid": 5, "sessroot": 5, "set": [0, 4, 7], "sex": 1, "sgradspec": [3, 7], "share": [0, 7], "shell": 1, "shim": [3, 7], "should": [0, 5], "sideffect": 1, "siemen": 3, "simul": 1, "since_d": 0, "singl": 0, "skip": [3, 4], "socket": [4, 7], "sourc": [0, 1, 2, 3, 4, 5, 6], "space": 7, "spam": 4, "specif": 4, "specifi": [0, 1, 4], "split": 0, "sql": 0, "sqlite": [0, 7], "sqlite3": 0, "sqname": 0, "ss": 5, "state": 4, "static": [4, 6, 7], "station": [4, 7], "statu": 6, "store": [4, 7], "str": [0, 1, 2, 3, 4, 5, 6], "string": [0, 1, 2, 3], "structur": [3, 5], "studi": [0, 5, 6, 7], "stxspec": [3, 7], "style": 7, "subfold": 5, "subid": 7, "subjid": 5, "t": [1, 4, 7], "ta": [0, 7], "tab": [0, 3], "tag": [0, 1, 3, 6], "tagfil": 3, "taglist": [0, 3], "tagnam": 3, "tagpair_to_hex": 3, "tagvalu": [3, 6], "task": [0, 7], "te": [0, 7], "templat": [0, 2, 6], "template_by_count": 0, "template_check": 7, "template_path": 2, "templatecheck": [6, 7], "test": 5, "text": 3, "than": [0, 3, 5], "them": 5, "thi": [0, 4, 7], "thread": 4, "time": [0, 1, 7], "timestamp": 0, "tm": 1, "todo": 4, "toolchain": 7, "tornado": 4, "tr": [0, 3, 7], "track": [0, 4], "track_w": 4, "true": [0, 3, 4, 5], "try": 0, "tsv": [0, 3], "tsv_to_dict": 0, "tupl": [1, 3], "txt": [0, 3], "type": [0, 1, 2, 3, 4, 5, 6], "uiadjshimmod": 3, "uiadjshimmodesgradspec": 7, "unalias": 7, "unimpl": 7, "uniqu": [0, 7], "unless": 1, "updat": [4, 5], "update_isnew": 4, "update_mrrc_db": 5, "url": 4, "us": [0, 1, 2, 3, 4, 5, 7], "v": 7, "valu": [0, 1, 3, 6, 7], "ve": 4, "via": [0, 4, 7], "vr": 1, "wai": 4, "wait": 4, "want": 3, "watcher": [4, 7], "we": [0, 1, 4, 6], "web": [4, 7], "webserv": 4, "websocket": [4, 7], "what": [0, 4, 5], "when": [0, 3, 4, 6], "where": 1, "wildcard": 0, "within": 0, "wpc": [0, 5, 7], "write": 1, "ws_connect": 4, "ws_port": 4, "x": [0, 1, 3], "xt": 0, "xx": 1, "xyz": 7, "y": 3, "yesterdai": 0, "yield": 1, "yyyi": [0, 5], "z": 3}, "titles": ["acq2sqlite", "change_header", "compliance_check_html", "dcmmeta2tsv", "mrqart", "mrrc_dbupdate", "template_checker", "mrrc-hdr-qa documentation"], "titleterms": {"acq2sqlit": 0, "change_head": 1, "code": 7, "compliance_check_html": 2, "dcmmeta2tsv": 3, "dicom": 7, "document": 7, "hdr": 7, "list": 7, "mrqart": [4, 7], "mrrc": 7, "mrrc_dbupdat": 5, "overview": 7, "paramet": 7, "qa": 7, "tag": 7, "templat": 7, "template_check": 6}}) \ No newline at end of file diff --git a/taglist.csv b/taglist.csv new file mode 100644 index 00000000..3e2e37ea --- /dev/null +++ b/taglist.csv @@ -0,0 +1,24 @@ +name,tag,desc +Phase,PhaseEncodingDirectionPositive, csa header phase 0/1 +iPAT,ImaPATModeText,csa header grappa acceleration +AcqTime,00080032, Acquisition Time like 145446.685000 +AcqDate,00080022, like 20241004 +SeriesNumber,00200011, REL Series Number +SubID,00100010, patient name +Comments,00204000,REL Image Comments//Unaliased MB3/PE4/LB SENSE1 +Operator,00081070 +Station,00081010,unique scanner id +Project,00081030, ID Study Description//Brain^wpc-8620 +SequenceName,0008103e, series description +SequenceType,00180024, ACQ Sequence Name +PED_major,00181312, ACQ Phase Encoding Direction ROW or COL +TR,00180080 +TE,00180081 +Matrix,00181310, ACQ Acquisition Matrix +PixelResol,00280030, IMG Pixel Spacing//2.2978723049164\2.2978723049164 +BWP,00180095, ACQ Pixel Bandwidth (?) also unimplemented? need CSA value? +BWPPE,00191028, in matlab S.BandwidthPerPixelPhaseEncode; +FA,00181314 +TA,0051100a +FoV,0051100c, eg FoV 1617*1727; but actually cocaluated from matrix and spacing? +Shims,ASCCOV,sAdjData.uiAdjShimModesGRADSPEC.asGPAData[0].lOffset{XYZ}sGRADSPEC.alShimCurrent[0:4]sTXSPEC.asNucleusInfo[0].lFrequency