code: def _get_node(self, time_qualifier, timeperiod):
          
          hierarchy_entry = self.process_hierarchy.get_by_qualifier(time_qualifier)
          if hierarchy_entry.parent:
              parent_time_qualifier = hierarchy_entry.parent.process_entry.time_qualifier
              parent_timeperiod = hierarchy_entry.parent.cast_timeperiod(timeperiod)
              parent = self._get_node(parent_time_qualifier, parent_timeperiod)
          else:
              parent = self.root
  
          node = parent.children.get(timeperiod)
          if node is None:
              node = TreeNode(self, parent, hierarchy_entry.process_entry.process_name, timeperiod, None)
              parent.children[timeperiod] = node
  
          return node
docs: Method retrieves a tree node identified by time_qualifier and timeperiod
          In case intermittent or target nodes does not exist - method will request their creation
          :param time_qualifier: identifies the tree level
          :param timeperiod: identifies the target node timeperiod
          :return: requested node; type <AbstractNode>