from monai.transforms import *
from medlab.registry import TRANSFORMS

# https://docs.monai.io/en/stable/transforms.html#module-monai.transforms

# Generic Interfaces
# TRANSFORMS.register_module(name='Transform', module=Transform)
TRANSFORMS.register_module(name='MapTransform', module=MapTransform)
TRANSFORMS.register_module(name='RandomizableTrait', module=RandomizableTrait)
TRANSFORMS.register_module(name='LazyTrait', module=LazyTrait)
TRANSFORMS.register_module(name='MultiSampleTrait', module=MultiSampleTrait)
TRANSFORMS.register_module(name='LazyTransform', module=LazyTransform)
TRANSFORMS.register_module(name='Compose', module=Compose)
TRANSFORMS.register_module(name='InvertibleTransform', module=InvertibleTransform)
TRANSFORMS.register_module(name='TraceableTransform', module=TraceableTransform)
TRANSFORMS.register_module(name='BatchInverseTransform', module=BatchInverseTransform)
TRANSFORMS.register_module(name='Decollated', module=Decollated)
TRANSFORMS.register_module(name='OneOf', module=OneOf)
TRANSFORMS.register_module(name='RandomOrder', module=RandomOrder)

# Vanilla Transforms
# Crop and Pad
TRANSFORMS.register_module(name='PadListDataCollate', module=PadListDataCollate)
TRANSFORMS.register_module(name='Pad', module=Pad)
TRANSFORMS.register_module(name='BorderPad', module=BorderPad)
TRANSFORMS.register_module(name='DivisiblePad', module=DivisiblePad)
TRANSFORMS.register_module(name='Crop', module=Crop)
TRANSFORMS.register_module(name='SpatialCrop', module=SpatialCrop)
TRANSFORMS.register_module(name='CenterSpatialCrop', module=CenterSpatialCrop)
TRANSFORMS.register_module(name='RandSpatialCrop', module=RandSpatialCrop)
TRANSFORMS.register_module(name='RandSpatialCropSamples', module=RandSpatialCropSamples)
TRANSFORMS.register_module(name='CropForeground', module=CropForeground)
TRANSFORMS.register_module(name='RandWeightedCrop', module=RandWeightedCrop)
TRANSFORMS.register_module(name='RandCropByPosNegLabel', module=RandCropByPosNegLabel)
TRANSFORMS.register_module(name='RandCropByLabelClasses', module=RandCropByLabelClasses)
TRANSFORMS.register_module(name='ResizeWithPadOrCrop', module=ResizeWithPadOrCrop)
TRANSFORMS.register_module(name='BoundingRect', module=BoundingRect)
TRANSFORMS.register_module(name='RandScaleCrop', module=RandScaleCrop)
TRANSFORMS.register_module(name='CenterScaleCrop', module=CenterScaleCrop)

# Intensity
TRANSFORMS.register_module(name='RandGaussianNoise', module=RandGaussianNoise)
TRANSFORMS.register_module(name='ShiftIntensity', module=ShiftIntensity)
TRANSFORMS.register_module(name='RandShiftIntensity', module=RandShiftIntensity)
TRANSFORMS.register_module(name='StdShiftIntensity', module=StdShiftIntensity)
TRANSFORMS.register_module(name='RandStdShiftIntensity', module=RandStdShiftIntensity)
TRANSFORMS.register_module(name='ScaleIntensity', module=ScaleIntensity)
TRANSFORMS.register_module(name='RandScaleIntensity', module=RandScaleIntensity)
TRANSFORMS.register_module(name='NormalizeIntensity', module=NormalizeIntensity)
TRANSFORMS.register_module(name='ThresholdIntensity', module=ThresholdIntensity)
TRANSFORMS.register_module(name='ScaleIntensityRange', module=ScaleIntensityRange)
TRANSFORMS.register_module(name='ScaleIntensityRangePercentiles', module=ScaleIntensityRangePercentiles)
TRANSFORMS.register_module(name='AdjustContrast', module=AdjustContrast)
TRANSFORMS.register_module(name='RandAdjustContrast', module=RandAdjustContrast)
TRANSFORMS.register_module(name='MaskIntensity', module=MaskIntensity)
TRANSFORMS.register_module(name='SavitzkyGolaySmooth', module=SavitzkyGolaySmooth)
TRANSFORMS.register_module(name='MedianSmooth', module=MedianSmooth)
TRANSFORMS.register_module(name='GaussianSmooth', module=GaussianSmooth)
TRANSFORMS.register_module(name='RandGaussianSmooth', module=RandGaussianSmooth)
TRANSFORMS.register_module(name='GaussianSharpen', module=GaussianSharpen)
TRANSFORMS.register_module(name='RandGaussianSharpen', module=RandGaussianSharpen)
TRANSFORMS.register_module(name='RandHistogramShift', module=RandHistogramShift)
TRANSFORMS.register_module(name='DetectEnvelope', module=DetectEnvelope)
TRANSFORMS.register_module(name='GibbsNoise', module=GibbsNoise)
TRANSFORMS.register_module(name='RandGibbsNoise', module=RandGibbsNoise)
TRANSFORMS.register_module(name='KSpaceSpikeNoise', module=KSpaceSpikeNoise)
TRANSFORMS.register_module(name='RandKSpaceSpikeNoise', module=RandKSpaceSpikeNoise)
TRANSFORMS.register_module(name='RandCoarseTransform', module=RandCoarseTransform)
TRANSFORMS.register_module(name='RandCoarseDropout', module=RandCoarseDropout)
TRANSFORMS.register_module(name='RandCoarseShuffle', module=RandCoarseShuffle)
TRANSFORMS.register_module(name='HistogramNormalize', module=HistogramNormalize)
TRANSFORMS.register_module(name='ComputeHoVerMaps', module=ComputeHoVerMaps)

# IO
TRANSFORMS.register_module(name='LoadImage', module=LoadImage)
TRANSFORMS.register_module(name='SaveImage', module=SaveImage)

# NVIDIA Tool Extension (NVTX)
TRANSFORMS.register_module(name='RangePush', module=RangePush)
TRANSFORMS.register_module(name='RandRangePush', module=RandRangePush)
TRANSFORMS.register_module(name='RangePop', module=RangePop)
TRANSFORMS.register_module(name='RandRangePop', module=RandRangePop)
TRANSFORMS.register_module(name='Mark', module=Mark)
TRANSFORMS.register_module(name='RandMark', module=RandMark)

# Post-processing
TRANSFORMS.register_module(name='Activations', module=Activations)
TRANSFORMS.register_module(name='AsDiscrete', module=AsDiscrete)
TRANSFORMS.register_module(name='KeepLargestConnectedComponent', module=KeepLargestConnectedComponent)
TRANSFORMS.register_module(name='RemoveSmallObjects', module=RemoveSmallObjects)
TRANSFORMS.register_module(name='LabelFilter', module=LabelFilter)
TRANSFORMS.register_module(name='FillHoles', module=FillHoles)
TRANSFORMS.register_module(name='LabelToContour', module=LabelToContour)
TRANSFORMS.register_module(name='MeanEnsemble', module=MeanEnsemble)
TRANSFORMS.register_module(name='ProbNMS', module=ProbNMS)
TRANSFORMS.register_module(name='SobelGradients', module=SobelGradients)
TRANSFORMS.register_module(name='VoteEnsemble', module=VoteEnsemble)

# Signal
TRANSFORMS.register_module(name='SignalRandDrop', module=SignalRandDrop)
TRANSFORMS.register_module(name='SignalRandScale', module=SignalRandScale)
TRANSFORMS.register_module(name='SignalRandShift', module=SignalRandShift)
TRANSFORMS.register_module(name='SignalRandAddSine', module=SignalRandAddSine)
TRANSFORMS.register_module(name='SignalRandAddSquarePulse', module=SignalRandAddSquarePulse)
TRANSFORMS.register_module(name='SignalRandAddGaussianNoise', module=SignalRandAddGaussianNoise)
TRANSFORMS.register_module(name='SignalRandAddSinePartial', module=SignalRandAddSinePartial)
TRANSFORMS.register_module(name='SignalRandAddSquarePulsePartial', module=SignalRandAddSquarePulsePartial)
TRANSFORMS.register_module(name='SignalFillEmpty', module=SignalFillEmpty)
TRANSFORMS.register_module(name='SignalRemoveFrequency', module=SignalRemoveFrequency)
TRANSFORMS.register_module(name='SignalContinuousWavelet', module=SignalContinuousWavelet)

# Spatial
TRANSFORMS.register_module(name='SpatialResample', module=SpatialResample)
TRANSFORMS.register_module(name='ResampleToMatch', module=ResampleToMatch)
TRANSFORMS.register_module(name='Spacing', module=Spacing)
TRANSFORMS.register_module(name='Orientation', module=Orientation)
TRANSFORMS.register_module(name='RandRotate', module=RandRotate)
TRANSFORMS.register_module(name='RandFlip', module=RandFlip)
TRANSFORMS.register_module(name='RandAxisFlip', module=RandAxisFlip)
TRANSFORMS.register_module(name='RandZoom', module=RandZoom)
TRANSFORMS.register_module(name='Affine', module=Affine)
TRANSFORMS.register_module(name='Resample', module=Resample)
TRANSFORMS.register_module(name='RandAffine', module=RandAffine)
TRANSFORMS.register_module(name='RandDeformGrid', module=RandDeformGrid)
TRANSFORMS.register_module(name='AffineGrid', module=AffineGrid)
TRANSFORMS.register_module(name='RandAffineGrid', module=RandAffineGrid)
TRANSFORMS.register_module(name='GridDistortion', module=GridDistortion)
TRANSFORMS.register_module(name='RandGridDistortion', module=RandGridDistortion)
TRANSFORMS.register_module(name='Rand2DElastic', module=Rand2DElastic)
TRANSFORMS.register_module(name='Rand3DElastic', module=Rand3DElastic)
TRANSFORMS.register_module(name='Rotate90', module=Rotate90)
TRANSFORMS.register_module(name='RandRotate90', module=RandRotate90)
TRANSFORMS.register_module(name='Flip', module=Flip)
TRANSFORMS.register_module(name='Resize', module=Resize)
TRANSFORMS.register_module(name='Rotate', module=Rotate)
TRANSFORMS.register_module(name='Zoom', module=Zoom)
TRANSFORMS.register_module(name='GridPatch', module=GridPatch)
TRANSFORMS.register_module(name='RandGridPatch', module=RandGridPatch)
TRANSFORMS.register_module(name='GridSplit', module=GridSplit)

# Smooth Field
TRANSFORMS.register_module(name='RandSmoothFieldAdjustContrast', module=RandSmoothFieldAdjustContrast)
TRANSFORMS.register_module(name='RandSmoothFieldAdjustIntensity', module=RandSmoothFieldAdjustIntensity)
TRANSFORMS.register_module(name='RandSmoothDeform', module=RandSmoothDeform)

# Utility
TRANSFORMS.register_module(name='Identity', module=Identity)
# TRANSFORMS.register_module(name='AsChannelFirst', module=AsChannelFirst)
TRANSFORMS.register_module(name='AsChannelLast', module=AsChannelLast)
# TRANSFORMS.register_module(name='AddChannel', module=AddChannel)
TRANSFORMS.register_module(name='EnsureChannelFirst', module=EnsureChannelFirst)
TRANSFORMS.register_module(name='RepeatChannel', module=RepeatChannel)
TRANSFORMS.register_module(name='SplitDim', module=SplitDim)
# TRANSFORMS.register_module(name='SplitChannel', module=SplitChannel)
TRANSFORMS.register_module(name='CastToType', module=CastToType)
TRANSFORMS.register_module(name='ToTensor', module=ToTensor)
TRANSFORMS.register_module(name='ToNumpy', module=ToNumpy)
TRANSFORMS.register_module(name='ToCupy', module=ToCupy)
TRANSFORMS.register_module(name='Transpose', module=Transpose)
TRANSFORMS.register_module(name='SqueezeDim', module=SqueezeDim)
TRANSFORMS.register_module(name='DataStats', module=DataStats)
TRANSFORMS.register_module(name='SimulateDelay', module=SimulateDelay)
TRANSFORMS.register_module(name='Lambda', module=Lambda)
TRANSFORMS.register_module(name='RandLambda', module=RandLambda)
TRANSFORMS.register_module(name='RemoveRepeatedChannel', module=RemoveRepeatedChannel)
TRANSFORMS.register_module(name='LabelToMask', module=LabelToMask)
TRANSFORMS.register_module(name='FgBgToIndices', module=FgBgToIndices)
TRANSFORMS.register_module(name='ClassesToIndices', module=ClassesToIndices)
TRANSFORMS.register_module(name='AddExtremePointsChannel', module=AddExtremePointsChannel)
TRANSFORMS.register_module(name='TorchVision', module=TorchVision)
TRANSFORMS.register_module(name='MapLabelValue', module=MapLabelValue)
TRANSFORMS.register_module(name='EnsureType', module=EnsureType)
TRANSFORMS.register_module(name='IntensityStats', module=IntensityStats)
TRANSFORMS.register_module(name='ToDevice', module=ToDevice)
TRANSFORMS.register_module(name='CuCIM', module=CuCIM)
TRANSFORMS.register_module(name='RandCuCIM', module=RandCuCIM)
TRANSFORMS.register_module(name='AddCoordinateChannels', module=AddCoordinateChannels)

# Dictionary Transforms

# Crop and Pad (Dict)
TRANSFORMS.register_module(name='Padd', module=Padd)
TRANSFORMS.register_module(name='SpatialPadd', module=SpatialPadd)
TRANSFORMS.register_module(name='BorderPadd', module=BorderPadd)
TRANSFORMS.register_module(name='DivisiblePadd', module=DivisiblePadd)
TRANSFORMS.register_module(name='Cropd', module=Cropd)
TRANSFORMS.register_module(name='RandCropd', module=RandCropd)
TRANSFORMS.register_module(name='SpatialCropd', module=SpatialCropd)
TRANSFORMS.register_module(name='CenterSpatialCropd', module=CenterSpatialCropd)
TRANSFORMS.register_module(name='RandSpatialCropd', module=RandSpatialCropd)
TRANSFORMS.register_module(name='RandSpatialCropSamplesd', module=RandSpatialCropSamplesd)
TRANSFORMS.register_module(name='CropForegroundd', module=CropForegroundd)
TRANSFORMS.register_module(name='RandWeightedCropd', module=RandWeightedCropd)
TRANSFORMS.register_module(name='RandCropByPosNegLabeld', module=RandCropByPosNegLabeld)
TRANSFORMS.register_module(name='RandCropByLabelClassesd', module=RandCropByLabelClassesd)
TRANSFORMS.register_module(name='ResizeWithPadOrCropd', module=ResizeWithPadOrCropd)
TRANSFORMS.register_module(name='BoundingRectd', module=BoundingRectd)
TRANSFORMS.register_module(name='RandScaleCropd', module=RandScaleCropd)
TRANSFORMS.register_module(name='CenterScaleCropd', module=CenterScaleCropd)

# Intensity (Dict)
TRANSFORMS.register_module(name='RandGaussianNoised', module=RandGaussianNoised)
TRANSFORMS.register_module(name='ShiftIntensityd', module=ShiftIntensityd)
TRANSFORMS.register_module(name='RandShiftIntensityd', module=RandShiftIntensityd)
TRANSFORMS.register_module(name='StdShiftIntensityd', module=StdShiftIntensityd)
TRANSFORMS.register_module(name='RandStdShiftIntensityd', module=RandStdShiftIntensityd)
TRANSFORMS.register_module(name='RandBiasFieldd', module=RandBiasFieldd)
TRANSFORMS.register_module(name='ScaleIntensityd', module=ScaleIntensityd)
TRANSFORMS.register_module(name='RandScaleIntensityd', module=RandScaleIntensityd)
TRANSFORMS.register_module(name='NormalizeIntensityd', module=NormalizeIntensityd)
TRANSFORMS.register_module(name='ThresholdIntensityd', module=ThresholdIntensityd)
TRANSFORMS.register_module(name='ScaleIntensityRanged', module=ScaleIntensityRanged)
TRANSFORMS.register_module(name='GibbsNoised', module=GibbsNoised)
TRANSFORMS.register_module(name='RandGibbsNoised', module=RandGibbsNoised)
TRANSFORMS.register_module(name='KSpaceSpikeNoised', module=KSpaceSpikeNoised)
TRANSFORMS.register_module(name='RandKSpaceSpikeNoised', module=RandKSpaceSpikeNoised)
TRANSFORMS.register_module(name='RandRicianNoised', module=RandRicianNoised)
TRANSFORMS.register_module(name='ScaleIntensityRangePercentilesd', module=ScaleIntensityRangePercentilesd)
TRANSFORMS.register_module(name='AdjustContrastd', module=AdjustContrastd)
TRANSFORMS.register_module(name='RandAdjustContrastd', module=RandAdjustContrastd)
TRANSFORMS.register_module(name='MaskIntensityd', module=MaskIntensityd)
TRANSFORMS.register_module(name='SavitzkyGolaySmoothd', module=SavitzkyGolaySmoothd)
TRANSFORMS.register_module(name='MedianSmoothd', module=MedianSmoothd)
TRANSFORMS.register_module(name='GaussianSmoothd', module=GaussianSmoothd)
TRANSFORMS.register_module(name='RandGaussianSmoothd', module=RandGaussianSmoothd)
TRANSFORMS.register_module(name='GaussianSharpend', module=GaussianSharpend)
TRANSFORMS.register_module(name='RandGaussianSharpend', module=RandGaussianSharpend)
TRANSFORMS.register_module(name='RandHistogramShiftd', module=RandHistogramShiftd)
TRANSFORMS.register_module(name='RandCoarseDropoutd', module=RandCoarseDropoutd)
TRANSFORMS.register_module(name='RandCoarseShuffled', module=RandCoarseShuffled)
TRANSFORMS.register_module(name='HistogramNormalized', module=HistogramNormalized)
TRANSFORMS.register_module(name='ForegroundMaskd', module=ForegroundMaskd)
TRANSFORMS.register_module(name='ComputeHoVerMapsd', module=ComputeHoVerMapsd)

# IO (Dict)
TRANSFORMS.register_module(name='LoadImaged', module=LoadImaged)
TRANSFORMS.register_module(name='SaveImaged', module=SaveImaged)

# Post-processing (Dict)
TRANSFORMS.register_module(name='Activationsd', module=Activationsd)
TRANSFORMS.register_module(name='AsDiscreted', module=AsDiscreted)
TRANSFORMS.register_module(name='KeepLargestConnectedComponentd', module=KeepLargestConnectedComponentd)
TRANSFORMS.register_module(name='RemoveSmallObjectsd', module=RemoveSmallObjectsd)
TRANSFORMS.register_module(name='LabelFilterd', module=LabelFilterd)
TRANSFORMS.register_module(name='FillHolesd', module=FillHolesd)
TRANSFORMS.register_module(name='LabelToContourd', module=LabelToContourd)
TRANSFORMS.register_module(name='Ensembled', module=Ensembled)
TRANSFORMS.register_module(name='MeanEnsembled', module=MeanEnsembled)
TRANSFORMS.register_module(name='VoteEnsembled', module=VoteEnsembled)
TRANSFORMS.register_module(name='Invertd', module=Invertd)
TRANSFORMS.register_module(name='SaveClassificationd', module=SaveClassificationd)
TRANSFORMS.register_module(name='ProbNMSd', module=ProbNMSd)
TRANSFORMS.register_module(name='SobelGradientsd', module=SobelGradientsd)

# Spatial (Dict)
TRANSFORMS.register_module(name='SpatialResampled', module=SpatialResampled)
TRANSFORMS.register_module(name='ResampleToMatchd', module=ResampleToMatchd)
TRANSFORMS.register_module(name='Spacingd', module=Spacingd)
TRANSFORMS.register_module(name='Orientationd', module=Orientationd)
TRANSFORMS.register_module(name='Flipd', module=Flipd)
TRANSFORMS.register_module(name='RandFlipd', module=RandFlipd)
TRANSFORMS.register_module(name='RandAxisFlipd', module=RandAxisFlipd)
TRANSFORMS.register_module(name='Rotated', module=Rotated)
TRANSFORMS.register_module(name='RandRotated', module=RandRotated)
TRANSFORMS.register_module(name='Zoomd', module=Zoomd)
TRANSFORMS.register_module(name='RandZoomd', module=RandZoomd)
TRANSFORMS.register_module(name='GridPatchd', module=GridPatchd)
TRANSFORMS.register_module(name='RandGridPatchd', module=RandGridPatchd)
TRANSFORMS.register_module(name='GridSplitd', module=GridSplitd)
TRANSFORMS.register_module(name='RandRotate90d', module=RandRotate90d)
TRANSFORMS.register_module(name='Rotate90d', module=Rotate90d)
TRANSFORMS.register_module(name='Resized', module=Resized)
TRANSFORMS.register_module(name='Affined', module=Affined)
TRANSFORMS.register_module(name='RandAffined', module=RandAffined)
TRANSFORMS.register_module(name='Rand2DElasticd', module=Rand2DElasticd)
TRANSFORMS.register_module(name='Rand3DElasticd', module=Rand3DElasticd)
TRANSFORMS.register_module(name='GridDistortiond', module=GridDistortiond)
TRANSFORMS.register_module(name='RandGridDistortiond', module=RandGridDistortiond)

# Smooth Field (Dict)
TRANSFORMS.register_module(name='RandSmoothFieldAdjustContrastd', module=RandSmoothFieldAdjustContrastd)
TRANSFORMS.register_module(name='RandSmoothFieldAdjustIntensityd', module=RandSmoothFieldAdjustIntensityd)
TRANSFORMS.register_module(name='RandSmoothDeformd', module=RandSmoothDeformd)

# Utility (Dict)
TRANSFORMS.register_module(name='Identityd', module=Identityd)
# TRANSFORMS.register_module(name='AsChannelFirstd', module=AsChannelFirstd)
TRANSFORMS.register_module(name='AsChannelLastd', module=AsChannelLastd)
# TRANSFORMS.register_module(name='AddChanneld', module=AddChanneld)
TRANSFORMS.register_module(name='EnsureChannelFirstd', module=EnsureChannelFirstd)
TRANSFORMS.register_module(name='RepeatChanneld', module=RepeatChanneld)
TRANSFORMS.register_module(name='SplitDimd', module=SplitDimd)
# TRANSFORMS.register_module(name='SplitChanneld', module=SplitChanneld)
TRANSFORMS.register_module(name='CastToTyped', module=CastToTyped)
TRANSFORMS.register_module(name='ToTensord', module=ToTensord)
TRANSFORMS.register_module(name='ToNumpyd', module=ToNumpyd)
TRANSFORMS.register_module(name='ToPIL', module=ToPIL)
TRANSFORMS.register_module(name='ToCupyd', module=ToCupyd)
TRANSFORMS.register_module(name='ToPILd', module=ToPILd)
TRANSFORMS.register_module(name='DeleteItemsd', module=DeleteItemsd)
TRANSFORMS.register_module(name='SelectItemsd', module=SelectItemsd)
TRANSFORMS.register_module(name='FlattenSubKeysd', module=FlattenSubKeysd)
TRANSFORMS.register_module(name='Transposed', module=Transposed)
TRANSFORMS.register_module(name='SqueezeDimd', module=SqueezeDimd)
TRANSFORMS.register_module(name='DataStatsd', module=DataStatsd)
TRANSFORMS.register_module(name='SimulateDelayd', module=SimulateDelayd)
TRANSFORMS.register_module(name='CopyItemsd', module=CopyItemsd)
TRANSFORMS.register_module(name='ConcatItemsd', module=ConcatItemsd)
TRANSFORMS.register_module(name='Lambdad', module=Lambdad)
TRANSFORMS.register_module(name='RandLambdad', module=RandLambdad)
TRANSFORMS.register_module(name='RemoveRepeatedChanneld', module=RemoveRepeatedChanneld)
TRANSFORMS.register_module(name='LabelToMaskd', module=LabelToMaskd)
TRANSFORMS.register_module(name='FgBgToIndicesd', module=FgBgToIndicesd)
TRANSFORMS.register_module(name='ClassesToIndicesd', module=ClassesToIndicesd)
TRANSFORMS.register_module(name='ConvertToMultiChannelBasedOnBratsClassesd',
                           module=ConvertToMultiChannelBasedOnBratsClassesd)
TRANSFORMS.register_module(name='AddExtremePointsChanneld', module=AddExtremePointsChanneld)
TRANSFORMS.register_module(name='TorchVisiond', module=TorchVisiond)
TRANSFORMS.register_module(name='RandTorchVisiond', module=RandTorchVisiond)
TRANSFORMS.register_module(name='MapLabelValued', module=MapLabelValued)
TRANSFORMS.register_module(name='EnsureTyped', module=EnsureTyped)
TRANSFORMS.register_module(name='IntensityStatsd', module=IntensityStatsd)
TRANSFORMS.register_module(name='ToDeviced', module=ToDeviced)
TRANSFORMS.register_module(name='CuCIMd', module=CuCIMd)
TRANSFORMS.register_module(name='RandCuCIMd', module=RandCuCIMd)
TRANSFORMS.register_module(name='AddCoordinateChannelsd', module=AddCoordinateChannelsd)

# MetaTensor
TRANSFORMS.register_module(name='ToMetaTensord', module=ToMetaTensord)
TRANSFORMS.register_module(name='FromMetaTensord', module=FromMetaTensord)
