+// gdcmDictEntry
+
#include <fstream>
+#include <stdlib.h> // For getenv
#include "gdcm.h"
#include "gdcmUtil.h"
+#define PUB_DICT_NAME "DicomV3Dict"
+#define PUB_DICT_PATH "../Dicts/"
+#define PUB_DICT_FILENAME "dicomV3.dic"
gdcmDictSet::gdcmDictSet(void) {
+ SetDictPath();
if (! LoadDicomV3Dict())
return;
}
+void gdcmDictSet::SetDictPath(void) {
+ const char* EnvPath = (char*)0;
+ EnvPath = getenv("GDCM_DICT_PATH");
+ if (EnvPath && (strlen(EnvPath) != 0)) {
+ DictPath = EnvPath;
+ if (DictPath[DictPath.length() -1] != '/' )
+ DictPath += '/';
+ dbg.Verbose(1, "gdcmDictSet::SetDictPath:",
+ "Dictionary path set from environnement");
+ } else
+ DictPath = PUB_DICT_PATH;
+}
+
int gdcmDictSet::LoadDicomV3Dict(void) {
- if (dicts.count(PUBDICTNAME))
+ if (dicts.count(PUB_DICT_NAME))
return 1;
- return LoadDictFromFile(PUBDICTFILENAME, PUBDICTNAME);
+ return LoadDictFromFile(DictPath + PUB_DICT_FILENAME, PUB_DICT_NAME);
}
-int gdcmDictSet::LoadDictFromFile(char * FileName, DictKey Name) {
- gdcmDict *NewDict = new gdcmDict(FileName);
- dicts[Name] = NewDict;
+int gdcmDictSet::LoadDictFromFile(string FileName, DictKey Name) {
+ gdcmDict *NewDict = new gdcmDict(FileName.c_str());
+ dicts[Name] = NewDict;
+ return 0; //FIXME if this is a dummy return make the method void
}
void gdcmDictSet::Print(ostream& os) {
}
gdcmDict * gdcmDictSet::GetDefaultPublicDict() {
- return GetDict(PUBDICTNAME);
+ return GetDict(PUB_DICT_NAME);
}