00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
#ifndef DSRSOPRF_H
00037
#define DSRSOPRF_H
00038
00039
#include "osconfig.h"
00040
00041
#include "oflist.h"
00042
#include "ofstring.h"
00043
#include "ofconsol.h"
00044
#include "ofcond.h"
00045
00046
#include "dcitem.h"
00047
#include "dctagkey.h"
00048
00049
#include "dsrtypes.h"
00050
00051
00052
00053
00054
00055
00058 class DSRSOPInstanceReferenceList
00059 :
public DSRTypes
00060 {
00061
00062
public:
00063
00066 struct InstanceStruct
00067 {
00072
InstanceStruct(
const OFString &sopClassUID,
00073
const OFString &instanceUID);
00074
00076 const OFString SOPClassUID;
00078 const OFString InstanceUID;
00079 };
00080
00083 struct SeriesStruct
00084 {
00088
SeriesStruct(
const OFString &seriesUID);
00089
00092
~SeriesStruct();
00093
00097 size_t
getNumberOfInstances()
const;
00098
00104
OFCondition read(
DcmItem &dataset,
00105
OFConsole *logStream);
00106
00112
OFCondition write(
DcmItem &dataset,
00113
OFConsole *logStream)
const;
00114
00120
OFCondition readXML(
const DSRXMLDocument &doc,
00121
DSRXMLCursor cursor);
00122
00128
OFCondition writeXML(ostream &stream,
00129
const size_t flags = 0)
const;
00130
00135
InstanceStruct *
gotoInstance(
const OFString &instanceUID);
00136
00141
OFCondition gotoFirstItem();
00142
00147
OFCondition gotoNextItem();
00148
00155
OFCondition addItem(
const OFString &sopClassUID,
00156
const OFString &instanceUID);
00157
00162
OFCondition removeItem();
00163
00165 const OFString SeriesUID;
00167 OFString RetrieveAETitle;
00169 OFString StorageMediaFileSetID;
00171 OFString StorageMediaFileSetUID;
00172
00174 OFList<InstanceStruct *> InstanceList;
00176
OFListIterator(
InstanceStruct *) Iterator;
00177 };
00178
00181 struct
StudyStruct
00182 {
00186 StudyStruct(
const OFString &studyUID);
00187
00190 ~StudyStruct();
00191
00195 size_t
getNumberOfInstances()
const;
00196
00202
OFCondition read(
DcmItem &dataset,
00203
OFConsole *logStream);
00204
00210
OFCondition write(
DcmItem &dataset,
00211
OFConsole *logStream)
const;
00212
00218
OFCondition readXML(
const DSRXMLDocument &doc,
00219
DSRXMLCursor cursor);
00220
00226
OFCondition writeXML(ostream &stream,
00227
const size_t flags = 0)
const;
00228
00233
SeriesStruct *gotoSeries(
const OFString &seriesUID);
00234
00239
InstanceStruct *
gotoInstance(
const OFString &instanceUID);
00240
00245
OFCondition gotoFirstItem();
00246
00252
OFCondition gotoNextItem();
00253
00261
OFCondition addItem(
const OFString &seriesUID,
00262
const OFString &sopClassUID,
00263
const OFString &instanceUID);
00264
00269
OFCondition removeItem();
00270
00275
void removeIncompleteItems();
00276
00278 const OFString StudyUID;
00279
00281 OFList<SeriesStruct *> SeriesList;
00283
OFListIterator(
SeriesStruct *) Iterator;
00284 };
00285
00286
00290
DSRSOPInstanceReferenceList(const DcmTagKey &sequence);
00291
00294 ~
DSRSOPInstanceReferenceList();
00295
00298
void clear();
00299
00303 OFBool empty() const;
00304
00308 size_t getNumberOfInstances() const;
00309
00319
OFCondition read(
DcmItem &dataset,
00320
OFConsole *logStream);
00321
00328
OFCondition write(
DcmItem &dataset,
00329
OFConsole *logStream) const;
00330
00341
OFCondition readXML(const
DSRXMLDocument &doc,
00342
DSRXMLCursor cursor,
00343 const size_t flags);
00344
00350
OFCondition writeXML(ostream &stream,
00351 const size_t flags = 0) const;
00352
00363
OFCondition addItem(const
OFString &studyUID,
00364 const
OFString &seriesUID,
00365 const
OFString &sopClassUID,
00366 const
OFString &instanceUID);
00367
00372
OFCondition removeItem();
00373
00380
OFCondition removeItem(const
OFString &sopClassUID,
00381 const
OFString &instanceUID);
00382
00390
OFCondition removeItem(const
OFString &studyUID,
00391 const
OFString &seriesUID,
00392 const
OFString &instanceUID);
00393
00399
OFCondition gotoItem(const
OFString &sopClassUID,
00400 const
OFString &instanceUID);
00401
00408
OFCondition gotoItem(const
OFString &studyUID,
00409 const
OFString &seriesUID,
00410 const
OFString &instanceUID);
00411
00418
OFCondition gotoFirstItem();
00419
00428
OFCondition gotoNextItem();
00429
00434 const
OFString &getStudyInstanceUID(
OFString &stringValue) const;
00435
00440 const
OFString &getSeriesInstanceUID(
OFString &stringValue) const;
00441
00446 const
OFString &getSOPInstanceUID(
OFString &stringValue) const;
00447
00452 const
OFString &getSOPClassUID(
OFString &stringValue) const;
00453
00459 const
OFString &getRetrieveAETitle(
OFString &stringValue) const;
00460
00465 const
OFString &getStorageMediaFileSetID(
OFString &stringValue) const;
00466
00471 const
OFString &getStorageMediaFileSetUID(
OFString &stringValue) const;
00472
00478
OFCondition setRetrieveAETitle(const
OFString &value);
00479
00484
OFCondition setStorageMediaFileSetID(const
OFString &value);
00485
00490
OFCondition setStorageMediaFileSetUID(const
OFString &value);
00491
00492
00493 protected:
00494
00499 StudyStruct *gotoStudy(const
OFString &studyUID);
00500
00504 StudyStruct *getCurrentStudy() const;
00505
00509
SeriesStruct *getCurrentSeries() const;
00510
00514
InstanceStruct *getCurrentInstance() const;
00515
00520
void removeIncompleteItems();
00521
00522
00523 private:
00524
00526 const DcmTagKey SequenceTag;
00527
00529 OFList<StudyStruct *> StudyList;
00531 OFListIterator(StudyStruct *) Iterator;
00532
00533
00534
DSRSOPInstanceReferenceList();
00535
00536
DSRSOPInstanceReferenceList(const
DSRSOPInstanceReferenceList &);
00537
00538 DSRSOPInstanceReferenceList &operator=(const DSRSOPInstanceReferenceList &);
00539 };
00540
00541
00542 #endif
00543
00544
00545
00546
00547
00548
00549
00550
00551
00552
00553
00554
00555
00556
00557
00558
00559
00560
00561
00562
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573