def test_CLIStatusEventTestCancel(self):
        self.delayDisplay(
            'Testing status events when cancelling the execution of a CLI')

        tempFile = qt.QTemporaryFile("CLIEventTest-outputFile-XXXXXX")
        self.assertTrue(tempFile.open())

        logic = CLIEventTestLogic()
        parameters = {}
        parameters["InputValue1"] = 1
        parameters["InputValue2"] = 2
        parameters["OperationType"] = 'Addition'
        parameters["OutputFile"] = tempFile.fileName()

        cliModule = slicer.modules.cli4test
        cli = slicer.cli.createNode(cliModule)
        self.assertEqual(cli.GetStatus(), cli.Idle)

        logic.runCLI(cliModule, cli, parameters, False)
        cli.Cancel()

        while not logic.ExecutionFinished:
            self.delayDisplay('Waiting for module to complete...')

        expectedEvents = [
            cli.Scheduled,
            cli.Cancelling,
            cli.Cancelled,
        ]

        self.assertEqual(logic.StatusEvents, expectedEvents)
        self.delayDisplay('Testing cancelled execution Passed')
    def _testCLIStatusEventOnErrorTest(self, wait_for_completion):
        self.delayDisplay('Testing status events for a bad execution of a CLI')

        tempFile = qt.QTemporaryFile("CLIEventTest-outputFile-XXXXXX")
        self.assertTrue(tempFile.open())

        logic = CLIEventTestLogic()
        parameters = {}
        parameters["InputValue1"] = 1
        parameters["InputValue2"] = 2
        parameters["OperationType"] = 'Fail'
        parameters["OutputFile"] = tempFile.fileName()

        cliModule = slicer.modules.cli4test
        cli = slicer.cli.createNode(cliModule)
        self.assertEqual(cli.GetStatus(), cli.Idle)

        logic.runCLI(cliModule, cli, parameters, wait_for_completion)

        while not logic.ExecutionFinished:
            self.delayDisplay('Waiting for module to complete...')

        cli = slicer.vtkMRMLCommandLineModuleNode()
        expectedEvents = []
        if not wait_for_completion:
            expectedEvents.append(cli.Scheduled)
        expectedEvents.append(cli.CompletedWithErrors)

        self.assertEqual(logic.StatusEvents, expectedEvents)
        self.delayDisplay('Testing bad execution Passed')
Beispiel #3
0
    def test_TwoCLIsInARowTest(self):
        self.delayDisplay('Running two CLIs in a row Test')

        tempFile = qt.QTemporaryFile("TwoCLIsInARowTest-outputFile-XXXXXX")
        self.assertTrue(tempFile.open())

        logic = TwoCLIsInARowTestLogic()
        logic.parameters = {}
        logic.parameters["InputValue1"] = 1
        logic.parameters["InputValue2"] = 2
        logic.parameters["OperationType"] = 'Addition'
        logic.parameters["OutputFile"] = tempFile.fileName()

        logic.runTest()
        while not logic.success:
            self.delayDisplay('Waiting for module 2 to complete...')
        self.assertTrue(logic.success)

        self.delayDisplay('Two CLIs in a row test passed !')
    def test_TwoCLIsInParallelTest(self):
        self.delayDisplay('Running two CLIs in a row Test')

        tempFile = qt.QTemporaryFile("TwoCLIsInParallelTest-outputFile-XXXXXX")
        self.assertTrue(tempFile.open())

        logic = TwoCLIsInParallelTestLogic()
        logic.parameters = {}
        logic.parameters["InputValue1"] = 1
        logic.parameters["InputValue2"] = 2
        logic.parameters["OperationType"] = 'Addition'
        logic.parameters["OutputFile"] = tempFile.fileName()

        logic.runModule1()
        self.delayDisplay('... Waiting to start module 2 ...')
        logic.runModule2()
        self.assertTrue(logic.success)

        self.delayDisplay('Two CLIs in parallel test passed !')
Beispiel #5
0
  def run(self,inputVolume,atlasVolume, convexHullVolume, numIterations, boneThreshold, outVolume):
    """
    Run the actual algorithm
    """
    print('In Run method')
    
    """
    Generate Atlas convex Hull
    """
        
    #convexHullVolume = "~/TestConvexHull.vtk"
    #cliparameters = {
    #"leftAtlasFileName" : leftAtlasVolume.GetID(),
    #"rightAtlasFileName" : rightAtlasVolume.GetID(),
    #"downsampleFactor" : 4,  
    #"outputFileName" : outModel.GetID(), #"~/TestConvexHull.vtk",   *** should be a vtk file  
    #}
    #GenerateAtlasConvexHull = slicer.modules.generateatlasconvexhull
    #slicer.cli.run(GenerateAtlasConvexHull,None, cliparameters, wait_for_completion=True)
    
    
    
    #C:\ChestImagingPlatformPrivate\Build\bin\Debug>RegisterLungAtlas -i 200 -m D:/Po
    # stdoc/Data/LungAtlases/atlasConvexHull.vtk -c  D:/Postdoc/Data/10360K/10360Kinsp
    # .nhdr -o d:/Postdoc/Data/10360K/AtlasTo10360Kinsp.tfm

    #"""
    #Call RegisterLungAtlas cli, tfm intermediate file ?
    #"""
    
    #Define temporary .tfm file
    f = qt.QTemporaryFile( slicer.app.temporaryPath+ "/RegisterLungAtlas-XXXXXX.tfm") #slicer.app.temporaryPath
    f.open() # Create the file
     
    # Get model node by ID
    modelNode = slicer.mrmlScene.GetNodeByID(convexHullVolume.GetID())
    polyData = modelNode.GetPolyData()
    
    cliparameters = {}
    cliparameters['convexHullMeshFileName'] = convexHullVolume.GetID() #modelNode.GetID() #""/Users/rolaharmouche/Documents/Data/LungAtlases/atlasConvexHull.vtk" #
    cliparameters['numberOfIterations'] =  numIterations.value
    cliparameters['boneThreshold'] =  boneThreshold.value
    cliparameters['outputTransformFileName'] = f.fileName()#"/Users/rolaharmouche/Documents/Data/tempdata/Test6.tfm" #outputTransform, slicer.app.temporarypath
    cliparameters['ctFileName'] = inputVolume.GetID()  

    #cliparameters['ctFileName'] = "/Users/rolaharmouche/Documents/Data/COPDGene/14988Y/14988Y_INSP_STD_UAB_COPD/14988Y_INSP_STD_UAB_COPD_downsampled.nrrd"

    #destructor delete stuff
    
    RegisterLungAtlas = slicer.modules.registerlungatlas
    cliNode = slicer.cli.run(RegisterLungAtlas,None, cliparameters, wait_for_completion=True)

    #"""
    #Call ResampleLabelMap cli, save the output volume directly
    #"""
    ##ResampleLabelMap.exe -d D:/Postdoc/Data/10360K/10360Kinsp.nhdr -r D:/Postdoc/Data/10360K/10360KleftAtlas.nrrd -t 
    ##D:/Postdoc/Data/10360K/AtlasTo10360Kinsp.tfm -l D:/Postdoc/Data/LungAtlases/leftLungAtlas.nhdr
    #
    
    cliparameters = {}
    cliparameters['labelMapFileName'] = atlasVolume.GetID() # "/Users/rolaharmouche/Documents/Data/LungAtlases/leftLungAtlas.nhdr"
    cliparameters['transformFileName'] = f.fileName()#"/Users/rolaharmouche/Documents/Data/tempdata/Test6.tfm"
    cliparameters['resampledFileName'] =  outVolume.GetID() #"~/Test.nrrd"  # 
    cliparameters['destinationFileName'] = inputVolume.GetID()  #"/Users/rolaharmouche/Documents/Data/COPDGene/14988Y/14988Y_INSP_STD_UAB_COPD/14988Y_INSP_STD_UAB_COPD_downsampled.nrrd"
    cliparameters['isInvertTransformation']  =True
    ResampleLabelMap = slicer.modules.resamplelabelmap
    cliNode = slicer.cli.run(ResampleLabelMap,None, cliparameters, wait_for_completion=True), #use qt assistant
    
    return True