r593: no message
[ctsim.git] / include / ctndicom.h
index 020ac3a0c1e2daef531d950aad758ced5c50dad2..701434b0e0542628040616ae7bd913f78c622733 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: ctndicom.h,v 1.1 2001/03/01 07:30:49 kevin Exp $
+**  $Id: ctndicom.h,v 1.2 2001/03/02 02:08:14 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
 #define _CTNDICOM_H_
 #if HAVE_CTN_DICOM
 
+#include <string>
+
+#include       "dicom.h"
+#include       "condition.h"
+#include       "lst.h"
+#include       "dicom_objects.h"
+
+class ImageFile;
+class Projections;
+
+class DicomImporter {
+private:
+  std::string m_strFilename;
+  bool m_bFail;
+  std::string m_strFailMessage;
+  int m_iContents;
+  ImageFile* m_pImageFile;
+  Projections* m_pProjections;
+  DCM_OBJECT* m_pFile;
+
+  void loadImage(unsigned short iNRows, unsigned short iNCols, unsigned short iBitsAllocated, 
+            unsigned short iBitsStored, unsigned short iHighBit, unsigned short iPixRep);
+
+  void loadProjections();
+
+  enum {
+    TAG_GROUP_SOMATOM = 0x7fe1,
+    TAG_MEMBER_SOMATOM_DATA = 0x1000,
+  };
+
+public:
+  enum {
+    DICOM_CONTENTS_INVALID = -1,
+    DICOM_CONTENTS_IMAGE,
+    DICOM_CONTENTS_PROJECTIONS,
+  };
+
+  DicomImporter (const char* const pszFile);
+  ~DicomImporter();
+
+  bool testImage() const {return m_iContents == DICOM_CONTENTS_IMAGE;}
+  bool testProjections() const {return m_iContents == DICOM_CONTENTS_PROJECTIONS;}
+  bool fail() const {return m_bFail;}
+  const std::string& failMessage() const {return m_strFailMessage;}
+
+  ImageFile* getImageFile() const {return m_pImageFile;}
+  Projections* getProjections() const {return m_pProjections;}
+};
 
 #endif // HAVE_CTN_DICOM
 #endif // _CTNDICOM_H_