Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkSlicerTerminologiesModuleLogic.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
6 Queen's University, Kingston, ON, Canada. All Rights Reserved.
7
8 See COPYRIGHT.txt
9 or http://www.slicer.org/copyright/copyright.txt for details.
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16
17 This file was originally developed by Csaba Pinter, PerkLab, Queen's University
18 and was supported through the Applied Cancer Research Unit program of Cancer Care
19 Ontario with funds provided by the Ontario Ministry of Health and Long-Term Care
20
21==============================================================================*/
22
23#ifndef __vtkSlicerTerminologiesModuleLogic_h
24#define __vtkSlicerTerminologiesModuleLogic_h
25
26// Slicer includes
28
29#include "vtkSlicerTerminologiesModuleLogicExport.h"
30
31class vtkCodedEntry;
33class vtkSegment;
34class vtkStringArray;
38
39class VTK_SLICER_TERMINOLOGIES_LOGIC_EXPORT vtkSlicerTerminologiesModuleLogic : public vtkSlicerModuleLogic
40{
41public:
44 void PrintSelf(ostream& os, vtkIndent indent) override;
45
48 {
49 public:
51 CodeIdentifier(std::string codingSchemeDesignator, std::string codeValue, std::string codeMeaning = std::string())
52 : CodingSchemeDesignator(codingSchemeDesignator)
53 , CodeValue(codeValue)
54 , CodeMeaning(codeMeaning) {};
55 bool IsValid() const { return !CodingSchemeDesignator.empty() && !CodeValue.empty(); };
57 std::string CodeValue;
58 std::string CodeMeaning; // Human readable name (not required for ID)
59 };
60
62 static const char* GetNameAutoGeneratedAttributeName() { return "Terminologies.AutoUpdateNodeName"; };
64 static const char* GetColorAutoGeneratedAttributeName() { return "Terminologies.AutoUpdateNodeColor"; };
66 static const char* GetTerminologyEntryAttributeName() { return "Terminologies.TerminologyEntry"; };
69 static const char* GetDefaultTerminologyEntryAttributeName() { return "Terminologies.DefaultTerminologyEntry"; };
70
73 static std::string GetTerminologyEntryAsString(vtkMRMLNode* node);
74 static void SetTerminologyEntryAsString(vtkMRMLNode* node, std::string entryStr);
75 static void SetTerminologyEntryAsString(vtkMRMLNode* node, std::string entryStr, bool nameAutoGenerated, bool colorAutoGenerated);
76
80 static void SetDefaultTerminologyEntryAsString(vtkMRMLNode* node, std::string entryStr);
81
87 bool LoadContextFromFile(std::string filePath);
91 std::string LoadTerminologyFromFile(std::string filePath);
95 std::string LoadRegionContextFromFile(std::string filePath);
100 bool LoadTerminologyFromSegmentDescriptorFile(std::string contextName, std::string filePath);
103 bool LoadRegionContextFromSegmentDescriptorFile(std::string contextName, std::string filePath);
104
106 void GetLoadedTerminologyNames(std::vector<std::string>& terminologyNames);
108 bool IsTerminologyContextLoaded(std::string terminologyName);
110 void GetLoadedTerminologyNames(vtkStringArray* terminologyNames);
112 void GetLoadedRegionContextNames(std::vector<std::string>& regionContextNames);
114 void GetLoadedRegionContextNames(vtkStringArray* regionContextNames);
115
117 std::vector<std::string> GetCompatibleColorNodeIDs();
118
121
126 bool GetCategoriesInTerminology(std::string terminologyName, std::vector<CodeIdentifier>& categories);
131 bool FindCategoriesInTerminology(std::string terminologyName, std::vector<CodeIdentifier>& categories, std::string search);
132
137 std::vector<std::string> FindColorNodes(std::string categoryCodingSchemeDesignator,
138 std::string categoryCodeValue,
139 std::string typeCodingSchemeDesignator,
140 std::string typeCodeValue,
141 std::string typeModifierCodingSchemeDesignator,
142 std::string typeModifierCodeValue,
143 std::string regionCodingSchemeDesignator,
144 std::string regionCodeValue,
145 std::string regionModifierCodingSchemeDesignator,
146 std::string regionModifierCodeValue,
147 std::vector<std::string> preferredColorNodeNames,
148 vtkIntArray* foundColorIndices = nullptr,
149 vtkIntArray* foundPreferredColorNodeIndices = nullptr);
150
156 std::vector<std::string> FindTerminologyNames(std::string categoryCodingSchemeDesignator,
157 std::string categoryCodeValue,
158 std::string typeCodingSchemeDesignator,
159 std::string typeCodeValue,
160 std::string typeModifierCodingSchemeDesignator,
161 std::string typeModifierCodeValue,
162 std::vector<std::string> preferredTerminologyNames,
163 vtkCollection* foundEntries = nullptr,
164 vtkIntArray* foundPreferredTerminologyNameIndices = nullptr);
165
172 std::vector<std::string> preferredTerminologyNames,
173 std::string& foundTerminologyName,
174 std::string& foundColorNodeID,
175 int& foundColorIndex);
176
182 bool FindFirstColorNodeOrTerminology(std::string categoryCodingSchemeDesignator,
183 std::string categoryCodeValue,
184 std::string typeCodingSchemeDesignator,
185 std::string typeCodeValue,
186 std::string typeModifierCodingSchemeDesignator,
187 std::string typeModifierCodeValue,
188 std::string regionCodingSchemeDesignator,
189 std::string regionCodeValue,
190 std::string regionModifierCodingSchemeDesignator,
191 std::string regionModifierCodeValue,
192 std::vector<std::string> preferredTerminologyNames,
193 std::string& foundTerminologyName,
194 std::string& foundColorNodeID,
195 int& foundColorIndex);
196
199 std::vector<std::string> FindRegionContextNames(std::string regionCodingSchemeDesignator,
200 std::string regionCodeValue,
201 std::string regionModifierCodingSchemeDesignator,
202 std::string regionModifierCodeValue,
203 std::vector<std::string> preferredRegionContextNames,
204 vtkCollection* foundEntries = nullptr);
205
209 bool GetCategoryInTerminology(std::string terminologyName, CodeIdentifier categoryId, vtkSlicerTerminologyCategory* categoryObject);
211 int GetNumberOfCategoriesInTerminology(std::string terminologyName);
216 bool GetNthCategoryInTerminology(std::string terminologyName, int categoryIndex, vtkSlicerTerminologyCategory* category);
217
222 bool GetTypesInTerminologyCategory(std::string terminologyName, CodeIdentifier categoryId, std::vector<CodeIdentifier>& types);
229 bool FindTypesInTerminologyCategory(std::string terminologyName,
230 CodeIdentifier categoryId,
231 std::vector<CodeIdentifier>& types,
232 std::string search,
233 std::vector<vtkSmartPointer<vtkSlicerTerminologyType>>* typeObjects = nullptr);
237 bool GetTypeInTerminologyCategory(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, vtkSlicerTerminologyType* typeObject);
239 int GetNumberOfTypesInTerminologyCategory(std::string terminologyName, vtkSlicerTerminologyCategory* category);
246 bool GetNthTypeInTerminologyCategory(std::string terminologyName, vtkSlicerTerminologyCategory* category, int typeIndex, vtkSlicerTerminologyType* type);
247
252 bool GetTypeModifiersInTerminologyType(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, std::vector<CodeIdentifier>& typeModifiers);
256 bool GetTypeModifierInTerminologyType(std::string terminologyName,
257 CodeIdentifier categoryId,
258 CodeIdentifier typeId,
259 CodeIdentifier modifierId,
260 vtkSlicerTerminologyType* typeModifier);
270 bool GetNthTypeModifierInTerminologyType(std::string terminologyName,
273 int typeModifierIndex,
274 vtkSlicerTerminologyType* typeModifier);
275
280 bool GetRegionsInRegionContext(std::string regionContextName, std::vector<CodeIdentifier>& regions);
283 int GetNumberOfRegionsInRegionContext(std::string regionContextName);
290 bool GetNthRegionInRegionContext(std::string regionContextName, int regionIndex, vtkSlicerTerminologyType* regionObject);
291
294 bool FindRegionsInRegionContext(std::string regionContextName, std::vector<CodeIdentifier>& regions, std::string search);
298 bool GetRegionInRegionContext(std::string regionContextName, CodeIdentifier regionId, vtkSlicerTerminologyType* regionObject);
299
304 bool GetRegionModifiersInRegion(std::string regionContextName, CodeIdentifier regionId, std::vector<CodeIdentifier>& regionModifiers);
308 bool GetRegionModifierInRegion(std::string regionContextName, CodeIdentifier regionId, CodeIdentifier modifierId, vtkSlicerTerminologyType* regionModifier);
311 int GetNumberOfRegionModifierInRegion(std::string regionContextName, vtkSlicerTerminologyType* regionObject);
319 bool GetNthRegionModifierInRegion(std::string regionContextName, vtkSlicerTerminologyType* regionObject, int regionModifierIndex, vtkSlicerTerminologyType* regionModifier);
320
326 bool FindTypeInTerminologyBy3dSlicerLabel(std::string terminologyName, std::string slicerLabel, vtkSlicerTerminologyEntry* entry);
327
330
335
347 static std::string SerializeTerminologyEntry(std::string terminologyContextName,
348 std::string categoryValue,
349 std::string categorySchemeDesignator,
350 std::string categoryMeaning,
351 std::string typeValue,
352 std::string typeSchemeDesignator,
353 std::string typeMeaning,
354 std::string modifierValue,
355 std::string modifierSchemeDesignator,
356 std::string modifierMeaning,
357 std::string regionContextName,
358 std::string regionValue,
359 std::string regionSchemeDesignator,
360 std::string regionMeaning,
361 std::string regionModifierValue,
362 std::string regionModifierSchemeDesignator,
363 std::string regionModifierMeaning);
364
369 static bool DeserializeTerminologyEntry(std::string serializedEntry, vtkSlicerTerminologyEntry* entry);
370
375 std::vector<std::string> preferredTerminologyNames,
376 std::vector<std::string> preferredRegionContextNames);
377
380
384 // These functions are not static because in the future conversion may involve translation tables
385 // to accept equivalent codes as equal (to allow comparing terms between different coding schemes)
388 bool AreTerminologyEntriesEqual(std::string terminologyEntry1, std::string terminologyEntry2);
389 bool AreCodedEntriesEqual(vtkCodedEntry* codedEntry1, vtkCodedEntry* codedEntry2);
393 static bool AreCodedEntriesExactMatch(vtkCodedEntry* codedEntry1, vtkCodedEntry* codedEntry2);
394
404 static int GetColorIndexByTerminology(vtkMRMLColorNode* colorNode, const std::string& terminologyStr, bool ignoreContextName = true);
405
407 std::string LoadAnatomicContextFromFile(std::string filePath);
408 // Deprecated. Use LoadRegionContextFromSegmentDescriptorFile instead.
409 bool LoadAnatomicContextFromSegmentDescriptorFile(std::string contextName, std::string filePath);
410 // Deprecated. Use GetLoadedRegionContextNames instead.
411 void GetLoadedAnatomicContextNames(std::vector<std::string>& anatomicContextNames);
413 void GetLoadedAnatomicContextNames(vtkStringArray* anatomicContextNames);
415 std::vector<std::string> FindAnatomicContextNames(std::string anatomicRegionCodingSchemeDesignator,
416 std::string anatomicRegionCodeValue,
417 std::string anatomicRegionModifierCodingSchemeDesignator,
418 std::string anatomicRegionModifierCodeValue,
419 std::vector<std::string> preferredAnatomicContextNames,
420 vtkCollection* foundEntries = nullptr);
422 bool GetRegionsInAnatomicContext(std::string anatomicContextName, std::vector<CodeIdentifier>& regions);
424 int GetNumberOfRegionsInAnatomicContext(std::string anatomicContextName);
426 bool GetNthRegionInAnatomicContext(std::string anatomicContextName, int regionIndex, vtkSlicerTerminologyType* regionObject);
428 bool FindRegionsInAnatomicContext(std::string anatomicContextName, std::vector<CodeIdentifier>& regions, std::string search);
430 bool GetRegionInAnatomicContext(std::string anatomicContextName, CodeIdentifier regionId, vtkSlicerTerminologyType* regionObject);
432 bool GetRegionModifiersInAnatomicRegion(std::string anatomicContextName, CodeIdentifier regionId, std::vector<CodeIdentifier>& regionModifiers);
434 bool GetRegionModifierInAnatomicRegion(std::string regionContextName, CodeIdentifier regionId, CodeIdentifier modifierId, vtkSlicerTerminologyType* regionModifier);
436 int GetNumberOfRegionModifierInAnatomicRegion(std::string anatomicContextName, vtkSlicerTerminologyType* regionObject);
438 bool GetNthRegionModifierInAnatomicRegion(std::string anatomicContextName,
439 vtkSlicerTerminologyType* regionObject,
440 int regionModifierIndex,
441 vtkSlicerTerminologyType* regionModifier);
446
447public:
448 vtkGetStringMacro(UserContextsPath);
449 vtkSetStringMacro(UserContextsPath);
450
451protected:
454
455 void SetMRMLSceneInternal(vtkMRMLScene* newScene) override;
456
463
464protected:
466 char* UserContextsPath{ nullptr };
467
468private:
470 void operator=(const vtkSlicerTerminologiesModuleLogic&) = delete;
471
472 class vtkInternal;
473 vtkInternal* Internal;
474 friend class vtkInternal;
475};
476
477#endif
Simple class for storing standard coded entries (coding scheme, value, meaning triplets)
Abstract MRML node to represent color information.
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.
This class encapsulates a segment that is part of a segmentation.
Definition vtkSegment.h:45
Information needed to uniquely identify a terminology code.
CodeIdentifier(std::string codingSchemeDesignator, std::string codeValue, std::string codeMeaning=std::string())
static bool GetTerminologyEntry(vtkMRMLNode *node, vtkSlicerTerminologyEntry *entry)
static CodeIdentifier CodeIdentifierFromTerminologyType(vtkSlicerTerminologyType *type)
bool AreSegmentTerminologyEntriesEqual(vtkSegment *segment1, vtkSegment *segment2)
void GetLoadedAnatomicContextNames(std::vector< std::string > &anatomicContextNames)
bool GetTypeModifiersInTerminologyType(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, std::vector< CodeIdentifier > &typeModifiers)
char * UserContextsPath
The path from which the json files are automatically loaded on startup.
bool GetCategoryInTerminology(std::string terminologyName, CodeIdentifier categoryId, vtkSlicerTerminologyCategory *categoryObject)
void GetLoadedTerminologyNames(vtkStringArray *terminologyNames)
Python accessor variant of.
static std::string SerializeTerminologyEntry(vtkSlicerTerminologyEntry *entry)
bool LoadAnatomicContextFromSegmentDescriptorFile(std::string contextName, std::string filePath)
void PrintSelf(ostream &os, vtkIndent indent) override
bool GetRegionInAnatomicContext(std::string anatomicContextName, CodeIdentifier regionId, vtkSlicerTerminologyType *regionObject)
static vtkSlicerTerminologiesModuleLogic * New()
bool AreTerminologyEntriesEqual(std::string terminologyEntry1, std::string terminologyEntry2)
static void SetTerminologyEntry(vtkMRMLNode *node, vtkSlicerTerminologyEntry *entry)
static bool AreCodedEntriesExactMatch(vtkCodedEntry *codedEntry1, vtkCodedEntry *codedEntry2)
static std::string SerializeTerminologyEntry(std::string terminologyContextName, std::string categoryValue, std::string categorySchemeDesignator, std::string categoryMeaning, std::string typeValue, std::string typeSchemeDesignator, std::string typeMeaning, std::string modifierValue, std::string modifierSchemeDesignator, std::string modifierMeaning, std::string regionContextName, std::string regionValue, std::string regionSchemeDesignator, std::string regionMeaning, std::string regionModifierValue, std::string regionModifierSchemeDesignator, std::string regionModifierMeaning)
bool UpdateEntryFromLoadedTerminologies(vtkSlicerTerminologyEntry *entry, std::vector< std::string > preferredTerminologyNames, std::vector< std::string > preferredRegionContextNames)
std::vector< std::string > FindRegionContextNames(std::string regionCodingSchemeDesignator, std::string regionCodeValue, std::string regionModifierCodingSchemeDesignator, std::string regionModifierCodeValue, std::vector< std::string > preferredRegionContextNames, vtkCollection *foundEntries=nullptr)
bool FindFirstColorNodeOrTerminology(vtkSlicerTerminologyEntry *entry, std::vector< std::string > preferredTerminologyNames, std::string &foundTerminologyName, std::string &foundColorNodeID, int &foundColorIndex)
int GetNumberOfRegionsInRegionContext(std::string regionContextName)
int GetNumberOfTypeModifiersInTerminologyType(std::string terminologyName, vtkSlicerTerminologyCategory *category, vtkSlicerTerminologyType *type)
Get number of type modifiers for the chosen category and type in a terminology.
static void SetDefaultTerminologyEntry(vtkMRMLNode *node, vtkSlicerTerminologyEntry *entry)
bool FindFirstColorNodeOrTerminology(std::string categoryCodingSchemeDesignator, std::string categoryCodeValue, std::string typeCodingSchemeDesignator, std::string typeCodeValue, std::string typeModifierCodingSchemeDesignator, std::string typeModifierCodeValue, std::string regionCodingSchemeDesignator, std::string regionCodeValue, std::string regionModifierCodingSchemeDesignator, std::string regionModifierCodeValue, std::vector< std::string > preferredTerminologyNames, std::string &foundTerminologyName, std::string &foundColorNodeID, int &foundColorIndex)
bool FindRegionsInAnatomicContext(std::string anatomicContextName, std::vector< CodeIdentifier > &regions, std::string search)
static int GetColorIndexByTerminology(vtkMRMLColorNode *colorNode, const std::string &terminologyStr, bool ignoreContextName=true)
bool GetNthTypeInTerminologyCategory(std::string terminologyName, vtkSlicerTerminologyCategory *category, int typeIndex, vtkSlicerTerminologyType *type)
static const char * GetColorAutoGeneratedAttributeName()
Node attribute name for color auto generated.
vtkMRMLColorNode * GetFirstCompatibleColorNodeByName(std::string name)
Return the first compatible color node that has a matching name.
bool GetCategoriesInTerminology(std::string terminologyName, std::vector< CodeIdentifier > &categories)
bool IsTerminologyContextLoaded(std::string terminologyName)
Returns true if the terminology name is loaded.
bool GetNthRegionInAnatomicContext(std::string anatomicContextName, int regionIndex, vtkSlicerTerminologyType *regionObject)
void GetLoadedRegionContextNames(vtkStringArray *regionContextNames)
Python accessor variant of.
bool GetRegionModifiersInAnatomicRegion(std::string anatomicContextName, CodeIdentifier regionId, std::vector< CodeIdentifier > &regionModifiers)
std::vector< std::string > FindAnatomicContextNames(std::string anatomicRegionCodingSchemeDesignator, std::string anatomicRegionCodeValue, std::string anatomicRegionModifierCodingSchemeDesignator, std::string anatomicRegionModifierCodeValue, std::vector< std::string > preferredAnatomicContextNames, vtkCollection *foundEntries=nullptr)
bool FindTypesInTerminologyCategory(std::string terminologyName, CodeIdentifier categoryId, std::vector< CodeIdentifier > &types, std::string search, std::vector< vtkSmartPointer< vtkSlicerTerminologyType > > *typeObjects=nullptr)
int GetNumberOfCategoriesInTerminology(std::string terminologyName)
Get number of categories in a terminology.
bool GetTypesInTerminologyCategory(std::string terminologyName, CodeIdentifier categoryId, std::vector< CodeIdentifier > &types)
int GetNumberOfTypesInTerminologyCategory(std::string terminologyName, vtkSlicerTerminologyCategory *category)
Get number of types in the chosen category in a terminology.
static CodeIdentifier CodeIdentifierFromTerminologyCategory(vtkSlicerTerminologyCategory *category)
bool FindCategoriesInTerminology(std::string terminologyName, std::vector< CodeIdentifier > &categories, std::string search)
bool AreTerminologyEntriesEqual(vtkSlicerTerminologyEntry *entry1, vtkSlicerTerminologyEntry *entry2)
void LoadUserContexts()
Load terminologies and region contexts from the user settings directory.
std::vector< std::string > FindTerminologyNames(std::string categoryCodingSchemeDesignator, std::string categoryCodeValue, std::string typeCodingSchemeDesignator, std::string typeCodeValue, std::string typeModifierCodingSchemeDesignator, std::string typeModifierCodeValue, std::vector< std::string > preferredTerminologyNames, vtkCollection *foundEntries=nullptr, vtkIntArray *foundPreferredTerminologyNameIndices=nullptr)
std::string LoadTerminologyFromFile(std::string filePath)
bool GetRegionModifiersInRegion(std::string regionContextName, CodeIdentifier regionId, std::vector< CodeIdentifier > &regionModifiers)
bool FindTypeInTerminologyBy3dSlicerLabel(std::string terminologyName, std::string slicerLabel, vtkSlicerTerminologyEntry *entry)
void GetLoadedAnatomicContextNames(vtkStringArray *anatomicContextNames)
bool GetRegionInRegionContext(std::string regionContextName, CodeIdentifier regionId, vtkSlicerTerminologyType *regionObject)
void GetLoadedTerminologyNames(std::vector< std::string > &terminologyNames)
Get context names of loaded terminologies.
bool GetNthRegionModifierInRegion(std::string regionContextName, vtkSlicerTerminologyType *regionObject, int regionModifierIndex, vtkSlicerTerminologyType *regionModifier)
bool FindRegionsInRegionContext(std::string regionContextName, std::vector< CodeIdentifier > &regions, std::string search)
bool GetNthRegionInRegionContext(std::string regionContextName, int regionIndex, vtkSlicerTerminologyType *regionObject)
static std::string GetDefaultTerminologyEntryAsString(vtkMRMLNode *node)
static bool GetDefaultTerminologyEntry(vtkMRMLNode *node, vtkSlicerTerminologyEntry *entry)
bool GetRegionModifierInRegion(std::string regionContextName, CodeIdentifier regionId, CodeIdentifier modifierId, vtkSlicerTerminologyType *regionModifier)
bool GetNthCategoryInTerminology(std::string terminologyName, int categoryIndex, vtkSlicerTerminologyCategory *category)
static std::string GetTerminologyEntryAsString(vtkMRMLNode *node)
static CodeIdentifier GetCodeIdentifierFromCodedEntry(vtkCodedEntry *entry)
Convert terminology category, type, etc. object to code identifier.
static std::string GetInfoStringFromTerminologyEntry(vtkSlicerTerminologyEntry *entry)
Assemble human readable info string from a terminology entry, for example for tooltips.
std::string LoadRegionContextFromFile(std::string filePath)
bool GetTypeModifierInTerminologyType(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, CodeIdentifier modifierId, vtkSlicerTerminologyType *typeModifier)
int GetNumberOfRegionsInAnatomicContext(std::string anatomicContextName)
bool LoadRegionContextFromSegmentDescriptorFile(std::string contextName, std::string filePath)
void GetLoadedRegionContextNames(std::vector< std::string > &regionContextNames)
Get context names of loaded region contexts.
bool GetNthTypeModifierInTerminologyType(std::string terminologyName, vtkSlicerTerminologyCategory *category, vtkSlicerTerminologyType *type, int typeModifierIndex, vtkSlicerTerminologyType *typeModifier)
void SetMRMLSceneInternal(vtkMRMLScene *newScene) override
static const char * GetNameAutoGeneratedAttributeName()
Node attribute name for name auto generated.
std::string LoadAnatomicContextFromFile(std::string filePath)
static void SetTerminologyEntryAsString(vtkMRMLNode *node, std::string entryStr)
bool GetTypeInTerminologyCategory(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, vtkSlicerTerminologyType *typeObject)
bool LoadContextFromFile(std::string filePath)
int GetNumberOfRegionModifierInRegion(std::string regionContextName, vtkSlicerTerminologyType *regionObject)
void LoadDefaultRegionContexts()
Load default region context dictionaries from JSON into.
static void SetDefaultTerminologyEntryAsString(vtkMRMLNode *node, std::string entryStr)
static bool DeserializeTerminologyEntry(std::string serializedEntry, vtkSlicerTerminologyEntry *entry)
std::vector< std::string > FindColorNodes(std::string categoryCodingSchemeDesignator, std::string categoryCodeValue, std::string typeCodingSchemeDesignator, std::string typeCodeValue, std::string typeModifierCodingSchemeDesignator, std::string typeModifierCodeValue, std::string regionCodingSchemeDesignator, std::string regionCodeValue, std::string regionModifierCodingSchemeDesignator, std::string regionModifierCodeValue, std::vector< std::string > preferredColorNodeNames, vtkIntArray *foundColorIndices=nullptr, vtkIntArray *foundPreferredColorNodeIndices=nullptr)
int GetNumberOfRegionModifierInAnatomicRegion(std::string anatomicContextName, vtkSlicerTerminologyType *regionObject)
bool AreCodedEntriesEqual(vtkCodedEntry *codedEntry1, vtkCodedEntry *codedEntry2)
bool GetRegionModifierInAnatomicRegion(std::string regionContextName, CodeIdentifier regionId, CodeIdentifier modifierId, vtkSlicerTerminologyType *regionModifier)
bool GetRegionsInAnatomicContext(std::string anatomicContextName, std::vector< CodeIdentifier > &regions)
bool LoadTerminologyFromSegmentDescriptorFile(std::string contextName, std::string filePath)
static const char * GetTerminologyEntryAttributeName()
Terminology entry (serialized to string)
bool GetRegionsInRegionContext(std::string regionContextName, std::vector< CodeIdentifier > &regions)
static void SetTerminologyEntryAsString(vtkMRMLNode *node, std::string entryStr, bool nameAutoGenerated, bool colorAutoGenerated)
bool GetNthRegionModifierInAnatomicRegion(std::string anatomicContextName, vtkSlicerTerminologyType *regionObject, int regionModifierIndex, vtkSlicerTerminologyType *regionModifier)
std::vector< std::string > GetCompatibleColorNodeIDs()
Get list of color node IDs that contain terminology information.
void LoadDefaultTerminologies()
Load default terminology dictionaries from JSON into.
Terminology property category object.
Terminology property type object.