comparison OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.h @ 4682:d38a7040474a

FromDcmtkBridge::RemovePath() and FromDcmtkBridge::ReplacePath()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 07 Jun 2021 18:35:46 +0200
parents 5b929e6b3c36
children 7182f5732480
comparison
equal deleted inserted replaced
4681:c5528c7847a6 4682:d38a7040474a
23 #pragma once 23 #pragma once
24 24
25 #include "ITagVisitor.h" 25 #include "ITagVisitor.h"
26 #include "../DicomFormat/DicomElement.h" 26 #include "../DicomFormat/DicomElement.h"
27 #include "../DicomFormat/DicomMap.h" 27 #include "../DicomFormat/DicomMap.h"
28 #include "../DicomFormat/DicomPath.h"
28 29
29 #include <dcmtk/dcmdata/dcdatset.h> 30 #include <dcmtk/dcmdata/dcdatset.h>
30 #include <dcmtk/dcmdata/dcmetinf.h> 31 #include <dcmtk/dcmdata/dcmetinf.h>
31 #include <dcmtk/dcmdata/dcpixseq.h> 32 #include <dcmtk/dcmdata/dcpixseq.h>
32 #include <dcmtk/dcmdata/dcfilefo.h> 33 #include <dcmtk/dcmdata/dcfilefo.h>
56 #if ORTHANC_BUILD_UNIT_TESTS == 1 57 #if ORTHANC_BUILD_UNIT_TESTS == 1
57 FRIEND_TEST(FromDcmtkBridge, FromJson); 58 FRIEND_TEST(FromDcmtkBridge, FromJson);
58 #endif 59 #endif
59 60
60 friend class ParsedDicomFile; 61 friend class ParsedDicomFile;
62
63 public:
64 // New in Orthanc 1.9.4
65 class ORTHANC_PUBLIC IDicomPathVisitor : public boost::noncopyable
66 {
67 public:
68 virtual ~IDicomPathVisitor()
69 {
70 }
71
72 virtual void Visit(DcmItem& item,
73 const DicomTag& tag) = 0;
74 };
75
61 76
62 private: 77 private:
63 FromDcmtkBridge(); // Pure static class 78 FromDcmtkBridge(); // Pure static class
64 79
65 static void DatasetToJson(Json::Value& parent, 80 static void DatasetToJson(Json::Value& parent,
224 239
225 static bool LookupOrthancTransferSyntax(DicomTransferSyntax& target, 240 static bool LookupOrthancTransferSyntax(DicomTransferSyntax& target,
226 DcmDataset& dicom); 241 DcmDataset& dicom);
227 242
228 static void LogMissingTagsForStore(DcmDataset& dicom); 243 static void LogMissingTagsForStore(DcmDataset& dicom);
244
245 static void Apply(IDicomPathVisitor& visitor,
246 DcmDataset& dataset,
247 const DicomPath& path);
248
249 static void RemovePath(DcmDataset& dataset,
250 const DicomPath& path);
251
252 static void ReplacePath(DcmDataset& dataset,
253 const DicomPath& path,
254 const DcmElement& element);
229 }; 255 };
230 } 256 }