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.