checkConstraint {DVHmetrics}  R Documentation 
Simultaneously checks one or more quality assurance constraints on one or more DVHs. Reports compliance with each constraint as well as observed difference between linearly interpolated DVH and the given constraints in terms of (relative) dose, (relative) volume, and (relative) minimal Euclidean distance.
checkConstraint(x, constr, byPat=TRUE, semSign=FALSE,
sortBy=c("none", "observed", "compliance", "structure",
"constraint", "patID", "deltaV", "deltaD",
"dstMin", "dstMinRel"),
interp=c("linear", "spline", "smooth"), ...)
## S3 method for class 'DVHs'
checkConstraint(x, constr, byPat=TRUE, semSign=FALSE,
sortBy=c("none", "observed", "compliance", "structure",
"constraint", "patID", "deltaV", "deltaD",
"dstMin", "dstMinRel"),
interp=c("linear", "spline", "smooth"), ...)
## S3 method for class 'DVHLst'
checkConstraint(x, constr, byPat=TRUE, semSign=FALSE,
sortBy=c("none", "observed", "compliance", "structure",
"constraint", "patID", "deltaV", "deltaD",
"dstMin", "dstMinRel"),
interp=c("linear", "spline", "smooth"), ...)
## S3 method for class 'DVHLstLst'
checkConstraint(x, constr, byPat=TRUE, semSign=FALSE,
sortBy=c("none", "observed", "compliance", "structure",
"constraint", "patID", "deltaV", "deltaD",
"dstMin", "dstMinRel"),
interp=c("linear", "spline", "smooth"), ...)
x 
A single DVH (object of class 
constr 
One or more constraints  given as a 
byPat 

semSign 

sortBy 

interp 

... 
Additional parameters passed to 
A DVH constraint is a character string that consists of three parts: The DVH metric, the comparison operator (<
, >
, <=
, >=
), and the reference value together with the measurement unit. See getMetric
for defining a DVH metric, as well as for possible measurement units for dose and volume. For constraints involving the relative dose, the DVH must contain the prescription dose.
Some example constraints are "V10Gy > 80%"
(more than 80% of the structure should have received 10Gy), "V20% < 10CC"
(less than 10cm^3 of the structure should have received 20% of the prescription dose), or "D10CC > 500cGy"
(The "hottest" 10cm^3 of the structure should have received more than 500cGy).
For constraints on DEUD
, DNTCP
and DTCP
(see getMetric
), the reference measurement unit must be Gy
, cGy
, even though NTCP and TCP are probabilities. Example: "DNTCP < 0.5Gy"
.
A DVH constraint can apply to a specific patient or to all patients, and to a specific structure or to all structures.
If constraints apply to all patients/structures in x
, constr
can be a character
vector with elements like the examples above.
If constraints apply only to some patients/structures, constr
must be a data frame with variables constraint
, patID
and structure
. Each row then defines one constraint and its scope: constraint
must be a character string with one constraint definition as in the examples above. patID
must be either a character string with a valid patient ID or "*"
if the the constraint applies to all patients. structure
must be either a character string with a valid structure or "*"
if the the constraint applies to all structures. If variable patID
is missing from the data frame, the constraints apply to all available patients. If variable structure
is missing from the data frame, the constraints apply to all available structures. See readConstraint
for reading appropriate constraint data.frames
from external text files.
For calculating the minimal Euclidean distance between the constraint point and the DVH, the constraint point is orthogonally projected onto each DVH segment between (interpolated) DVH nodes. The relative Euclidean distance is the minimum of these distances divided by the distance of the constraint point to the closer one of both axes (dose and volume).
If volume or dose values outside the range of possible values for a structure are requested, metrics cannot be calculated, and the result will be NA
with a warning.
A data frame with details on constraint compliance / violation.
patID 
Patient ID 
structure 
Structure 
constraint 
The checked constraint 
observed 
The observed value for the metric given in the constraint 
compliance 
Does the DVH satisfy the constraint? 
deltaV 
Volume difference between constraint and observed DVH (for the constraint dose) in measurement unit specified by constraint 
deltaVpc 
Percent volume difference between constraint and observed DVH (for the constraint dose) relative to constraint volume 
deltaD 
Dose difference between constraint and observed DVH (for the constraint volume) in measurement unit specified by constraint 
deltaDpc 
Percent dose difference between constraint and observed DVH (for the constraint volume) relative to constraint dose 
dstMin 
Minimal Euclidean distance between constraint and the cumulative DVH, using linear interpolation 
ptMinD 
Dose coordinate of closest point on cumulative DVH to constraint 
ptMinV 
Volume coordinate of closest point on cumulative DVH to constraint 
getMetric
,
getEUD
,
getNTCP
,
getTCP
,
readConstraint
,
saveConstraint
,
showConstraint
res < checkConstraint(dataMZ, c("D10CC < 10Gy", "V20Gy < 20%"))
head(res)
# define constraints
constr < data.frame(
patID=c("P123", "P234"),
structure=c("HEART", "*"),
constraint=c("D1CC < 20Gy", "V10% > 8CC"),
stringsAsFactors=FALSE) # this is important
checkConstraint(dataMZ, constr=constr)