marSimpleDicom Class Reference

#include <marSimpleDicom.h>

Inheritance diagram for marSimpleDicom:

Inheritance graph
[legend]
Collaboration diagram for marSimpleDicom:

Collaboration graph
[legend]

List of all members.

Public Types

enum  DicomTags {
  ID_File_Name = 0, ID_SOP_Class_UID, ID_SOP_Instance_UID, ID_Study_Date,
  ID_Series_Date, ID_Acquisition_Date, ID_Image_Date, ID_Study_Time,
  ID_Series_Time, ID_Acquisition_Time, ID_Image_Time, ID_Modality,
  ID_Manufacturer, ID_Institution_Name, ID_Study_Description, ID_Series_Description,
  ID_Admitting_Diagnoses_Description, ID_Patient_Name, ID_Patient_ID, ID_Body_Part_Examined,
  ID_Scanning_Sequence, ID_Sequence_Variant, ID_Scan_Options, ID_MR_Acquisition_Type,
  ID_Sequence_Name, ID_Slice_Thickness, ID_Repetition_Time, ID_Echo_Time,
  ID_Inversion_Time, ID_Number_of_Averages, ID_Imaging_Frequency, ID_Imaged_Nucleus,
  ID_Echo_Number, ID_Magnetic_Field_Strength, ID_Spacing_Between_Slices, ID_Echo_Train_Length,
  ID_Percent_Sampling, ID_Percent_Phase_Field_of_View, ID_Receiving_Coil, ID_Patient_Position,
  ID_Study_Instance_UID, ID_Series_Instance_UID, ID_Study_ID, ID_Series_Number,
  ID_Acquisition_Number, ID_Image_Number, ID_Patient_Orientation, ID_Image_Position,
  ID_Image_Position_Patient, ID_Image_Orientation, ID_Image_Orientation_Patient, ID_Location,
  ID_Frame_of_Reference_UID, ID_Slice_Location, ID_Image_Comments, ID_Pixel_Spacing,
  ID_Window_Center, ID_Window_Width, ID_dicom_tags_count
}

Public Member Functions

void SetVolumeData (int dimX, int dimY, int dimZ, float spacingX, float spacingY, float spacingZ, float rescaleSlope, float rescaleIntercept, unsigned short *pixels)
 marSimpleDicom (marParameters *p=NULL)
virtual ~marSimpleDicom ()
void SetInvestSliceOrder (bool investSliceOrder)
void loadActualSerie (wxGauge *gauge)
void loadVolumeDXMM (bool force=false, wxGauge *gauge=NULL)
void reset ()
void copyFrom (const marObject &from)
bool save (std::ofstream &os)
bool load (std::ifstream &is)
virtual wxString GetPatientName ()
kVolume * getVolume ()
void SetVolume (kVolume *volume)
bool volumeLoaded ()
void freeVolume ()
virtual bool loadImage (int i)
std::vector
< std::string * > * 
GetListImages ()
void CleanListImages ()
void ResetLstFileNotReaded ()
std::string GetMsgLstFile ()
void setParameters (marParameters *p)
void copyParameters (marParameters *p)
void makeACopyParameters ()
marParametersgetParameters ()
bool parametersOwned ()
bool save (std::string &nw)
bool load (std::string &nr)

Protected Attributes

std::vector
< std::string * > 
_lstString
std::vector< char * > _lstFileNotReaded

Private Attributes

std::vector< SerieInfom_DicomInfo
unsigned int m_ActualStudy
unsigned int m_ActualSerie
unsigned short * m_pSlicesPixels
int m_nX
int m_nY
int m_nSlices
float m_PixelSpacingColumn
float m_PixelSpacingRow
float m_PixelSpacingSlice
float m_RescaleSlope
float m_RescaleIntercept
bool _investSliceOrder


Detailed Description

Shouldn't we break the dependencies to wx ???

We use vector instead of list for efficiency: for access time futhermore the number of patient is not changing a lot, so we might add the number of patient to params.dat, to allocate the right number of vector

Definition at line 45 of file marSimpleDicom.h.


Member Enumeration Documentation

enum marSimpleDicom::DicomTags

Enumerator:
ID_File_Name 
ID_SOP_Class_UID 
ID_SOP_Instance_UID  0008 0016 UI ID SOP Class UID
ID_Study_Date  0008 0018 UI ID SOP Instance UID
ID_Series_Date  0008 0020 DA ID Study Date
ID_Acquisition_Date  0008 0021 DA ID Series Date
ID_Image_Date  0008 0022 DA ID Acquisition Date
ID_Study_Time  0008 0023 DA ID Image Date
ID_Series_Time  0008 0030 TM ID Study Time
ID_Acquisition_Time  0008 0031 TM ID Series Time
ID_Image_Time  0008 0032 TM ID Acquisition Time
ID_Modality  0008 0033 TM ID Image Time
ID_Manufacturer  0008 0060 CS ID Modality
ID_Institution_Name  0008 0070 LO ID Manufacturer
ID_Study_Description  0008 0080 LO ID Institution Name
ID_Series_Description  0008 1030 LO ID Study Description
ID_Admitting_Diagnoses_Description  0008 103e LO ID Series Description
ID_Patient_Name  0008 1080 LO ID Admitting Diagnoses Description
ID_Patient_ID  0010 0010 PN PAT Patient Name
ID_Body_Part_Examined  0010 0020 LO PAT Patient ID
ID_Scanning_Sequence  0018 0015 CS ACQ Body Part Examined
ID_Sequence_Variant  0018 0020 CS ACQ Scanning Sequence
ID_Scan_Options  0018 0021 CS ACQ Sequence Variant
ID_MR_Acquisition_Type  0018 0022 CS ACQ Scan Options
ID_Sequence_Name  0018 0023 CS ACQ MR Acquisition Type
ID_Slice_Thickness  0018 0024 SH ACQ Sequence Name
ID_Repetition_Time  0018 0050 DS ACQ Slice Thickness
ID_Echo_Time  0018 0080 DS ACQ Repetition Time
ID_Inversion_Time  0018 0081 DS ACQ Echo Time
ID_Number_of_Averages  0018 0082 DS ACQ Inversion Time
ID_Imaging_Frequency  0018 0083 DS ACQ Number of Averages
ID_Imaged_Nucleus  0018 0084 DS ACQ Imaging Frequency
ID_Echo_Number  0018 0085 SH ACQ Imaged Nucleus
ID_Magnetic_Field_Strength  0018 0086 IS ACQ Echo Number
ID_Spacing_Between_Slices  0018 0087 DS ACQ Magnetic Field Strength
ID_Echo_Train_Length  0018 0088 DS ACQ Spacing Between Slices
ID_Percent_Sampling  0018 0091 IS ACQ Echo Train Length
ID_Percent_Phase_Field_of_View  0018 0093 DS ACQ Percent Sampling
ID_Receiving_Coil  0018 0094 DS ACQ Percent Phase Field of View
ID_Patient_Position  0018 1250 SH ACQ Receiving Coil
ID_Study_Instance_UID  0018 5100 CS ACQ Patient Position
ID_Series_Instance_UID  0020 000d UI REL Study Instance UID
ID_Study_ID  0020 000e UI REL Series Instance UID
ID_Series_Number  0020 0010 SH REL Study ID
ID_Acquisition_Number  0020 0011 IS REL Series Number
ID_Image_Number  0020 0012 IS REL Acquisition Number
ID_Patient_Orientation  0020 0013 IS REL Image Number
ID_Image_Position  0020 0020 CS REL Patient Orientation
ID_Image_Position_Patient  0020 0030 RET REL Image Position
ID_Image_Orientation  0020 0032 DS REL Image Position Patient
ID_Image_Orientation_Patient  0020 0035 RET REL Image Orientation
ID_Location  0020 0037 DS REL Image Orientation (Patient)
ID_Frame_of_Reference_UID  0020 0050 RET REL Location
ID_Slice_Location  0020 0052 UI REL Frame of Reference UID
ID_Image_Comments  0020 1041 DS REL Slice Location
ID_Pixel_Spacing  0020 4000 LT REL Image Comments
ID_Window_Center  0028 0030 DS IMG Pixel Spacing
ID_Window_Width  0028 1050 DS IMG Window Center
ID_dicom_tags_count  0028 1051 DS IMG Window Width

Definition at line 49 of file marSimpleDicom.h.

00050     {
00051                 ID_File_Name = 0                   ,
00052                         ID_SOP_Class_UID                   ,
00053                         ID_SOP_Instance_UID                ,
00054                         ID_Study_Date                      ,
00055                         ID_Series_Date                     ,
00056                         ID_Acquisition_Date                ,
00057                         ID_Image_Date                      ,
00058                         ID_Study_Time                      ,
00059                         ID_Series_Time                     ,
00060                         ID_Acquisition_Time                ,
00061                         ID_Image_Time                      ,
00062                         ID_Modality                        ,
00063                         ID_Manufacturer                    ,
00064                         ID_Institution_Name                ,
00065                         ID_Study_Description               ,
00066                         ID_Series_Description              ,
00067                         ID_Admitting_Diagnoses_Description ,
00068                         ID_Patient_Name                    ,
00069                         ID_Patient_ID                      ,
00070                         ID_Body_Part_Examined              ,
00071                         ID_Scanning_Sequence               ,
00072                         ID_Sequence_Variant                ,
00073                         ID_Scan_Options                    ,
00074                         ID_MR_Acquisition_Type             ,
00075                         ID_Sequence_Name                   ,
00076                         ID_Slice_Thickness                 ,
00077                         ID_Repetition_Time                 ,
00078                         ID_Echo_Time                       ,
00079                         ID_Inversion_Time                  ,
00080                         ID_Number_of_Averages              ,
00081                         ID_Imaging_Frequency               ,
00082                         ID_Imaged_Nucleus                  ,
00083                         ID_Echo_Number                     ,
00084                         ID_Magnetic_Field_Strength         ,
00085                         ID_Spacing_Between_Slices          ,
00086                         ID_Echo_Train_Length               ,
00087                         ID_Percent_Sampling                ,
00088                         ID_Percent_Phase_Field_of_View     ,
00089                         ID_Receiving_Coil                  ,
00090                         ID_Patient_Position                ,
00091                         ID_Study_Instance_UID              ,
00092                         ID_Series_Instance_UID             ,
00093                         ID_Study_ID                        ,
00094                         ID_Series_Number                   ,
00095                         ID_Acquisition_Number              ,
00096                         ID_Image_Number                    ,
00097                         ID_Patient_Orientation             ,
00098                         ID_Image_Position                  ,
00099                         ID_Image_Position_Patient          ,
00100                         ID_Image_Orientation               ,
00101                         ID_Image_Orientation_Patient       ,
00102                         ID_Location                        ,
00103                         ID_Frame_of_Reference_UID          ,
00104                         ID_Slice_Location                  ,
00105                         ID_Image_Comments                  ,
00106                         ID_Pixel_Spacing                   ,
00107                         ID_Window_Center                   ,
00108                         ID_Window_Width                    ,
00109                         ID_dicom_tags_count
00110     };


Constructor & Destructor Documentation

marSimpleDicom::marSimpleDicom ( marParameters p = NULL  ) 

Definition at line 136 of file marSimpleDicom.cpp.

00137 : marFilesBase( p ), m_pSlicesPixels(NULL),
00138 m_ActualStudy(0), m_ActualSerie(0)
00139 // PS -> ,helper(NULL)
00140 {
00141         // FillDicomInfo( );
00142 }

marSimpleDicom::~marSimpleDicom (  )  [virtual]

Definition at line 145 of file marSimpleDicom.cpp.

References reset().

00145                                {
00146         reset( );
00147 }

Here is the call graph for this function:


Member Function Documentation

void marSimpleDicom::SetVolumeData ( int  dimX,
int  dimY,
int  dimZ,
float  spacingX,
float  spacingY,
float  spacingZ,
float  rescaleSlope,
float  rescaleIntercept,
unsigned short *  pixels 
)

Definition at line 544 of file marSimpleDicom.cpp.

References m_nSlices, m_nX, m_nY, m_PixelSpacingColumn, m_PixelSpacingRow, m_PixelSpacingSlice, m_pSlicesPixels, m_RescaleIntercept, and m_RescaleSlope.

Referenced by wxMaracasApp::SetVolumeData().

00553 {
00554         m_pSlicesPixels         = pixels;
00555         m_nX                            = dimX;
00556         m_nY                            = dimY;
00557         m_nSlices                       = dimZ;
00558         m_PixelSpacingColumn= spacingX;
00559         m_PixelSpacingRow       = spacingY;
00560         m_PixelSpacingSlice     = spacingZ;
00561         m_RescaleSlope          = rescaleSlope;
00562         m_RescaleIntercept      = rescaleIntercept;
00563 }

Here is the caller graph for this function:

void marSimpleDicom::SetInvestSliceOrder ( bool  investSliceOrder  ) 

Function which return an *ordered* array string The string is ordered so that filename are in the right order

Definition at line 592 of file marSimpleDicom.cpp.

References _investSliceOrder.

Referenced by wxMaracasApp::SetVolumeData().

00592                                                              {
00593         _investSliceOrder=investSliceOrder;
00594 }

Here is the caller graph for this function:

void marSimpleDicom::loadActualSerie ( wxGauge *  gauge  )  [virtual]

Conversion de C-string en wxString.

Reimplemented from marFilesBase.

Definition at line 267 of file marSimpleDicom.cpp.

References loadVolumeDXMM().

Referenced by wxMaracasFrame::OnStartExperiment().

00268 {
00269         // PS ->   #ifdef DXMM
00270         loadVolumeDXMM( true , gauge);
00271         // PS ->   #else
00272         // PS ->   loadVolume( true , gauge);
00273         // PS ->   #endif
00274 }

Here is the call graph for this function:

Here is the caller graph for this function:

void marSimpleDicom::loadVolumeDXMM ( bool  force = false,
wxGauge *  gauge = NULL 
)

Todo:
thanks

Definition at line 346 of file marSimpleDicom.cpp.

References _investSliceOrder, marParameters::e_RescaleIntercept, marParameters::e_RescaleSlope, marObject::getParameters(), m_nSlices, m_nX, m_nY, m_PixelSpacingColumn, m_PixelSpacingRow, m_PixelSpacingSlice, m_pSlicesPixels, m_RescaleIntercept, m_RescaleSlope, marParameters::setDoubleParam(), and marFilesBase::SetVolume().

Referenced by loadActualSerie().

00347 {
00348 // PS ->
00349 // PS ->  FILE *stream;
00350 // PS ->  char string[20];
00351 // PS ->  wxString prefix, fileParam, fileVol, rootdir;
00352 // PS ->  rootdir=wxString("c:/temp");
00353 // PS ->  wxDir dir(rootdir);
00354 // PS ->  int dimX, dimY, dimZ;
00355 // PS ->  float spacing[3];
00356 // PS ->  vtkImageReader *volVTK = NULL;
00357 // PS ->
00358 // PS ->  fileParam = rootdir + "/" + "paramDxMM.txt";
00359 // PS ->  stream = fopen(fileParam.c_str(),"r");
00360 // PS ->
00361 // PS ->  wxString errorMsg;
00362 // PS ->  errorMsg= "Cannot open file "+fileParam;
00363 // PS ->  wxASSERT_MSG(stream!=NULL,errorMsg);
00364 // PS ->
00365 // PS ->  fscanf(stream,"%s", string);
00366 // PS ->  dimX = atoi(string);
00367 // PS ->  fscanf(stream,"%s", string);
00368 // PS ->  dimY = atoi(string);
00369 // PS ->  fscanf(stream,"%s", string);
00370 // PS ->  dimZ = atoi(string);
00371 // PS ->  fscanf(stream,"%s", string);
00372 // PS ->  spacing[0] = atof(string);
00373 // PS ->  fscanf(stream,"%s", string);
00374 // PS ->  spacing[1] = atof(string);
00375 // PS ->  fscanf(stream,"%s", string);
00376 // PS ->  spacing[2] = atof(string);
00377 // PS ->  fclose(stream);
00378 // PS ->
00379 // PS ->  getParameters( )->setDoubleParam( marParameters::e_voxel_x_dimension, spacing[0] );
00380 // PS ->  getParameters( )->setDoubleParam( marParameters::e_voxel_y_dimension, spacing[1] );
00381 // PS ->  getParameters( )->setDoubleParam( marParameters::e_voxel_z_dimension, spacing[2] );
00382 // PS ->
00383 // PS ->  if( force || !_volume )
00384 // PS ->  {
00385 // PS ->        freeVolume( );
00386 // PS ->  } // fi
00387 // PS ->
00388 // PS ->  marProgressObserver *progressEvent = marProgressObserver::New();
00389 // PS ->  progressEvent->FrameGauge = gauge;
00390 // PS ->  progressEvent->Delete();
00391 // PS ->
00392 // PS ->  prefix = rootdir + "/" + "imaDxMM";
00393 // PS ->  volVTK = vtkImageReader::New();
00394 // PS ->  volVTK->SetDataByteOrderToLittleEndian();
00395 // PS ->  volVTK->SetDataScalarTypeToUnsignedShort();
00396 // PS ->  volVTK->SetDataExtent(0, dimX-1, 0, dimY-1, 0, dimZ-1);
00397 // PS ->  volVTK->SetFilePrefix( prefix.c_str() );
00398 // PS ->  volVTK->SetFilePattern( "%s%d.raw");
00399 // PS ->  volVTK->SetDataSpacing(spacing[0],spacing[1],spacing[2]);
00400 // PS ->  volVTK->Update();
00401 // PS ->  vtkImageResample* ir = vtkImageResample::New( );
00402 // PS ->  ir->SetInput(volVTK->GetOutput());
00403 // PS ->  ir->SetDimensionality( 3 );
00404 // PS ->  ir->SetAxisOutputSpacing( 0, getParameters( )->getVoxelSize( ) );
00405 // PS ->  ir->SetAxisOutputSpacing( 1, getParameters( )->getVoxelSize( ) );
00406 // PS ->  ir->SetAxisOutputSpacing( 2, getParameters( )->getVoxelSize( ) );
00407 // PS ->  ir->InterpolateOn( );
00408 // PS ->  ir->Update( );    //important
00409 // PS ->
00410 // PS ->  _volume = new kVolume( ir->GetOutput( ) );
00411 // PS ->
00412 // PS ->  //!\todo thanks
00413 // PS ->  if (ir) ir->Delete( );
00414 // PS ->  if(volVTK) volVTK->Delete();
00415 
00416         if (m_pSlicesPixels!=NULL)
00417         {
00418                 vtkUnsignedShortArray * dataArray=vtkUnsignedShortArray::New();
00419 
00420                 int iRow,iColumn,iSlice,iPixel;
00421 
00422                 int iiSlice;
00423                 for (iiSlice=0;iiSlice<m_nSlices;iiSlice++)
00424                 {
00425                         if (_investSliceOrder==false) {
00426                                 iSlice=iiSlice;
00427                         } else {
00428                                 iSlice=(iiSlice*(-1)) + m_nSlices - 1;
00429                         }
00430 
00431                         for (iRow=0;iRow<m_nY;iRow++)
00432                         {
00433                                 for (iColumn=0;iColumn<m_nX;iColumn++)
00434                                 {
00435                                         iPixel=(m_nSlices-1-iSlice)*m_nX*m_nY + (m_nY-1-iRow)*m_nX + iColumn;
00436                                         dataArray->InsertNextValue(m_pSlicesPixels[iPixel]);
00437                                 }                               
00438                         }
00439                 }
00440                 vtkImageData*imgData=vtkImageData::New();
00441                 imgData->SetDimensions(m_nX,m_nY,m_nSlices);
00442                 imgData->SetSpacing(m_PixelSpacingRow,m_PixelSpacingColumn,m_PixelSpacingSlice);
00443                 imgData->SetOrigin(0,0,0);
00444                 imgData->SetScalarTypeToUnsignedShort();
00445                 imgData->GetPointData()->SetScalars(dataArray);
00446 
00447 
00448                 // TO DO : remplir le vtkImageResample
00449                 vtkImageResample* ir = vtkImageResample::New();
00450                 ir->SetInput(imgData);
00451                 ir->SetDimensionality( 3 );
00452                 ir->SetAxisOutputSpacing( 0, getParameters()->getVoxelSize() );
00453                 ir->SetAxisOutputSpacing( 1, getParameters()->getVoxelSize() );
00454                 ir->SetAxisOutputSpacing( 2, getParameters()->getVoxelSize() );
00455                 ir->InterpolateOn( );
00456                 ir->Update( );    //important
00457 
00458 // EED
00459 //              _volume = new kVolume( ir->GetOutput( ) );
00460                 SetVolume( new kVolume( ir->GetOutput()  )  );
00461 
00463                 if (ir) ir->Delete();
00464                 if(imgData) imgData->Delete();
00465                 if(dataArray) dataArray->Delete();
00466         getParameters( )->setDoubleParam( marParameters::e_RescaleSlope    , m_RescaleSlope     );
00467         getParameters( )->setDoubleParam( marParameters::e_RescaleIntercept, m_RescaleIntercept );
00468         }
00469 
00470 }

Here is the call graph for this function:

Here is the caller graph for this function:

void marSimpleDicom::reset (  )  [virtual]

General methods

Todo:
does this clear evrythg ?

Implements marObject.

Definition at line 566 of file marSimpleDicom.cpp.

References m_DicomInfo, m_nSlices, m_nX, m_nY, m_PixelSpacingColumn, m_PixelSpacingRow, m_PixelSpacingSlice, m_pSlicesPixels, m_RescaleIntercept, and m_RescaleSlope.

Referenced by ~marSimpleDicom().

00566                            {
00567 //              freeVolume( );
00568                 //_imageFileNames.Clear( );
00569                 
00570                 int n = m_DicomInfo.size();
00572                 for(int i=0; i<n; i++) {
00573                         m_DicomInfo[i].clear();
00574                 }
00575                 m_DicomInfo.clear();
00576                 
00577 // PS ->                if(helper)
00578 // PS ->                        delete helper;
00579 // PS ->                helper = NULL;
00580                 m_pSlicesPixels         =       NULL;
00581                 m_nX                            =       0;
00582                 m_nY                            =       0;
00583                 m_nSlices                       =       0;
00584                 m_PixelSpacingColumn=   0;
00585                 m_PixelSpacingRow       =       0;
00586                 m_PixelSpacingSlice     =       0;
00587                 m_RescaleSlope          =       1;
00588                 m_RescaleIntercept      =       0;
00589     }

Here is the caller graph for this function:

void marSimpleDicom::copyFrom ( const marObject from  )  [virtual]

Todo:
TODO

Implements marObject.

Definition at line 474 of file marSimpleDicom.cpp.

00475 { 
00476 }

bool marSimpleDicom::save ( std::ofstream &  os  )  [virtual]

Persistence methods

Implements marObject.

Definition at line 479 of file marSimpleDicom.cpp.

References m_DicomInfo.

00480 {
00481 /*  int s = _actualStudy.length( );
00482 
00483  os.write( ( const char* )&s, sizeof( int ) );
00484  os.write( ( char* )_actualStudy.c_str( ), s * sizeof( char ) );
00485 
00486   s = _actualSerie.length( );
00487 
00488    os.write( ( const char* )&s, sizeof( int ) );
00489         os.write( ( char* )_actualSerie.c_str( ), s * sizeof( char ) );*/
00490 
00491         for(std::vector<SerieInfo>::iterator it1 = m_DicomInfo.begin();
00492         it1 != m_DicomInfo.end(); it1++ )
00493     {
00494                 for(std::vector<wxArrayString>::iterator it2 = it1->begin();
00495                 it2 != it1->end(); it2++ )
00496         {
00497             for(int i=0; i<it2->GetCount(); i++)
00498                         {
00499                 //wxString temp( it2->Item(i) );
00500                 os << it2->Item(i); //temp;
00501                         }
00502         }
00503     }
00504 
00505 
00506 
00507         return( true );
00508 }

bool marSimpleDicom::load ( std::ifstream &  is  )  [virtual]

Implements marObject.

Definition at line 511 of file marSimpleDicom.cpp.

References m_DicomInfo.

00512 {
00513 /*  int s;
00514 
00515  reset( );
00516 
00517   is.read( ( char* )&s, sizeof( int ) );
00518   _actualStudy.resize( s );
00519   is.read( ( char* )_actualStudy.c_str( ), s * sizeof( char ) );
00520   is.read( ( char* )&s, sizeof( int ) );
00521   _actualSerie.resize( s );
00522         is.read( ( char* )_actualSerie.c_str( ), s * sizeof( char ) );*/
00523 
00524         for(std::vector<SerieInfo>::iterator it1 = m_DicomInfo.begin();
00525         it1 != m_DicomInfo.end(); it1++ )
00526     {
00527                 for(std::vector<wxArrayString>::iterator it2 = it1->begin();
00528                 it2 != it1->end(); it2++ )
00529         {
00530             for(int i=0; i<it2->GetCount(); i++)
00531                         {
00532                 std::string temp;
00533                 is >> temp ;
00534                 it2->Add( temp.c_str() );
00535                         }
00536         }
00537     }
00538 
00539 
00540         return( true );
00541 }

virtual wxString marFilesBase::GetPatientName (  )  [inline, virtual, inherited]

Definition at line 26 of file marDicomBase.h.

00026 {return _T(""); };

kVolume * marFilesBase::getVolume (  )  [inherited]

Definition at line 19 of file marDicomBase.cpp.

References marFilesBase::_volume.

Referenced by PriorityLoadImageBar::Action_i(), CastVolume_dummy(), GetAreaValuesFromTotalVolume_dll(), GetImageIntensity_dll(), GetNumberOfImages_dll(), marInterfaceCT::initExperiment(), marInterface::initExperiment(), marRAW2Files::loadActualSerie(), marRAW2AsciiFiles::loadActualSerie(), marRAWFiles::loadImage(), LoadTkImages_dll(), wxMaracasFrame::OnStartExperiment(), and LoadRangeImage::Start().

00019                                  {
00020         return( _volume );
00021 }

Here is the caller graph for this function:

void marFilesBase::SetVolume ( kVolume *  volume  )  [inherited]

Definition at line 23 of file marDicomBase.cpp.

References marFilesBase::_volume.

Referenced by marRAW2Files::loadActualSerie(), marRAW2AsciiFiles::loadActualSerie(), marRAWFiles::loadActualSerie(), loadVolumeDXMM(), and wxMaracasFrame::OnStartExperiment().

00023                                               {
00024         _volume=volume;
00025 }

Here is the caller graph for this function:

bool marFilesBase::volumeLoaded (  )  [inherited]

Definition at line 27 of file marDicomBase.cpp.

References marFilesBase::_volume.

00027                                 {
00028         return( _volume != NULL );
00029 }

void marFilesBase::freeVolume (  )  [inherited]

Definition at line 31 of file marDicomBase.cpp.

References marFilesBase::_volume.

Referenced by InitExperiment_dll(), marRAW2Files::loadActualSerie(), marRAW2AsciiFiles::loadActualSerie(), marRAWFiles::loadActualSerie(), and marFilesBase::~marFilesBase().

00031                               {
00032         if( _volume ) delete _volume;
00033         _volume = NULL;
00034 }

Here is the caller graph for this function:

virtual bool marFilesBase::loadImage ( int  i  )  [inline, virtual, inherited]

Reimplemented in marRAWFiles, marRAW2Files, and marRAW2AsciiFiles.

Definition at line 33 of file marDicomBase.h.

Referenced by PriorityLoadImageBar::Action_i().

00033 {return true; };

Here is the caller graph for this function:

std::vector< std::string * > * marFilesBase::GetListImages (  )  [inherited]

Definition at line 39 of file marDicomBase.cpp.

References marFilesBase::_lstString.

00040 {
00041         return &_lstString;
00042 }

void marFilesBase::CleanListImages (  )  [inherited]

Definition at line 45 of file marDicomBase.cpp.

References marFilesBase::_lstString.

Referenced by marRAW2Files::loadActualSerie(), marRAW2AsciiFiles::loadActualSerie(), and marRAWFiles::loadActualSerie().

00046 {
00047         int i,size;
00048         size=this->_lstString.size();
00049         for(i=0;i<size;i++)
00050         {
00051                 delete _lstString[i];
00052         }
00053         _lstString.clear();
00054 }

Here is the caller graph for this function:

void marFilesBase::ResetLstFileNotReaded (  )  [inherited]

Definition at line 58 of file marDicomBase.cpp.

References marFilesBase::_lstFileNotReaded.

Referenced by LoadRangeImage::Start().

00059 {
00060         _lstFileNotReaded.clear();
00061 }

Here is the caller graph for this function:

std::string marFilesBase::GetMsgLstFile (  )  [inherited]

Definition at line 65 of file marDicomBase.cpp.

References marFilesBase::_lstFileNotReaded.

Referenced by LoadRangeImage::ForceToFinisReadActiveImages().

00066 {
00067         int i,sizeLst;
00068 //EEDx44
00069         std::string msgLstFile="";
00070         sizeLst=_lstFileNotReaded.size();
00071         for (i=0;i<sizeLst;i++)
00072         {
00073                 msgLstFile = msgLstFile + *(_lstFileNotReaded[i]) ;
00074                 msgLstFile = msgLstFile + "\n";
00075         }
00076 
00077         return msgLstFile;
00078 }

Here is the caller graph for this function:

void marObject::setParameters ( marParameters p  )  [inherited]

Parameters assignation methods.

You can assign a marParameters object by reference (setParameters) or by value (copyParameters). Besides, if you want to make your actual reference to be by value, call makeACopyParameters.

Definition at line 34 of file marObject.cpp.

References marObject::_parameters, and marObject::_parametersCopied.

00035 {
00036     if( _parametersCopied && _parameters != NULL ) delete _parameters;
00037     _parameters = p;
00038     _parametersCopied = false;
00039 }

void marObject::copyParameters ( marParameters p  )  [inherited]

Definition at line 42 of file marObject.cpp.

References marObject::_parameters, and marObject::_parametersCopied.

00043 {
00044     if( _parametersCopied && _parameters != NULL ) delete _parameters;
00045     _parameters = new marParameters( );
00046     *_parameters = *p;
00047     _parametersCopied = true;
00048 }

void marObject::makeACopyParameters (  )  [inline, inherited]

Definition at line 48 of file marObject.h.

00049     {
00050             copyParameters( _parameters );
00051     }

marParameters* marObject::getParameters (  )  [inline, inherited]

Parameters analizers.

Definition at line 55 of file marObject.h.

Referenced by marAxisCT::adjustWall(), marAxis::calculateSignal(), marAxis::create2Dcontour(), marAxis::create2DDiameterMax(), marAxis::create2DDiameterMin(), marAxisCT::create2DDiametersMax(), marAxisCT::create2DDiametersMin(), marAxis::create3DSlice(), marAxis::createContour(), marAxisCT::createContours(), marAxis::createSlice(), marAxis::doSpline(), marAxisCT::extractLumen(), marExperiment::extractVascularTree(), marAxisCT::generatePoints(), marDynData::getActualVoxel(), marAxisCT::histogram(), marExperiment::initExperiment(), marExperiment::load(), marAxis::load(), marRAW2Files::loadActualSerie(), marRAW2AsciiFiles::loadActualSerie(), marRAWFiles::loadActualSerie(), marDynData::loadData(), loadVolumeDXMM(), wxEmptyPanelWidget_2::OnBtnExtractTree_MH_JFC(), wxSurfaceWidget::OnManualAxis(), vtk3DQuantSurfaceWidget::Set3DSliceActor(), vtk3DSurfaceWidget::SetInitialPoint(), marAxisCT::setStartIndex(), marExperimentCT::updateCalcPercentage(), marAxisCT::updateCalcPercentage(), marExperimentCT::updateDiscontinuityThreshold(), marExperimentCT::updateLumenPercentage(), and marAxisCT::updateLumenPercentage().

00055 { return( _parameters ); };

Here is the caller graph for this function:

bool marObject::parametersOwned (  )  [inline, inherited]

Definition at line 56 of file marObject.h.

00056 { return( _parametersCopied ); };

bool marObject::save ( std::string &  nw  )  [inherited]

Persistence methods

Definition at line 51 of file marObject.cpp.

References marObject::save().

00052 {
00053     std::ofstream os( nw.c_str( ) );
00054 
00055     if( os ) {
00056 
00057         save( os );
00058         os.close( );
00059         return( true );
00060 
00061     } // fi
00062 
00063     return( false );
00064 }

Here is the call graph for this function:

bool marObject::load ( std::string &  nr  )  [inherited]

Definition at line 67 of file marObject.cpp.

References marObject::load().

00068 {
00069     std::ifstream is( nr.c_str( ) );
00070 
00071     if( is ) {
00072 
00073         load( is );
00074         is.close( );
00075         return( true );
00076 
00077     } // fi
00078 
00079     return( false );
00080 }

Here is the call graph for this function:


Member Data Documentation

std::vector< SerieInfo > marSimpleDicom::m_DicomInfo [private]

Definition at line 196 of file marSimpleDicom.h.

Referenced by load(), reset(), and save().

unsigned int marSimpleDicom::m_ActualStudy [private]

Definition at line 197 of file marSimpleDicom.h.

unsigned int marSimpleDicom::m_ActualSerie [private]

Definition at line 198 of file marSimpleDicom.h.

unsigned short* marSimpleDicom::m_pSlicesPixels [private]

Definition at line 201 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

int marSimpleDicom::m_nX [private]

Definition at line 202 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

int marSimpleDicom::m_nY [private]

Definition at line 202 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

int marSimpleDicom::m_nSlices [private]

Definition at line 202 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

float marSimpleDicom::m_PixelSpacingColumn [private]

Definition at line 203 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

float marSimpleDicom::m_PixelSpacingRow [private]

Definition at line 203 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

float marSimpleDicom::m_PixelSpacingSlice [private]

Definition at line 203 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

float marSimpleDicom::m_RescaleSlope [private]

Definition at line 204 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

float marSimpleDicom::m_RescaleIntercept [private]

Definition at line 204 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), reset(), and SetVolumeData().

bool marSimpleDicom::_investSliceOrder [private]

Definition at line 205 of file marSimpleDicom.h.

Referenced by loadVolumeDXMM(), and SetInvestSliceOrder().

std::vector< std::string*> marFilesBase::_lstString [protected, inherited]

Definition at line 44 of file marDicomBase.h.

Referenced by marFilesBase::CleanListImages(), marFilesBase::GetListImages(), marRAW2Files::loadActualSerie(), marRAW2AsciiFiles::loadActualSerie(), marRAWFiles::loadActualSerie(), and marRAWFiles::loadImage().

std::vector< char*> marFilesBase::_lstFileNotReaded [protected, inherited]

Definition at line 45 of file marDicomBase.h.

Referenced by marFilesBase::GetMsgLstFile(), marRAWFiles::loadImage(), and marFilesBase::ResetLstFileNotReaded().


The documentation for this class was generated from the following files:
Generated on Wed Jul 29 16:36:02 2009 for creaMaracasVisu_lib by  doxygen 1.5.3