Mercurial > hg > orthanc
annotate OrthancServer/DicomModification.cpp @ 2314:c54c9523adf8 issue-46-anonymization
add basic profile
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 12 Jul 2017 22:09:27 +0200 |
parents | d19e716b79fa |
children | 65ffba10cace |
rev | line source |
---|---|
786 | 1 /** |
2 * Orthanc - A Lightweight, RESTful DICOM Store | |
1900 | 3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
1288
6e7e5ed91c2d
upgrade to year 2015
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1279
diff
changeset
|
4 * Department, University Hospital of Liege, Belgium |
2244
a3a65de1840f
shared copyright with osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2209
diff
changeset
|
5 * Copyright (C) 2017 Osimis, Belgium |
786 | 6 * |
7 * This program is free software: you can redistribute it and/or | |
8 * modify it under the terms of the GNU General Public License as | |
9 * published by the Free Software Foundation, either version 3 of the | |
10 * License, or (at your option) any later version. | |
11 * | |
12 * In addition, as a special exception, the copyright holders of this | |
13 * program give permission to link the code of its release with the | |
14 * OpenSSL project's "OpenSSL" library (or with modified versions of it | |
15 * that use the same license as the "OpenSSL" library), and distribute | |
16 * the linked executables. You must obey the GNU General Public License | |
17 * in all respects for all of the code used other than "OpenSSL". If you | |
18 * modify file(s) with this exception, you may extend this exception to | |
19 * your version of the file(s), but you are not obligated to do so. If | |
20 * you do not wish to do so, delete this exception statement from your | |
21 * version. If you delete this exception statement from all source files | |
22 * in the program, then also delete it here. | |
23 * | |
24 * This program is distributed in the hope that it will be useful, but | |
25 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
27 * General Public License for more details. | |
28 * | |
29 * You should have received a copy of the GNU General Public License | |
30 * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
31 **/ | |
32 | |
33 | |
831
84513f2ee1f3
pch for unit tests and server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
824
diff
changeset
|
34 #include "PrecompiledHeadersServer.h" |
786 | 35 #include "DicomModification.h" |
36 | |
1486
f967bdf8534e
refactoring to Logging.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1288
diff
changeset
|
37 #include "../Core/Logging.h" |
786 | 38 #include "../Core/OrthancException.h" |
790 | 39 #include "FromDcmtkBridge.h" |
786 | 40 |
795 | 41 #include <memory> // For std::auto_ptr |
42 | |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
43 |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
44 static const std::string ORTHANC_DEIDENTIFICATION_METHOD_2008 = |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
45 "Orthanc " ORTHANC_VERSION " - PS 3.15-2008 Table E.1-1"; |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
46 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
47 static const std::string ORTHANC_DEIDENTIFICATION_METHOD_2017c = |
2314 | 48 "Orthanc " ORTHANC_VERSION " - PS 3.15-2017c Table E.1-1 Basic Profile"; |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
49 |
786 | 50 namespace Orthanc |
51 { | |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
52 void DicomModification::RemoveInternal(const DicomTag& tag) |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
53 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
54 Replacements::iterator it = replacements_.find(tag); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
55 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
56 if (it != replacements_.end()) |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
57 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
58 delete it->second; |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
59 replacements_.erase(it); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
60 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
61 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
62 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
63 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
64 void DicomModification::ReplaceInternal(const DicomTag& tag, |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
65 const Json::Value& value) |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
66 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
67 Replacements::iterator it = replacements_.find(tag); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
68 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
69 if (it != replacements_.end()) |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
70 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
71 delete it->second; |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
72 it->second = NULL; // In the case of an exception during the clone |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
73 it->second = new Json::Value(value); // Clone |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
74 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
75 else |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
76 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
77 replacements_[tag] = new Json::Value(value); // Clone |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
78 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
79 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
80 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
81 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
82 void DicomModification::ClearReplacements() |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
83 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
84 for (Replacements::iterator it = replacements_.begin(); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
85 it != replacements_.end(); ++it) |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
86 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
87 delete it->second; |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
88 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
89 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
90 replacements_.clear(); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
91 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
92 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
93 |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
94 void DicomModification::MarkNotOrthancAnonymization() |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
95 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
96 Replacements::iterator it = replacements_.find(DICOM_TAG_DEIDENTIFICATION_METHOD); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
97 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
98 if (it != replacements_.end() && |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
99 (it->second->asString() == ORTHANC_DEIDENTIFICATION_METHOD_2008 || |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
100 it->second->asString() == ORTHANC_DEIDENTIFICATION_METHOD_2017c)) |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
101 { |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
102 delete it->second; |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
103 replacements_.erase(it); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
104 } |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
105 } |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
106 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
107 |
786 | 108 void DicomModification::MapDicomIdentifier(ParsedDicomFile& dicom, |
788 | 109 ResourceType level) |
786 | 110 { |
111 std::auto_ptr<DicomTag> tag; | |
112 | |
113 switch (level) | |
114 { | |
788 | 115 case ResourceType_Study: |
786 | 116 tag.reset(new DicomTag(DICOM_TAG_STUDY_INSTANCE_UID)); |
117 break; | |
118 | |
788 | 119 case ResourceType_Series: |
786 | 120 tag.reset(new DicomTag(DICOM_TAG_SERIES_INSTANCE_UID)); |
121 break; | |
122 | |
788 | 123 case ResourceType_Instance: |
786 | 124 tag.reset(new DicomTag(DICOM_TAG_SOP_INSTANCE_UID)); |
125 break; | |
126 | |
127 default: | |
128 throw OrthancException(ErrorCode_InternalError); | |
129 } | |
130 | |
131 std::string original; | |
132 if (!dicom.GetTagValue(original, *tag)) | |
133 { | |
134 original = ""; | |
135 } | |
136 | |
137 std::string mapped; | |
138 | |
139 UidMap::const_iterator previous = uidMap_.find(std::make_pair(level, original)); | |
140 if (previous == uidMap_.end()) | |
141 { | |
142 mapped = FromDcmtkBridge::GenerateUniqueIdentifier(level); | |
143 uidMap_.insert(std::make_pair(std::make_pair(level, original), mapped)); | |
144 } | |
145 else | |
146 { | |
147 mapped = previous->second; | |
148 } | |
149 | |
1982
b5d4f9c156ad
Modification of instances can now replace PixelData
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1900
diff
changeset
|
150 dicom.Replace(*tag, mapped, false /* don't try and decode data URI scheme for UIDs */, DicomReplaceMode_InsertIfAbsent); |
786 | 151 } |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
152 |
2194
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
153 DicomModification::DicomModification() : |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
154 removePrivateTags_(false), |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
155 level_(ResourceType_Instance), |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
156 allowManualIdentifiers_(true), |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
157 keepStudyInstanceUid_(false), |
2209
e3fd5bc429a2
URI to reconstruct the main DICOM tags, the JSON summary and the metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2194
diff
changeset
|
158 keepSeriesInstanceUid_(false) |
786 | 159 { |
160 } | |
161 | |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
162 DicomModification::~DicomModification() |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
163 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
164 ClearReplacements(); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
165 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
166 |
787
ac18946afa74
refactoring of anonymization/modification
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
786
diff
changeset
|
167 void DicomModification::Keep(const DicomTag& tag) |
786 | 168 { |
169 removals_.erase(tag); | |
2310
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
170 clearings_.erase(tag); |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
171 RemoveInternal(tag); |
991
2f76b92addd4
keep private tags during anonymization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
916
diff
changeset
|
172 |
1818
1065401501fb
ParsedDicomFile::CreateFromJson
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1698
diff
changeset
|
173 if (tag.IsPrivate()) |
991
2f76b92addd4
keep private tags during anonymization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
916
diff
changeset
|
174 { |
2f76b92addd4
keep private tags during anonymization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
916
diff
changeset
|
175 privateTagsToKeep_.insert(tag); |
2f76b92addd4
keep private tags during anonymization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
916
diff
changeset
|
176 } |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
177 |
2194
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
178 if (tag == DICOM_TAG_STUDY_INSTANCE_UID) |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
179 { |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
180 keepStudyInstanceUid_ = true; |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
181 } |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
182 |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
183 if (tag == DICOM_TAG_SERIES_INSTANCE_UID) |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
184 { |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
185 keepSeriesInstanceUid_ = true; |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
186 } |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
187 |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
188 MarkNotOrthancAnonymization(); |
786 | 189 } |
190 | |
191 void DicomModification::Remove(const DicomTag& tag) | |
192 { | |
193 removals_.insert(tag); | |
2310
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
194 clearings_.erase(tag); |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
195 RemoveInternal(tag); |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
196 privateTagsToKeep_.erase(tag); |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
197 |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
198 MarkNotOrthancAnonymization(); |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
199 } |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
200 |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
201 void DicomModification::Clear(const DicomTag& tag) |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
202 { |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
203 removals_.erase(tag); |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
204 clearings_.insert(tag); |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
205 RemoveInternal(tag); |
991
2f76b92addd4
keep private tags during anonymization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
916
diff
changeset
|
206 privateTagsToKeep_.erase(tag); |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
207 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
208 MarkNotOrthancAnonymization(); |
786 | 209 } |
210 | |
211 bool DicomModification::IsRemoved(const DicomTag& tag) const | |
212 { | |
213 return removals_.find(tag) != removals_.end(); | |
214 } | |
215 | |
2310
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
216 bool DicomModification::IsCleared(const DicomTag& tag) const |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
217 { |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
218 return clearings_.find(tag) != clearings_.end(); |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
219 } |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
220 |
786 | 221 void DicomModification::Replace(const DicomTag& tag, |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
222 const Json::Value& value, |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
223 bool safeForAnonymization) |
786 | 224 { |
2310
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
225 clearings_.erase(tag); |
786 | 226 removals_.erase(tag); |
991
2f76b92addd4
keep private tags during anonymization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
916
diff
changeset
|
227 privateTagsToKeep_.erase(tag); |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
228 ReplaceInternal(tag, value); |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
229 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
230 if (!safeForAnonymization) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
231 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
232 MarkNotOrthancAnonymization(); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
233 } |
786 | 234 } |
235 | |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
236 |
786 | 237 bool DicomModification::IsReplaced(const DicomTag& tag) const |
238 { | |
239 return replacements_.find(tag) != replacements_.end(); | |
240 } | |
241 | |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
242 const Json::Value& DicomModification::GetReplacement(const DicomTag& tag) const |
786 | 243 { |
244 Replacements::const_iterator it = replacements_.find(tag); | |
245 | |
246 if (it == replacements_.end()) | |
247 { | |
248 throw OrthancException(ErrorCode_InexistentItem); | |
249 } | |
250 else | |
251 { | |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
252 return *it->second; |
786 | 253 } |
254 } | |
255 | |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
256 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
257 std::string DicomModification::GetReplacementAsString(const DicomTag& tag) const |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
258 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
259 const Json::Value& json = GetReplacement(tag); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
260 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
261 if (json.type() != Json::stringValue) |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
262 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
263 throw OrthancException(ErrorCode_BadParameterType); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
264 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
265 else |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
266 { |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
267 return json.asString(); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
268 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
269 } |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
270 |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
271 |
786 | 272 void DicomModification::SetRemovePrivateTags(bool removed) |
273 { | |
274 removePrivateTags_ = removed; | |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
275 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
276 if (!removed) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
277 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
278 MarkNotOrthancAnonymization(); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
279 } |
786 | 280 } |
281 | |
788 | 282 void DicomModification::SetLevel(ResourceType level) |
786 | 283 { |
284 uidMap_.clear(); | |
285 level_ = level; | |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
286 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
287 if (level != ResourceType_Patient) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
288 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
289 MarkNotOrthancAnonymization(); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
290 } |
786 | 291 } |
292 | |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
293 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
294 void DicomModification::SetupAnonymization2008() |
786 | 295 { |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
296 // This is Table E.1-1 from PS 3.15-2008 - DICOM Part 15: Security and System Management Profiles |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
297 // https://raw.githubusercontent.com/jodogne/dicom-specification/master/2008/08_15pu.pdf |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
298 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
299 removals_.insert(DicomTag(0x0008, 0x0014)); // Instance Creator UID |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
300 //removals_.insert(DicomTag(0x0008, 0x0018)); // SOP Instance UID => set in Apply() |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
301 removals_.insert(DicomTag(0x0008, 0x0050)); // Accession Number |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
302 removals_.insert(DicomTag(0x0008, 0x0080)); // Institution Name |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
303 removals_.insert(DicomTag(0x0008, 0x0081)); // Institution Address |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
304 removals_.insert(DicomTag(0x0008, 0x0090)); // Referring Physician's Name |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
305 removals_.insert(DicomTag(0x0008, 0x0092)); // Referring Physician's Address |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
306 removals_.insert(DicomTag(0x0008, 0x0094)); // Referring Physician's Telephone Numbers |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
307 removals_.insert(DicomTag(0x0008, 0x1010)); // Station Name |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
308 removals_.insert(DicomTag(0x0008, 0x1030)); // Study Description |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
309 removals_.insert(DicomTag(0x0008, 0x103e)); // Series Description |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
310 removals_.insert(DicomTag(0x0008, 0x1040)); // Institutional Department Name |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
311 removals_.insert(DicomTag(0x0008, 0x1048)); // Physician(s) of Record |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
312 removals_.insert(DicomTag(0x0008, 0x1050)); // Performing Physicians' Name |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
313 removals_.insert(DicomTag(0x0008, 0x1060)); // Name of Physician(s) Reading Study |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
314 removals_.insert(DicomTag(0x0008, 0x1070)); // Operators' Name |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
315 removals_.insert(DicomTag(0x0008, 0x1080)); // Admitting Diagnoses Description |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
316 removals_.insert(DicomTag(0x0008, 0x1155)); // Referenced SOP Instance UID |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
317 removals_.insert(DicomTag(0x0008, 0x2111)); // Derivation Description |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
318 //removals_.insert(DicomTag(0x0010, 0x0010)); // Patient's Name => cf. below (*) |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
319 //removals_.insert(DicomTag(0x0010, 0x0020)); // Patient ID => cf. below (*) |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
320 removals_.insert(DicomTag(0x0010, 0x0030)); // Patient's Birth Date |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
321 removals_.insert(DicomTag(0x0010, 0x0032)); // Patient's Birth Time |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
322 removals_.insert(DicomTag(0x0010, 0x0040)); // Patient's Sex |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
323 removals_.insert(DicomTag(0x0010, 0x1000)); // Other Patient Ids |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
324 removals_.insert(DicomTag(0x0010, 0x1001)); // Other Patient Names |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
325 removals_.insert(DicomTag(0x0010, 0x1010)); // Patient's Age |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
326 removals_.insert(DicomTag(0x0010, 0x1020)); // Patient's Size |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
327 removals_.insert(DicomTag(0x0010, 0x1030)); // Patient's Weight |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
328 removals_.insert(DicomTag(0x0010, 0x1090)); // Medical Record Locator |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
329 removals_.insert(DicomTag(0x0010, 0x2160)); // Ethnic Group |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
330 removals_.insert(DicomTag(0x0010, 0x2180)); // Occupation |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
331 removals_.insert(DicomTag(0x0010, 0x21b0)); // Additional Patient's History |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
332 removals_.insert(DicomTag(0x0010, 0x4000)); // Patient Comments |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
333 removals_.insert(DicomTag(0x0018, 0x1000)); // Device Serial Number |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
334 removals_.insert(DicomTag(0x0018, 0x1030)); // Protocol Name |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
335 //removals_.insert(DicomTag(0x0020, 0x000d)); // Study Instance UID => set in Apply() |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
336 //removals_.insert(DicomTag(0x0020, 0x000e)); // Series Instance UID => set in Apply() |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
337 removals_.insert(DicomTag(0x0020, 0x0010)); // Study ID |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
338 removals_.insert(DicomTag(0x0020, 0x0052)); // Frame of Reference UID |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
339 removals_.insert(DicomTag(0x0020, 0x0200)); // Synchronization Frame of Reference UID |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
340 removals_.insert(DicomTag(0x0020, 0x4000)); // Image Comments |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
341 removals_.insert(DicomTag(0x0040, 0x0275)); // Request Attributes Sequence |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
342 removals_.insert(DicomTag(0x0040, 0xa124)); // UID |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
343 removals_.insert(DicomTag(0x0040, 0xa730)); // Content Sequence |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
344 removals_.insert(DicomTag(0x0088, 0x0140)); // Storage Media File-set UID |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
345 removals_.insert(DicomTag(0x3006, 0x0024)); // Referenced Frame of Reference UID |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
346 removals_.insert(DicomTag(0x3006, 0x00c2)); // Related Frame of Reference UID |
786 | 347 |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
348 // Some more removals (from the experience of DICOM files at the CHU of Liege) |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
349 removals_.insert(DicomTag(0x0010, 0x1040)); // Patient's Address |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
350 removals_.insert(DicomTag(0x0032, 0x1032)); // Requesting Physician |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
351 removals_.insert(DicomTag(0x0010, 0x2154)); // PatientTelephoneNumbers |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
352 removals_.insert(DicomTag(0x0010, 0x2000)); // Medical Alerts |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
353 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
354 // Set the DeidentificationMethod tag |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
355 ReplaceInternal(DICOM_TAG_DEIDENTIFICATION_METHOD, ORTHANC_DEIDENTIFICATION_METHOD_2008); |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
356 } |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
357 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
358 |
2313
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
359 #if 0 |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
360 /** |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
361 * This is a manual implementation by Alain Mazy. Only kept for reference. |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
362 * https://bitbucket.org/sjodogne/orthanc/commits/c6defdc4c611fca2ab528ba2c6937a742e0329a8?at=issue-46-anonymization |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
363 **/ |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
364 |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
365 void DicomModification::SetupAnonymization2011() |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
366 { |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
367 // This is Table E.1-1 from PS 3.15-2011 - DICOM Part 15: Security and System Management Profiles |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
368 // https://raw.githubusercontent.com/jodogne/dicom-specification/master/2011/11_15pu.pdf |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
369 |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
370 removals_.insert(DicomTag(0x0000, 0x1000)); // Affected SOP Instance UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
371 removals_.insert(DicomTag(0x0000, 0x1001)); // Requested SOP Instance UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
372 removals_.insert(DicomTag(0x0002, 0x0003)); // Media Storage SOP Instance UID => TODO: replace with a non-zero length UID that is internally consistent within a set of Instances |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
373 removals_.insert(DicomTag(0x0004, 0x1511)); // Referenced SOP Instance UID in File |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
374 removals_.insert(DicomTag(0x0008, 0x0010)); // Irradiation Event UID |
786 | 375 removals_.insert(DicomTag(0x0008, 0x0014)); // Instance Creator UID |
376 //removals_.insert(DicomTag(0x0008, 0x0018)); // SOP Instance UID => set in Apply() | |
2311
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
377 clearings_.insert(DicomTag(0x0008, 0x0020)); // Study Date |
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
378 clearings_.insert(DicomTag(0x0008, 0x0021)); // Series Date |
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
379 clearings_.insert(DicomTag(0x0008, 0x0030)); // Study Time |
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
380 clearings_.insert(DicomTag(0x0008, 0x0031)); // Series Time |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
381 removals_.insert(DicomTag(0x0008, 0x0022)); // Acquisition Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
382 removals_.insert(DicomTag(0x0008, 0x0023)); // Content Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
383 removals_.insert(DicomTag(0x0008, 0x0024)); // Overlay Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
384 removals_.insert(DicomTag(0x0008, 0x0025)); // Curve Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
385 removals_.insert(DicomTag(0x0008, 0x002a)); // Acquisition DateTime |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
386 removals_.insert(DicomTag(0x0008, 0x0032)); // Acquisition Time |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
387 removals_.insert(DicomTag(0x0008, 0x0033)); // Content Time |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
388 removals_.insert(DicomTag(0x0008, 0x0034)); // Overlay Time |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
389 removals_.insert(DicomTag(0x0008, 0x0035)); // Curve Time |
786 | 390 removals_.insert(DicomTag(0x0008, 0x0050)); // Accession Number |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
391 removals_.insert(DicomTag(0x0008, 0x0058)); // Failed SOP Instance UID List |
786 | 392 removals_.insert(DicomTag(0x0008, 0x0080)); // Institution Name |
393 removals_.insert(DicomTag(0x0008, 0x0081)); // Institution Address | |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
394 removals_.insert(DicomTag(0x0008, 0x0082)); // Institution Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
395 removals_.insert(DicomTag(0x0008, 0x0090)); // Referring Physician's Name |
786 | 396 removals_.insert(DicomTag(0x0008, 0x0092)); // Referring Physician's Address |
397 removals_.insert(DicomTag(0x0008, 0x0094)); // Referring Physician's Telephone Numbers | |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
398 removals_.insert(DicomTag(0x0008, 0x0096)); // Referring Physician's Identification Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
399 removals_.insert(DicomTag(0x0008, 0x010d)); // Context Group Extension Creator UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
400 removals_.insert(DicomTag(0x0008, 0x0201)); // Timezone Offset From UTC |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
401 removals_.insert(DicomTag(0x0008, 0x0300)); // Current Patient Location |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
402 removals_.insert(DicomTag(0x0008, 0x1010)); // Station Name |
786 | 403 removals_.insert(DicomTag(0x0008, 0x1030)); // Study Description |
404 removals_.insert(DicomTag(0x0008, 0x103e)); // Series Description | |
405 removals_.insert(DicomTag(0x0008, 0x1040)); // Institutional Department Name | |
406 removals_.insert(DicomTag(0x0008, 0x1048)); // Physician(s) of Record | |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
407 removals_.insert(DicomTag(0x0008, 0x1049)); // Physician(s) of Record Identification Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
408 removals_.insert(DicomTag(0x0008, 0x1050)); // Performing Physicians' Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
409 removals_.insert(DicomTag(0x0008, 0x1052)); // Performing Physicians Identification Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
410 removals_.insert(DicomTag(0x0008, 0x1060)); // Name of Physician(s) Reading Study |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
411 removals_.insert(DicomTag(0x0008, 0x1062)); // Physician Reading Study Identification Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
412 removals_.insert(DicomTag(0x0008, 0x1070)); // Operators' Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
413 removals_.insert(DicomTag(0x0008, 0x1072)); // Operators' Identification Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
414 removals_.insert(DicomTag(0x0008, 0x1080)); // Admitting Diagnoses Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
415 removals_.insert(DicomTag(0x0008, 0x1084)); // Admitting Diagnoses Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
416 removals_.insert(DicomTag(0x0008, 0x1110)); // Referenced Study Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
417 removals_.insert(DicomTag(0x0008, 0x1111)); // Referenced Performed Procedure Step Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
418 removals_.insert(DicomTag(0x0008, 0x1120)); // Referenced Patient Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
419 removals_.insert(DicomTag(0x0008, 0x1140)); // Referenced Image Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
420 removals_.insert(DicomTag(0x0008, 0x1155)); // Referenced SOP Instance UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
421 removals_.insert(DicomTag(0x0008, 0x1195)); // Transaction UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
422 removals_.insert(DicomTag(0x0008, 0x2111)); // Derivation Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
423 removals_.insert(DicomTag(0x0008, 0x2112)); // Source Image Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
424 removals_.insert(DicomTag(0x0008, 0x4000)); // Identifying Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
425 removals_.insert(DicomTag(0x0008, 0x9123)); // Creator Version UID |
786 | 426 //removals_.insert(DicomTag(0x0010, 0x0010)); // Patient's Name => cf. below (*) |
427 //removals_.insert(DicomTag(0x0010, 0x0020)); // Patient ID => cf. below (*) | |
428 removals_.insert(DicomTag(0x0010, 0x0030)); // Patient's Birth Date | |
429 removals_.insert(DicomTag(0x0010, 0x0032)); // Patient's Birth Time | |
2311
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
430 clearings_.insert(DicomTag(0x0010, 0x0040)); // Patient's Sex |
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
431 removals_.insert(DicomTag(0x0010, 0x0050)); // Patient's Insurance Plan Code Sequence |
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
432 removals_.insert(DicomTag(0x0010, 0x0101)); // Patient's Primary Language Code Sequence |
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
433 removals_.insert(DicomTag(0x0010, 0x0102)); // Patient's Primary Language Modifier Code Sequence |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
434 removals_.insert(DicomTag(0x0010, 0x1000)); // Other Patient Ids |
786 | 435 removals_.insert(DicomTag(0x0010, 0x1001)); // Other Patient Names |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
436 removals_.insert(DicomTag(0x0010, 0x1002)); // Other Patient IDs Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
437 removals_.insert(DicomTag(0x0010, 0x1005)); // Patient's Birth Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
438 removals_.insert(DicomTag(0x0010, 0x1010)); // Patient's Age |
786 | 439 removals_.insert(DicomTag(0x0010, 0x1020)); // Patient's Size |
440 removals_.insert(DicomTag(0x0010, 0x1030)); // Patient's Weight | |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
441 removals_.insert(DicomTag(0x0010, 0x1040)); // Patient's Address |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
442 removals_.insert(DicomTag(0x0010, 0x1050)); // Insurance Plan Identification |
2311
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
443 removals_.insert(DicomTag(0x0010, 0x1060)); // Patient's Mother's Birth Name |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
444 removals_.insert(DicomTag(0x0010, 0x1080)); // Military Rank |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
445 removals_.insert(DicomTag(0x0010, 0x1081)); // Branch of Service |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
446 removals_.insert(DicomTag(0x0010, 0x1090)); // Medical Record Locator |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
447 removals_.insert(DicomTag(0x0010, 0x2000)); // Medical Alerts |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
448 removals_.insert(DicomTag(0x0010, 0x2110)); // Allergies |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
449 removals_.insert(DicomTag(0x0010, 0x2150)); // Country of Residence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
450 removals_.insert(DicomTag(0x0010, 0x2152)); // Region of Residence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
451 removals_.insert(DicomTag(0x0010, 0x2154)); // PatientTelephoneNumbers |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
452 removals_.insert(DicomTag(0x0010, 0x2160)); // Ethnic Group |
786 | 453 removals_.insert(DicomTag(0x0010, 0x2180)); // Occupation |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
454 removals_.insert(DicomTag(0x0010, 0x21a0)); // Smoking Status |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
455 removals_.insert(DicomTag(0x0010, 0x21b0)); // Additional Patient's History |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
456 removals_.insert(DicomTag(0x0010, 0x21c0)); // Pregnancy Status |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
457 removals_.insert(DicomTag(0x0010, 0x21d0)); // Last Menstrual Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
458 removals_.insert(DicomTag(0x0010, 0x21f0)); // Patient's Religious Preference |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
459 removals_.insert(DicomTag(0x0010, 0x2203)); // Patient's Sex Neutered |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
460 removals_.insert(DicomTag(0x0010, 0x2297)); // Responsible Person |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
461 removals_.insert(DicomTag(0x0010, 0x2299)); // Responsible Organization |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
462 removals_.insert(DicomTag(0x0010, 0x4000)); // Patient Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
463 removals_.insert(DicomTag(0x0018, 0x0010)); // Contrast Bolus Agent |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
464 removals_.insert(DicomTag(0x0018, 0x1000)); // Device Serial Number |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
465 removals_.insert(DicomTag(0x0018, 0x1002)); // Device UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
466 removals_.insert(DicomTag(0x0018, 0x1004)); // Plate ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
467 removals_.insert(DicomTag(0x0018, 0x1005)); // Generator ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
468 removals_.insert(DicomTag(0x0018, 0x1007)); // Cassette ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
469 removals_.insert(DicomTag(0x0018, 0x1008)); // Gantry ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
470 removals_.insert(DicomTag(0x0018, 0x1030)); // Protocol Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
471 removals_.insert(DicomTag(0x0018, 0x1400)); // Acquisition Device Processing Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
472 removals_.insert(DicomTag(0x0018, 0x4000)); // Acquisition Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
473 removals_.insert(DicomTag(0x0018, 0x700a)); // Detector ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
474 removals_.insert(DicomTag(0x0018, 0xa003)); // Contribution Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
475 removals_.insert(DicomTag(0x0018, 0x9424)); // Acquisition Protocol Description |
786 | 476 //removals_.insert(DicomTag(0x0020, 0x000d)); // Study Instance UID => set in Apply() |
477 //removals_.insert(DicomTag(0x0020, 0x000e)); // Series Instance UID => set in Apply() | |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
478 removals_.insert(DicomTag(0x0020, 0x0010)); // Study ID |
786 | 479 removals_.insert(DicomTag(0x0020, 0x0052)); // Frame of Reference UID |
480 removals_.insert(DicomTag(0x0020, 0x0200)); // Synchronization Frame of Reference UID | |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
481 removals_.insert(DicomTag(0x0020, 0x3401)); // Modifying Device ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
482 removals_.insert(DicomTag(0x0020, 0x3404)); // Modifying Device Manufacturer |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
483 removals_.insert(DicomTag(0x0020, 0x3406)); // Modified Image Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
484 removals_.insert(DicomTag(0x0020, 0x4000)); // Image Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
485 removals_.insert(DicomTag(0x0020, 0x9158)); // Frame Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
486 removals_.insert(DicomTag(0x0020, 0x9161)); // Concatenation UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
487 removals_.insert(DicomTag(0x0020, 0x9164)); // Dimension Organization UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
488 //removals_.insert(DicomTag(0x0028, 0x1199)); // Palette Color Lookup Table UID => TODO: replace with a non-zero length UID that is internally consistent within a set of Instances |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
489 //removals_.insert(DicomTag(0x0028, 0x1214)); // Large Palette Color Lookup Table UID => TODO: replace with a non-zero length UID that is internally consistent within a set of Instances |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
490 removals_.insert(DicomTag(0x0028, 0x4000)); // Image Presentation Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
491 removals_.insert(DicomTag(0x0032, 0x0012)); // Study ID Issuer |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
492 removals_.insert(DicomTag(0x0032, 0x1020)); // Scheduled Study Location |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
493 removals_.insert(DicomTag(0x0032, 0x1021)); // Scheduled Study Location AE Title |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
494 removals_.insert(DicomTag(0x0032, 0x1030)); // Reason for Study |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
495 removals_.insert(DicomTag(0x0032, 0x1032)); // Requesting Physician |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
496 removals_.insert(DicomTag(0x0032, 0x1033)); // Requesting Service |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
497 removals_.insert(DicomTag(0x0032, 0x1060)); // Requesting Procedure Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
498 removals_.insert(DicomTag(0x0032, 0x1070)); // Requested Contrast Agent |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
499 removals_.insert(DicomTag(0x0032, 0x4000)); // Study Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
500 removals_.insert(DicomTag(0x0038, 0x0010)); // Admission ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
501 removals_.insert(DicomTag(0x0038, 0x0011)); // Issuer of Admission ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
502 removals_.insert(DicomTag(0x0038, 0x001e)); // Scheduled Patient Institution Residence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
503 removals_.insert(DicomTag(0x0038, 0x0020)); // Admitting Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
504 removals_.insert(DicomTag(0x0038, 0x0021)); // Admitting Time |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
505 removals_.insert(DicomTag(0x0038, 0x0040)); // Discharge Diagnosis Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
506 removals_.insert(DicomTag(0x0038, 0x0050)); // Special Needs |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
507 removals_.insert(DicomTag(0x0038, 0x0060)); // Service Episode ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
508 removals_.insert(DicomTag(0x0038, 0x0061)); // Issuer of Service Episode ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
509 removals_.insert(DicomTag(0x0038, 0x0062)); // Service Episode Description |
2311
78dcb3ddea9f
implementation of clearings
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2310
diff
changeset
|
510 removals_.insert(DicomTag(0x0038, 0x0400)); // Patient's Institution Residence |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
511 removals_.insert(DicomTag(0x0038, 0x0500)); // Patient State |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
512 removals_.insert(DicomTag(0x0038, 0x4000)); // Visit Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
513 removals_.insert(DicomTag(0x0038, 0x1234)); // Referenced Patient Alias Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
514 removals_.insert(DicomTag(0x0040, 0x0001)); // Scheduled Station AE Title |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
515 removals_.insert(DicomTag(0x0040, 0x0002)); // Scheduled Procedure Step Start Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
516 removals_.insert(DicomTag(0x0040, 0x0003)); // Scheduled Procedure Step Start Time |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
517 removals_.insert(DicomTag(0x0040, 0x0004)); // Scheduled Procedure Step End Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
518 removals_.insert(DicomTag(0x0040, 0x0005)); // Scheduled Procedure Step End Time |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
519 removals_.insert(DicomTag(0x0040, 0x0006)); // Scheduled Performing Physician Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
520 removals_.insert(DicomTag(0x0040, 0x0007)); // Scheduled Procedure Step Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
521 removals_.insert(DicomTag(0x0040, 0x000b)); // Scheduled Performing Physician Identification Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
522 removals_.insert(DicomTag(0x0040, 0x0010)); // Scheduled Station Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
523 removals_.insert(DicomTag(0x0040, 0x0011)); // Scheduled Procedure Step Location |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
524 removals_.insert(DicomTag(0x0040, 0x0012)); // Pre-Medication |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
525 removals_.insert(DicomTag(0x0040, 0x0241)); // Performed Station AE Title |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
526 removals_.insert(DicomTag(0x0040, 0x0242)); // Performed Station Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
527 removals_.insert(DicomTag(0x0040, 0x0243)); // Performed Location |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
528 removals_.insert(DicomTag(0x0040, 0x0244)); // Performed Procedure Step Start Date |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
529 removals_.insert(DicomTag(0x0040, 0x0245)); // Performed Procedure Step Start Time |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
530 removals_.insert(DicomTag(0x0040, 0x0248)); // Performed Station Name Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
531 removals_.insert(DicomTag(0x0040, 0x0253)); // Performed Procedure Step ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
532 removals_.insert(DicomTag(0x0040, 0x0254)); // Performed Procedure Step Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
533 removals_.insert(DicomTag(0x0040, 0x0275)); // Request Attributes Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
534 removals_.insert(DicomTag(0x0040, 0x0280)); // Comments on Performed Procedure Step |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
535 removals_.insert(DicomTag(0x0040, 0x0555)); // Acquisition Context Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
536 removals_.insert(DicomTag(0x0040, 0x1001)); // Requested Procedure ID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
537 removals_.insert(DicomTag(0x0040, 0x1010)); // Names of Intended Recipient of Results |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
538 removals_.insert(DicomTag(0x0040, 0x1011)); // Intended Recipient of Results Identification Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
539 removals_.insert(DicomTag(0x0040, 0x1004)); // Patient Transport Arrangements |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
540 removals_.insert(DicomTag(0x0040, 0x1005)); // Requested Procedure Location |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
541 removals_.insert(DicomTag(0x0040, 0x1101)); // Person Identification Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
542 removals_.insert(DicomTag(0x0040, 0x1102)); // Person Address |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
543 removals_.insert(DicomTag(0x0040, 0x1103)); // Person Telephone Numbers |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
544 removals_.insert(DicomTag(0x0040, 0x1400)); // Requested Procedure Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
545 removals_.insert(DicomTag(0x0040, 0x2001)); // Reason for Imaging Service Request |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
546 removals_.insert(DicomTag(0x0040, 0x2008)); // Order Entered By |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
547 removals_.insert(DicomTag(0x0040, 0x2009)); // Order Enterer Location |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
548 removals_.insert(DicomTag(0x0040, 0x2010)); // Order Callback Phone Number |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
549 removals_.insert(DicomTag(0x0040, 0x2016)); // Placer Order Number of Imaging Service Request |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
550 removals_.insert(DicomTag(0x0040, 0x2017)); // Filler Order Number of Imaging Service Request |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
551 removals_.insert(DicomTag(0x0040, 0x2400)); // Imaging Service Request Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
552 removals_.insert(DicomTag(0x0040, 0x4023)); // Referenced General Purpose Scheduled Procedure Step Transaction UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
553 removals_.insert(DicomTag(0x0040, 0x4025)); // Scheduled Station Name Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
554 removals_.insert(DicomTag(0x0040, 0x4027)); // Scheduled Station Geographic Location Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
555 removals_.insert(DicomTag(0x0040, 0x4030)); // Performed Station Geographic Location Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
556 removals_.insert(DicomTag(0x0040, 0x4034)); // Scheduled Human Performers Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
557 removals_.insert(DicomTag(0x0040, 0x4035)); // Actual Human Performers Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
558 removals_.insert(DicomTag(0x0040, 0x4036)); // Human Performers Organization |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
559 removals_.insert(DicomTag(0x0040, 0x4037)); // Human Performers Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
560 removals_.insert(DicomTag(0x0040, 0xa027)); // Verifying Organization |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
561 removals_.insert(DicomTag(0x0040, 0xa073)); // Verifying Observer Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
562 removals_.insert(DicomTag(0x0040, 0xa075)); // Verifying Observer Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
563 removals_.insert(DicomTag(0x0040, 0xa078)); // Author Observer Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
564 removals_.insert(DicomTag(0x0040, 0xa07a)); // Participant Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
565 removals_.insert(DicomTag(0x0040, 0xa07c)); // Custodial Organization Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
566 removals_.insert(DicomTag(0x0040, 0xa088)); // Verifying Observer Identification Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
567 removals_.insert(DicomTag(0x0040, 0xa123)); // Person Name |
786 | 568 removals_.insert(DicomTag(0x0040, 0xa124)); // UID |
569 removals_.insert(DicomTag(0x0040, 0xa730)); // Content Sequence | |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
570 removals_.insert(DicomTag(0x0040, 0x3001)); // Confidentiality Constraint on Patient Data Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
571 removals_.insert(DicomTag(0x0040, 0xdb0c)); // Template Extension Organization UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
572 removals_.insert(DicomTag(0x0040, 0xdb0d)); // Template Extension Creator UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
573 removals_.insert(DicomTag(0x0070, 0x0001)); // Graphic Annotation Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
574 removals_.insert(DicomTag(0x0070, 0x0084)); // Content Creator's Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
575 removals_.insert(DicomTag(0x0070, 0x0086)); // Content Creator's Identification Code Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
576 removals_.insert(DicomTag(0x0070, 0x031a)); // Fiducial UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
577 removals_.insert(DicomTag(0x0088, 0x0140)); // Storage Media File-set UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
578 removals_.insert(DicomTag(0x0088, 0x0200)); // Icon Image Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
579 removals_.insert(DicomTag(0x0088, 0x0904)); // Topic Title |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
580 removals_.insert(DicomTag(0x0088, 0x0906)); // Topic Subject |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
581 removals_.insert(DicomTag(0x0088, 0x0910)); // Topic Author |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
582 removals_.insert(DicomTag(0x0088, 0x0912)); // Topic Key Words |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
583 removals_.insert(DicomTag(0x0400, 0x0100)); // Digital Signature UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
584 removals_.insert(DicomTag(0x0400, 0x0402)); // Referenced Digital Signature Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
585 removals_.insert(DicomTag(0x0400, 0x0403)); // Referenced SOP Instance MAC Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
586 removals_.insert(DicomTag(0x0400, 0x0404)); // MAC |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
587 removals_.insert(DicomTag(0x0400, 0x0550)); // Modified Attributes Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
588 removals_.insert(DicomTag(0x0400, 0x0561)); // Original Attributes Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
589 removals_.insert(DicomTag(0x2030, 0x0020)); // Text String |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
590 removals_.insert(DicomTag(0x3006, 0x0024)); // Referenced Frame of Reference UID |
786 | 591 removals_.insert(DicomTag(0x3006, 0x00c2)); // Related Frame of Reference UID |
2277
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
592 removals_.insert(DicomTag(0x300a, 0x0013)); // Dose Reference UID |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
593 removals_.insert(DicomTag(0x300e, 0x0008)); // Reviewer Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
594 removals_.insert(DicomTag(0x4000, 0x0010)); // Arbitrary |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
595 removals_.insert(DicomTag(0x4000, 0x4000)); // Text Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
596 removals_.insert(DicomTag(0x4008, 0x0042)); // Results ID Issuer |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
597 removals_.insert(DicomTag(0x4008, 0x0102)); // Interpretation Recorder |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
598 removals_.insert(DicomTag(0x4008, 0x010a)); // Interpretation Transcriber |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
599 removals_.insert(DicomTag(0x4008, 0x010b)); // Interpretation Text |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
600 removals_.insert(DicomTag(0x4008, 0x010c)); // Interpretation Author |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
601 removals_.insert(DicomTag(0x4008, 0x0111)); // Interpretation Approver Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
602 removals_.insert(DicomTag(0x4008, 0x0114)); // Physician Approving Interpretation |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
603 removals_.insert(DicomTag(0x4008, 0x0115)); // Interpretation Diagnosis Description |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
604 removals_.insert(DicomTag(0x4008, 0x0118)); // Results Distribution List Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
605 removals_.insert(DicomTag(0x4008, 0x0119)); // Distribution Name |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
606 removals_.insert(DicomTag(0x4008, 0x011a)); // Distribution Address |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
607 removals_.insert(DicomTag(0x4008, 0x0202)); // Interpretation ID Issuer |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
608 removals_.insert(DicomTag(0x4008, 0x0300)); // Impressions |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
609 removals_.insert(DicomTag(0x4008, 0x4000)); // Results Comments |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
610 removals_.insert(DicomTag(0xfffa, 0xfffa)); // Digital Signature Sequence |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
611 removals_.insert(DicomTag(0xfffc, 0xfffc)); // Data Set Trailing Padding |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
612 //removals_.insert(DicomTag(0x60xx, 0x4000)); // Overlay Comments => TODO |
c6defdc4c611
updated list of fields to remove during anonymization following PS 3.15-2011 Table E.1-1
amazy
parents:
2244
diff
changeset
|
613 //removals_.insert(DicomTag(0x60xx, 0x3000)); // Overlay Data => TODO |
786 | 614 |
615 // Set the DeidentificationMethod tag | |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
616 ReplaceInternal(DICOM_TAG_DEIDENTIFICATION_METHOD, ORTHANC_DEIDENTIFICATION_METHOD_2011); |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
617 } |
2313
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
618 #endif |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
619 |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
620 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
621 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
622 void DicomModification::SetupAnonymization2017c() |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
623 { |
2313
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
624 /** |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
625 * This is Table E.1-1 from PS 3.15-2017c (DICOM Part 15: Security |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
626 * and System Management Profiles), "basic profile" column. It was |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
627 * generated automatically with the |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
628 * "../Resources/GenerateAnonymizationProfile.py" script. |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
629 * https://raw.githubusercontent.com/jodogne/dicom-specification/master/2017c/part15.pdf |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
630 **/ |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
631 |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
632 // TODO: (50xx,xxxx) with rule X // Curve Data |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
633 // TODO: (60xx,3000) with rule X // Overlay Data |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
634 // TODO: (60xx,4000) with rule X // Overlay Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
635 // Tag (0x0008, 0x0018) is set in Apply() // SOP Instance UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
636 // Tag (0x0010, 0x0010) is set below (*) // Patient's Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
637 // Tag (0x0010, 0x0020) is set below (*) // Patient ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
638 // Tag (0x0020, 0x000d) is set in Apply() // Study Instance UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
639 // Tag (0x0020, 0x000e) is set in Apply() // Series Instance UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
640 clearings_.insert(DicomTag(0x0008, 0x0020)); // Study Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
641 clearings_.insert(DicomTag(0x0008, 0x0023)); /* Z/D */ // Content Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
642 clearings_.insert(DicomTag(0x0008, 0x0030)); // Study Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
643 clearings_.insert(DicomTag(0x0008, 0x0033)); /* Z/D */ // Content Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
644 clearings_.insert(DicomTag(0x0008, 0x0050)); // Accession Number |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
645 clearings_.insert(DicomTag(0x0008, 0x0090)); // Referring Physician's Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
646 clearings_.insert(DicomTag(0x0008, 0x009c)); // Consulting Physician's Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
647 clearings_.insert(DicomTag(0x0010, 0x0030)); // Patient's Birth Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
648 clearings_.insert(DicomTag(0x0010, 0x0040)); // Patient's Sex |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
649 clearings_.insert(DicomTag(0x0018, 0x0010)); /* Z/D */ // Contrast Bolus Agent |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
650 clearings_.insert(DicomTag(0x0020, 0x0010)); // Study ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
651 clearings_.insert(DicomTag(0x0040, 0x1101)); /* D */ // Person Identification Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
652 clearings_.insert(DicomTag(0x0040, 0x2016)); // Placer Order Number / Imaging Service Request |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
653 clearings_.insert(DicomTag(0x0040, 0x2017)); // Filler Order Number / Imaging Service Request |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
654 clearings_.insert(DicomTag(0x0040, 0xa073)); /* D */ // Verifying Observer Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
655 clearings_.insert(DicomTag(0x0040, 0xa075)); /* D */ // Verifying Observer Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
656 clearings_.insert(DicomTag(0x0040, 0xa088)); // Verifying Observer Identification Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
657 clearings_.insert(DicomTag(0x0040, 0xa123)); /* D */ // Person Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
658 clearings_.insert(DicomTag(0x0070, 0x0001)); /* D */ // Graphic Annotation Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
659 clearings_.insert(DicomTag(0x0070, 0x0084)); // Content Creator's Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
660 removals_.insert(DicomTag(0x0000, 0x1000)); // Affected SOP Instance UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
661 removals_.insert(DicomTag(0x0000, 0x1001)); /* TODO UID */ // Requested SOP Instance UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
662 removals_.insert(DicomTag(0x0002, 0x0003)); /* TODO UID */ // Media Storage SOP Instance UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
663 removals_.insert(DicomTag(0x0004, 0x1511)); /* TODO UID */ // Referenced SOP Instance UID in File |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
664 removals_.insert(DicomTag(0x0008, 0x0014)); /* TODO UID */ // Instance Creator UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
665 removals_.insert(DicomTag(0x0008, 0x0015)); // Instance Coercion DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
666 removals_.insert(DicomTag(0x0008, 0x0021)); /* X/D */ // Series Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
667 removals_.insert(DicomTag(0x0008, 0x0022)); /* X/Z */ // Acquisition Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
668 removals_.insert(DicomTag(0x0008, 0x0024)); // Overlay Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
669 removals_.insert(DicomTag(0x0008, 0x0025)); // Curve Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
670 removals_.insert(DicomTag(0x0008, 0x002a)); /* X/D */ // Acquisition DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
671 removals_.insert(DicomTag(0x0008, 0x0031)); /* X/D */ // Series Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
672 removals_.insert(DicomTag(0x0008, 0x0032)); /* X/Z */ // Acquisition Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
673 removals_.insert(DicomTag(0x0008, 0x0034)); // Overlay Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
674 removals_.insert(DicomTag(0x0008, 0x0035)); // Curve Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
675 removals_.insert(DicomTag(0x0008, 0x0058)); /* TODO UID */ // Failed SOP Instance UID List |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
676 removals_.insert(DicomTag(0x0008, 0x0080)); /* X/Z/D */ // Institution Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
677 removals_.insert(DicomTag(0x0008, 0x0081)); // Institution Address |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
678 removals_.insert(DicomTag(0x0008, 0x0082)); /* X/Z/D */ // Institution Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
679 removals_.insert(DicomTag(0x0008, 0x0092)); // Referring Physician's Address |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
680 removals_.insert(DicomTag(0x0008, 0x0094)); // Referring Physician's Telephone Numbers |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
681 removals_.insert(DicomTag(0x0008, 0x0096)); // Referring Physician Identification Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
682 removals_.insert(DicomTag(0x0008, 0x009d)); // Consulting Physician Identification Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
683 removals_.insert(DicomTag(0x0008, 0x0201)); // Timezone Offset From UTC |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
684 removals_.insert(DicomTag(0x0008, 0x1010)); /* X/Z/D */ // Station Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
685 removals_.insert(DicomTag(0x0008, 0x1030)); // Study Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
686 removals_.insert(DicomTag(0x0008, 0x103e)); // Series Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
687 removals_.insert(DicomTag(0x0008, 0x1040)); // Institutional Department Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
688 removals_.insert(DicomTag(0x0008, 0x1048)); // Physician(s) of Record |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
689 removals_.insert(DicomTag(0x0008, 0x1049)); // Physician(s) of Record Identification Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
690 removals_.insert(DicomTag(0x0008, 0x1050)); // Performing Physicians' Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
691 removals_.insert(DicomTag(0x0008, 0x1052)); // Performing Physician Identification Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
692 removals_.insert(DicomTag(0x0008, 0x1060)); // Name of Physician(s) Reading Study |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
693 removals_.insert(DicomTag(0x0008, 0x1062)); // Physician(s) Reading Study Identification Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
694 removals_.insert(DicomTag(0x0008, 0x1070)); /* X/Z/D */ // Operators' Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
695 removals_.insert(DicomTag(0x0008, 0x1072)); /* X/D */ // Operators' Identification Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
696 removals_.insert(DicomTag(0x0008, 0x1080)); // Admitting Diagnoses Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
697 removals_.insert(DicomTag(0x0008, 0x1084)); // Admitting Diagnoses Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
698 removals_.insert(DicomTag(0x0008, 0x1110)); /* X/Z */ // Referenced Study Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
699 removals_.insert(DicomTag(0x0008, 0x1111)); /* X/Z/D */ // Referenced Performed Procedure Step Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
700 removals_.insert(DicomTag(0x0008, 0x1120)); // Referenced Patient Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
701 removals_.insert(DicomTag(0x0008, 0x1140)); /* X/Z/U* */ // Referenced Image Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
702 removals_.insert(DicomTag(0x0008, 0x1155)); /* TODO UID */ // Referenced SOP Instance UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
703 removals_.insert(DicomTag(0x0008, 0x1195)); /* TODO UID */ // Transaction UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
704 removals_.insert(DicomTag(0x0008, 0x2111)); // Derivation Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
705 removals_.insert(DicomTag(0x0008, 0x2112)); /* X/Z/U* */ // Source Image Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
706 removals_.insert(DicomTag(0x0008, 0x3010)); /* TODO UID */ // Irradiation Event UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
707 removals_.insert(DicomTag(0x0008, 0x4000)); // Identifying Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
708 removals_.insert(DicomTag(0x0010, 0x0021)); // Issuer of Patient ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
709 removals_.insert(DicomTag(0x0010, 0x0032)); // Patient's Birth Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
710 removals_.insert(DicomTag(0x0010, 0x0050)); // Patient's Insurance Plan Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
711 removals_.insert(DicomTag(0x0010, 0x0101)); // Patient's Primary Language Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
712 removals_.insert(DicomTag(0x0010, 0x0102)); // Patient's Primary Language Modifier Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
713 removals_.insert(DicomTag(0x0010, 0x1000)); // Other Patient IDs |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
714 removals_.insert(DicomTag(0x0010, 0x1001)); // Other Patient Names |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
715 removals_.insert(DicomTag(0x0010, 0x1002)); // Other Patient IDs Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
716 removals_.insert(DicomTag(0x0010, 0x1005)); // Patient's Birth Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
717 removals_.insert(DicomTag(0x0010, 0x1010)); // Patient's Age |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
718 removals_.insert(DicomTag(0x0010, 0x1020)); // Patient's Size |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
719 removals_.insert(DicomTag(0x0010, 0x1030)); // Patient's Weight |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
720 removals_.insert(DicomTag(0x0010, 0x1040)); // Patient Address |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
721 removals_.insert(DicomTag(0x0010, 0x1050)); // Insurance Plan Identification |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
722 removals_.insert(DicomTag(0x0010, 0x1060)); // Patient's Mother's Birth Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
723 removals_.insert(DicomTag(0x0010, 0x1080)); // Military Rank |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
724 removals_.insert(DicomTag(0x0010, 0x1081)); // Branch of Service |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
725 removals_.insert(DicomTag(0x0010, 0x1090)); // Medical Record Locator |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
726 removals_.insert(DicomTag(0x0010, 0x1100)); // Referenced Patient Photo Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
727 removals_.insert(DicomTag(0x0010, 0x2000)); // Medical Alerts |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
728 removals_.insert(DicomTag(0x0010, 0x2110)); // Allergies |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
729 removals_.insert(DicomTag(0x0010, 0x2150)); // Country of Residence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
730 removals_.insert(DicomTag(0x0010, 0x2152)); // Region of Residence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
731 removals_.insert(DicomTag(0x0010, 0x2154)); // Patient's Telephone Numbers |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
732 removals_.insert(DicomTag(0x0010, 0x2155)); // Patient's Telecom Information |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
733 removals_.insert(DicomTag(0x0010, 0x2160)); // Ethnic Group |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
734 removals_.insert(DicomTag(0x0010, 0x2180)); // Occupation |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
735 removals_.insert(DicomTag(0x0010, 0x21a0)); // Smoking Status |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
736 removals_.insert(DicomTag(0x0010, 0x21b0)); // Additional Patient's History |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
737 removals_.insert(DicomTag(0x0010, 0x21c0)); // Pregnancy Status |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
738 removals_.insert(DicomTag(0x0010, 0x21d0)); // Last Menstrual Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
739 removals_.insert(DicomTag(0x0010, 0x21f0)); // Patient's Religious Preference |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
740 removals_.insert(DicomTag(0x0010, 0x2203)); /* X/Z */ // Patient Sex Neutered |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
741 removals_.insert(DicomTag(0x0010, 0x2297)); // Responsible Person |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
742 removals_.insert(DicomTag(0x0010, 0x2299)); // Responsible Organization |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
743 removals_.insert(DicomTag(0x0010, 0x4000)); // Patient Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
744 removals_.insert(DicomTag(0x0018, 0x1000)); /* X/Z/D */ // Device Serial Number |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
745 removals_.insert(DicomTag(0x0018, 0x1002)); /* TODO UID */ // Device UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
746 removals_.insert(DicomTag(0x0018, 0x1004)); // Plate ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
747 removals_.insert(DicomTag(0x0018, 0x1005)); // Generator ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
748 removals_.insert(DicomTag(0x0018, 0x1007)); // Cassette ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
749 removals_.insert(DicomTag(0x0018, 0x1008)); // Gantry ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
750 removals_.insert(DicomTag(0x0018, 0x1030)); /* X/D */ // Protocol Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
751 removals_.insert(DicomTag(0x0018, 0x1400)); /* X/D */ // Acquisition Device Processing Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
752 removals_.insert(DicomTag(0x0018, 0x2042)); /* TODO UID */ // Target UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
753 removals_.insert(DicomTag(0x0018, 0x4000)); // Acquisition Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
754 removals_.insert(DicomTag(0x0018, 0x700a)); /* X/D */ // Detector ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
755 removals_.insert(DicomTag(0x0018, 0x9424)); // Acquisition Protocol Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
756 removals_.insert(DicomTag(0x0018, 0x9516)); /* X/D */ // Start Acquisition DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
757 removals_.insert(DicomTag(0x0018, 0x9517)); /* X/D */ // End Acquisition DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
758 removals_.insert(DicomTag(0x0018, 0xa003)); // Contribution Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
759 removals_.insert(DicomTag(0x0020, 0x0052)); /* TODO UID */ // Frame of Reference UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
760 removals_.insert(DicomTag(0x0020, 0x0200)); /* TODO UID */ // Synchronization Frame of Reference UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
761 removals_.insert(DicomTag(0x0020, 0x3401)); // Modifying Device ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
762 removals_.insert(DicomTag(0x0020, 0x3404)); // Modifying Device Manufacturer |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
763 removals_.insert(DicomTag(0x0020, 0x3406)); // Modified Image Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
764 removals_.insert(DicomTag(0x0020, 0x4000)); // Image Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
765 removals_.insert(DicomTag(0x0020, 0x9158)); // Frame Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
766 removals_.insert(DicomTag(0x0020, 0x9161)); /* TODO UID */ // Concatenation UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
767 removals_.insert(DicomTag(0x0020, 0x9164)); /* TODO UID */ // Dimension Organization UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
768 removals_.insert(DicomTag(0x0028, 0x1199)); /* TODO UID */ // Palette Color Lookup Table UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
769 removals_.insert(DicomTag(0x0028, 0x1214)); /* TODO UID */ // Large Palette Color Lookup Table UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
770 removals_.insert(DicomTag(0x0028, 0x4000)); // Image Presentation Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
771 removals_.insert(DicomTag(0x0032, 0x0012)); // Study ID Issuer |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
772 removals_.insert(DicomTag(0x0032, 0x1020)); // Scheduled Study Location |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
773 removals_.insert(DicomTag(0x0032, 0x1021)); // Scheduled Study Location AE Title |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
774 removals_.insert(DicomTag(0x0032, 0x1030)); // Reason for Study |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
775 removals_.insert(DicomTag(0x0032, 0x1032)); // Requesting Physician |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
776 removals_.insert(DicomTag(0x0032, 0x1033)); // Requesting Service |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
777 removals_.insert(DicomTag(0x0032, 0x1060)); /* X/Z */ // Requested Procedure Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
778 removals_.insert(DicomTag(0x0032, 0x1070)); // Requested Contrast Agent |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
779 removals_.insert(DicomTag(0x0032, 0x4000)); // Study Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
780 removals_.insert(DicomTag(0x0038, 0x0004)); // Referenced Patient Alias Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
781 removals_.insert(DicomTag(0x0038, 0x0010)); // Admission ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
782 removals_.insert(DicomTag(0x0038, 0x0011)); // Issuer of Admission ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
783 removals_.insert(DicomTag(0x0038, 0x001e)); // Scheduled Patient Institution Residence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
784 removals_.insert(DicomTag(0x0038, 0x0020)); // Admitting Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
785 removals_.insert(DicomTag(0x0038, 0x0021)); // Admitting Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
786 removals_.insert(DicomTag(0x0038, 0x0040)); // Discharge Diagnosis Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
787 removals_.insert(DicomTag(0x0038, 0x0050)); // Special Needs |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
788 removals_.insert(DicomTag(0x0038, 0x0060)); // Service Episode ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
789 removals_.insert(DicomTag(0x0038, 0x0061)); // Issuer of Service Episode ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
790 removals_.insert(DicomTag(0x0038, 0x0062)); // Service Episode Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
791 removals_.insert(DicomTag(0x0038, 0x0300)); // Current Patient Location |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
792 removals_.insert(DicomTag(0x0038, 0x0400)); // Patient's Institution Residence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
793 removals_.insert(DicomTag(0x0038, 0x0500)); // Patient State |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
794 removals_.insert(DicomTag(0x0038, 0x4000)); // Visit Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
795 removals_.insert(DicomTag(0x0040, 0x0001)); // Scheduled Station AE Title |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
796 removals_.insert(DicomTag(0x0040, 0x0002)); // Scheduled Procedure Step Start Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
797 removals_.insert(DicomTag(0x0040, 0x0003)); // Scheduled Procedure Step Start Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
798 removals_.insert(DicomTag(0x0040, 0x0004)); // Scheduled Procedure Step End Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
799 removals_.insert(DicomTag(0x0040, 0x0005)); // Scheduled Procedure Step End Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
800 removals_.insert(DicomTag(0x0040, 0x0006)); // Scheduled Performing Physician Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
801 removals_.insert(DicomTag(0x0040, 0x0007)); // Scheduled Procedure Step Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
802 removals_.insert(DicomTag(0x0040, 0x000b)); // Scheduled Performing Physician Identification Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
803 removals_.insert(DicomTag(0x0040, 0x0010)); // Scheduled Station Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
804 removals_.insert(DicomTag(0x0040, 0x0011)); // Scheduled Procedure Step Location |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
805 removals_.insert(DicomTag(0x0040, 0x0012)); // Pre-Medication |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
806 removals_.insert(DicomTag(0x0040, 0x0241)); // Performed Station AE Title |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
807 removals_.insert(DicomTag(0x0040, 0x0242)); // Performed Station Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
808 removals_.insert(DicomTag(0x0040, 0x0243)); // Performed Location |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
809 removals_.insert(DicomTag(0x0040, 0x0244)); // Performed Procedure Step Start Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
810 removals_.insert(DicomTag(0x0040, 0x0245)); // Performed Procedure Step Start Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
811 removals_.insert(DicomTag(0x0040, 0x0250)); // Performed Procedure Step End Date |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
812 removals_.insert(DicomTag(0x0040, 0x0251)); // Performed Procedure Step End Time |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
813 removals_.insert(DicomTag(0x0040, 0x0253)); // Performed Procedure Step ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
814 removals_.insert(DicomTag(0x0040, 0x0254)); // Performed Procedure Step Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
815 removals_.insert(DicomTag(0x0040, 0x0275)); // Request Attributes Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
816 removals_.insert(DicomTag(0x0040, 0x0280)); // Comments on the Performed Procedure Step |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
817 removals_.insert(DicomTag(0x0040, 0x0555)); // Acquisition Context Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
818 removals_.insert(DicomTag(0x0040, 0x1001)); // Requested Procedure ID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
819 removals_.insert(DicomTag(0x0040, 0x1004)); // Patient Transport Arrangements |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
820 removals_.insert(DicomTag(0x0040, 0x1005)); // Requested Procedure Location |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
821 removals_.insert(DicomTag(0x0040, 0x1010)); // Names of Intended Recipient of Results |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
822 removals_.insert(DicomTag(0x0040, 0x1011)); // Intended Recipients of Results Identification Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
823 removals_.insert(DicomTag(0x0040, 0x1102)); // Person Address |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
824 removals_.insert(DicomTag(0x0040, 0x1103)); // Person's Telephone Numbers |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
825 removals_.insert(DicomTag(0x0040, 0x1104)); // Person's Telecom Information |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
826 removals_.insert(DicomTag(0x0040, 0x1400)); // Requested Procedure Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
827 removals_.insert(DicomTag(0x0040, 0x2001)); // Reason for the Imaging Service Request |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
828 removals_.insert(DicomTag(0x0040, 0x2008)); // Order Entered By |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
829 removals_.insert(DicomTag(0x0040, 0x2009)); // Order Enterer Location |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
830 removals_.insert(DicomTag(0x0040, 0x2010)); // Order Callback Phone Number |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
831 removals_.insert(DicomTag(0x0040, 0x2011)); // Order Callback Telecom Information |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
832 removals_.insert(DicomTag(0x0040, 0x2400)); // Imaging Service Request Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
833 removals_.insert(DicomTag(0x0040, 0x3001)); // Confidentiality Constraint on Patient Data Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
834 removals_.insert(DicomTag(0x0040, 0x4005)); // Scheduled Procedure Step Start DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
835 removals_.insert(DicomTag(0x0040, 0x4010)); // Scheduled Procedure Step Modification DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
836 removals_.insert(DicomTag(0x0040, 0x4011)); // Expected Completion DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
837 removals_.insert(DicomTag(0x0040, 0x4023)); /* TODO UID */ // Referenced General Purpose Scheduled Procedure Step Transaction UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
838 removals_.insert(DicomTag(0x0040, 0x4025)); // Scheduled Station Name Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
839 removals_.insert(DicomTag(0x0040, 0x4027)); // Scheduled Station Geographic Location Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
840 removals_.insert(DicomTag(0x0040, 0x4028)); // Performed Station Name Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
841 removals_.insert(DicomTag(0x0040, 0x4030)); // Performed Station Geographic Location Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
842 removals_.insert(DicomTag(0x0040, 0x4034)); // Scheduled Human Performers Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
843 removals_.insert(DicomTag(0x0040, 0x4035)); // Actual Human Performers Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
844 removals_.insert(DicomTag(0x0040, 0x4036)); // Human Performers Organization |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
845 removals_.insert(DicomTag(0x0040, 0x4037)); // Human Performers Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
846 removals_.insert(DicomTag(0x0040, 0x4050)); // Performed Procedure Step Start DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
847 removals_.insert(DicomTag(0x0040, 0x4051)); // Performed Procedure Step End DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
848 removals_.insert(DicomTag(0x0040, 0x4052)); // Procedure Step Cancellation DateTime |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
849 removals_.insert(DicomTag(0x0040, 0xa027)); // Verifying Organization |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
850 removals_.insert(DicomTag(0x0040, 0xa078)); // Author Observer Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
851 removals_.insert(DicomTag(0x0040, 0xa07a)); // Participant Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
852 removals_.insert(DicomTag(0x0040, 0xa07c)); // Custodial Organization Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
853 removals_.insert(DicomTag(0x0040, 0xa124)); /* TODO UID */ // UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
854 removals_.insert(DicomTag(0x0040, 0xa171)); /* TODO UID */ // Observation UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
855 removals_.insert(DicomTag(0x0040, 0xa172)); /* TODO UID */ // Referenced Observation UID (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
856 removals_.insert(DicomTag(0x0040, 0xa192)); // Observation Date (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
857 removals_.insert(DicomTag(0x0040, 0xa193)); // Observation Time (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
858 removals_.insert(DicomTag(0x0040, 0xa307)); // Current Observer (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
859 removals_.insert(DicomTag(0x0040, 0xa352)); // Verbal Source (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
860 removals_.insert(DicomTag(0x0040, 0xa353)); // Address (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
861 removals_.insert(DicomTag(0x0040, 0xa354)); // Telephone Number (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
862 removals_.insert(DicomTag(0x0040, 0xa358)); // Verbal Source Identifier Code Sequence (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
863 removals_.insert(DicomTag(0x0040, 0xa402)); /* TODO UID */ // Observation Subject UID (Trial) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
864 removals_.insert(DicomTag(0x0040, 0xa730)); // Content Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
865 removals_.insert(DicomTag(0x0040, 0xdb0c)); /* TODO UID */ // Template Extension Organization UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
866 removals_.insert(DicomTag(0x0040, 0xdb0d)); /* TODO UID */ // Template Extension Creator UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
867 removals_.insert(DicomTag(0x0062, 0x0021)); /* TODO UID */ // Tracking UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
868 removals_.insert(DicomTag(0x0070, 0x0086)); // Content Creator's Identification Code Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
869 removals_.insert(DicomTag(0x0070, 0x031a)); /* TODO UID */ // Fiducial UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
870 removals_.insert(DicomTag(0x0070, 0x1101)); /* TODO UID */ // Presentation Display Collection UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
871 removals_.insert(DicomTag(0x0070, 0x1102)); /* TODO UID */ // Presentation Sequence Collection UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
872 removals_.insert(DicomTag(0x0088, 0x0140)); /* TODO UID */ // Storage Media File-set UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
873 removals_.insert(DicomTag(0x0088, 0x0200)); // Icon Image Sequence(see Note 12) |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
874 removals_.insert(DicomTag(0x0088, 0x0904)); // Topic Title |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
875 removals_.insert(DicomTag(0x0088, 0x0906)); // Topic Subject |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
876 removals_.insert(DicomTag(0x0088, 0x0910)); // Topic Author |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
877 removals_.insert(DicomTag(0x0088, 0x0912)); // Topic Keywords |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
878 removals_.insert(DicomTag(0x0400, 0x0100)); // Digital Signature UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
879 removals_.insert(DicomTag(0x0400, 0x0402)); // Referenced Digital Signature Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
880 removals_.insert(DicomTag(0x0400, 0x0403)); // Referenced SOP Instance MAC Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
881 removals_.insert(DicomTag(0x0400, 0x0404)); // MAC |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
882 removals_.insert(DicomTag(0x0400, 0x0550)); // Modified Attributes Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
883 removals_.insert(DicomTag(0x0400, 0x0561)); // Original Attributes Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
884 removals_.insert(DicomTag(0x2030, 0x0020)); // Text String |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
885 removals_.insert(DicomTag(0x3006, 0x0024)); /* TODO UID */ // Referenced Frame of Reference UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
886 removals_.insert(DicomTag(0x3006, 0x00c2)); /* TODO UID */ // Related Frame of Reference UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
887 removals_.insert(DicomTag(0x3008, 0x0105)); // Source Serial Number |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
888 removals_.insert(DicomTag(0x300a, 0x0013)); /* TODO UID */ // Dose Reference UID |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
889 removals_.insert(DicomTag(0x300c, 0x0113)); // Reason for Omission Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
890 removals_.insert(DicomTag(0x300e, 0x0008)); /* X/Z */ // Reviewer Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
891 removals_.insert(DicomTag(0x4000, 0x0010)); // Arbitrary |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
892 removals_.insert(DicomTag(0x4000, 0x4000)); // Text Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
893 removals_.insert(DicomTag(0x4008, 0x0042)); // Results ID Issuer |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
894 removals_.insert(DicomTag(0x4008, 0x0102)); // Interpretation Recorder |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
895 removals_.insert(DicomTag(0x4008, 0x010a)); // Interpretation Transcriber |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
896 removals_.insert(DicomTag(0x4008, 0x010b)); // Interpretation Text |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
897 removals_.insert(DicomTag(0x4008, 0x010c)); // Interpretation Author |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
898 removals_.insert(DicomTag(0x4008, 0x0111)); // Interpretation Approver Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
899 removals_.insert(DicomTag(0x4008, 0x0114)); // Physician Approving Interpretation |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
900 removals_.insert(DicomTag(0x4008, 0x0115)); // Interpretation Diagnosis Description |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
901 removals_.insert(DicomTag(0x4008, 0x0118)); // Results Distribution List Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
902 removals_.insert(DicomTag(0x4008, 0x0119)); // Distribution Name |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
903 removals_.insert(DicomTag(0x4008, 0x011a)); // Distribution Address |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
904 removals_.insert(DicomTag(0x4008, 0x0202)); // Interpretation ID Issuer |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
905 removals_.insert(DicomTag(0x4008, 0x0300)); // Impressions |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
906 removals_.insert(DicomTag(0x4008, 0x4000)); // Results Comments |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
907 removals_.insert(DicomTag(0xfffa, 0xfffa)); // Digital Signatures Sequence |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
908 removals_.insert(DicomTag(0xfffc, 0xfffc)); // Data Set Trailing Padding |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
909 |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
910 // Set the DeidentificationMethod tag |
d19e716b79fa
switch to anonymization according to DICOM 2017c
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2311
diff
changeset
|
911 ReplaceInternal(DICOM_TAG_DEIDENTIFICATION_METHOD, ORTHANC_DEIDENTIFICATION_METHOD_2017c); |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
912 } |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
913 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
914 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
915 void DicomModification::SetupAnonymization(DicomVersion version) |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
916 { |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
917 removals_.clear(); |
2310
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
918 clearings_.clear(); |
2309
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
919 ClearReplacements(); |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
920 removePrivateTags_ = true; |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
921 level_ = ResourceType_Patient; |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
922 uidMap_.clear(); |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
923 privateTagsToKeep_.clear(); |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
924 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
925 switch (version) |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
926 { |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
927 case DicomVersion_2008: |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
928 SetupAnonymization2008(); |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
929 break; |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
930 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
931 case DicomVersion_2017c: |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
932 SetupAnonymization2017c(); |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
933 break; |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
934 |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
935 default: |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
936 throw OrthancException(ErrorCode_ParameterOutOfRange); |
4dc313b9a20a
Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2277
diff
changeset
|
937 } |
786 | 938 |
939 // Set the PatientIdentityRemoved tag | |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
940 ReplaceInternal(DicomTag(0x0012, 0x0062), "YES"); |
786 | 941 |
942 // (*) Choose a random patient name and ID | |
788 | 943 std::string patientId = FromDcmtkBridge::GenerateUniqueIdentifier(ResourceType_Patient); |
1698
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
944 ReplaceInternal(DICOM_TAG_PATIENT_ID, patientId); |
d78b87f93bcf
DicomModification use Json::Value
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1695
diff
changeset
|
945 ReplaceInternal(DICOM_TAG_PATIENT_NAME, patientId); |
786 | 946 } |
947 | |
948 void DicomModification::Apply(ParsedDicomFile& toModify) | |
949 { | |
950 // Check the request | |
788 | 951 assert(ResourceType_Patient + 1 == ResourceType_Study && |
952 ResourceType_Study + 1 == ResourceType_Series && | |
953 ResourceType_Series + 1 == ResourceType_Instance); | |
786 | 954 |
955 if (IsRemoved(DICOM_TAG_PATIENT_ID) || | |
956 IsRemoved(DICOM_TAG_STUDY_INSTANCE_UID) || | |
957 IsRemoved(DICOM_TAG_SERIES_INSTANCE_UID) || | |
958 IsRemoved(DICOM_TAG_SOP_INSTANCE_UID)) | |
959 { | |
960 throw OrthancException(ErrorCode_BadRequest); | |
961 } | |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
962 |
786 | 963 |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
964 // Sanity checks at the patient level |
788 | 965 if (level_ == ResourceType_Patient && !IsReplaced(DICOM_TAG_PATIENT_ID)) |
786 | 966 { |
916
b4b46e3e6017
more explicit error message
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
831
diff
changeset
|
967 LOG(ERROR) << "When modifying a patient, her PatientID is required to be modified"; |
786 | 968 throw OrthancException(ErrorCode_BadRequest); |
969 } | |
970 | |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
971 if (!allowManualIdentifiers_) |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
972 { |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
973 if (level_ == ResourceType_Patient && IsReplaced(DICOM_TAG_STUDY_INSTANCE_UID)) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
974 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
975 LOG(ERROR) << "When modifying a patient, the StudyInstanceUID cannot be manually modified"; |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
976 throw OrthancException(ErrorCode_BadRequest); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
977 } |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
978 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
979 if (level_ == ResourceType_Patient && IsReplaced(DICOM_TAG_SERIES_INSTANCE_UID)) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
980 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
981 LOG(ERROR) << "When modifying a patient, the SeriesInstanceUID cannot be manually modified"; |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
982 throw OrthancException(ErrorCode_BadRequest); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
983 } |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
984 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
985 if (level_ == ResourceType_Patient && IsReplaced(DICOM_TAG_SOP_INSTANCE_UID)) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
986 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
987 LOG(ERROR) << "When modifying a patient, the SopInstanceUID cannot be manually modified"; |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
988 throw OrthancException(ErrorCode_BadRequest); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
989 } |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
990 } |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
991 |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
992 |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
993 // Sanity checks at the study level |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
994 if (level_ == ResourceType_Study && IsReplaced(DICOM_TAG_PATIENT_ID)) |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
995 { |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
996 LOG(ERROR) << "When modifying a study, the parent PatientID cannot be manually modified"; |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
997 throw OrthancException(ErrorCode_BadRequest); |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
998 } |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
999 |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1000 if (!allowManualIdentifiers_) |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1001 { |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1002 if (level_ == ResourceType_Study && IsReplaced(DICOM_TAG_SERIES_INSTANCE_UID)) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1003 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1004 LOG(ERROR) << "When modifying a study, the SeriesInstanceUID cannot be manually modified"; |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1005 throw OrthancException(ErrorCode_BadRequest); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1006 } |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1007 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1008 if (level_ == ResourceType_Study && IsReplaced(DICOM_TAG_SOP_INSTANCE_UID)) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1009 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1010 LOG(ERROR) << "When modifying a study, the SopInstanceUID cannot be manually modified"; |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1011 throw OrthancException(ErrorCode_BadRequest); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1012 } |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1013 } |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1014 |
786 | 1015 |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1016 // Sanity checks at the series level |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1017 if (level_ == ResourceType_Series && IsReplaced(DICOM_TAG_PATIENT_ID)) |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1018 { |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1019 LOG(ERROR) << "When modifying a series, the parent PatientID cannot be manually modified"; |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1020 throw OrthancException(ErrorCode_BadRequest); |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1021 } |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1022 |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1023 if (level_ == ResourceType_Series && IsReplaced(DICOM_TAG_STUDY_INSTANCE_UID)) |
786 | 1024 { |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1025 LOG(ERROR) << "When modifying a series, the parent StudyInstanceUID cannot be manually modified"; |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1026 throw OrthancException(ErrorCode_BadRequest); |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1027 } |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1028 |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1029 if (!allowManualIdentifiers_) |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1030 { |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1031 if (level_ == ResourceType_Series && IsReplaced(DICOM_TAG_SOP_INSTANCE_UID)) |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1032 { |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1033 LOG(ERROR) << "When modifying a series, the SopInstanceUID cannot be manually modified"; |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1034 throw OrthancException(ErrorCode_BadRequest); |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1035 } |
786 | 1036 } |
1037 | |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1038 |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1039 // Sanity checks at the instance level |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1040 if (level_ == ResourceType_Instance && IsReplaced(DICOM_TAG_PATIENT_ID)) |
786 | 1041 { |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1042 LOG(ERROR) << "When modifying an instance, the parent PatientID cannot be manually modified"; |
786 | 1043 throw OrthancException(ErrorCode_BadRequest); |
1044 } | |
1045 | |
1160
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1046 if (level_ == ResourceType_Instance && IsReplaced(DICOM_TAG_STUDY_INSTANCE_UID)) |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1047 { |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1048 LOG(ERROR) << "When modifying an instance, the parent StudyInstanceUID cannot be manually modified"; |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1049 throw OrthancException(ErrorCode_BadRequest); |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1050 } |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1051 |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1052 if (level_ == ResourceType_Instance && IsReplaced(DICOM_TAG_SERIES_INSTANCE_UID)) |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1053 { |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1054 LOG(ERROR) << "When modifying an instance, the parent SeriesInstanceUID cannot be manually modified"; |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1055 throw OrthancException(ErrorCode_BadRequest); |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1056 } |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1057 |
80671157d051
generalization of create-dicom
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
991
diff
changeset
|
1058 |
786 | 1059 // (1) Remove the private tags, if need be |
1060 if (removePrivateTags_) | |
1061 { | |
991
2f76b92addd4
keep private tags during anonymization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
916
diff
changeset
|
1062 toModify.RemovePrivateTags(privateTagsToKeep_); |
786 | 1063 } |
1064 | |
2310
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1065 // (2) Clear the tags specified by the user |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1066 for (SetOfTags::const_iterator it = clearings_.begin(); |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1067 it != clearings_.end(); ++it) |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1068 { |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1069 toModify.Clear(*it, true /* only clear if the tag exists in the original file */); |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1070 } |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1071 |
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1072 // (3) Remove the tags specified by the user |
991
2f76b92addd4
keep private tags during anonymization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
916
diff
changeset
|
1073 for (SetOfTags::const_iterator it = removals_.begin(); |
786 | 1074 it != removals_.end(); ++it) |
1075 { | |
1076 toModify.Remove(*it); | |
1077 } | |
1078 | |
2310
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1079 // (4) Replace the tags |
786 | 1080 for (Replacements::const_iterator it = replacements_.begin(); |
1081 it != replacements_.end(); ++it) | |
1082 { | |
1982
b5d4f9c156ad
Modification of instances can now replace PixelData
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1900
diff
changeset
|
1083 toModify.Replace(it->first, *it->second, true /* decode data URI scheme */, DicomReplaceMode_InsertIfAbsent); |
786 | 1084 } |
1085 | |
2310
b7fba68747f6
DicomModification::Clear()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2309
diff
changeset
|
1086 // (5) Update the DICOM identifiers |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1087 if (level_ <= ResourceType_Study && |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1088 !IsReplaced(DICOM_TAG_STUDY_INSTANCE_UID)) |
786 | 1089 { |
2194
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1090 if (keepStudyInstanceUid_) |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1091 { |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1092 LOG(WARNING) << "Modifying a study while keeping its original StudyInstanceUID: This should be avoided!"; |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1093 } |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1094 else |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1095 { |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1096 MapDicomIdentifier(toModify, ResourceType_Study); |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1097 } |
786 | 1098 } |
1099 | |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1100 if (level_ <= ResourceType_Series && |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1101 !IsReplaced(DICOM_TAG_SERIES_INSTANCE_UID)) |
786 | 1102 { |
2194
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1103 if (keepSeriesInstanceUid_) |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1104 { |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1105 LOG(WARNING) << "Modifying a series while keeping its original SeriesInstanceUID: This should be avoided!"; |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1106 } |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1107 else |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1108 { |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1109 MapDicomIdentifier(toModify, ResourceType_Series); |
3b40ca7470cc
"Keep" option for modifications to keep original DICOM identifiers (advanced feature)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1982
diff
changeset
|
1110 } |
786 | 1111 } |
1112 | |
1279
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1113 if (level_ <= ResourceType_Instance && // Always true |
7f3a65e84d4b
More flexible /modify and /anonymize for single instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1160
diff
changeset
|
1114 !IsReplaced(DICOM_TAG_SOP_INSTANCE_UID)) |
786 | 1115 { |
2209
e3fd5bc429a2
URI to reconstruct the main DICOM tags, the JSON summary and the metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2194
diff
changeset
|
1116 MapDicomIdentifier(toModify, ResourceType_Instance); |
786 | 1117 } |
1118 } | |
1119 } |