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 <FMEThirdPartyWarningsDisable.h>
17#include <string>
18#include <vector>
19#include <FMEThirdPartyWarningsRestore.h>
20
21#include "mlTypeDefs.h"
23
25
26namespace CIDGroups {
27
30
32extern MLDICOMTags_EXPORT const char * CIDEntrySeparator;
33
35enum { NUM_CID_COLUMNS = 7 };
36
58MLDICOMTags_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
83MLDICOMTags_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,
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
124extern MLDICOMTags_EXPORT const char * const CID_8_Angiographic_Interventional_Devices[NUM_CID_8_Angiographic_Interventional_Devices][NUM_CID_COLUMNS];
125
126//------------------------
129
131extern MLDICOMTags_EXPORT const char * const CID_244_Laterality[NUM_CID_244_Laterality][NUM_CID_COLUMNS];
132
133//------------------------
136
138extern MLDICOMTags_EXPORT const char * const CID_3829_Pulmonary_Arteries[NUM_CID_3829_Pulmonary_Arteries][NUM_CID_COLUMNS];
139
140//------------------------
143
145extern MLDICOMTags_EXPORT const char * const CID_7063_Model_Scale_Units[NUM_CID_7063_Model_Scale_Units][NUM_CID_COLUMNS];
146
147#if 0
148// Complete but still not embedded in code where needed. Activate when really used.
149//------------------------
151enum { NUM_CID_7064_Model_Usage = 8 };
152
154extern 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.
162
165#endif
166
167//------------------------
170
172extern MLDICOMTags_EXPORT const char * const CID_7150_Segmentation_Property_Categories[NUM_CID_7150_Segmentation_Property_Categories][NUM_CID_COLUMNS];
173
174//------------------------
176enum { NUM_CID_7151_Segmentation_Property_Types = static_cast<int>(NUM_CID_8_Angiographic_Interventional_Devices)
177 // + CID 3010
178 + static_cast<int>(NUM_CID_3829_Pulmonary_Arteries)
179 // + MANY TODO
180 };
181
183extern MLDICOMTags_EXPORT const char * const CID_7151_Segmentation_Property_Types[NUM_CID_7151_Segmentation_Property_Types][NUM_CID_COLUMNS];
184
185//------------------------
188
190extern MLDICOMTags_EXPORT const char * const CID_7202_Source_Image_Purposes_of_Reference[NUM_CID_7202_Source_Image_Purposes_of_Reference][NUM_CID_COLUMNS];
191
192//------------------------
195
197extern MLDICOMTags_EXPORT const char * const CID_7203_Image_Derivation[NUM_CID_7203_Image_Derivation][NUM_CID_COLUMNS];
198
199}
200
201
202
203
204
Project global and OS specific declarations.
#define MLDICOMTags_EXPORT
If included by external modules, exported symbols are declared as import symbols.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
Tool class for some string operations.
MLDICOMTags_EXPORT const char * CIDEntrySeparator
Separator used between multiple code value entries.
@ NUM_CID_7202_Source_Image_Purposes_of_Reference
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 * CIDEditCodeAndDescriptionSeparator
Separator used between Code Value and descriptive string.
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 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,...
@ NUM_CID_8_Angiographic_Interventional_Devices
std::vector< std::string > StringVector
Define often used string vector type.