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 #ifndef I2D_H
00030 #define I2D_H
00031
00032 #include "dcmtk/config/osconfig.h"
00033 #include "dcmtk/dcmdata/libi2d/i2doutpl.h"
00034 #include "dcmtk/dcmdata/libi2d/i2dplvlp.h"
00035 #include "dcmtk/dcmdata/libi2d/i2dplsc.h"
00036 #include "dcmtk/dcmdata/libi2d/i2djpgs.h"
00037 #include "dcmtk/dcmdata/dcpixel.h"
00038
00039 class Image2Dcm
00040 {
00041
00042 public:
00043
00047 Image2Dcm();
00048
00059 OFCondition convert(I2DImgSource *inputPlug,
00060 I2DOutputPlug *outPlug,
00061 DcmDataset*& resultDset,
00062 E_TransferSyntax& proposedTS);
00063
00069 void setTemplateFile(const OFString& file);
00070
00075 void setSeriesFrom(const OFString& file);
00076
00081 void setStudyFrom(const OFString& file);
00082
00089 void setIncrementInstanceNumber(OFBool incInstNo);
00090
00101 void setISOLatin1(OFBool insertLatin1);
00102
00114 void setOverrideKeys(const OFList<OFString>& ovkeys);
00115
00126 void setValidityChecking(OFBool doChecks,
00127 OFBool insertMissingType2 = OFTrue,
00128 OFBool inventMissingType1 = OFTrue);
00129
00133 ~Image2Dcm();
00134
00135 protected:
00136
00142 void cleanupTemplate(DcmDataset *targetDset);
00143
00149 OFCondition applyStudyOrSeriesFromFile(DcmDataset *targetDset);
00150
00155 OFCondition incrementInstanceNumber(DcmDataset *targetDset);
00156
00162 OFCondition generateUIDs(DcmDataset *dset);
00163
00171 OFCondition readAndInsertPixelData( I2DImgSource* imageSource,
00172 DcmDataset* dset,
00173 E_TransferSyntax& outputTS);
00174
00180 OFString isValid(DcmDataset& dataset) const;
00181
00186 OFCondition applyOverrideKeys(DcmDataset *outputDset);
00187
00193 OFCondition insertLatin1(DcmDataset *outputDset);
00194
00203 OFString checkAndInventType1Attrib(const DcmTagKey& key,
00204 DcmDataset* targetDset,
00205 const OFString& defaultValue = "") const;
00206
00207
00214 OFString checkAndInventType2Attrib(const DcmTagKey& key,
00215 DcmDataset* targetDset) const;
00216
00217 private:
00218
00226 OFCondition insertEncapsulatedPixelData(DcmDataset* dset,
00227 char *pixData,
00228 Uint32 length,
00229 const E_TransferSyntax& outputTS) const;
00230
00231
00232
00235 OFList<OFString> m_overrideKeys;
00236
00240 OFString m_templateFile;
00241
00243 OFBool m_readStudyLevel;
00244
00246 OFBool m_readSeriesLevel;
00247
00249 OFString m_studySeriesFile;
00250
00252 OFBool m_incInstNoFromFile;
00253
00256 OFBool m_disableAttribChecks;
00257
00260 OFBool m_inventMissingType2Attribs;
00261
00264 OFBool m_inventMissingType1Attribs;
00265
00269 OFBool m_insertLatin1;
00270 };
00271
00272 #endif // I2D_H
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326