File indexing completed on 2025-04-10 08:06:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #include "DicomBeamDevice.hh"
0027
0028 #include "dcmtk/dcmrt/seq/drtrbs8.h" // DRTReferencedBeamSequenceInRTFractionSchemeModule
0029
0030 #include "globals.hh"
0031
0032
0033 DicomBeamDevice::DicomBeamDevice(DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item bldsItem)
0034 {
0035 OFString fstr;
0036 Sint32 fint;
0037 Float64 ffloat;
0038 OFVector<Float64> fvfloat;
0039
0040 bldsItem.getRTBeamLimitingDeviceType(fstr);
0041 G4cout << " "
0042 << " RTBeamLimitingDeviceType " << fstr << G4endl;
0043 SetType(fstr);
0044 bldsItem.getSourceToBeamLimitingDeviceDistance(ffloat);
0045 G4cout << " "
0046 << " SourceToBeamLimitingDeviceDistance " << ffloat << G4endl;
0047 SetSourceToBeamLimitingDeviceDistance(ffloat);
0048 bldsItem.getNumberOfLeafJawPairs(fint);
0049 SetNumberOfLeafJawPairs(fint);
0050 G4cout << " "
0051 << " NumberOfLeafJawPairs " << fint << G4endl;
0052 bldsItem.getLeafPositionBoundaries(fvfloat);
0053 if (fint != 1) fint++;
0054 for (int ii = 0; ii < fint; ii++) {
0055 G4cout << " " << ii << " LeafPositionBoundaries " << fvfloat[ii] << G4endl;
0056 AddPositionBoundary(fvfloat[ii]);
0057 }
0058 }
0059
0060
0061 DicomBeamDevice::DicomBeamDevice(DRTBeamLimitingDevicePositionSequence::Item bldpsItem)
0062 {
0063 OFString fstr;
0064 Float64 ffloat;
0065
0066 bldpsItem.getRTBeamLimitingDeviceType(fstr);
0067 G4cout << " "
0068 << " BeamLimitingDeviceType " << fstr << G4endl;
0069 SetType(fstr);
0070 for (size_t ii = 0;; ii++) {
0071 if (bldpsItem.getLeafJawPositions(ffloat, ii) == EC_Normal) {
0072 G4cout << " " << ii << " LeafPositionBoundaries " << ffloat << G4endl;
0073 AddPositionBoundary(ffloat);
0074 }
0075 else {
0076 break;
0077 }
0078 }
0079 }
0080
0081
0082 void DicomBeamDevice::Print(std::ostream&) {}