Skin dose map field sizes incorrect when exposure has a non-zero secondary angle
When an exposure has a non-zero secondary angle (caudo-cranial) the size and shape of the field at the skin surface is incorrectly calculated. This has been discussed with @Jonathan Cole who has proposed a fix where line 112 in geomfunc.py is changed from:
yvector = np.array([0, np.sin(a_ray.yangle), np.cos(a_ray.yangle)])
to:
yvector = np.array([0, np.sin(a_ray.yangle), -np.cos(a_ray.yangle)])
Comments (34)
-
reporter -
Modified new skinmap version to 0.8.1 rather than 0.80, updated tests to match. Refs
#933→ <<cset 715ce71453b0>>
-
reporter Improved calculation of skin area exposed. This now calculates the area of the skin exposed, rather than the size of the field at the skin surface normal to the x-ray source to isocentre direction. It therefore now accounts for any curved phantom surfaces and changes in the field size at the phantom surface due to non-zero secondary angles. Note that this will only work correctly once the error affecting field size for non-zero secondary angles is also fixed. Refs issue
#935and issue#933→ <<cset 86053fe343a4>>
-
reporter Commented out skin dose map tests that are known to fail due to existing bugs. Will re-introduce tests once bugs are fixed. Refs issue
#935and issue#933→ <<cset aaa9b0d7bfed>>
-
reporter Renamed openskin test file to make it inactive. Will re-introduce tests once bugs are fixed. Refs issue
#935and issue#933→ <<cset 6927b3ebb637>>
-
reporter Commented out check on peak skin dose. Will re-introduce this once bugs are fixed. Refs issue
#935and issue#933→ <<cset f1acc002df9c>>
-
reporter Fixed merge conflict with the changes.rst file. Refs issue
#933→ <<cset a32c2a97ac16>>
-
reporter Replacing use of np.arctan with np.arctan2 as this removes the need to check for a divide by zero issue and also respects the sign of the two parameters. This removes the need to add a minus sign to the yvector calculation in the collimate function. Refs issue
#933→ <<cset 01eec691a052>>
-
reporter Need to check for negative x vector value and use different calculation for this condition. Refs issue
#933→ <<cset 91577c12dee0>>
-
Any idea what the pipeline failure is about @David Platten ?
-
reporter Correcting openSkin code to address cc angle bug using Jon Cole's openSkin repository changes. Also made default table width 45 cm rather than 40 cm to match my clinical Siemens Artis zee systems [we should implement a feature where an admin user can define the width of the table for openSkin calculations]. Refs issue
#933→ <<cset d66304ca9e45>>
-
reporter Disabling tests on openSkin and commenting out the skin dose alert test as these need rewriting. Refs issue
#933→ <<cset fa1f45f9e05a>>
-
reporter Disabling Codacy too many locals for two functions. Refs issue
#933→ <<cset e9f402393a47>>
-
reporter Removing the backscatter fix from this branch because it is already included in the 935 branch. Once the 935 branch is merged in to develop I will sync this 933 branch to bring them together. Refs issue
#933and issue#935→ <<cset f974e9743e5e>>
-
reporter Resolving merge conflict. Refs issue
#933→ <<cset 01cd898070e3>>
-
reporter Replacing use of built in python round function with a custom method because the in-built one (and Numpy's) both use Banker's Rounding, which does not follow the mathematical convention. The difference in rounding affects the calculation of points around the surface of the 3d openSkin phantom. Refs issue
#946(and sort-of references issue#933). Ed: apologies if you don't like that I've committed this into the 933 branch rather than creating a branch of its own.→ <<cset c54bf2ec3f88>>
-
reporter Changed round_properly to a function and reordered imports (following Codacy comments). Removed print statements and exit() command. Added int() around the elements of a numpy.zeros statement to avoid an error. Refs issue
#946(and sort of references issue#933)→ <<cset 32e1bbc9a901>>
-
reporter Updated skin dose map code to incorporate openSkin modifications to ensure correct size and shape of field at the phantom surface. Also ensuring each skin dose cell is 1x1 cm. I suspect there will need to be further work on this because of the head that is included in the OpenREM code that is not present in the openSkin code. Specifically, the method skin_map in the file skinmap.py uses the previous cell location to work out if there has been a hit. This is likely to cause an issue when the current cell is in the head, and the previous cell is in the body. May need to have code that is 'if in body' and another which is 'if in head'. Refs issue
#933and issue#948→ <<cset 9dbd94017b77>>
-
reporter Added a pickle file to the test results containing skin map data for the RF-RDSR-Siemens-Zee.dcm study calculated using the latest openSkin code. Modified make_skin_map.py so it can be used to return skin dose map data to the calling routine so that can be used in test files. Updated the openskin test file to compare the reference skin dose map data in the pickle file with that calculated from the study. Also updated JavaScript to ensure only one decimal place displayed for phantom height, width and depth. I will carry out a Monte Carlo simulation of this study so we have an independent reference for the peak skin dose (although this will not include the phantom head). Refs issue
#811,#933and#948.→ <<cset 2046efaf7feb>>
-
reporter Correcting spelling mistake in JavaScript message. Also replaced '->' with the '&rarr' HTML entity in the same message. Refs issue
#933→ <<cset 275c16595de4>>
-
reporter Forcing 3D skin dose map object to use nearest neighbour when stretching data to fit the model. This prevents interpolation, and results in the 3D skin dose map points looking the same as the 2D map, rather than the blurry version we have at the moment. Sort-of refs issue
#933→ <<cset 97d6a121d18c>>
-
reporter Trying to address some Codacy issues. Refs issue
#933→ <<cset c847f3cd06f2>>
-
reporter Trying to address some Codacy issues. Refs issue
#933→ <<cset fa60d6f89a77>>
-
reporter Trying to address some Codacy issues. Refs issue
#933→ <<cset 8f9679bb057b>>
-
reporter Added line to .pylintrc to see if it quietens the Codacy issue re complexity in make_skin_map. Refs issue
#933→ <<cset 65e3b7c9156e>>
-
reporter Reverting .pylintrc as it had no effect [skip ci]. Refs issue
#933→ <<cset a36de5665381>>
-
reporter Fixed merge conflicts. Updated skin_map files and tests to reflect skin map code in this branch. Refs issue
#933→ <<cset b1ef3498dab0>>
-
reporter Reverting requirements back - didn't mean to commit that change. Refs issue
#933→ <<cset ca14c99bbef0>>
-
reporter Updating warning message below skin dose maps to reflect the fact that validation has been carried out on the body section of the phantom for a Siemens Artis zee system. Also put the 'Summary of studies' in a list item and removed the table-indent css so that the table does not overlap with the skin dose map. Refs issue
#933→ <<cset aa403545341e>>
-
reporter Updating warning message to inform users that the skin dose values depend on the accuracy of the x-ray system dose and reference point and DAP values. Refs issue
#933→ <<cset 3ab6c6a79472>>
-
reporter Updated skin map version to 0.9.0 [skip ci]. Refs issue
#933→ <<cset a6f98ce595b1>>
-
reporter Updated skin map version to 0.9.0 in the tests. Refs issue
#933→ <<cset d6f10aae6a26>>
-
reporter Updated skin map version to 0.9.0 in the tests. Refs issue
#933→ <<cset f109d401b211>>
-
reporter - changed status to resolved
Merged in issue933openSkinCCbug (pull request #519)
Issue933openSkinCCbug
Approved-by: Ed McDonagh
Fixes issue
#933Fixes issue#948Fixes issue#946Fixes issue#811→ <<cset a155563055d0>>
- Log in to comment
Implementing fix suggested by JACole to address bug that caused incorrect field size for exposures with non-zero secondary angle. Changed openSkin version from 0.80 to 0.81 to force skin dose maps to update themselves. Refs issue
#933→ <<cset e1b135da3f04>>