Skin dose maps do not apply correct backscatter factor for incident field size

Issue #935 resolved
David Platten created an issue

There seems to be an issue with the backscatter factor lookup in skinmap.py which means that the backscatter factor for the smallest of the field options is used regardless of the actual field size at the phantom surface.

The offending line is:

                iterator[0] = Decimal(
                    ref_length_squared
                    / mylength_squared
                    * ref_ak_cor
                    * get_bsf(
                        tube_voltage,
                        cu_thickness,
                        math.sqrt(mylength_squared / ref_length_squared),
                    )
                ).quantize(Decimal("0.000000001"), rounding=ROUND_HALF_UP)

The call to get_bsf should include tube voltage, Cu thickness and the side-length of the square x-ray field at the phantom surface. In the above line of code the side-length is not sent to get_bsf.

Comments (14)

  1. David Platten reporter

    Added proposed fix for openSkin backscatter factor lookup. Needs review by others. I have temporarily put in a print statement which shows the d_ref, focus to skin distance for the ray, field size at d_ref, field size at skin (old method), field size at skin (new method) when a skin dose map is run. I have tested this on several maps and it seems to work as expected. Refs issue #935

    → <<cset f156646452dd>>

  2. David Platten reporter

    Changed how the string is split over two lines in the source code. As it was the single quotes appeared on the form option. Now they do not. [skip ci]. Refs issue #935

    → <<cset 4e5446ca2635>>

  3. David Platten 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 #935 and issue #933

    → <<cset 86053fe343a4>>

  4. David Platten 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 #933 and issue #935

    → <<cset f974e9743e5e>>

  5. Log in to comment