23#ifndef __vtkSlicerTerminologiesModuleLogic_h
24#define __vtkSlicerTerminologiesModuleLogic_h
29#include "vtkSlicerTerminologiesModuleLogicExport.h"
45 void PrintSelf(ostream& os, vtkIndent indent)
override;
53 CodeIdentifier(std::string codingSchemeDesignator, std::string codeValue, std::string codeMeaning=std::string())
53 CodeIdentifier(std::string codingSchemeDesignator, std::string codeValue, std::string codeMeaning=std::string()) {
…}
143 std::string categoryCodingSchemeDesignator, std::string categoryCodeValue,
144 std::string typeCodingSchemeDesignator, std::string typeCodeValue,
145 std::string typeModifierCodingSchemeDesignator, std::string typeModifierCodeValue,
146 std::string regionCodingSchemeDesignator, std::string regionCodeValue,
147 std::string regionModifierCodingSchemeDesignator, std::string regionModifierCodeValue,
148 std::vector<std::string> preferredColorNodeNames,
149 vtkIntArray* foundColorIndices=
nullptr,
150 vtkIntArray* foundPreferredColorNodeIndices=
nullptr);
158 std::string categoryCodingSchemeDesignator, std::string categoryCodeValue,
159 std::string typeCodingSchemeDesignator, std::string typeCodeValue,
160 std::string typeModifierCodingSchemeDesignator, std::string typeModifierCodeValue,
161 std::vector<std::string> preferredTerminologyNames,
162 vtkCollection* foundEntries=
nullptr,
163 vtkIntArray* foundPreferredTerminologyNameIndices =
nullptr);
172 std::vector<std::string> preferredTerminologyNames,
173 std::string& foundTerminologyName,
174 std::string& foundColorNodeID,
175 int& foundColorIndex);
183 std::string categoryCodingSchemeDesignator, std::string categoryCodeValue,
184 std::string typeCodingSchemeDesignator, std::string typeCodeValue,
185 std::string typeModifierCodingSchemeDesignator, std::string typeModifierCodeValue,
186 std::string regionCodingSchemeDesignator, std::string regionCodeValue,
187 std::string regionModifierCodingSchemeDesignator, std::string regionModifierCodeValue,
188 std::vector<std::string> preferredTerminologyNames,
189 std::string& foundTerminologyName,
190 std::string &foundColorNodeID,
191 int& foundColorIndex);
196 std::string regionCodingSchemeDesignator, std::string regionCodeValue,
197 std::string regionModifierCodingSchemeDesignator, std::string regionModifierCodeValue,
198 std::vector<std::string> preferredRegionContextNames,
199 vtkCollection* foundEntries=
nullptr);
225 std::vector<vtkSmartPointer<vtkSlicerTerminologyType>>* typeObjects=
nullptr);
335 std::string terminologyContextName,
336 std::string categoryValue, std::string categorySchemeDesignator, std::string categoryMeaning,
337 std::string typeValue, std::string typeSchemeDesignator, std::string typeMeaning,
338 std::string modifierValue, std::string modifierSchemeDesignator, std::string modifierMeaning,
339 std::string regionContextName,
340 std::string regionValue, std::string regionSchemeDesignator, std::string regionMeaning,
341 std::string regionModifierValue, std::string regionModifierSchemeDesignator, std::string regionModifierMeaning );
353 std::vector<std::string> preferredTerminologyNames,
354 std::vector<std::string> preferredRegionContextNames);
410 vtkInternal* Internal;
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.
Information needed to uniquely identify a terminology code.
std::string CodingSchemeDesignator
CodeIdentifier(std::string codingSchemeDesignator, std::string codeValue, std::string codeMeaning=std::string())
static bool GetTerminologyEntry(vtkMRMLNode *node, vtkSlicerTerminologyEntry *entry)
bool AreSegmentTerminologyEntriesEqual(vtkSegment *segment1, vtkSegment *segment2)
~vtkSlicerTerminologiesModuleLogic() override
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)
void PrintSelf(ostream &os, vtkIndent indent) override
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)
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.
void GetLoadedRegionContextNames(vtkStringArray *regionContextNames)
Python accessor variant of.
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.
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 > ®ionModifiers)
bool FindTypeInTerminologyBy3dSlicerLabel(std::string terminologyName, std::string slicerLabel, vtkSlicerTerminologyEntry *entry)
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)
static const char * GetDefaultTerminologyEntryAttributeName()
bool FindRegionsInRegionContext(std::string regionContextName, std::vector< CodeIdentifier > ®ions, 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)
bool LoadRegionContextFromSegmentDescriptorFile(std::string contextName, std::string filePath)
vtkSlicerTerminologiesModuleLogic()
void GetLoadedRegionContextNames(std::vector< std::string > ®ionContextNames)
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.
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)
bool AreCodedEntriesEqual(vtkCodedEntry *codedEntry1, vtkCodedEntry *codedEntry2)
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 > ®ions)
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.