/*****************************************************************************
** FILE IDENTIFICATION
**
-** Name: ctndicomp.cpp
+** Name: ctndicomp.cpp
** Purpose: Interface to CTN Dicom header
-** Programmer: Kevin Rosenberg
-** Date Started: March 2001
+** Programmer: Kevin Rosenberg
+** Date Started: March 2001
**
** This is part of the CTSim program
-** Copyright (c) 1983-2001 Kevin Rosenberg
-**
-** $Id: ctndicom.h,v 1.2 2001/03/02 02:08:14 kevin Exp $
+** Copyright (c) 1983-2009 Kevin Rosenberg
**
** 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 <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef GCCSUNOS
+#include <sys/types.h>
+#endif
+
+#include "ctsupport.h"
+
+#if SIZEOF_LONG == 4
+#define LONGSIZE 32
+#elif SIZEOF_LONG ==8
+#define LONGSIZE 64
+#endif
+
+#if SIZEOF_INT == 2
+#define INTSIZE 16
+#elif SIZEOF_INT == 4
+#define INTSIZE 32
+#elif SIZEOF_INT == 8
+#define INTSIZE 64
+#endif
+
+#if SIZEOF_SHORT == 2
+#define SHORTSIZE 16
+#elif SIZEOF_SHORT == 4
+#define SHORTSIZE 32
+#endif
-#include "dicom.h"
-#include "condition.h"
-#include "lst.h"
-#include "dicom_objects.h"
+#include "dicom.h"
+#include "ctnthread.h"
+#include "lst.h"
+#include "condition.h"
+#include "dicom_objects.h"
+#include <string>
class ImageFile;
class Projections;
Projections* m_pProjections;
DCM_OBJECT* m_pFile;
- void loadImage(unsigned short iNRows, unsigned short iNCols, unsigned short iBitsAllocated,
+ void loadImage(unsigned short iNRows, unsigned short iNCols, unsigned short iBitsAllocated,
unsigned short iBitsStored, unsigned short iHighBit, unsigned short iPixRep);
void loadProjections();
Projections* getProjections() const {return m_pProjections;}
};
+
+class DicomExporter {
+private:
+ const ImageFile* m_pImageFile;
+ std::string m_strFilename;
+ bool m_bFail;
+ std::string m_strFailMessage;
+ DCM_OBJECT* m_pObject;
+
+ bool createDicomObject();
+
+public:
+
+ DicomExporter (ImageFile* pImageFile);
+ ~DicomExporter();
+
+ bool writeFile (const char* const pszFilename);
+ bool fail() const {return m_bFail;}
+ const std::string& failMessage() const {return m_strFailMessage;}
+};
+
#endif // HAVE_CTN_DICOM
#endif // _CTNDICOM_H_