sub-0716_T1w.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <meta name="generator" content="NiReports: https://www.nipreps.org/" />
  7. <title>sub-0716_T1w :: Anatomical MRI report</title>
  8. <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
  9. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
  10. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script>
  11. <script>
  12. var timestamp = Date.now()
  13. function read_form() {
  14. var ds = "unknown";
  15. var sub = "unspecified";
  16. var artifacts = [];
  17. $('#qcartifacts-group input:checked').each(function() {
  18. artifacts.push($(this).attr('name'));
  19. });
  20. var rating = $('#qcslider').val();
  21. var payload = {
  22. 'dataset': ds,
  23. 'subject': sub,
  24. 'rating': rating,
  25. 'artifacts': artifacts,
  26. 'time_sec': (Date.now() - timestamp) / 1000,
  27. 'confidence': $('#qcextra-confidence').val(),
  28. 'comments': $('#qcextra-comments').val()
  29. };
  30. var file = new Blob([JSON.stringify(payload)], {type: 'text/json'});
  31. $('#btn-download').attr('href', URL.createObjectURL(file));
  32. $('#btn-download').attr('download', payload['dataset'] + "_" + payload['subject'] + ".json");
  33. return payload
  34. };
  35. function toggle_rating() {
  36. if ($('#qcrating-menu').hasClass('d-none')) {
  37. $('#qcrating-menu').removeClass('d-none');
  38. $('#qcrating-toggler').prop('checked', true);
  39. } else {
  40. $('#qcrating-menu').addClass('d-none');
  41. $('#qcrating-toggler').prop('checked', false);
  42. }
  43. };
  44. $(window).on('load',function(){
  45. var authorization = $('#btn-post').val()
  46. if (authorization.includes("secret_token")) {
  47. $('#btn-post').addClass('d-none');
  48. };
  49. timestamp = Date.now();
  50. });
  51. </script>
  52. <style type="text/css">
  53. /* The slider itself */
  54. .slider {
  55. -webkit-appearance: none; /* Override default CSS styles */
  56. appearance: none;
  57. margin-bottom: 8px;
  58. margin-left: 10%;
  59. width: 80%;
  60. height: 5px; /* Specified height */
  61. background: #d3d3d3; /* Grey background */
  62. outline: none; /* Remove outline */
  63. opacity: 0.7; /* Set transparency (for mouse-over effects on hover) */
  64. -webkit-transition: .2s; /* 0.2 seconds transition on hover */
  65. transition: opacity .2s;
  66. }
  67. /* Mouse-over effects */
  68. .slider:hover {
  69. opacity: 1; /* Fully shown on mouse-over */
  70. }
  71. .slider::-webkit-slider-thumb {
  72. -webkit-appearance: none;
  73. appearance: none;
  74. width: 25px;
  75. height: 25px;
  76. border: 0;
  77. background: url('https://raw.githubusercontent.com/nipreps/nireports/main/assets/slider-handle.png');
  78. cursor: pointer;
  79. z-index: 2000 !important;
  80. }
  81. .slider::-moz-range-thumb {
  82. width: 25px;
  83. height: 25px;
  84. border: 0;
  85. background: url('https://raw.githubusercontent.com/nipreps/nireports/main/assets/slider-handle.png');
  86. cursor: pointer;
  87. z-index: 2000 !important;
  88. }
  89. </style>
  90. </head>
  91. <body style="font-family: helvetica;">
  92. <nav class="navbar fixed-top navbar-expand-lg bg-light">
  93. <div class="container-fluid">
  94. <div class="collapse navbar-collapse" id="navbarSupportedContent">
  95. <ul class="navbar-nav me-auto mb-2 mb-lg-0">
  96. <li class="nav-item"><a class="nav-link" href="#Basic visual report">Basic visual report</a></li>
  97. <li class="nav-item dropdown">
  98. <a class="nav-link dropdown-toggle" id="navbarAbout" role="button" data-bs-toggle="dropdown" aria-expanded="false" href="#About">
  99. About
  100. </a>
  101. <ul class="dropdown-menu">
  102. <li><a class="dropdown-item" href="#errors">Errors</a></li>
  103. <li><a class="dropdown-item" href="#meta-about-metadata">Reproducibility and provenance information</a></li>
  104. </ul>
  105. </li>
  106. </ul>
  107. </div>
  108. </div>
  109. <div class="d-flex flex-row-reverse">
  110. <div class="form-check form-switch align-self-center flex-fill me-4">
  111. <input class="form-check-input" type="checkbox" id="qcrating-toggler"></input>
  112. <label class="form-check-label" style="width: 100pt;" for="qcrating-toggler">Rating widget</label>
  113. </div>
  114. </div>
  115. </nav>
  116. <noscript>
  117. <h1 class="text-danger"> The navigation menu uses Javascript. Without it this report might not work as expected </h1>
  118. </noscript>
  119. <div id="Basic visual report" class="mt-5">
  120. <h1 class="sub-report-title pt-5 ps-4">Basic visual report</h1>
  121. <div id="datatype-figures_desc-zoomed_subject-0716_suffix-T1w" class="ps-4 pe-4 mb-2">
  122. <h3 class="run-title mt-3">Zoomed-in mosaic view of the brain</h3><p class="elem-caption">This panel shows a mosaic of the brain. This mosaic is the most suitable to screen head-motion intensity inhomogeneities, global/local noise, signal leakage (for example, from the eyeballs and across the phase-encoding axis), etc.</p> <div class="reportlet">
  123. <img class="svg-reportlet" src="./sub-0716/figures/sub-0716_desc-zoomed_T1w.svg" style="width: 100%" />
  124. </div>
  125. <small>Get figure file: <a href="./sub-0716/figures/sub-0716_desc-zoomed_T1w.svg" target="_blank">sub-0716/figures/sub-0716_desc-zoomed_T1w.svg</a></small>
  126. </div>
  127. <div id="datatype-figures_desc-background_subject-0716_suffix-T1w" class="ps-4 pe-4 mb-2">
  128. <h3 class="run-title mt-3">View of the background of the anatomical image</h3><p class="elem-caption">This panel shows a mosaic enhancing the background around the head. Artifacts usually unveil themselves in the air surrounding the head, where no signal sources are present.</p> <div class="reportlet">
  129. <img class="svg-reportlet" src="./sub-0716/figures/sub-0716_desc-background_T1w.svg" style="width: 100%" />
  130. </div>
  131. <small>Get figure file: <a href="./sub-0716/figures/sub-0716_desc-background_T1w.svg" target="_blank">sub-0716/figures/sub-0716_desc-background_T1w.svg</a></small>
  132. </div>
  133. </div>
  134. <div id="About" class="mt-5">
  135. <h1 class="sub-report-title pt-5 ps-4">About</h1>
  136. <div id="errors" class="ps-4 pe-4 mb-2">
  137. <h2 class="sub-report-group mt-4">Errors</h2> <p class="alert alert-success" role="alert">No errors to report!</p>
  138. </div>
  139. <div id="meta-about-metadata" class="ps-4 pe-4 mb-2">
  140. <h2 class="sub-report-group mt-4">Reproducibility and provenance information</h2><p class="elem-caption">Thanks for using <em>MRIQC</em>. The following information may assist in
  141. reconstructing the provenance of the corresponding derivatives.
  142. </p> <div class="accordion accordion-flush" id="about-metadata">
  143. <div class="accordion-item">
  144. <h2 class="accordion-header" id="about-metadata-0">
  145. <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#about-metadata-0-collapse" aria-controls="about-metadata-0-collapse">
  146. Provenance Information
  147. </button>
  148. </h2>
  149. <div id="about-metadata-0-collapse" class="accordion-collapse collapse" aria-labelledby="about-metadata-0-heading" data-bs-parent="#about-metadata-0">
  150. <div class="accordion-body metadata-table">
  151. <table id="about-metadata-table-0" class="table table-sm table-striped">
  152. <tr><td colspan=2>Execution environment</td><td>singularity</td></tr>
  153. <tr><td colspan=2>Input filename</td><td><BIDS root>/sub-0716/anat/sub-0716_T1w.nii.gz</td></tr>
  154. <tr><td>Versions</td><td>MRIQC</td><td>23.1.0</td></tr>
  155. <tr><td>Versions</td><td>NiPype</td><td>1.8.6</td></tr>
  156. <tr><td>Versions</td><td>TemplateFlow</td><td>0.8.1</td></tr>
  157. <tr><td colspan=2>md5sum</td><td>6a325605ad3a47fe6f936a9123ca6e7f</td></tr>
  158. <tr><td>warnings</td><td>large_rot_frame</td><td>True</td></tr>
  159. <tr><td>warnings</td><td>small_air_mask</td><td>False</td></tr>
  160. </table>
  161. </div>
  162. </div>
  163. </div>
  164. <div class="accordion-item">
  165. <h2 class="accordion-header" id="about-metadata-1">
  166. <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#about-metadata-1-collapse" aria-controls="about-metadata-1-collapse">
  167. Dataset Information
  168. </button>
  169. </h2>
  170. <div id="about-metadata-1-collapse" class="accordion-collapse collapse" aria-labelledby="about-metadata-1-heading" data-bs-parent="#about-metadata-1">
  171. <div class="accordion-body metadata-table">
  172. <table id="about-metadata-table-1" class="table table-sm table-striped">
  173. <tr><td>InstitutionName</td><td>HH</td></tr>
  174. </table>
  175. </div>
  176. </div>
  177. </div>
  178. <div class="accordion-item">
  179. <h2 class="accordion-header" id="about-metadata-2">
  180. <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#about-metadata-2-collapse" aria-controls="about-metadata-2-collapse">
  181. Extracted Image quality metrics (IQMs)
  182. </button>
  183. </h2>
  184. <div id="about-metadata-2-collapse" class="accordion-collapse collapse" aria-labelledby="about-metadata-2-heading" data-bs-parent="#about-metadata-2">
  185. <div class="accordion-body metadata-table">
  186. <table id="about-metadata-table-2" class="table table-sm table-striped">
  187. <tr><td colspan=3>cjv</td><td>0.8033288208165773</td></tr>
  188. <tr><td colspan=3>cnr</td><td>1.2143740140616064</td></tr>
  189. <tr><td colspan=3>efc</td><td>0.6179095342474307</td></tr>
  190. <tr><td colspan=3>fber</td><td>26913.801394146984</td></tr>
  191. <tr><td>fwhm</td><td colspan=2>avg</td><td>4.827111396120471</td></tr>
  192. <tr><td>fwhm</td><td colspan=2>x</td><td>4.126742188361413</td></tr>
  193. <tr><td>fwhm</td><td colspan=2>y</td><td>5.5464106666666675</td></tr>
  194. <tr><td>fwhm</td><td colspan=2>z</td><td>4.808181333333334</td></tr>
  195. <tr><td>icvs</td><td colspan=2>csf</td><td>0.2603869135747137</td></tr>
  196. <tr><td>icvs</td><td colspan=2>gm</td><td>0.36456395634168015</td></tr>
  197. <tr><td>icvs</td><td colspan=2>wm</td><td>0.37504913008360613</td></tr>
  198. <tr><td>inu</td><td colspan=2>med</td><td>0.3656998574733734</td></tr>
  199. <tr><td>inu</td><td colspan=2>range</td><td>0.15298795700073242</td></tr>
  200. <tr><td>qi</td><td colspan=2>1</td><td>0.0</td></tr>
  201. <tr><td>qi</td><td colspan=2>2</td><td>0.0010004637982122015</td></tr>
  202. <tr><td>rpve</td><td colspan=2>csf</td><td>5.9405386286316215</td></tr>
  203. <tr><td>rpve</td><td colspan=2>gm</td><td>5.818591989090386</td></tr>
  204. <tr><td>rpve</td><td colspan=2>wm</td><td>5.8941642155668355</td></tr>
  205. <tr><td>size</td><td colspan=2>x</td><td>150</td></tr>
  206. <tr><td>size</td><td colspan=2>y</td><td>256</td></tr>
  207. <tr><td>size</td><td colspan=2>z</td><td>256</td></tr>
  208. <tr><td>snr</td><td colspan=2>csf</td><td>2.582508779453608</td></tr>
  209. <tr><td>snr</td><td colspan=2>gm</td><td>7.22872919347312</td></tr>
  210. <tr><td>snr</td><td colspan=2>total</td><td>8.788707738301262</td></tr>
  211. <tr><td>snr</td><td colspan=2>wm</td><td>16.554885241977058</td></tr>
  212. <tr><td>snrd</td><td colspan=2>csf</td><td>28.149180669405624</td></tr>
  213. <tr><td>snrd</td><td colspan=2>gm</td><td>44.80179002581143</td></tr>
  214. <tr><td>snrd</td><td colspan=2>total</td><td>42.09067161594705</td></tr>
  215. <tr><td>snrd</td><td colspan=2>wm</td><td>53.32104415262411</td></tr>
  216. <tr><td>spacing</td><td colspan=2>x</td><td>1.1999974250793457</td></tr>
  217. <tr><td>spacing</td><td colspan=2>y</td><td>0.9375</td></tr>
  218. <tr><td>spacing</td><td colspan=2>z</td><td>0.9375</td></tr>
  219. <tr><td>summary</td><td>bg</td><td>k</td><td>388.234386847417</td></tr>
  220. <tr><td>summary</td><td>bg</td><td>mad</td><td>0.0</td></tr>
  221. <tr><td>summary</td><td>bg</td><td>mean</td><td>4.1044810267179175</td></tr>
  222. <tr><td>summary</td><td>bg</td><td>median</td><td>0.0</td></tr>
  223. <tr><td>summary</td><td>bg</td><td>n</td><td>2585550.0</td></tr>
  224. <tr><td>summary</td><td>bg</td><td>p05</td><td>0.0</td></tr>
  225. <tr><td>summary</td><td>bg</td><td>p95</td><td>24.568758621811867</td></tr>
  226. <tr><td>summary</td><td>bg</td><td>stdv</td><td>11.988536565227113</td></tr>
  227. <tr><td>summary</td><td>csf</td><td>k</td><td>-0.05211912456727319</td></tr>
  228. <tr><td>summary</td><td>csf</td><td>mad</td><td>152.9370291761511</td></tr>
  229. <tr><td>summary</td><td>csf</td><td>mean</td><td>518.6049186364779</td></tr>
  230. <tr><td>summary</td><td>csf</td><td>median</td><td>515.1102606058121</td></tr>
  231. <tr><td>summary</td><td>csf</td><td>n</td><td>424542.89623467764</td></tr>
  232. <tr><td>summary</td><td>csf</td><td>p05</td><td>180.29349515587091</td></tr>
  233. <tr><td>summary</td><td>csf</td><td>p95</td><td>842.5711103007197</td></tr>
  234. <tr><td>summary</td><td>csf</td><td>stdv</td><td>199.46094977066306</td></tr>
  235. <tr><td>summary</td><td>gm</td><td>k</td><td>0.45449352342906035</td></tr>
  236. <tr><td>summary</td><td>gm</td><td>mad</td><td>73.94198177900911</td></tr>
  237. <tr><td>summary</td><td>gm</td><td>mean</td><td>821.7130305092553</td></tr>
  238. <tr><td>summary</td><td>gm</td><td>median</td><td>819.8413306176662</td></tr>
  239. <tr><td>summary</td><td>gm</td><td>n</td><td>594396.3763895527</td></tr>
  240. <tr><td>summary</td><td>gm</td><td>p05</td><td>633.7611817345023</td></tr>
  241. <tr><td>summary</td><td>gm</td><td>p95</td><td>1012.0023698583245</td></tr>
  242. <tr><td>summary</td><td>gm</td><td>stdv</td><td>113.41421417691028</td></tr>
  243. <tr><td>summary</td><td>wm</td><td>k</td><td>-0.22297051556739245</td></tr>
  244. <tr><td>summary</td><td>wm</td><td>mad</td><td>51.294068972557454</td></tr>
  245. <tr><td>summary</td><td>wm</td><td>mean</td><td>970.7928576144105</td></tr>
  246. <tr><td>summary</td><td>wm</td><td>median</td><td>975.7377051860094</td></tr>
  247. <tr><td>summary</td><td>wm</td><td>n</td><td>611491.7287127938</td></tr>
  248. <tr><td>summary</td><td>wm</td><td>p05</td><td>864.1239434629679</td></tr>
  249. <tr><td>summary</td><td>wm</td><td>p95</td><td>1059.251868724823</td></tr>
  250. <tr><td>summary</td><td>wm</td><td>stdv</td><td>58.93951501866289</td></tr>
  251. <tr><td>tpm</td><td>overlap</td><td>csf</td><td>0.2130789309658062</td></tr>
  252. <tr><td>tpm</td><td>overlap</td><td>gm</td><td>0.5129239028259539</td></tr>
  253. <tr><td>tpm</td><td>overlap</td><td>wm</td><td>0.540882204805801</td></tr>
  254. <tr><td colspan=3>wm2max</td><td>0.6930337861372344</td></tr>
  255. </table>
  256. </div>
  257. </div>
  258. </div>
  259. </div>
  260. </div>
  261. </div>
  262. <div id="qcrating-menu" class="card position-fixed d-none" style="width: 30%; top: 100px; left: 65%;">
  263. <div class="card-header m-0">
  264. Rating widget
  265. <button type="button" class="btn-close position-absolute top-0 end-0" aria-label="Close" id="close-qcrating-menu" onclick="toggle_rating()" style="margin: 10px 10px 0 0"></button>
  266. </div>
  267. <div class="card-body">
  268. <div class="accordion">
  269. <div class="accordion-item">
  270. <h2 class="accordion-header" id="qcslider-head">
  271. <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#qcslider-collapse" aria-expanded="true" aria-controls="qcslider-collapse">Overall Quality Rating</button>
  272. </h2>
  273. <div id="qcslider-collapse" class="accordion-collapse collapse show" aria-labelledby="qcslider-head">
  274. <div class="accordion-body">
  275. <input type="range" min="1.0" max="4.0" step="0.05" value="2.5" id="qcslider" class="slider">
  276. <ul class="list-group list-group-horizontal slider-labels" style="width: 100%">
  277. <li class="list-group-item list-group-item-danger small" style="font-size: 0.7em; width: 25%; text-align:center">Exclude</li>
  278. <li class="list-group-item list-group-item-warning small" style="font-size: 0.7em; width: 25%; text-align:center">Poor</li>
  279. <li class="list-group-item list-group-item-primary small" style="font-size: 0.7em; width: 25%; text-align:center">Acceptable</li>
  280. <li class="list-group-item list-group-item-success small" style="font-size: 0.7em; width: 25%; text-align:center">Excellent</li>
  281. </ul>
  282. </div>
  283. </div>
  284. </div>
  285. <div class="accordion-item">
  286. <h2 class="accordion-header" id="qcartifacts-head">
  287. <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#qcartifacts-collapse" aria-expanded="false" aria-controls="qcartifacts-collapse">
  288. Record specific artifacts
  289. </button>
  290. </h2>
  291. <div id="qcartifacts-collapse" class="accordion-collapse collapse" aria-labelledby="qcartifacts-head">
  292. <div class="accordion-body">
  293. <fieldset id="qcartifacts-group" class="form-group">
  294. <div class="form-check form-switch small">
  295. <input class="form-check-input" type="checkbox" name="head-motion" id="qcartifacts-item-0" />
  296. <label class="form-check-label" for="qcartifacts-item-0">Head motion artifacts</label>
  297. </div>
  298. <div class="form-check form-switch small">
  299. <input class="form-check-input" type="checkbox" name="eye-spillover" id="qcartifacts-item-1" />
  300. <label class="form-check-label" for="qcartifacts-item-1">Eye spillover through <abbr title="phase-encoding">PE</abbr> axis</label>
  301. </div>
  302. <div class="form-check form-switch small">
  303. <input class="form-check-input" type="checkbox" name="noneye-spillover" id="qcartifacts-item-2" />
  304. <label class="form-check-label" for="qcartifacts-item-2">Non-eye spillover through <abbr title="phase-encoding">PE</abbr> axis</label>
  305. </div>
  306. <div class="form-check form-switch small">
  307. <input class="form-check-input" type="checkbox" name="coil-failure" id="qcartifacts-item-3" />
  308. <label class="form-check-label" for="qcartifacts-item-3">Coil failure</label>
  309. </div>
  310. <div class="form-check form-switch small">
  311. <input class="form-check-input" type="checkbox" name="noise-global" id="qcartifacts-item-4" />
  312. <label class="form-check-label" for="qcartifacts-item-4">Global noise</label>
  313. </div>
  314. <div class="form-check form-switch small">
  315. <input class="form-check-input" type="checkbox" name="noise-local" id="qcartifacts-item-5" />
  316. <label class="form-check-label" for="qcartifacts-item-5">Local noise</label>
  317. </div>
  318. <div class="form-check form-switch small">
  319. <input class="form-check-input" type="checkbox" name="em-perturbation" id="qcartifacts-item-6" />
  320. <label class="form-check-label" for="qcartifacts-item-6"><abbr title="electromagnetic">EM</abbr> interference/perturbation</label>
  321. </div>
  322. <div class="form-check form-switch small">
  323. <input class="form-check-input" type="checkbox" name="wrap-around" id="qcartifacts-item-7" />
  324. <label class="form-check-label" for="qcartifacts-item-7">Problematic <abbr title="field-of-view">FoV</abbr> prescription / wrap-around</label>
  325. </div>
  326. <div class="form-check form-switch small">
  327. <input class="form-check-input" type="checkbox" name="ghost-aliasing" id="qcartifacts-item-8" />
  328. <label class="form-check-label" for="qcartifacts-item-8">Aliasing ghosts</label>
  329. </div>
  330. <div class="form-check form-switch small">
  331. <input class="form-check-input" type="checkbox" name="ghost-other" id="qcartifacts-item-9" />
  332. <label class="form-check-label" for="qcartifacts-item-9">Other ghosts (for example, <abbr title="radiofrequency">RF</abbr> spoiling)</label>
  333. </div>
  334. <div class="form-check form-switch small">
  335. <input class="form-check-input" type="checkbox" name="inu" id="qcartifacts-item-10" />
  336. <label class="form-check-label" for="qcartifacts-item-10">Intensity non-uniformity (B<sub>1</sub> bias)</label>
  337. </div>
  338. <div class="form-check form-switch small">
  339. <input class="form-check-input" type="checkbox" name="field-variation" id="qcartifacts-item-11" />
  340. <label class="form-check-label" for="qcartifacts-item-11">Temporal B<sub>1</sub> field non-uniformity variation</label>
  341. </div>
  342. <div class="form-check form-switch small">
  343. <input class="form-check-input" type="checkbox" name="processing" id="qcartifacts-item-12" />
  344. <label class="form-check-label" for="qcartifacts-item-12">Processing such as denoising, defacing or resamplings happened</label>
  345. </div>
  346. <div class="form-check form-switch small">
  347. <input class="form-check-input" type="checkbox" name="uncategorized" id="qcartifacts-item-13" />
  348. <label class="form-check-label" for="qcartifacts-item-13">Other uncategorized artifact(s)</label>
  349. </div>
  350. </fieldset>
  351. </div> <!-- accordion-body -->
  352. </div> <!-- accordion-collapse -->
  353. </div> <!-- accordion-item -->
  354. <div class="accordion-item">
  355. <h2 class="accordion-header" id="qcextra-head">
  356. <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#qcextra-collapse" aria-expanded="false" aria-controls="qcextra-collapse">
  357. Extra details
  358. </button>
  359. </h2>
  360. <div id="qcextra-collapse" class="accordion-collapse collapse" aria-labelledby="qcextra-head">
  361. <div class="accordion-body">
  362. <div class="input-group">
  363. <span class="input-group-text">Comments</span>
  364. <textarea class="form-control" aria-label="Comments" id="qcextra-comments"></textarea>
  365. </div>
  366. <p style="margin-top: 20px; font-weight: bold">Rater confidence</p>
  367. <input type="range" min="0.0" max="4.0" step="0.05" value="3.5" id="qcextra-confidence" class="slider" style="margin-left: 22%;width: 56%;">
  368. <ul class="list-group list-group-horizontal slider-labels" style="width: 100%">
  369. <li class="list-group-item list-group-item-warning small" style="width: 50%; text-align:center">Doubtful</li>
  370. <li class="list-group-item list-group-item-success bg-success text-white small" style="width: 50%; text-align:center">Confident</li>
  371. </ul>
  372. </div> <!-- accordion-body -->
  373. </div> <!-- accordion-collapse -->
  374. </div> <!-- accordion-item -->
  375. </div>
  376. <div style="margin-top: 10px">
  377. <a class="btn btn-primary disabled" id="btn-download" href="">Download</a>
  378. </div>
  379. <script type="text/javascript">
  380. var MINIMUM_RATING_TIME = 10
  381. $('#qcslider').on('input', function() {
  382. if ( (Date.now() - timestamp) / 1000 > MINIMUM_RATING_TIME) {
  383. $('#btn-download').removeClass('disabled');
  384. $('#btn-download').removeAttr('aria-disabled');
  385. $('#btn-post').removeAttr('disabled');
  386. };
  387. $('#qcslider-collapse .list-group-item').removeClass(function(index, classname) {
  388. return (classname.match(/(^|\s)bg-\S+/g) || []).join(' ');
  389. });
  390. $('#qcslider-collapse .list-group-item').removeClass(function(index, classname) {
  391. return (classname.match(/(^|\s)text-\S+/g) || []).join(' ');
  392. });
  393. if ( $(this).val() < 1.5 ) {
  394. $('#qcslider-collapse .list-group-item-danger').addClass('bg-danger text-white');
  395. } else if ( $(this).val() > 3.5 ) {
  396. $('#qcslider-collapse .list-group-item-success').addClass('bg-success text-white');
  397. } else if ( $(this).val() < 2.5 ) {
  398. $('#qcslider-collapse .list-group-item-warning').addClass('bg-warning text-dark');
  399. } else {
  400. $('#qcslider-collapse .list-group-item-primary').addClass('bg-primary text-white');
  401. };
  402. var payload = read_form();
  403. });
  404. $('#qcextra-confidence').on('input', function() {
  405. if ( (Date.now() - timestamp) / 1000 > MINIMUM_RATING_TIME) {
  406. $('#btn-download').removeClass('disabled');
  407. $('#btn-download').removeAttr('aria-disabled');
  408. $('#btn-post').removeAttr('disabled');
  409. };
  410. $('#qcextra-collapse .list-group-item').removeClass(function(index, classname) {
  411. return (classname.match(/(^|\s)bg-\S+/g) || []).join(' ');
  412. });
  413. $('#qcextra-collapse .list-group-item').removeClass(function(index, classname) {
  414. return (classname.match(/(^|\s)text-\S+/g) || []).join(' ');
  415. });
  416. if ( $(this).val() < 2.0 ) {
  417. $('#qcextra-collapse .list-group-item-warning').addClass('bg-warning text-dark');
  418. } else {
  419. $('#qcextra-collapse .list-group-item-success').addClass('bg-success text-white');
  420. };
  421. var payload = read_form();
  422. });
  423. $('#qcextra-comments').bind('input propertychange', function() {
  424. if ( (Date.now() - timestamp) / 1000 > MINIMUM_RATING_TIME) {
  425. $('#btn-download').removeClass('disabled');
  426. $('#btn-download').removeAttr('aria-disabled');
  427. $('#btn-post').removeAttr('disabled');
  428. };
  429. });
  430. $( '#btn-post' ).click( function() {
  431. var payload = read_form();
  432. var md5sum = "unspecified";
  433. var params = {
  434. 'rating': payload['rating'],
  435. 'md5sum': md5sum,
  436. 'name': "",
  437. 'comment': JSON.stringify(payload['artifacts'])
  438. };
  439. // disable development releases
  440. var authorization = $(this).val();
  441. var ratingReq = new XMLHttpRequest();
  442. ratingReq.open("POST", "https://localhost:8000/");
  443. ratingReq.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  444. ratingReq.setRequestHeader("Authorization", authorization);
  445. ratingReq.onload = function () {
  446. status = ratingReq.status;
  447. $('#btn-post').removeClass('btn-primary');
  448. $('#btn-post').attr('disabled', true);
  449. $('#btn-post').attr('aria-disabled', true);
  450. $('#btn-post').prop('disabled');
  451. $('#btn-post').addClass('disabled');
  452. $('#btn-post').removeClass('active');
  453. if (status === "201") {
  454. $('#btn-post').addClass('btn-success');
  455. $('#btn-post').html('Posted!');
  456. } else {
  457. $('#btn-post').addClass('btn-danger');
  458. $('#btn-post').html('Failed');
  459. };
  460. };
  461. ratingReq.send(JSON.stringify(params));
  462. });
  463. $( 'body' ).on( 'click', '#qcartifacts-group input', function(e) {
  464. if ( (Date.now() - timestamp) / 1000 > MINIMUM_RATING_TIME) {
  465. $('#btn-download').removeClass('disabled');
  466. $('#btn-download').removeAttr('aria-disabled');
  467. $('#btn-post').removeAttr('disabled');
  468. };
  469. var payload = read_form();
  470. });
  471. $( 'body' ).on( 'click', '#qcrating-toggler', function(e) {
  472. toggle_rating();
  473. });
  474. </script>
  475. </div>
  476. <script type="text/javascript">
  477. function toggle(id) {
  478. var element = document.getElementById(id);
  479. if(element.style.display == 'block')
  480. element.style.display = 'none';
  481. else
  482. element.style.display = 'block';
  483. }
  484. </script>
  485. </body>
  486. </html>