GSTT-CSC / hazen

Quality assurance framework for Magnetic Resonance Imaging
https://github.com/GSTT-CSC/hazen
Apache License 2.0
22 stars 12 forks source link

378 geom accuracy wrong slices #399

Closed mollybuckley closed 10 months ago

mollybuckley commented 10 months ago

The ACR geometric accuracy test was measuring from slice 7 rather than slices 1 and 5 as per the ACR guidance. I have:

I then realised that the mask was being created incorrectly on slice 1 of the GE data (this was not previously an issue as the slice was being created from slice 7). This was because one of the pixel values outside the phantom was above the masking threshold value. I have changed the threshold value so that it is no longer picking up background noise pixels and including these in the mask. The images on the report look acceptable but some future work could be to test this with more GE data. I then changed three of the unit tests accordingly, as there were very minor variations in the results following this change.

sophie22 commented 10 months ago

resolves #378

github-actions[bot] commented 10 months ago

Coverage

Coverage Report
FileStmtsMissCoverMissing
hazenlib
   ACRObject.py1071190%92, 95–97, 102–105, 143, 197–200
   HazenTask.py29390%43–47
   __init__.py571574%173, 205–214, 216–225, 227–229, 246–250, 254
   exceptions.py21576%19–23, 42
   utils.py1894377%72, 76, 86, 91, 130, 137–150, 161, 168–175, 195–197, 215–219, 238–242, 251, 256, 267, 319, 322, 330–335, 338, 385, 394, 409
hazenlib/tasks
   acr_geometric_accuracy.py1125848%57–97, 119–180
   acr_ghosting.py1074261%46–62, 105–107, 159–161, 211–293
   acr_slice_position.py1364865%59–83, 286–353
   acr_slice_thickness.py1366056%48–67, 238–322
   acr_snr.py1345857%47, 62–113, 132, 227–242, 283–301, 348–373
   acr_spatial_resolution.py2076867%69–100, 188, 286, 303–314, 460–539
   acr_uniformity.py813260%47–64, 148–200
   ghosting.py1495166%28–47, 67, 171–172, 179, 196–197, 252–256, 271–275, 346–387
   relaxometry.py2918969%210–211, 213, 226–231, 238–246, 277–326, 375, 409–431, 609, 655–659, 726, 811–833, 851–866
   slice_position.py1244068%30, 43–71, 129–130, 157, 273, 283–306
   slice_width.py3525285%44–48, 52, 123, 188–213, 555, 560–561, 567, 572, 648–649, 1021–1085
   snr.py1736960%45–48, 87, 103–113, 206–225, 237–247, 287–302, 330–340, 345–361, 399–415, 428–434, 477–495
   snr_map.py108199%157
   spatial_resolution.py2464482%50–54, 58, 90, 213, 294, 460–503
   uniformity.py801976%59–63, 67, 118–119, 126, 175–205
TOTAL286480872% 

Tests Skipped Failures Errors Time
198 0 :zzz: 0 :x: 0 :fire: 2m 20s :stopwatch: