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
79 static void SetDefaultTerminologyEntryAsString(vtkMRMLNode* node, std::string entryStr);
80
86 bool LoadContextFromFile(std::string filePath);
90 std::string LoadTerminologyFromFile(std::string filePath);
94 std::string LoadRegionContextFromFile(std::string filePath);
99 bool LoadTerminologyFromSegmentDescriptorFile(std::string contextName, std::string filePath);
102 bool LoadRegionContextFromSegmentDescriptorFile(std::string contextName, std::string filePath);
103
105 void GetLoadedTerminologyNames(std::vector<std::string>& terminologyNames);
107 bool IsTerminologyContextLoaded(std::string terminologyName);
109 void GetLoadedTerminologyNames(vtkStringArray* terminologyNames);
111 void GetLoadedRegionContextNames(std::vector<std::string>& regionContextNames);
113 void GetLoadedRegionContextNames(vtkStringArray* regionContextNames);
114
116 std::vector<std::string> GetCompatibleColorNodeIDs();
117
120
125 bool GetCategoriesInTerminology(std::string terminologyName, std::vector<CodeIdentifier>& categories);
130 bool FindCategoriesInTerminology(std::string terminologyName, std::vector<CodeIdentifier>& categories, std::string search);
131
136 std::vector<std::string> FindColorNodes(std::string categoryCodingSchemeDesignator,
137 std::string categoryCodeValue,
138 std::string typeCodingSchemeDesignator,
139 std::string typeCodeValue,
140 std::string typeModifierCodingSchemeDesignator,
141 std::string typeModifierCodeValue,
142 std::string regionCodingSchemeDesignator,
143 std::string regionCodeValue,
144 std::string regionModifierCodingSchemeDesignator,
145 std::string regionModifierCodeValue,
146 std::vector<std::string> preferredColorNodeNames,
147 vtkIntArray* foundColorIndices = nullptr,
148 vtkIntArray* foundPreferredColorNodeIndices = nullptr);
149
155 std::vector<std::string> FindTerminologyNames(std::string categoryCodingSchemeDesignator,
156 std::string categoryCodeValue,
157 std::string typeCodingSchemeDesignator,
158 std::string typeCodeValue,
159 std::string typeModifierCodingSchemeDesignator,
160 std::string typeModifierCodeValue,
161 std::vector<std::string> preferredTerminologyNames,
162 vtkCollection* foundEntries = nullptr,
163 vtkIntArray* foundPreferredTerminologyNameIndices = nullptr);
164
171 std::vector<std::string> preferredTerminologyNames,
172 std::string& foundTerminologyName,
173 std::string& foundColorNodeID,
174 int& foundColorIndex);
175
181 bool FindFirstColorNodeOrTerminology(std::string categoryCodingSchemeDesignator,
182 std::string categoryCodeValue,
183 std::string typeCodingSchemeDesignator,
184 std::string typeCodeValue,
185 std::string typeModifierCodingSchemeDesignator,
186 std::string typeModifierCodeValue,
187 std::string regionCodingSchemeDesignator,
188 std::string regionCodeValue,
189 std::string regionModifierCodingSchemeDesignator,
190 std::string regionModifierCodeValue,
191 std::vector<std::string> preferredTerminologyNames,
192 std::string& foundTerminologyName,
193 std::string& foundColorNodeID,
194 int& foundColorIndex);
195
198 std::vector<std::string> FindRegionContextNames(std::string regionCodingSchemeDesignator,
199 std::string regionCodeValue,
200 std::string regionModifierCodingSchemeDesignator,
201 std::string regionModifierCodeValue,
202 std::vector<std::string> preferredRegionContextNames,
203 vtkCollection* foundEntries = nullptr);
204
208 bool GetCategoryInTerminology(std::string terminologyName, CodeIdentifier categoryId, vtkSlicerTerminologyCategory* categoryObject);
210 int GetNumberOfCategoriesInTerminology(std::string terminologyName);
215 bool GetNthCategoryInTerminology(std::string terminologyName, int categoryIndex, vtkSlicerTerminologyCategory* category);
216
221 bool GetTypesInTerminologyCategory(std::string terminologyName, CodeIdentifier categoryId, std::vector<CodeIdentifier>& types);
228 bool FindTypesInTerminologyCategory(std::string terminologyName,
229 CodeIdentifier categoryId,
230 std::vector<CodeIdentifier>& types,
231 std::string search,
232 std::vector<vtkSmartPointer<vtkSlicerTerminologyType>>* typeObjects = nullptr);
236 bool GetTypeInTerminologyCategory(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, vtkSlicerTerminologyType* typeObject);
238 int GetNumberOfTypesInTerminologyCategory(std::string terminologyName, vtkSlicerTerminologyCategory* category);
245 bool GetNthTypeInTerminologyCategory(std::string terminologyName, vtkSlicerTerminologyCategory* category, int typeIndex, vtkSlicerTerminologyType* type);
246
251 bool GetTypeModifiersInTerminologyType(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, std::vector<CodeIdentifier>& typeModifiers);
255 bool GetTypeModifierInTerminologyType(std::string terminologyName,
256 CodeIdentifier categoryId,
257 CodeIdentifier typeId,
258 CodeIdentifier modifierId,
259 vtkSlicerTerminologyType* typeModifier);
269 bool GetNthTypeModifierInTerminologyType(std::string terminologyName,
272 int typeModifierIndex,
273 vtkSlicerTerminologyType* typeModifier);
274
279 bool GetRegionsInRegionContext(std::string regionContextName, std::vector<CodeIdentifier>& regions);
282 int GetNumberOfRegionsInRegionContext(std::string regionContextName);
289 bool GetNthRegionInRegionContext(std::string regionContextName, int regionIndex, vtkSlicerTerminologyType* regionObject);
290
293 bool FindRegionsInRegionContext(std::string regionContextName, std::vector<CodeIdentifier>& regions, std::string search);
297 bool GetRegionInRegionContext(std::string regionContextName, CodeIdentifier regionId, vtkSlicerTerminologyType* regionObject);
298
303 bool GetRegionModifiersInRegion(std::string regionContextName, CodeIdentifier regionId, std::vector<CodeIdentifier>& regionModifiers);
307 bool GetRegionModifierInRegion(std::string regionContextName, CodeIdentifier regionId, CodeIdentifier modifierId, vtkSlicerTerminologyType* regionModifier);
310 int GetNumberOfRegionModifierInRegion(std::string regionContextName, vtkSlicerTerminologyType* regionObject);
318 bool GetNthRegionModifierInRegion(std::string regionContextName, vtkSlicerTerminologyType* regionObject, int regionModifierIndex, vtkSlicerTerminologyType* regionModifier);
319
325 bool FindTypeInTerminologyBy3dSlicerLabel(std::string terminologyName, std::string slicerLabel, vtkSlicerTerminologyEntry* entry);
326
329
334
346 static std::string SerializeTerminologyEntry(std::string terminologyContextName,
347 std::string categoryValue,
348 std::string categorySchemeDesignator,
349 std::string categoryMeaning,
350 std::string typeValue,
351 std::string typeSchemeDesignator,
352 std::string typeMeaning,
353 std::string modifierValue,
354 std::string modifierSchemeDesignator,
355 std::string modifierMeaning,
356 std::string regionContextName,
357 std::string regionValue,
358 std::string regionSchemeDesignator,
359 std::string regionMeaning,
360 std::string regionModifierValue,
361 std::string regionModifierSchemeDesignator,
362 std::string regionModifierMeaning);
363
368 static bool DeserializeTerminologyEntry(std::string serializedEntry, vtkSlicerTerminologyEntry* entry);
369
374 std::vector<std::string> preferredTerminologyNames,
375 std::vector<std::string> preferredRegionContextNames);
376
379
383 // These functions are not static because in the future conversion may involve translation tables
384 // to accept equivalent codes as equal (to allow comparing terms between different coding schemes)
387 bool AreTerminologyEntriesEqual(std::string terminologyEntry1, std::string terminologyEntry2);
388 bool AreCodedEntriesEqual(vtkCodedEntry* codedEntry1, vtkCodedEntry* codedEntry2);
392 static bool AreCodedEntriesExactMatch(vtkCodedEntry* codedEntry1, vtkCodedEntry* codedEntry2);
393
403 static int GetColorIndexByTerminology(vtkMRMLColorNode* colorNode, const std::string& terminologyStr, bool ignoreContextName = true);
404
406 std::string LoadAnatomicContextFromFile(std::string filePath);
407 // Deprecated. Use LoadRegionContextFromSegmentDescriptorFile instead.
408 bool LoadAnatomicContextFromSegmentDescriptorFile(std::string contextName, std::string filePath);
409 // Deprecated. Use GetLoadedRegionContextNames instead.
410 void GetLoadedAnatomicContextNames(std::vector<std::string>& anatomicContextNames);
412 void GetLoadedAnatomicContextNames(vtkStringArray* anatomicContextNames);
414 std::vector<std::string> FindAnatomicContextNames(std::string anatomicRegionCodingSchemeDesignator,
415 std::string anatomicRegionCodeValue,
416 std::string anatomicRegionModifierCodingSchemeDesignator,
417 std::string anatomicRegionModifierCodeValue,
418 std::vector<std::string> preferredAnatomicContextNames,
419 vtkCollection* foundEntries = nullptr);
421 bool GetRegionsInAnatomicContext(std::string anatomicContextName, std::vector<CodeIdentifier>& regions);
423 int GetNumberOfRegionsInAnatomicContext(std::string anatomicContextName);
425 bool GetNthRegionInAnatomicContext(std::string anatomicContextName, int regionIndex, vtkSlicerTerminologyType* regionObject);
427 bool FindRegionsInAnatomicContext(std::string anatomicContextName, std::vector<CodeIdentifier>& regions, std::string search);
429 bool GetRegionInAnatomicContext(std::string anatomicContextName, CodeIdentifier regionId, vtkSlicerTerminologyType* regionObject);
431 bool GetRegionModifiersInAnatomicRegion(std::string anatomicContextName, CodeIdentifier regionId, std::vector<CodeIdentifier>& regionModifiers);
433 bool GetRegionModifierInAnatomicRegion(std::string regionContextName, CodeIdentifier regionId, CodeIdentifier modifierId, vtkSlicerTerminologyType* regionModifier);
435 int GetNumberOfRegionModifierInAnatomicRegion(std::string anatomicContextName, vtkSlicerTerminologyType* regionObject);
437 bool GetNthRegionModifierInAnatomicRegion(std::string anatomicContextName,
438 vtkSlicerTerminologyType* regionObject,
439 int regionModifierIndex,
440 vtkSlicerTerminologyType* regionModifier);
445
446public:
447 vtkGetStringMacro(UserContextsPath);
448 vtkSetStringMacro(UserContextsPath);
449
450protected:
453
454 void SetMRMLSceneInternal(vtkMRMLScene* newScene) override;
455
462
463protected:
465 char* UserContextsPath{ nullptr };
466
467private:
469 void operator=(const vtkSlicerTerminologiesModuleLogic&) = delete;
470
471 class vtkInternal;
472 vtkInternal* Internal;
473 friend class vtkInternal;
474};
475
476#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)
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.