espadon.class: ESPADON class

View source: R/espadon_class.R

espadon.classR Documentation

ESPADON class

Description

ESPADON class

Usage

espadon.class()

Value

Returns a vector of espadon class names.

Note

Each object of a class has specific features that are used to display or process that object.

- the "patient" class includes :

  • $patient : dataframe providing patient's information as PIN, birth date and gender.

  • $pat.pseudo : patient's pseudonym, initialized to the patient's PIN of $patient dataframe.

  • $description : dataframe describing the patient's DICOM objects: their modality (rtstruct, ct, mr, rtplan ...), the base name of the relevant source file in the patient's directory, the pseudonym of their frame of reference (ref1, ref2 ...), their number of sub-objects, their description if any, their numbers of slices/RoI for all sub-objects, their maximum voxels (for volume sub-objects), and finally the aliases of the sub-objects.

  • $description.by.reg: list of DICOM objects descriptions that are linked by a transfer matrix.

  • $T.MAT : list of class "t.mat" containing the information of the transfer matrices to move from one frame of reference to another. See load.T.MAT.

  • $ct : list of CT, if any. They are named by their $object.alias See load.obj.from.Rdcm.

  • $mr : list of MRI, if any. They are formatted like the $ct.

  • $rtdose : list of dose matrices. They are formatted like the $ct.

  • $rtstruct: list of struct objects.

  • ...any DICOM objects other than the reg files, and those previously mentioned, or any modalities created by espadon.

  • $dicom.dvh: if any, list of DVH computed in rt-dose DICOM files.

- the "t.mat" class includes :

  • $ref.info: dataframe giving the correspondence between the frame of reference (column $ref) of the DICOM object (TAG (0020,0052) ) and its pseudonym (column $ref_pseudo).

  • $reg.info: list of dataframes : the first one gives the PID, birthday, and sex of the patient, the second one gives the name of the source file of transfer matrices.

  • $matrix.description: dataframe giving the transfer matrix names (column $t), its source frame of reference (column $src), the destination frame of reference (column $dest), and its type ($type). Note that only the RIGID type is supported.

  • $matrix.list: list of 4X4 transfer matrices. This list contains at least as many Identity matrices as there are ref.pseudo.

A espadon object of class "dvh", "fan", "histo","histo2D","mesh", "reg", "struct", "t.mat","undef","volume" is a list containing at least:

  • $patient: patient's PIN.

  • $patient.name: patient's name.

  • $patient.bd: patient's birthday.

  • $patient.sex: patient's sex

  • $file.basename: vector of .Rdcm or .dcm file basenames of the object, if it exists

  • $file.dirname : directory including the .Rdcm or .dcm file, if it exists

  • $object.name: name of the object.

  • $object.alias: alias of the object.

  • $frame.of.reference: value of TAG (0020,0052).

  • $ref.pseudo: pseudonym of the $frame.of.reference

  • $modality: modality of the object (e.g. ct, mr, bin, rtplan..)

  • $description: description of the object.

  • $acq.date : date of the content (TAG (0008,0023) for ct and mr and rtimage, TAG (300A,0006) for rtplan, TAG (3006,0008) for rtstruct)

  • $creation.date : creation date of the object.

If the object was generated from a DICOM file, the list also contains:

  • $object.info: Information of the object. It includes:

    - the SOP ID (value of TAG (0008,0016)),
    - the transfer syntax UID (value of TAG (0002,0010)),
    - the SOP implementation ID (value of TAG (0002,0012)),
    - the SOP type (value of TAG (0008,0008)),
    - the study ID (value of TAG (0020,0010)),
    - the study UID (value of TAG (0020,000D)),
    - the serie UID (value of TAG (0020,000E)),
    - the scanning sequence (value of TAG (0018,0020)),
    - the list of SOP labels (values of TAG (0008,0018)),
    - the dicom source files,
    - the encoding of the content of text tags (values of TAG (0008,0005))
    - the description of the study (values of TAG (0008,1030)) in which all letters whose ASCCI code is not between 32 and 125 are deleted,
    - the description of the serie (values of TAG (0008,103E)) in which all letters whose ASCCI code is not between 32 and 125 are deleted,
    - the number of sub-objects.

if the object is linked to another DICOM object, the list also contains:

  • $ref.object.alias: Alias of the reference object.

  • $ref.object.info: Information of the reference object (not available for mr and ct). It includes:

    - the SOP ID of the reference object,
    - the list of SOP names of the reference object.

- the "dvh" class also includes :

  • $nb.MC: set to histo$nb.MC.

  • $breaks: vector breakpoints.

  • $mids: vector of cell centers.

  • $mids.unit: Character string, representing the unit of the abcissa of the DVH. For instance, "Gy".

  • $vol: cumulative volume receiving at least the doses defined by $mids.

  • $pcv: percentage of the total volume receiving at least the doses defined by $mids.

  • if $nb.MC is different from 0, the arrays MC.vol, MC.pcv and MC.dxyz are added. See histo.DVH.

- the "fan" class also includes :

  • $origin: the xyz-coordinates of the source point.

  • $direction: the xyz-coordinates of the main direction of the fan.

  • $orientation: the xyz-coordinates of the two unit vectors of the plane orthogonal to the $direction.

  • $xyz: the xyz-coordinates of the unit vectors of the fan rays

  • $local: depending on the generation of the fan rays, it can be the spherical coordinates, the deflection angles, the voxel coordinates...

- the "histo" class also includes :

  • $nb.MC: number of Monte-Carlo simulations

  • $breaks: vector breakpoints

  • $mids: vector of cell centers.

  • $mids.unit: Character string, representing the unit of the abcissa of the histogram. For instance, "Gy".

  • counts: count of voxels whose value is included in the limits defined by $breaks.

  • dV_dx: differential histogram, expressed in \mjeqncm^3ascii by voxel units, at each $mids.

  • if $nb.MC is different from 0, the arrays MC.counts, MC.dV_dx and MC.dxyz are added. See histo.from.roi.

- the "histo2D" class also includes :

  • $nb.pixels: number of elements in the density.map.

  • $x.file.src: x label. See histo.2D.

  • $y.file.src: y label. See histo.2D.

  • x.breaks: vector of x-axis breakpoints.

  • y.breaks: vector of y-axis breakpoints.

  • x.mids: vector of x-axis cell centers.

  • y.mids: vector of y-axis cell centers.

  • density.map: array of densities.

  • total.counts: number of counted voxels.

- the "mesh" class also includes :

  • $nb.faces: set to the number of faces of the mesh.

  • $mesh: list of 3 elements defining the mesh :$vb, $it and $normals. See mesh.from.bin.

- the "reg" class also includes :

  • $nb.of.ref: number of transfer matrices.

  • $ref.data: list including the lists of information on transfer matrices, namely: the source frame of reference ($src), the matrix type ($type, for example 'RIGID') and the transfer matrix ($matrix).

- the "rtplan" class also includes :

  • $approval.status: value of TAG (300E,0002).

  • $number: sub-object number.

  • $plan.info: dataframe containing, if they exist,

    - $label the label for the treatment plan,
    - $plan.name the name for the treatment plan,
    - $plan.description description of treatment plan,
    - $tt.protocol the treatment protocol,
    - $plan.intent the intent of this plan,
    - $tt.site describing the anatomical treatment site,
    - $geometry describing whether RT Plan is based on patient or treatment device geometry.
  • $presc.dose: dataframe containing, if they exist,

    - $ref.roi.nb value of TAG (3006,0084),
    - $dose.ref.nb value of TAG (300A,0012),
    - $dose.ref.id value of TAG (300A,0013),
    - $struct.type value of TAG (300A,0014),
    - $description value of TAG (300A,0016),
    - $pt.coord value of TAG (300A,0018),
    - $nominal.prior.dose value of TAG (300A,001A),
    - $dose.type value of TAG (300A,0020),
    - $constraint.weight value of TAG (300A,0021),
    - $deliv.warn.dose value of TAG (300A,0022),
    - $deliv.max.dose value of TAG (300A,0023),
    - $targ.min.dose value of TAG (300A,0025),
    - $targ.presc.dose value of TAG (300A,0026),
    - $targ.max.dose value of TAG (300A,0027),
    - $targ.underdose.vol.frac value of TAG (300A,0028),
    - $org.risk.full.vol.dose value of TAG (300A,002A),
    - $org.risk.lim.dose value of TAG (300A,002B),
    - $org.risk.max.dose value of TAG (300A,002C),
    - $org.risk.overdose.vol.frac value of TAG (300A,002D)
  • $fraction.info: dataframe containing, if they exist,

    - $fraction.id the id of the fraction group,
    - $description its description,
    - $planned.frac.nb the total number of treatments (Fractions) prescribed for current fraction group,
    - $frac.pattern.digit.per.day.nb the number of digits in $frac.pattern used to represent one day,
    - $repeat.frac.cycle.le the number of weeks needed to describe treatment pattern,
    - $frac.pattern the value of TAG (300A,007B) describing treatment pattern every day,
    - $nb.of.beam the number of beams in current fraction group,
    - $beam.dose.meaning the value of TAG (300A,008B) indicating the meaning of Beam Dose,
    - $nb.of.brachy.app the number of brachy application setups in current fraction group.
  • $fraction.beam (in case of beam treatment): dataframe containing, if they exist,

    - $fraction.id,
    - $nb.of.frac.planned,
    - $beam.dose the value of TAG (00A,0084),
    - $beam.specif.pt the value of TAG (300A,0082),
    - $beam.meterset the value of TAG (300A,0086),
    - $beam.type the value of TAG (300A,0090,
    - $alt.dose the value of TAG (300A,0091),
    - $alt.type the value of TAG (300A,0092,
    - $duration.lim the value of TAG (300A,00C5),
    - $beam.nb the value of TAG (300C,0006) or (300A,00C0),
  • $beam.info (in case of beam treatment): dataframe containing, if they exist,

    - $beam.nb the value of TAG (300C,0006) or (300A,00C0),
    - $beam.name the value of TAG (300A,00C2),
    - $beam.description the value of TAG (300A,00C3),
    - $beam.type the value of TAG (300A,00C4),
    - $radiation.type the value of TAG (300A,00C6),
    - $high.dose.technique.type the value of TAG (300A,00C7),
    - $treatment.machine.name the value of TAG (300A,00B2),
    - $device.serial.nb the value of TAG (0018,1000),
    - $primary.dosimeter.unit the value of TAG (300A,00B3),
    - $referenced.tolerance.table.nb the value of TAG (300C,00A0),
    - $src.axis.dist the value of TAG (300A,00B4),
    - $referenced.patient.setup.nb the value of TAG (300C,006A),
    - $treatment.delivery.type the value of TAG (300A,00CE),
    - $wedges.nb the value of TAG (300A,00D0),
    - $compensators.nb the value of TAG (300A,00E0),
    - $total.compensator.tray.factor the value of TAG (300A,00E2),
    - $boli.nb the value of TAG (300A,00ED),
    - $blocks.nb the value of TAG (300A,00F0),
    - $total.block.tray.factor the value of TAG (300A,00F2),
    - $final.cumul.meterset.weight the value of TAG (300A,010E),
    - $ctl.pts.nb the value of TAG (300A,0110),
    - $radiation.mass.nb the value of TAG (300A,0302),
    - $radiation.atomic.nb the value of TAG (300A,0304),
    - $radiation.charge.state the value of TAG (300A,0306),
    - $scan.mode the value of TAG (300A,0308),
    - $modulated.scan.mode.type the value of TAG (300A,0309),
    - $virtual.src.axis.dist the value of TAG (300A,030A),
    - $total.wedge.tray.water.equ.thickness the value of TAG (300A,00D7),
    - $total.compensator.tray.water.equ.thickness the value of TAG (300A,02E3),
    - $total.block.tray.water.equ.thickness the value of TAG (300A,00F3),
    - $range.shifters.nb the value of TAG (300A,0312),
    - $lateral.spreading.devices.nb the value of TAG (300A,0330),
    - $range.modulators.nb the value of TAG (300A,0340),
    - $fixation.light.azimuthal.angle the value of TAG (300A,0356),
    - $fixation.light.polar.angle the value of TAG (300A,0358).
  • $beam.ctl.pt (in case of beam treatment): list containing, for each beam,

    - $info a data.frame of control points information from DICOM
    - $beam.source the coordinates of the source in the patient frame of reference
    - $beam.direction the coordinates of the beam direction in the patient frame of reference
    - $beam.direction the coordinates of the beam orientation in the patient frame of reference
    - $beam.isocenter the coordinates of the isocenter in the patient frame of reference
    - $spot.map, if they exist,the coordinates of the spots in the patient frame of reference

    For the moment, only the rotations of the gantry and the patient support, and the position of the isocenter are taken into account in the calculation of these coordinates.

  • $brachy.info (in case of brachy treatment): dataframe containing, if they exist,

    - $fraction.id
    - $nb.of.frac.planned,
    - $brachy.dose the value of TAG (300A,00A4),
    - $brachy.nb the value of TAG (300C,000C),
    - $brachy.specif.pt the value of TAG (300A,00A).

- the "struct" class also includes :

  • $nb.of.roi: number of regions of interest (RoI).

  • $thickness: thickness between two consecutive planes of a contour.

  • $ref.from.contour: reference frame change matrix, from the contour reference frame to the ref.pseudo reference frame

  • $roi.info: dataframe. Information on RoI contours. It includes the followings columns:

    -$number: value of TAG (3006,0084) for the concerned RoI.
    -$name: value of TAG (3006,0026) for the concerned RoI.
    -$description: value of TAG (3006,0028) for the concerned RoI.
    -$generation.algorithm: value of TAG (3006,0036) for the concerned RoI.
    -$color: value of TAG (3006,002A) for the concerned RoI.
    -$dz: z step between planes for the concerned RoI.
    -$roi.pseudo: pseudonym of the RoI $name. It can be changed by the user.
    -$min.x: minimum value x in mm of the RoI. Absent when data = FALSE.
    -$max.x: maximum value x in mm of the RoI. Absent when data = FALSE.
    -$min.y: minimum value y in mm of the RoI. Absent when data = FALSE.
    -$max.y: maximum value y in mm of the RoI. Absent when data = FALSE.
    -$min.z: minimum value z in mm of the RoI. Absent when data = FALSE.
    -$max.z: maximum value z in mm of the RoI. Absent when data = FALSE.
    -$vol: volume in mm^3 of the RoI. Absent when data = FALSE.
    -$Gx: position x in mm of the RoI center of gravity. Absent when data = FALSE.
    - -$Gy: position y in mm of the RoI center of gravity. Absent when data = FALSE.
    - -$Gz: position z in mm of the RoI center of gravity. Absent when data = FALSE.
    - -$continue: boolean, indicating whether the contours are on adjacent planes.
  • $roi.obs: dataframe. RT RoI observations (sequence TAG (3006,0080)). It includes the followings columns :

    -$nb: value of TAG (3006,0082) for the concerned RoI.
    -$roi.nb: value of TAG (3006,0084) for the concerned RoI.
    -$label: value of TAG (3006,0085) for the concerned RoI.
    -$code.value: value of TAG (0008,0100) in the Identification code sequence.
    -$code.scheme: value of TAG (0008,0102) in the Identification code sequence.
    -$code.scheme.v: value of TAG (0008,0103) in the Identification code sequence.
    -$code.meaning: value of TAG (0008,0104) in the Identification code sequence.
    -$type: value of TAG (3006,00A4) for the concerned RoI.
    -$interpreter:value of TAG (3006,00A6) for the concerned RoI.
  • $roi.data: exists only if the data is loaded. Contains the list of contour coordinates. The RoI of list number i is that of line i of roi.info. Each element of the list is a list giving the contour information for each plane, namely:

    - $type: value of TAG (3006,0042).
    - $pt: dataframe of the coordinates of the contour points.
    If the contour is closed (i.e.$type = "CLOSED_PLANAR"),
    then the first point is repeated at the end.
    - $level: contour inclusion level. If this number is even,
    the inside of the closed contour belongs to the RoI.
    Otherwise, if odd, the inside of the closed contour is excluded from the RoI.

- the "undef" class : is used for DICOM objects that will not be processed further by espadon functions. It can also include what the user wants.

- the "volume" class also includes :

  • $number: sub-object number.

  • $unit: unit of the voxel

  • $rtdose.info: for rtdose only, dataframe with the type, the dose summation type and referenced beam number.

  • $n.ijk: vector defining the number of indices i, j, k. The product prod(...$n.ijk) represents the number of voxels in the 3D volume.

  • $slice.thickness: thickness in mm of a plane.

  • $min.pixel: minimum value of voxels in the volume.

  • $max pixel: maximum value of voxels in the volume.

  • $dxyz: x, y, z steps in mm.

  • $orientation: value of TAG (0020,0037). Vector, comprising the vectors i and j defining the orientation of the patient with respect to the volume planes.

  • $xyz0: in the patient frame of reference, position of the first voxel of each plane.

  • $xyz.from.ijk: transfer matrix of the voxels i, j, k indices to the position x, y, z in mm in the patient's frame of reference.

  • $k.idx: index of planes in the 3D volume.

  • $missing.k.idx: Boolean, indicating if k is a continuous sequence of integers.

  • $cube.idx: 3D volume vertices indices.

  • $vol3D.data: exists only if the data is loaded. 3D array of the voxel values of the 3D volume.

See Also

toy.load.patient, load.patient.from.dicom, load.patient.from.Rdcm, load.T.MAT histo.DVH, histo.vol, histo.from.roi, histo.from.bin, histo.2D, mesh.from.bin, load.obj.from.Rdcm

Examples

cat ("espadon class names are:", paste (espadon.class(), collapse = ", "))

espadon documentation built on April 11, 2025, 5:57 p.m.