23#ifndef __vtkSlicerTerminologiesModuleLogic_h
24#define __vtkSlicerTerminologiesModuleLogic_h
29#include "vtkSlicerTerminologiesModuleLogicExport.h"
46 void PrintSelf(ostream& os, vtkIndent indent)
override;
54 CodeIdentifier(std::string codingSchemeDesignator, std::string codeValue, std::string codeMeaning=std::string())
55 : CodingSchemeDesignator(codingSchemeDesignator)
56 , CodeValue(codeValue)
57 , CodeMeaning(codeMeaning)
61 return !CodingSchemeDesignator.empty() && !CodeValue.empty();
119 std::string categoryCodingSchemeDesignator, std::string categoryCodeValue,
120 std::string typeCodingSchemeDesignator, std::string typeCodeValue,
121 std::string typeModifierCodingSchemeDesignator, std::string typeModifierCodeValue,
122 std::vector<std::string> preferredTerminologyNames,
123 vtkCollection* foundEntries=
nullptr);
128 std::string anatomicRegionCodingSchemeDesignator, std::string anatomicRegionCodeValue,
129 std::string anatomicRegionModifierCodingSchemeDesignator, std::string anatomicRegionModifierCodeValue,
130 std::vector<std::string> preferredAnatomicContextNames,
131 vtkCollection* foundEntries=
nullptr);
157 std::vector<vtkSmartPointer<vtkSlicerTerminologyType>>* typeObjects=
nullptr);
259 std::string terminologyContextName,
260 std::string categoryValue, std::string categorySchemeDesignator, std::string categoryMeaning,
261 std::string typeValue, std::string typeSchemeDesignator, std::string typeMeaning,
262 std::string modifierValue, std::string modifierSchemeDesignator, std::string modifierMeaning,
263 std::string anatomicContextName,
264 std::string regionValue, std::string regionSchemeDesignator, std::string regionMeaning,
265 std::string regionModifierValue, std::string regionModifierSchemeDesignator, std::string regionModifierMeaning );
293 vtkGetStringMacro(UserContextsPath);
294 vtkSetStringMacro(UserContextsPath);
311 char* UserContextsPath{
nullptr};
318 vtkInternal* Internal;
319 friend class vtkInternal;
Simple class for storing standard coded entries (coding scheme, value, meaning triplets)
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())
bool AreSegmentTerminologyEntriesEqual(vtkSegment *segment1, vtkSegment *segment2)
void GetLoadedAnatomicContextNames(std::vector< std::string > &anatomicContextNames)
Get context names of loaded anatomic contexts.
~vtkSlicerTerminologiesModuleLogic() override
bool GetTypeModifiersInTerminologyType(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, std::vector< CodeIdentifier > &typeModifiers)
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)
int GetNumberOfTypeModifiersInTerminologyType(std::string terminologyName, vtkSlicerTerminologyCategory *category, vtkSlicerTerminologyType *type)
Get number of type modifiers for the chosen category and type in a terminology.
bool FindRegionsInAnatomicContext(std::string anatomicContextName, std::vector< CodeIdentifier > ®ions, std::string search)
bool GetNthTypeInTerminologyCategory(std::string terminologyName, vtkSlicerTerminologyCategory *category, int typeIndex, vtkSlicerTerminologyType *type)
static const char * GetColorAutoGeneratedAttributeName()
Node attribute name for color auto generated.
bool GetCategoriesInTerminology(std::string terminologyName, std::vector< CodeIdentifier > &categories)
bool GetNthRegionInAnatomicContext(std::string anatomicContextName, int regionIndex, vtkSlicerTerminologyType *regionObject)
bool GetRegionModifiersInAnatomicRegion(std::string anatomicContextName, CodeIdentifier regionId, std::vector< CodeIdentifier > ®ionModifiers)
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.
bool FindCategoriesInTerminology(std::string terminologyName, std::vector< CodeIdentifier > &categories, std::string search)
bool AreTerminologyEntriesEqual(vtkSlicerTerminologyEntry *entry1, vtkSlicerTerminologyEntry *entry2)
void LoadUserContexts()
Load terminologies and anatomic contexts from the user settings directory.
std::string LoadTerminologyFromFile(std::string filePath)
void LoadDefaultAnatomicContexts()
Load default anatomic context dictionaries from JSON into.
bool FindTypeInTerminologyBy3dSlicerLabel(std::string terminologyName, std::string slicerLabel, vtkSlicerTerminologyEntry *entry)
void GetLoadedAnatomicContextNames(vtkStringArray *anatomicContextNames)
Python accessor variant of.
bool DeserializeTerminologyEntry(std::string serializedEntry, vtkSlicerTerminologyEntry *entry)
void GetLoadedTerminologyNames(std::vector< std::string > &terminologyNames)
Get context names of loaded terminologies.
bool GetNthCategoryInTerminology(std::string terminologyName, int categoryIndex, vtkSlicerTerminologyCategory *category)
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.
bool GetTypeModifierInTerminologyType(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, CodeIdentifier modifierId, vtkSlicerTerminologyType *typeModifier)
int GetNumberOfRegionsInAnatomicContext(std::string anatomicContextName)
vtkSlicerTerminologiesModuleLogic()
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)
bool GetTypeInTerminologyCategory(std::string terminologyName, CodeIdentifier categoryId, CodeIdentifier typeId, vtkSlicerTerminologyType *typeObject)
bool LoadContextFromFile(std::string filePath)
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)
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 anatomicContextName, std::string regionValue, std::string regionSchemeDesignator, std::string regionMeaning, std::string regionModifierValue, std::string regionModifierSchemeDesignator, std::string regionModifierMeaning)
bool UpdateEntryFromLoadedTerminologies(vtkSlicerTerminologyEntry *entry)
int GetNumberOfRegionModifierInAnatomicRegion(std::string anatomicContextName, vtkSlicerTerminologyType *regionObject)
bool AreCodedEntriesEqual(vtkCodedEntry *codedEntry1, vtkCodedEntry *codedEntry2)
bool GetRegionsInAnatomicContext(std::string anatomicContextName, std::vector< CodeIdentifier > ®ions)
bool LoadTerminologyFromSegmentDescriptorFile(std::string contextName, std::string filePath)
bool GetRegionModifierInAnatomicRegion(std::string anatomicContextName, CodeIdentifier regionId, CodeIdentifier modifierId, vtkSlicerTerminologyType *regionModifier)
bool GetNthRegionModifierInAnatomicRegion(std::string anatomicContextName, vtkSlicerTerminologyType *regionObject, int regionModifierIndex, vtkSlicerTerminologyType *regionModifier)
void LoadDefaultTerminologies()
Load default terminology dictionaries from JSON into.
Terminology property category object.
Terminology property type object.