X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=libctsim%2Fctndicom.cpp;h=4a96d02bd1470bc097dcb2c9bf57e000b52a48f6;hb=6bcab27e89795df59defa160aff6b9831468c4d9;hp=2209fba2706e40236729782e5dfcaac15a53edad;hpb=663448e3173a19f054952806d8f8eca2fe59ec90;p=ctsim.git diff --git a/libctsim/ctndicom.cpp b/libctsim/ctndicom.cpp index 2209fba..4a96d02 100644 --- a/libctsim/ctndicom.cpp +++ b/libctsim/ctndicom.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: ctndicom.cpp,v 1.12 2001/03/13 14:53:44 kevin Exp $ +** $Id: ctndicom.cpp,v 1.14 2002/05/08 08:55:45 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 @@ -40,12 +40,21 @@ DicomImporter::DicomImporter (const char* const pszFile) : m_pFile(NULL), m_strFilename(pszFile), m_bFail(false), m_iContents(DICOM_CONTENTS_INVALID), m_pImageFile(NULL), m_pProjections(NULL) { - unsigned long lOptions = DCM_ORDERLITTLEENDIAN; + unsigned long lOptions = DCM_ORDERLITTLEENDIAN | DCM_FORMATCONVERSION; DCM_Debug (FALSE); - if (DCM_OpenFile (pszFile, lOptions, &m_pFile) != DCM_NORMAL) { - m_bFail = true;; - m_strFailMessage = "Can't open file "; - m_strFailMessage += m_strFilename; + + CONDITION cond = DCM_OpenFile (pszFile, lOptions, &m_pFile); + if (cond != DCM_NORMAL) { + m_bFail = true; + char textbuf [2048]; + CONDITION cond2 = COND_TopCondition (&cond, textbuf, sizeof(textbuf)); + cond2 = DCM_NORMAL; // testing + if (cond2 != DCM_NORMAL) { + m_strFailMessage = "DCM_OpenFile failure: "; + m_strFailMessage += m_strFilename; + } else + m_strFailMessage = textbuf; + return; } @@ -191,7 +200,7 @@ DicomImporter::loadProjections() } DCM_TAG somatomTag = DCM_MAKETAG(TAG_GROUP_SOMATOM, TAG_MEMBER_SOMATOM_DATA); - DCM_ELEMENT elemProjections = {somatomTag, DCM_UNKNOWN, "", 1, 0, NULL}; + DCM_ELEMENT elemProjections = {somatomTag, DCM_UN, "", 1, 0, NULL}; if (DCM_GetElementSize (&m_pFile, elemProjections.tag, &lRtnLength) != DCM_NORMAL) { m_bFail = true; m_strFailMessage = "Can't find projection data";