class_docstr: This dense block is defined as a sequence of 'Convolution' blocks. It overwrite the '_get_layer' methodto change the ordering of
  Every convolutional layer is preceded by a batch-normalization layer and a Rectifier Linear Unit (ReLU) layer.
  The first two convolutional layers are followed by a concatenation layer that concatenates
  the input feature map with outputs of the current and previous convolutional blocks.
  Kernel size of two convolutional layers kept small to limit number of paramters.
  Appropriate padding is provided so that the size of feature maps before and after convolution remains constant.
  The output channels for each convolution layer is set to 64, which acts as a bottle- neck for feature map selectivity.
  The input channel size is variable, depending on the number of dense connections.
  The third convolutional layer is also preceded by a batch normalization and ReLU,
  but has a 1 * 1 kernel size to compress the feature map size to 64.
  Args:
      in_channles: variable depending on depth of the network
      seLayer: Squeeze and Excite block to be included, defaults to None, valid options are {'NONE', 'CSE', 'SSE', 'CSSE'},
      dropout_layer: Dropout block to be included, defaults to None.
  :return: forward passed tensor
class_docstr_tok: ["This","dense","block","is","defined","as","a","sequence","of","'Convolution","'","blocks",".","It","overwrite","the","'_get_layer","'","methodto","change","the","ordering","of","Every","convolutional","layer","is","preceded","by","a","batch-normalization","layer","and","a","Rectifier","Linear","Unit","(","ReLU",")","layer",".","The","first","two","convolutional","layers","are","followed","by","a","concatenation","layer","that","concatenates","the","input","feature","map","with","outputs","of","the","current","and","previous","convolutional","blocks",".","Kernel","size","of","two","convolutional","layers","kept","small","to","limit","number","of","paramters",".","Appropriate","padding","is","provided","so","that","the","size","of","feature","maps","before","and","after","convolution","remains","constant",".","The","output","channels","for","each","convolution","layer","is","set","to","64",",","which","acts","as","a","bottle-","neck","for","feature","map","selectivity",".","The","input","channel","size","is","variable",",","depending","on","the","number","of","dense","connections",".","The","third","convolutional","layer","is","also","preceded","by","a","batch","normalization","and","ReLU",",","but","has","a","1","*","1","kernel","size","to","compress","the","feature","map","size","to","64",".","Args",":","in_channles",":","variable","depending","on","depth","of","the","network","seLayer",":","Squeeze","and","Excite","block","to","be","included",",","defaults","to","None",",","valid","options","are","{","'NONE","'",",","'CSE","'",",","'SSE","'",",","'CSSE","'","}",",","dropout_layer",":","Dropout","block","to","be","included",",","defaults","to","None",".",":","return",":","forward","passed","tensor"]
docstr: After ever convolutional layer the output is concatenated with the input and the layer before.
  The concatenated output is used as input to the next convolutional layer.
  
  Args:
      in_channels: number of input channels.
      out_channels: number of output channels.
      strides: convolution stride.
      is_top: True if this is the top block.
docstr_tok: ["After","ever","convolutional","layer","the","output","is","concatenated","with","the","input","and","the","layer","before",".","The","concatenated","output","is","used","as","input","to","the","next","convolutional","layer",".","Args",":","in_channels",":","number","of","input","channels",".","out_channels",":","number","of","output","channels",".","strides",":","convolution","stride",".","is_top",":","True","if","this","is","the","top","block","."]
code: def _get_layer(self, in_channels, out_channels, dilation):
      """
      After ever convolutional layer the output is concatenated with the input and the layer before.
      The concatenated output is used as input to the next convolutional layer.
  
      Args:
          in_channels: number of input channels.
          out_channels: number of output channels.
          strides: convolution stride.
          is_top: True if this is the top block.
      """
      kernelsize = self.kernel_size if self.count < 2 else (1, 1)
      # padding = None if self.count < 2 else (0, 0)
      self.count += 1
      conv = Convolution(
          spatial_dims=self.spatial_dims,
          in_channels=in_channels,
          out_channels=out_channels,
          strides=1,
          kernel_size=kernelsize,
          act=self.act,
          norm=("instance", {"num_features": in_channels}),
      )
      return nn.Sequential(
          conv.get_submodule("adn"), conv.get_submodule("conv")
      )
  
imports: from __future__ import annotations
  from typing import Optional, Sequence, Tuple, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from monai.networks.blocks import ConvDenseBlock, Convolution
  from monai.networks.blocks import squeeze_and_excitation
  from monai.networks.layers.factories import Act, Norm
  from monai.networks.layers.simplelayers import SkipConnection
  from monai.networks.layers.utils import get_dropout_layer, get_pool_layer
  from monai.utils import optional_import
label_desc: Use image node_id 2 for calling the ConvConcatDenseBlock obj's underlying member method code with example usage: obj._get_layer(in_channels, out_channels, dilation) and returns: nn