import slicer import Elastix import CTRegistration import slicerNetwork configFile = os.path.join(os.path.expanduser('~'), '.EMBRACE','onko-nix.json') dataManager = CTRegistration.CTRegistrationLogic(configFile) network = slicerNetwork.labkeyURIHandler() dataManager.importer.setURIHandler(network) elastix = Elastix.ElastixLogic() registrationIndex = 17 """ id="par0023" modality="3D CT, 3D MR, multimodal" content="head and neck" description="intrapatient; rigid + B-spline transformation; localized mutual information combined with bending energy penalty" publications="Leibfarth (2013), A strategy for multimodal deformable image registration to integrate PET/MR into radiotherapy treatment planning" """ RegistrationPresets_ParameterFilenames = 5 """ ['Rigid.txt', 'Deformable.txt'] """ parameterFilenames = elastix.getRegistrationPresets()[registrationIndex][RegistrationPresets_ParameterFilenames] transformNode=slicer.vtkMRMLGridTransformNode() transformNode.SetName(transformNodeName) slicer.mrmlScene.AddNode(transformNode) for i in range(0,86): patientID = 'LJU'+'{:03d}'.format(i) dataManager.loadData(network,patientID) fixedVolumeNode = slicer.util.getFirstNodeByName(patientID+'_DMR') movingVolumeNode = slicer.util.getFirstNodeByName(patientID+'_CT') transformNodeName = patientID+'_T2_DF' elastix.registerVolumes(fixedVolumeNode, movingVolumeNode, parameterFilenames = parameterFilenames, outputVolumeNode = None, outputTransformNode = transformNode, fixedVolumeMaskNode = None, movingVolumeMaskNode = None, forceDisplacementFieldOutputTransform = True) dataManager.export(network, 'EMBRACE/Studija', patientID)