MeVisLab Toolbox Reference
DICOMPart16Tables.h
Go to the documentation of this file.
1 // Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2 // **InsertLicense** code
3 //----------------------------------------------------------------------------------
5 
10 //----------------------------------------------------------------------------------
11 
12 #pragma once
13 
14 #include "MLDICOMTagsSystem.h"
15 
16 #include <ThirdPartyWarningsDisable.h>
17 #include <string>
18 #include <vector>
19 #include <ThirdPartyWarningsRestore.h>
20 
21 #include "mlTypeDefs.h"
22 #include <mlReleaseToolsString.h>
23 
24 ML_START_NAMESPACE
25 
26 namespace CIDGroups {
27 
30 
32 extern MLDICOMTags_EXPORT const char * CIDEntrySeparator;
33 
35 enum { NUM_CID_COLUMNS = 7 };
36 
58 MLDICOMTags_EXPORT std::vector<std::string> getCIDEntryAsStringVector(const char * const CIDGroup[][NUM_CID_COLUMNS],
59  size_t CIDGroupSize,
60  const std::string &sep0="",
61  size_t column0=std::string::npos,
62  const std::string &sep1="",
63  size_t column1=std::string::npos,
64  const std::string &sep2="",
65  size_t column2=std::string::npos,
66  const std::string &sep3="",
67  size_t column3=std::string::npos,
68  const std::string &sep4="",
69  size_t column4=std::string::npos,
70  const std::string &sep5="",
71  size_t column5=std::string::npos,
72  const std::string &sep6="",
73  size_t column6=std::string::npos,
74  const std::string &sep7="");
75 
76 
83 MLDICOMTags_EXPORT size_t findCIDEntry(const char * const CIDGroupTable[][NUM_CID_COLUMNS],
84  size_t CIDGroupTableSize,
85  const std::string &entryToFind);
86 
94  size_t CIDGroupTableSize,
95  const std::string &contextGroupSequence,
96  ReleaseToolsString::StringVector &resultVector);
97 
98 
99 //----------------------------------------------------------------------------------
100 // CID Tables
101 //
102 // All Tables do not / must not contain CIDEditCodeAndDescriptionSeparator and CIDEntrySeparator
103 // in Code Values and Code Meanings.
104 //----------------------------------------------------------------------------------
105 
106 // An entry, a Context (Group) Identifier (CID), of a Context Group defined in this file has the following format:
107 // Entry[0]: The "Coding Scheme Designator", a name/designator of the coding scheme
108 // (DCM, SRT, LN, RADLEX, UMLS, MDC, UCUM, etc.) which typically describe the definition source,
109 // lexicon, institute etc. where the codeing scheme comes from and where the contents were defined.
110 // For example
111 // RADLEX - A Lexicon for Uniform Indexing and Retrieval of Radiology Information Resources. www.radlex.org/.
112 // MDC - SO/IEEE 11073 Medical Device Nomenclature
113 // UCUM - Regenstrief Institute, Indianapolis. 2013. Unified Code for Units of Measure. http://unitsofmeasure.org/.
114 // Entry[1]: The "Code Value", typically the value to be stored in DICOM tags.
115 // Entry[2]: The "Code Meaning", describing what the code means.
116 // Entry[3]: If not empty it may be the "SNOMED-CT Concept ID" or something else dependent on the table.
117 // Entry[4]: If not empty it may be the "UMLS Concept Unique ID" or something else dependent on the table.
118 
119 //------------------------
122 
125 
126 //------------------------
129 
132 
133 //------------------------
136 
139 
140 //------------------------
143 
146 
147 #if 0
148 // Complete but still not embedded in code where needed. Activate when really used.
149 //------------------------
151 enum { NUM_CID_7064_Model_Usage = 8 };
152 
154 extern MLDICOMTags_EXPORT const char * const CID_7064_Model_Usage[NUM_CID_7064_Model_Usage][NUM_CID_COLUMNS];
155 #endif
156 
157 //------------------------
158 #if 0
159 // Complete but still not needed. Activate when really used.
161 enum { NUM_CID_7100_RCS_Registration_Method_Types = 5 };
162 
164 extern MLDICOMTags_EXPORT const char * const CID_7100_RCS_Registration_Method_Types[NUM_CID_7100_RCS_Registration_Method_Types][NUM_CID_COLUMNS];
165 #endif
166 
167 //------------------------
170 
173 
174 //------------------------
177  // + CID 3010
179  // + MANY TODO
180  };
181 
184 
185 //------------------------
188 
191 
192 //------------------------
195 
198 
199 }
200 
201 
202 
203 
204 
205 ML_END_NAMESPACE
Project global and OS specific declarations.
#define MLDICOMTags_EXPORT
If included by external modules, exported symbols are declared as import symbols.
Tool class for some string operations.
MLDICOMTags_EXPORT const char *const CID_244_Laterality[NUM_CID_244_Laterality][NUM_CID_COLUMNS]
Codes from DICOM Part 16, CID 244 Laterality.
MLDICOMTags_EXPORT const char * CIDEntrySeparator
Separator used between multiple code value entries.
MLDICOMTags_EXPORT const char *const CID_7150_Segmentation_Property_Categories[NUM_CID_7150_Segmentation_Property_Categories][NUM_CID_COLUMNS]
Codes from DICOM Part 16, CID 7150 Segmentation Property Categories.
MLDICOMTags_EXPORT const char *const CID_7151_Segmentation_Property_Types[NUM_CID_7151_Segmentation_Property_Types][NUM_CID_COLUMNS]
Codes from DICOM Part 16, CID 7151 Segmentation Property Types.
MLDICOMTags_EXPORT const char *const CID_7202_Source_Image_Purposes_of_Reference[NUM_CID_7202_Source_Image_Purposes_of_Reference][NUM_CID_COLUMNS]
Codes from DICOM Part 16, CID 7202 Source Image Purposes of Reference.
MLDICOMTags_EXPORT const char *const CID_7063_Model_Scale_Units[NUM_CID_7063_Model_Scale_Units][NUM_CID_COLUMNS]
Codes from DICOM Part 16, CID 7063 Model Scale Units.
@ NUM_CID_7202_Source_Image_Purposes_of_Reference
MLDICOMTags_EXPORT const char * CIDEditCodeAndDescriptionSeparator
Separator used between Code Value and descriptive string.
MLDICOMTags_EXPORT std::vector< std::string > getCIDEntryAsStringVector(const char *const CIDGroup[][NUM_CID_COLUMNS], size_t CIDGroupSize, const std::string &sep0="", size_t column0=std::string::npos, const std::string &sep1="", size_t column1=std::string::npos, const std::string &sep2="", size_t column2=std::string::npos, const std::string &sep3="", size_t column3=std::string::npos, const std::string &sep4="", size_t column4=std::string::npos, const std::string &sep5="", size_t column5=std::string::npos, const std::string &sep6="", size_t column6=std::string::npos, const std::string &sep7="")
Returns a concatenation of at most three columns of all CIDGroup[][column] entries of the given CIDGr...
MLDICOMTags_EXPORT const char *const CID_8_Angiographic_Interventional_Devices[NUM_CID_8_Angiographic_Interventional_Devices][NUM_CID_COLUMNS]
Codes from DICOM Part 16, CID 8 Angiographic Interventional Devices.
MLDICOMTags_EXPORT bool decomposeCIDContextGroupSequenceString(const char *const CIDGroupTable[][NUM_CID_COLUMNS], size_t CIDGroupTableSize, const std::string &contextGroupSequence, ReleaseToolsString::StringVector &resultVector)
Decomposed the string contextGroupSequence which assumes that it is a composition of CID Code Values ...
@ NUM_CID_7150_Segmentation_Property_Categories
MLDICOMTags_EXPORT const char *const CID_3829_Pulmonary_Arteries[NUM_CID_3829_Pulmonary_Arteries][NUM_CID_COLUMNS]
Codes from DICOM Part 16, CID 3829 Pulmonary Arteries.
@ NUM_CID_8_Angiographic_Interventional_Devices
@ NUM_CID_7151_Segmentation_Property_Types
MLDICOMTags_EXPORT size_t findCIDEntry(const char *const CIDGroupTable[][NUM_CID_COLUMNS], size_t CIDGroupTableSize, const std::string &entryToFind)
Returns index X of entry of CIDGroupTable[X] where entryToFind appears the first time,...
MLDICOMTags_EXPORT const char *const CID_7203_Image_Derivation[NUM_CID_7203_Image_Derivation][NUM_CID_COLUMNS]
Codes from DICOM Part 16, CID 7203 Image Derivation.
std::vector< std::string > StringVector
Define often used string vector type.