|
Print View
NERS/BIOE 580
Lab05 - Object Module A
Purpose:
In this module we examine the attenuation of an x-ray
spectrum as it passes through human tissue.
The ionization of air expressed in units of x-ray exposure
(milliroentgens, mR) will be used as a measure of
the x-ray beam intensity.
The role of added filtration at the source to protect a subject
from excessive radiation exposure is investigated.
Discussion:
We saw in the last module how the materials of the x-ray tube
and housing filtered low energy radiations from the x-ray spectrum.
Adding additional amounts of filtration material
then removed more low energy radiations and shifted the spectrum
to higher energies, or 'hardened' the spectrum.
In producing a radiograph of a patient,
the tissue material causes similar spectral hardening.
If the spectrum emerging from the x-ray tube
is used with no additional filtration, the low energy x-rays
are quickly absorbed in the subject and do not contribute to
the transmitted radiation beam. The x-ray spectrum transmitted
through the subject is thus hardened from the attenuation of
the tissue. For this reason, added filtration is added to the
beam before the x-rays penetrate the subject. This pre-hardening of
the x-ray beam significantly reduces the radiation exposure to the tissue
with only a modest reduction in transmitted radiation and detector exposure.
Task Obj-A1: Revise the ../_tcl/link.tcl file.
In Lab 02, the installation environment was set up by defining
the XSPECT environmental variable and the path to the gnuplot program
in the _xspect3.5/_tcl/link.tcl script.
In lab 03 and 04, the link.tcl commands were run using the tcl 'source' command.
For the remaining labs in the class, we will continue
to source the link.tcl file in order to initialize the environment.
Make a directory for this lab with a name like Lab05.
In this directory, make a new text file, L05-Obj-A_T.txt, and rename it to L05-Obj-A_T.tcl.
Using a text editor such as Notepad++ (see the TIP at the end of Lab 04), enter the following,
- #!/bin/sh
- # The next line restarts using tclsh8.0 \
- exec tclsh $0 ${1+"$@"}
- #############################################################
- #
- # XSPECT vers.3.5c
- #
- # Model: Lab 05
- # Author: ?
- # Date: ?
- #
- # --------run link.tcl commands-----------
- # Be sure 'console show' is active
- #
- source $env(XSPECT_DIR)/_xspect3.5/_tcl/link.tcl
- #
- #############################################################
Save a copy of this file with a name such as 'LabHeader.tcl'.
This can be used to develop scripts as a part of the remaining labs.
For each new script application, document the name, author, and date at the top.
In some cases additional comments with
a more detailed description of the application may be included.
Task Obj-A2: Unit conversion.
In order to assess radiation exposure, it is necessary that
the x-ray spectrum be known at a specific distance in units of
#/(mAs-cm^2-keV). The spectra we have computed so far have
been in the more general units of #/mAs-sr-keV which, because it
is per steradian, is not specific to a particular distance.
Read the documentation for
sr2cm
in $XSPECT_DIR/_xspect3.5/_doc.
Now run the L05-Obj-A_T.tcl header script.
The console window and the small tk window with the quit button should appear.
Enter the following in the command window.
- spectGen 74 12 1 100 1
- atten {{al_1100 0.30}}
This generates a tungsten target spectrum for 100 kVp
and attenuates it with 3 mm of aluminum to simulate the spectral
hardening of the x-ray tube and housing.
A 'spectra.tmp' file should be created in the Lab05 directory.
Now simply enter the command 'sr2cm 70.0'
in the command window. This operates on the 'spectra.tmp' file
and converts the units for a distance of 70.0 cm which is
a typical source to object distance for medical radiography.
Look at the table headings in the spectra.tmp file after running
sr2cm and note where this file is modified to identify the
units and the distance. Leave this command window open for the next section.
Other conversion routines are available to enable the distance
to be changed when dealing with spectra in #/cm^2 units or to
convert back to spectra in #/sr units.
Read the documentation for
cm2sr and for
cm2cm
in $XSPECT_DIR/_xspect3.5/_doc.
We will look at other conversions in the next module to convert
from photon fluence (#/--) to energy fluence (ergs/--).
Task Obj-A3: Radiation exposure.
The amount of radiation in an x-ray beam is commonly measured
by determining the ionization it produces in a standard amount
of air. The ionization is proportional to the energy deposited
in air by the radiation beam. This quantity is referred to as
the radiation exposure and has units of coulombs/kg (the SI unit)
or R (roentgens) where 1 R = 2.58E-04 coulombs/kg.
Read the documentation for
mR
in $XSPECT_DIR/_xspect3.5/_doc.
Simply entering the command 'mR'
in the command window from the prior task will compute
the radiation exposure for the spectrum in the current 'spectrum.tmp'
file (i.e. 100 kVp, tungsten, 70cm).
The mR routine reports the result as a part of a sentence.
To extract the value of the exposure, the sentence can be
considered as a list of space delineated elements and the tcl
command for returning the 3rd element of the list used.
set mRvalue [lindex [mR] 2]
Enter this in the command window. The mR value will be shown in the
command window and the value stored in the 'mRvalue' variable.
Recall that the list index command, 'lindex..', starts counting
the elements in a list at 0. So 'lindex {} 2' returns the third list element.
Task Obj-A4: Entrance exposure vs added filtration, Tungsten target source.
In this task, we want to see how varying amounts of added filtration
influence the entrance exposure to an object that is 70 cm from the source.
In the Src-B2 section of the prior lab, we used commands to
generate a tungsten target spectra at 100 kVp and attenuate it with
intrinsic filtration.
Edit the L05-Obj-A_T.tcl file to add these commands, including the
intrinsicFiltration variable for glass, oil, and aluminum materials.
Then add a command to convert the units to fluence at 70 cm.
Next add a command to save the x-ray spectrum generated with only
intrinsic filtration using a different filename and a command
to open a file to write results.
- file copy -force spectra.tmp spectra00.tmp
-
- set fileID [open temp.txt w] ;#open a file for writing
- puts $fileID "# thickness exposure,mR #"
Now add a simple loop within which the exposure is computed
for varying amounts of added filtration, 0 to 10 mm, and
written to the output file. In the commands suggested below
the index value n is selected to represent the mm of add aluminum
from 0 to 10 mm.
- for {set n 0} {$n <= 10.0} {incr n} {
-     file copy -force spectra00.tmp spectra.tmp
-     atten [list "al_1100 [expr $n/10.0]" ]
-     set mRin [lindex [mR] 2]
-     if {$n == 0} {set mRi $mRin}
-     puts $fileID "$n   [expr $mRin/$mRi]"
- }
- close $fileID
Within the loop, we first copy the spectrum with only intrinsic filtration
back to the spectra.tmp file, which is the spectra used by xspect operations.
We then apply the attenuation with the thickness changed to cm units.
While getting the attenuated input exposures, we set the reference exposure
with no filter by using an 'if ...' test for n = 0.
The relative exposure is then output as the input exposure
divided by the reference exposure.
Remember also to close the output file at the end.
Note: The arguements to the atten command is a list for which
the elements are also lists with two elements, material and thickness.
This can be written as 'atten {{al_1100 1.0}}'.
However, variable values are not evaluated within brackets, {..}.
They are evaluated within quotes, "..". Therefore, the atten command
is written using the list command and quoted elements.
Plot exposure versus added filtration on a semi-log plot using gnuplot.
This can be done by using gnuplot interactively and
changing to the Lab05 directory,
by creating a Lab05.gpl file and entering plot commands,
or by just creating the Lab05.gpl file in the L05-Obj-A_T.tcl script and
using 'puts fileID "..."' commands to generate the commands
as we did in within the procedure used in Lab03.
For this lab, we won't use Tk widgets to graphically manage entries
or plot execution.
The slope of the plot will be seen to decrease in the first few millimeters
and be relatively constant for the larger added filtration thicknesses.
This is easiest to see if you plot with lines and points and add a line
that will have constant slope in the semilog plot. For the plot command,
try using;
- plot "temp.txt" w lp, 0.75*exp(-0.12*x)
Task Obj-A5: Exit exposure vs add filtration, Tungsten target source.
Now modify this script again to insert an additional 15 cm
of tissue after the added filtration and evaluate the exposure
at the position of a detector located 90 cm from the source.
Use muscleNBS in the materials directory for a tissue material.
- ...
-     atten {{muscleNBS 15.0}}
-     cm2cm 90
-     set mRout [expr [lindex [mR] 2]]
-     if {$n == 0} {set mRi $mRin; set mRo $mRout}
-     puts $fileID "$n   [expr $mRin/$mRi]  [expr $mRout/$mRo]"
- }
- close $fileID
The last two lines within the loop also need to be changed to define
the reference exposure to the detector with no added filtration, mRo,
and output the relative output exposure.
Also, the plot command should be changed to additionally plot the third data column.
- plot "temp.txt" w lp, "temp.txt" using 1:3 w lp, 0.75*exp(-0.12*x)
Using a single plot command with three comma delineated fields
will place three curves on the same semi-log plot.
The script can easily be set up to enter a tissue thickness using
a tk entry widget similar to that used in lab module 3.
This requires putting the computational commands in a procedure
and then invoking this procedure using a "plot" button widget.
The tube potential, kVp, can also be entered from this widget.
You should note from the results of this module that if an
added filtration of .3 cm of aluminum is used in the beam, the
entrance exposure to the patient is reduced by a factor of
about 2 whereas the exposure presented to the detector is
maintained at 75 percent of it's original value.
Task Obj-A6: Exit exposure vs add filtration, Molybdenum target source.
For this final task, we want to do the same thing for a molybdenum
targe source of the type used for mammography.
Make a copy of the script from the previous script and name
it something like L05-Obj-A_M.tcl.
Modify the script to compute similar results for a molybdenum target
x-ray tube with varying thickness molybdenum added filters.
The following values should be used;
- X-ray source:
- Target Z = 42
- kVp = 30
- Intrinsic Filtration: beryllium 0.005 cm thick
- Object & Distances:
- Object: 5.0 cm of breast_50-50
- Source to object: 60 cm
- Source to detector: 70 cm
- Added filtration:
- Material: molybdenum
- Thickness loop from 0 to 60 in increments of 5 (microns)
- Divide by 10000.0 to convert microns to cm.
In the gnuplot commands, the semilog line created in the plot command
should be changed to something like 0.09*exp(-0.03*x).
Typically added filtration of 30 microns molybfdenum has been used.
We see from these results that this reduces the entrance exposure to 4%
of what it would be without added filtration
while the exposure to the detector is at 35%.
Comment:
It is common to assess the spectral hardness of an x-ray beam
by measuring the added amount of aluminum needed to reduce the
exposure by a factor of two, i.e. the half value layer (HVL) thickness.
The HVL is typically measured for the x-ray beam emerging from the
tube housing including any added filtration that may have been installed.
This measurement is in fact required for radiation safety
compliance testing and a minimum value for the HVL is typically established
by state and federal regulations. Current U.S. regulations (
21CFR1020.30)
require that medical x-ray devices have a minimum HVL of 2.9 mm Al at 80 kVp.
XSPECT has a tcl procedure (in .../_tcl/HVL.tsp) that can be used to determine
the HVL of the current spectrum in spectra.tmp.
Try running the LabHeader.tcl script saved above to open a command window
in the XSPECT environment and enter a few commands to generate a spectrum
with some intrinsic filtation as was done in Obj-A2.
- spectGen 74 12 1 80 1
- atten {{al_1100 0.25}}
Now just enter the command 'HVL al_1100'.
The HVL command requires one arguement
which is the material used for HVL determination.
The HVL, reported in cm,
will be seen to be less than required in federal regulations.
Add another 2 mm of added filtration and the HVL will be above the required 2.9 mm.
When XSPECT is used to model the performance of an actual system,
the amount of added filtration is often adjusted to match the experimental HVL.
Lab05 Results:
For this module, please turn in the final scripts producing the
entrance and exit relative exposures for Tungsten and for Molybdenum sources
along with the semi-log plot with three curves for each.
- L05-Obj-A_T.tcl : tcl script for A1-A5 of this lab (Tungsten).
- L05-Obj-A_M.tcl : tcl script for A6 of this lab (Molybdenum).
- L05-Obj_T.png : Relative exposure vs added filtration (Tungsten).
- L05-Obj_M.png : Relative exposure vs added filtration (Molybdenum).
Reference script for L05-A5 & L05-A6: Lab05_Obj-A5-6.tcl
Next:
The next module is
06-Object-B.
|