|
@@ -52,6 +52,7 @@ class imageBrowserWidget(ScriptedLoadableModuleWidget):
|
|
|
self.addSetupSection()
|
|
|
self.addPatientsSelector()
|
|
|
self.addSegmentEditor()
|
|
|
+ self.addWindowManipulator()
|
|
|
|
|
|
def addInfoSection(self):
|
|
|
#a python overview of json settings
|
|
@@ -231,7 +232,23 @@ class imageBrowserWidget(ScriptedLoadableModuleWidget):
|
|
|
segEditorNode=slicer.vtkMRMLSegmentEditorNode()
|
|
|
slicer.mrmlScene.AddNode(segEditorNode)
|
|
|
self.segmentEditorWidget.setMRMLSegmentEditorNode(segEditorNode)
|
|
|
-
|
|
|
+
|
|
|
+ def addWindowManipulator(self):
|
|
|
+ windowManipulatorCollapsibleButton=ctk.ctkCollapsibleButton()
|
|
|
+ windowManipulatorCollapsibleButton.text="CT Window Manipulator"
|
|
|
+ self.layout.addWidget(windowManipulatorCollapsibleButton)
|
|
|
+
|
|
|
+ hLayout=qt.QHBoxLayout(windowManipulatorCollapsibleButton)
|
|
|
+
|
|
|
+ ctWins={'CT:bone':self.onCtBoneButtonClicked,
|
|
|
+ 'CT:air':self.onCtAirButtonClicked,
|
|
|
+ 'CT:abdomen':self.onCtAbdomenButtonClicked,
|
|
|
+ 'CT:brain':self.onCtBrainButtonClicked,
|
|
|
+ 'CT:lung':self.onCtLungButtonClicked}
|
|
|
+ for ctWin in ctWins:
|
|
|
+ ctButton=qt.QPushButton(ctWin)
|
|
|
+ ctButton.clicked.connect(ctWins[ctWin])
|
|
|
+ hLayout.addWidget(ctButton)
|
|
|
|
|
|
def onSetupListChanged(self,i):
|
|
|
status=self.logic.setConfig(self.setupList.currentText)
|
|
@@ -351,6 +368,21 @@ class imageBrowserWidget(ScriptedLoadableModuleWidget):
|
|
|
def onPatientSaveButtonClicked(self):
|
|
|
self.logic.saveSegmentation()
|
|
|
|
|
|
+ def onCtBoneButtonClicked(self):
|
|
|
+ self.logic.setWindow('CT:bone')
|
|
|
+
|
|
|
+ def onCtAirButtonClicked(self):
|
|
|
+ self.logic.setWindow('CT:air')
|
|
|
+
|
|
|
+ def onCtAbdomenButtonClicked(self):
|
|
|
+ self.logic.setWindow('CT:abdomen')
|
|
|
+
|
|
|
+ def onCtBrainButtonClicked(self):
|
|
|
+ self.logic.setWindow('CT:brain')
|
|
|
+
|
|
|
+ def onCtLungButtonClicked(self):
|
|
|
+ self.logic.setWindow('CT:lung')
|
|
|
+
|
|
|
def cleanup(self):
|
|
|
pass
|
|
|
|
|
@@ -585,6 +617,8 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
|
|
|
|
|
|
#mimic abdominalCT standardized window setting
|
|
|
self.volumeNode['CT'].GetScalarVolumeDisplayNode().\
|
|
|
+ SetAutoWindowLevel(False)
|
|
|
+ self.volumeNode['CT'].GetScalarVolumeDisplayNode().\
|
|
|
SetWindowLevel(1400, -500)
|
|
|
#set colormap for PET to PET-Heat (this is a verbatim setting from
|
|
|
#the Volumes->Display->Lookup Table colormap identifier)
|
|
@@ -727,6 +761,37 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
|
|
|
#self.reviewResult={}
|
|
|
#self.aeList={}
|
|
|
|
|
|
+ def setWindow(self,windowName):
|
|
|
+
|
|
|
+ #default
|
|
|
+ w=1400
|
|
|
+ l=-500
|
|
|
+
|
|
|
+ if windowName=='CT:bone':
|
|
|
+ w=1000
|
|
|
+ l=400
|
|
|
+
|
|
|
+ if windowName=='CT:air':
|
|
|
+ w=1000
|
|
|
+ l=-426
|
|
|
+
|
|
|
+ if windowName=='CT:abdomen':
|
|
|
+ w=350
|
|
|
+ l=40
|
|
|
+
|
|
|
+ if windowName=='CT:brain':
|
|
|
+ w=100
|
|
|
+ l=50
|
|
|
+
|
|
|
+ if windowName=='CT:lung':
|
|
|
+ w=1400
|
|
|
+ l=-500
|
|
|
+
|
|
|
+
|
|
|
+ self.volumeNode['CT'].GetScalarVolumeDisplayNode().\
|
|
|
+ SetWindowLevel(w,l)
|
|
|
+
|
|
|
+ print('setWindow: {} {}/{}'.format(windowName,w,l))
|
|
|
|
|
|
class imageBrowserTest(ScriptedLoadableModuleTest):
|
|
|
|