** 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_