These are following last friday's meeting.
This collection of objects is designed to represents a DICOMDIR file in memory.
These are only empty templates bound to be completed by JPR
--- /dev/null
+// gdcmImage.cxx
+//-----------------------------------------------------------------------------
+#include "gdcmImage.h"
+
+gdcmImage::gdcmImage() {
+
+}
+
+
+gdcmImage::~gdcmImage() {
+
+}
+
+
+
+std::string gdcmImage::GetEntryByNumber(guint16 group, guint16 element) {
+ return "";
+}
+
+
+std::string gdcmImage::GetEntryByName(TagName name) {
+ return "";
+}
+
--- /dev/null
+// gdcmImage.h
+//-----------------------------------------------------------------------------
+#ifndef GDCMIMAGE_H
+#define GDCMIMAGE_H
+
+#include "gdcmObject.h"
+
+//-----------------------------------------------------------------------------
+
+
+//-----------------------------------------------------------------------------
+
+class GDCM_EXPORT gdcmImage : public gdcmObject {
+public:
+
+ gdcmImage();
+ ~gdcmImage();
+
+ std::string GetEntryByNumber(guint16 group, guint16 element);
+ std::string GetEntryByName(TagName name);
+
+
+};
+
+//-----------------------------------------------------------------------------
+#endif
--- /dev/null
+// gdcmObject.h
+//-----------------------------------------------------------------------------
+#ifndef GDCMOBJECT_H
+#define GDCMOBJECT_H
+
+#include <string>
+#include <list>
+#include "gdcmCommon.h"
+
+
+//-----------------------------------------------------------------------------
+
+typedef std::list<std::string> lstring;
+
+//-----------------------------------------------------------------------------
+
+class gdcmObject {
+public:
+
+ virtual std::string GetEntryByNumber(guint16 group, guint16 element)=0;
+ virtual std::string GetEntryByName(TagName name)=0;
+
+protected:
+
+ //to modify (I don't know the list type) : both iterators (beginning and end)
+ lstring::iterator beginIter;
+ lstring::iterator endIter;
+
+ //pointer to the data list
+ lstring *objectData;
+
+};
+
+//-----------------------------------------------------------------------------
+#endif
--- /dev/null
+// gdcmPatient.cxx
+//-----------------------------------------------------------------------------
+#include "gdcmPatient.h"
+
+gdcmPatient::gdcmPatient() {
+
+}
+
+
+gdcmPatient::~gdcmPatient() {
+
+}
+
+
+
+std::string gdcmPatient::GetEntryByNumber(guint16 group, guint16 element) {
+ return "";
+}
+
+
+std::string gdcmPatient::GetEntryByName(TagName name) {
+ return "";
+}
+
--- /dev/null
+// gdcmPatient.h
+//-----------------------------------------------------------------------------
+#ifndef GDCMPATIENT_H
+#define GDCMPATIENT_H
+
+#include "gdcmObject.h"
+#include "gdcmStudy.h"
+
+//-----------------------------------------------------------------------------
+
+typedef std::list<gdcmStudy> lStudy;
+
+//-----------------------------------------------------------------------------
+
+class GDCM_EXPORT gdcmPatient : public gdcmObject { //
+public:
+
+ gdcmPatient();
+ ~gdcmPatient();
+
+ std::string GetEntryByNumber(guint16 group, guint16 element);
+ std::string GetEntryByName(TagName name);
+
+ inline lStudy GetStudies() {return studies;};
+
+private:
+
+ lStudy studies;
+
+};
+
+//-----------------------------------------------------------------------------
+#endif
--- /dev/null
+// gdcmSequence.cxx
+//-----------------------------------------------------------------------------
+#include "gdcmSequence.h"
+
+gdcmSequence::gdcmSequence() {
+
+}
+
+
+gdcmSequence::~gdcmSequence() {
+
+}
+
+
+
+std::string gdcmSequence::GetEntryByNumber(guint16 group, guint16 element) {
+ return "";
+}
+
+
+std::string gdcmSequence::GetEntryByName(TagName name) {
+ return "";
+}
+
--- /dev/null
+// gdcmSequence.h
+//-----------------------------------------------------------------------------
+#ifndef GDCMSEQUENCE_H
+#define GDCMSEQUENCE_H
+
+#include "gdcmObject.h"
+#include "gdcmImage.h"
+
+//-----------------------------------------------------------------------------
+
+typedef std::list<gdcmImage> lImage;
+
+//-----------------------------------------------------------------------------
+
+class GDCM_EXPORT gdcmSequence : public gdcmObject {
+public:
+
+ gdcmSequence();
+ ~gdcmSequence();
+
+ std::string GetEntryByNumber(guint16 group, guint16 element);
+ std::string GetEntryByName(TagName name);
+
+ inline lImage GetImages() {return images;};
+
+private:
+
+ lImage images;
+
+};
+
+//-----------------------------------------------------------------------------
+#endif
--- /dev/null
+// gdcmStudy.cxx
+//-----------------------------------------------------------------------------
+#include "gdcmStudy.h"
+
+gdcmStudy::gdcmStudy() {
+
+}
+
+
+gdcmStudy::~gdcmStudy() {
+
+}
+
+
+
+std::string gdcmStudy::GetEntryByNumber(guint16 group, guint16 element) {
+ return "";
+}
+
+
+std::string gdcmStudy::GetEntryByName(TagName name) {
+ return "";
+}
+
--- /dev/null
+// gdcmStudy.h
+//-----------------------------------------------------------------------------
+#ifndef GDCMSTUDY_H
+#define GDCMSTUDY_H
+
+#include "gdcmObject.h"
+#include "gdcmSequence.h"
+
+//-----------------------------------------------------------------------------
+
+typedef std::list<gdcmSequence> lSequence;
+
+//-----------------------------------------------------------------------------
+
+class GDCM_EXPORT gdcmStudy : public gdcmObject {
+public:
+
+ gdcmStudy();
+ ~gdcmStudy();
+
+ std::string GetEntryByNumber(guint16 group, guint16 element);
+ std::string GetEntryByName(TagName name);
+
+ inline lSequence GetSequences() {return sequences;};
+
+private:
+
+ lSequence sequences;
+
+};
+
+//-----------------------------------------------------------------------------
+#endif