Przeglądaj źródła

Adjusting to WIN environment

Andrej Studen @ Win7 6 lat temu
rodzic
commit
b674aaebf1

+ 28 - 43
labkeySlicerPythonExtension/labkeySlicerPythonExtension.py

@@ -50,7 +50,8 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
     self.layout.addWidget(connectionCollapsibleButton)
 
     connectionFormLayout = qt.QFormLayout(connectionCollapsibleButton)
-    self.configDir=os.getenv("HOME")+os.sep+".labkey";
+
+    self.configDir=os.path.join(getHomeDir(),".labkey")
 
     self.serverURL=qt.QLineEdit("https://merlin.fmf.uni-lj.si")
     self.serverURL.textChanged.connect(self.updateServerURL)
@@ -58,12 +59,7 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
     #copy initial setting
     self.updateServerURL(self.serverURL.text);
 
-    try:
-      self.startDir=os.path.join(os.environ['HOME'],"temp/crt")
-    except:
-      fhome=os.environ['HOMEDRIVE']+os.environ['HOMEPATH']
-      self.startDir=os.path.join(fhome,"temp")
-
+    self.startDir=os.path.join(getHomeDir(),"temp/crt")
 
     self.userCertButton=qt.QPushButton("Load")
     self.userCertButton.toolTip="Load user certificate (crt)"
@@ -244,41 +240,22 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
   def onLoadConfigButtonClicked(self):
        filename=qt.QFileDialog.getOpenFileName(None,'Open configuration file (JSON)',
             self.configDir, '*.json')
-       with open(filename,'r') as f:
-           dt=json.load(f)
-       if dt.has_key('host'):
-           self.serverURL.setText(dt['host'])
-       if dt.has_key('dataset'):
-           pass
-           #self.datasetName.setText(dt['dataset'])
-       if dt.has_key('project'):
-           pass
-           #self.datasetProject.setText(dt['project'])
-       if dt.has_key('SSL'):
-           if dt['SSL'].has_key('user'):
-               self.userCertButton.setText(dt['SSL']['user'])
-           if dt['SSL'].has_key('key'):
-               self.privateKeyButton.setText(dt['SSL']['key'])
-           if dt['SSL'].has_key('keyPwd'):
-               self.pwd=dt['SSL']['keyPwd']
-           if dt['SSL'].has_key('ca'):
-               self.caCertButton.setText(dt['SSL']['ca'])
-       if dt.has_key('labkey'):
-           if dt['labkey'].has_key('user'):
-               self.network.auth_name=dt['labkey']['user']
-               self.authName.setText(self.network.auth_name)
-           if dt['labkey'].has_key('password'):
-               self.network.auth_pass=dt['labkey']['password']
-               self.authPass.setText(self.network.auth_pass)
+       self.network.parseConfig(filename)
+       self.serverURL.setText(self.network.hostname)
+       self.authName.setText(self.network.auth_name)
+       self.authPass.setText(self.network.auth_pass)
+
        self.loadConfigButton.setText(os.path.basename(filename))
 
   def onInitButtonClicked(self):
-      self.network.configureSSL(
-        self.userCertButton.text,
-        self.privateKeyButton.text,
-        self.pwd,
-        self.caCertButton.text
-      )
+      if self.serverURL.text.find("https")==0:
+
+          self.network.configureSSL(
+            self.userCertButton.text,
+            self.privateKeyButton.text,
+            self.pwd,
+            self.caCertButton.text
+        )
 
       self.network.initRemote()
 
@@ -336,12 +313,13 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
               os.remove(localPath)
 
   def onLoadDirButtonClicked(self):
-    localDir=self.network.loadDir(self.selectedFile.text)
+    #dir=self.network.loadDir(self.selectedFile.text)
+    dir=self.selectedFile.text
     try:
-        self.loadDicomLogic.load(localDir)
+        self.loadDicomLogic.load(self.network,dir)
     except:
-        self.loadDicom=loadDicom.loadDicomLogic(self)
-        self.loadDicom.load(localDir)
+        self.loadDicomLogic=loadDicom.loadDicomLogic(self)
+        self.loadDicomLogic.load(self.network,dir)
 
 # labkeySlicerPythonExtensionLogic
 #
@@ -480,3 +458,10 @@ class labkeySlicerPythonExtensionTest(ScriptedLoadableModuleTest):
     logic = labkeySlicerPythonExtensionLogic()
     self.assertTrue( logic.hasImageData(volumeNode) )
     self.delayDisplay('Test passed!')
+
+def getHomeDir():
+    try:
+      return os.environ['HOME']
+    except:
+      fhome=os.environ['HOMEDRIVE']+os.environ['HOMEPATH']
+      return fhome

+ 3 - 1
labkeySlicerPythonExtension/loadDicom.py

@@ -37,6 +37,7 @@ class loadDicomLogic(slicer.ScriptedLoadableModule.ScriptedLoadableModuleLogic):
       slicer.ScriptedLoadableModule.ScriptedLoadableModuleLogic.__init__(self, parent)
 
     def load(self,sNet,dir,doRemove=True):
+        print("Loading dir {}").format(dir)
         dicomFiles=sNet.listDir(dir)
         #filelist=[os.path.join(dir,f) for f in os.listdir(dir)]
         filelist=[]
@@ -44,7 +45,8 @@ class loadDicomLogic(slicer.ScriptedLoadableModule.ScriptedLoadableModuleLogic):
                 localPath=sNet.GetFile(f)
                 f0=localPath
                 f1=f0+"1"
-                subprocess.call(dicomModify+" "+f0+" "+f1+" && mv "+f1+" "+f0+";", shell=True)
+                if not dicomModify==None:
+                    subprocess.call(dicomModify+" "+f0+" "+f1+" && mv "+f1+" "+f0+";", shell=True)
                 filelist.append(localPath)
 
         try:

+ 1 - 0
labkeySlicerPythonExtension/slicerNetwork.py

@@ -218,6 +218,7 @@ class labkeyURIHandler(slicer.vtkURIHandler):
             raise
 
         dt=json.load(f)
+        self.mode="http"
         if dt.has_key('SSL'):
             self.configureSSL(
                 dt['SSL']['user'],