diff --git a/code/indices/rttbConformalIndex.h b/code/indices/rttbConformalIndex.h index b702ef8..38f1e6e 100644 --- a/code/indices/rttbConformalIndex.h +++ b/code/indices/rttbConformalIndex.h @@ -1,67 +1,69 @@ // ----------------------------------------------------------------------- // RTToolbox - DKFZ radiotherapy quantitative evaluation library // // Copyright (c) German Cancer Research Center (DKFZ), // Software development for Integrated Diagnostics and Therapy (SIDT). // ALL RIGHTS RESERVED. // See rttbCopyright.txt or // http://www.dkfz.de/en/sidt/projects/rttb/copyright.html // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notices for more information. // //------------------------------------------------------------------------ /*! // @file // @version $Revision$ (last changed revision) // @date $Date$ (last change date) // @author $Author$ (last changed by) */ #ifndef __CONFORMAL_INDEX_H #define __CONFORMAL_INDEX_H #include "rttbDvhBasedDoseIndex.h" #include "rttbBaseType.h" +#include "RTTBIndicesExports.h" + namespace rttb { namespace indices { /*! @class ConformalIndex @brief This class representing a ConformalIndex Object. Conformal Index (COIN)= Conformation Number(CN)* (1-Vref,0/Vnt,0)*(1-Vref,1/Vnt,1)... i: i-th critiacal organ Conformation Number (CN)= (TVref/TV) * (TVref/Vref) @ingroup indices */ - class ConformalIndex: public DvhBasedDoseIndex + class RTTBIndices_EXPORT ConformalIndex : public DvhBasedDoseIndex { protected: /*! @brief Calculate conformal index @exception InvalidParameterException Thrown if dvhSet or aDoseReference invalid */ bool calcIndex(); public: /*! @brief Constructor */ ConformalIndex(DVHSetPtr dvhSet, DoseTypeGy aDoseReference); /*! @brief Dose index calculation for tvIndex-th treated volume @param tvIndex index in the DVH in the current set of tv-DVHs @return Return index value @exception InvalidParameterException Thrown if tvIndex or aDoseReference invalid */ IndexValueType getValueAt(const core::DVHSet::IndexType tvIndex); }; } } #endif diff --git a/code/indices/rttbConformationNumber.h b/code/indices/rttbConformationNumber.h index 54e6e5d..c5a89c2 100644 --- a/code/indices/rttbConformationNumber.h +++ b/code/indices/rttbConformationNumber.h @@ -1,69 +1,69 @@ // ----------------------------------------------------------------------- // RTToolbox - DKFZ radiotherapy quantitative evaluation library // // Copyright (c) German Cancer Research Center (DKFZ), // Software development for Integrated Diagnostics and Therapy (SIDT). // ALL RIGHTS RESERVED. // See rttbCopyright.txt or // http://www.dkfz.de/en/sidt/projects/rttb/copyright.html // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notices for more information. // //------------------------------------------------------------------------ /*! // @file // @version $Revision$ (last changed revision) // @date $Date$ (last change date) // @author $Author$ (last changed by) */ #ifndef __CONFORMATION_NUMBER_H #define __CONFORMATION_NUMBER_H - - #include "rttbDvhBasedDoseIndex.h" #include "rttbBaseType.h" +#include "RTTBIndicesExports.h" + namespace rttb { namespace indices { /*! @class ConformationNumber @brief This class representing a ConformationNumber Object. Conformation Number (CN)= (TVref/TV) * (TVref/Vref) @ingroup indices */ - class ConformationNumber: public DvhBasedDoseIndex + class RTTBIndices_EXPORT ConformationNumber : public DvhBasedDoseIndex { protected: /*! @brief Calculate conformation number @exception InvalidParameterException Thrown if dvhSet or aDoseReference invalid */ bool calcIndex(); public: /*! @brief Constructor */ ConformationNumber(DVHSetPtr dvhSet, DoseTypeGy aDoseReference); /*! @brief Dose index calculation for tvIndex-th treated volume @param tvIndex index in the DVH in the current set of tv-DVHs @return Return index value @exception InvalidParameterException Thrown if tvIndex or aDoseReference invalid */ IndexValueType getValueAt(const core::DVHSet::IndexType tvIndex); }; } } #endif diff --git a/code/indices/rttbConformityIndex.h b/code/indices/rttbConformityIndex.h index 3cc5a67..1eec1ef 100644 --- a/code/indices/rttbConformityIndex.h +++ b/code/indices/rttbConformityIndex.h @@ -1,66 +1,68 @@ // ----------------------------------------------------------------------- // RTToolbox - DKFZ radiotherapy quantitative evaluation library // // Copyright (c) German Cancer Research Center (DKFZ), // Software development for Integrated Diagnostics and Therapy (SIDT). // ALL RIGHTS RESERVED. // See rttbCopyright.txt or // http://www.dkfz.de/en/sidt/projects/rttb/copyright.html // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notices for more information. // //------------------------------------------------------------------------ /*! // @file // @version $Revision$ (last changed revision) // @date $Date$ (last change date) // @author $Author$ (last changed by) */ #ifndef __CONFORMITY_INDEX_H #define __CONFORMITY_INDEX_H #include "rttbDvhBasedDoseIndex.h" #include "rttbBaseType.h" +#include "RTTBIndicesExports.h" + namespace rttb { namespace indices { /*! @class ConformityIndex @brief This class representing a ConformityIndex Object. Conformity Index (CI): CI(D)=IFtv(D)*(1-IFht(D)), D:reference dose, IFtv(D): the irradiation factor of the PTV, defined as the fraction of the PTV receiving a dose higher than D IFht(D): the irradiation factor of healthy tissue, defined as the radio of the volume of tissue outside the PTV receiving a dose greater than D to the volume of isodose D @ingroup indices */ - class ConformityIndex: public DvhBasedDoseIndex + class RTTBIndices_EXPORT ConformityIndex : public DvhBasedDoseIndex { protected: /*! @brief Calculate Conformity index @exception InvalidParameterException Thrown if dvhSet or aDoseReference invalid */ bool calcIndex(); public: /*! @brief Constructor */ ConformityIndex(DVHSetPtr dvhSet, DoseTypeGy aDoseReference); /*! @brief Dose index calculation for tvIndex-th treated volume @param tvIndex index in the DVH in the current set of tv-DVHs @return Return index value @exception InvalidParameterException Thrown if tvIndex or aDoseReference invalid */ IndexValueType getValueAt(const core::DVHSet::IndexType tvIndex); }; } } #endif diff --git a/code/indices/rttbCoverageIndex.h b/code/indices/rttbCoverageIndex.h index 26801b1..d89775a 100644 --- a/code/indices/rttbCoverageIndex.h +++ b/code/indices/rttbCoverageIndex.h @@ -1,71 +1,73 @@ // ----------------------------------------------------------------------- // RTToolbox - DKFZ radiotherapy quantitative evaluation library // // Copyright (c) German Cancer Research Center (DKFZ), // Software development for Integrated Diagnostics and Therapy (SIDT). // ALL RIGHTS RESERVED. // See rttbCopyright.txt or // http://www.dkfz.de/en/sidt/projects/rttb/copyright.html // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notices for more information. // //------------------------------------------------------------------------ /*! // @file // @version $Revision$ (last changed revision) // @date $Date$ (last change date) // @author $Author$ (last changed by) */ #ifndef __COVERAGE_INDEX_H #define __COVERAGE_INDEX_H #include #include #include "rttbDvhBasedDoseIndex.h" #include "rttbBaseType.h" #include "rttbDVHSet.h" +#include "RTTBIndicesExports.h" + namespace rttb { namespace indices { /*! @class CoverageIndex @brief This class representing a CoverageIndex Object. Coverage Index fraction of the target volume receiving a dose >= the reference dose @ingroup indices */ - class CoverageIndex: public DvhBasedDoseIndex + class RTTBIndices_EXPORT CoverageIndex : public DvhBasedDoseIndex { protected: /*! @brief Calculate conformation number @exception InvalidParameterException Thrown if dvhSet invalid */ bool calcIndex(); public: /*! @brief Constructor */ CoverageIndex(DVHSetPtr dvhSet, DoseTypeGy aDoseReference); /*! @brief Dose index calculation for tvIndex-th treated volume * @param tvIndex: index in the vector of DVH TV * @return Return index value @exception InvalidParameterException Thrown if tvIndex invalid */ IndexValueType getValueAt(const core::DVHSet::IndexType tvIndex); }; } } #endif diff --git a/code/indices/rttbDoseIndex.h b/code/indices/rttbDoseIndex.h index 4986285..d05a173 100644 --- a/code/indices/rttbDoseIndex.h +++ b/code/indices/rttbDoseIndex.h @@ -1,89 +1,89 @@ // ----------------------------------------------------------------------- // RTToolbox - DKFZ radiotherapy quantitative evaluation library // // Copyright (c) German Cancer Research Center (DKFZ), // Software development for Integrated Diagnostics and Therapy (SIDT). // ALL RIGHTS RESERVED. // See rttbCopyright.txt or // http://www.dkfz.de/en/sidt/projects/rttb/copyright.html // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notices for more information. // //------------------------------------------------------------------------ /*! // @file // @version $Revision$ (last changed revision) // @date $Date$ (last change date) // @author $Author$ (last changed by) */ #ifndef __DOSE_INDEX_H #define __DOSE_INDEX_H #include "rttbBaseType.h" #include "rttbDVHSet.h" +#include "RTTBIndicesExports.h" + namespace rttb { - - namespace indices { /*! @class DoseIndex @brief This is the interface for dose/plan comparison indices. @ingroup indices */ - class DoseIndex + class RTTBIndices_EXPORT DoseIndex { protected: IndexValueType _value; DoseTypeGy _doseReference; /*! @brief If init() successful*/ bool _initSuccess; /*! @brief Initialize the calculation. It should be called in constructor or if any parameter of the calcualtion is changed. @return Return true if successfully @exception InvalidParameterException thrown if any input is invalid or index calculation failed */ bool init(); /*! @brief Dose index calculation */ virtual bool calcIndex() = 0; /*! @brief Check all inputs for the index calculation*/ virtual bool checkInputs() = 0; public: /*! @brief Constructor with the referece dose*/ DoseIndex(DoseTypeGy aDoseReference); /*! @brief Set the reference dose */ void setDoseReference(DoseTypeGy aDoseReference); /*! @brief Get the reference dose */ DoseTypeGy getDoseReference() const; /*! @brief Get the value of dose/plan comparison index @return Return the value of this index @exception Exception Thrown if the class was not initialized previously. */ IndexValueType getValue() const; /*! @brief Get the value of dose/plan comparison index for a treated volume with the index in the DVH treated volume set @param tvIndex index in the DVH in the current set of DVH subset for target volume: use DVHSet.getTargetVolumeSet() */ virtual IndexValueType getValueAt(const core::DVHSet::IndexType tvIndex) = 0; }; } } #endif diff --git a/code/indices/rttbDvhBasedDoseIndex.h b/code/indices/rttbDvhBasedDoseIndex.h index eb87891..cbf9214 100644 --- a/code/indices/rttbDvhBasedDoseIndex.h +++ b/code/indices/rttbDvhBasedDoseIndex.h @@ -1,67 +1,67 @@ // ----------------------------------------------------------------------- // RTToolbox - DKFZ radiotherapy quantitative evaluation library // // Copyright (c) German Cancer Research Center (DKFZ), // Software development for Integrated Diagnostics and Therapy (SIDT). // ALL RIGHTS RESERVED. // See rttbCopyright.txt or // http://www.dkfz.de/en/sidt/projects/rttb/copyright.html // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notices for more information. // //------------------------------------------------------------------------ /*! // @file // @version $Revision$ (last changed revision) // @date $Date$ (last change date) // @author $Author$ (last changed by) */ #ifndef __DVH_BASED_DOSE_INDEX_H #define __DVH_BASED_DOSE_INDEX_H #include "rttbBaseType.h" #include "rttbDVHSet.h" #include "rttbDoseIndex.h" +#include "RTTBIndicesExports.h" + namespace rttb { - - namespace indices { /*! @class DvhBasedDoseIndex @brief This is the interface for dose/plan comparison indices calculated by DVh set of the dose. */ - class DvhBasedDoseIndex: public DoseIndex + class RTTBIndices_EXPORT DvhBasedDoseIndex : public DoseIndex { public: typedef boost::shared_ptr DVHSetPtr; protected: DVHSetPtr _dvhSet; /*! @brief Dose index calculation */ virtual bool calcIndex() = 0; /*! @brief Check inputs*/ bool checkInputs(); public: /*! @brief Constructor*/ DvhBasedDoseIndex(DVHSetPtr aDVHSet, DoseTypeGy aDoseReference); /*! @brief Dose/plan comparison index calculation for tvIndex-th treated volume (tv = target volume; th = healthy tissue) @param tvIndex index in the DVH in the current set of tv-DVHs */ virtual IndexValueType getValueAt(const core::DVHSet::IndexType tvIndex) = 0; }; } } #endif diff --git a/code/indices/rttbHomogeneityIndex.h b/code/indices/rttbHomogeneityIndex.h index c19516e..5b9edd4 100644 --- a/code/indices/rttbHomogeneityIndex.h +++ b/code/indices/rttbHomogeneityIndex.h @@ -1,65 +1,64 @@ // ----------------------------------------------------------------------- // RTToolbox - DKFZ radiotherapy quantitative evaluation library // // Copyright (c) German Cancer Research Center (DKFZ), // Software development for Integrated Diagnostics and Therapy (SIDT). // ALL RIGHTS RESERVED. // See rttbCopyright.txt or // http://www.dkfz.de/en/sidt/projects/rttb/copyright.html // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notices for more information. // //------------------------------------------------------------------------ /*! // @file // @version $Revision$ (last changed revision) // @date $Date$ (last change date) // @author $Author$ (last changed by) */ #ifndef __HOMOGENEITY_INDEX_H #define __HOMOGENEITY_INDEX_H -#include -#include - #include "rttbDvhBasedDoseIndex.h" #include "rttbBaseType.h" +#include "RTTBIndicesExports.h" + namespace rttb { namespace indices { /*! @class HomogeneityIndex @brief This class representing a HomogeneityIndex Object. Homogeneity Index (HI) = (Dmax(PTV)-Dmin(PTV))/Dref @ingroup indices */ - class HomogeneityIndex: public DvhBasedDoseIndex + class RTTBIndices_EXPORT HomogeneityIndex : public DvhBasedDoseIndex { protected: /*! @brief Calculate Conformity index @exception InvalidParameterException Thrown if aDoseReference invalid */ bool calcIndex(); public: /*! @brief Constructor */ HomogeneityIndex(DVHSetPtr dvhSet, DoseTypeGy aDoseReference); /*! @brief Dose index calculation for tvIndex-th treated volume @param tvIndex index in the DVH in the current set of tv-DVHs @return Return index value @exception InvalidParameterException Thrown if tvIndex or aDoseReference invalid */ IndexValueType getValueAt(const core::DVHSet::IndexType tvIndex); }; } } #endif