def _enableUpgradeFlag(self): """Setup upgrade flag to application config """ AppConfigurationService().add("Temp") AppConfigurationService().set("Temp", "isUpgrading", str(True)) AppConfigurationService().set("Temp", "upgradeFinished", str(False)) AppConfigurationService().saveConfiguration()
def startup(): """Start the updater """ logger = logging.getLogger(__name__) logging.config.fileConfig("logging.ini", disable_existing_loggers=False) logger.info("Updater folder contains: ") logger.info(os.listdir("./")) appConfig = None # Running from source or packed executable if (os.path.isfile("mainClient.py") or os.path.isfile("RadPlanBio-client.exe")): appConfig = AppConfigurationService("radplanbio-client.cfg") else: appConfig = AppConfigurationService("../radplanbio-client.cfg") section = "Temp" if appConfig.hasSection(section): isUpgrading = appConfig.get(section)["isupgrading"] upgradeFinished = appConfig.get(section)["upgradefinished"] app = QtGui.QApplication(sys.argv) # Startup if isUpgrading == "False": # Exit updater app.quit() else: # Start upgrade procedure svcUpgrade = UpgradeService() svcUpgrade.upgrade() # Start client (RadPlanBio-client.exe) if platform.system() == "Windows": if os.path.isfile("../RadPlanBio-client.exe"): QtCore.QProcess.startDetached("../RadPlanBio-client.exe") elif os.path.isfile("RadPlanBio-client.exe"): QtCore.QProcess.startDetached("RadPlanBio-client.exe") else: QtCore.QProcess.startDetached("python mainClient.py") elif platform.system() == "Linux": if os.path.isfile("../RadPlanBio-client"): QtCore.QProcess.startDetached("../RadPlanBio-client") else: QtCore.QProcess.startDetached("python mainClient.py") else: QtCore.QProcess.startDetached("python mainClient.py") # Exit updater app.quit()
def configure(): """Read configuration settings from config file """ appConfig = AppConfigurationService(ConfigDetails().configFileName) section = "OpenClinica" if appConfig.hasSection(section): option = "host" if appConfig.hasOption(section, option): ConfigDetails().ocHost = appConfig.get(section)[option] option = "port" if appConfig.hasOption(section, option): ConfigDetails().ocPort = appConfig.get(section)[option] section = "OpenClinica-ws" if appConfig.hasSection(section): option = "host" if appConfig.hasOption(section, option): ConfigDetails().ocWsHost = appConfig.get(section)[option] option = "port" if appConfig.hasOption(section, option): ConfigDetails().ocWsPort = appConfig.get(section)[option] section = "Proxy" if appConfig.hasSection(section): option = "enabled" if appConfig.hasOption(section, option): ConfigDetails().proxyEnabled = appConfig.getboolean(section, option) option = "host" if appConfig.hasOption(section, option): ConfigDetails().proxyHost = appConfig.get(section)[option] option = "port" if appConfig.hasOption(section, option): ConfigDetails().proxyPort = appConfig.get(section)[option] option = "noproxy" if appConfig.hasOption(section, option): ConfigDetails().noProxy = appConfig.get(section)[option] section = "Proxy-auth" if appConfig.hasSection(section): option = "enabled" if appConfig.hasOption(section, option): ConfigDetails().proxyAuthEnabled = appConfig.getboolean(section, option) option = "login" if appConfig.hasOption(section, option): ConfigDetails().proxyAuthLogin = appConfig.get(section)[option] option = "password" if appConfig.hasOption(section, option): ConfigDetails().proxyAuthPassword = appConfig.get(section)[option] section = "GUI" if appConfig.hasSection(section): option = "main.width" if appConfig.hasOption(section, option): ConfigDetails().width = int(appConfig.get(section)[option]) option = "main.height" if appConfig.hasOption(section, option): ConfigDetails().height = int(appConfig.get(section)[option])
def __init__(self, parent=None): """Constructor of ExportModule View """ QWidget.__init__(self, parent) self.parent = parent #----------------------------------------------------------------------- #----------------------- Logger ---------------------------------------- self.logger = logging.getLogger(__name__) logging.config.fileConfig('logging.ini', disable_existing_loggers=False) #----------------------------------------------------------------------- #---------------------- App config -------------------------------------- self.appConfig = AppConfigurationService() #----------------------------------------------------------------------- #--------------------- Create Module UI -------------------------------- self.setupUi(self) #----------------------------------------------------------------------- #----------------------- Services -------------------------------------- # There are two http services, one for communicating with my own # site server/database section = "RadPlanBioServer" hostname = self.appConfig.get(section)["host"] port = self.appConfig.get(section)["port"] self.svcHttp = HttpConnectionService(hostname, port, UserDetails()) #TODO: SiteName according to user account self.mySite = self.svcHttp.getPartnerSiteByName("DKTK-DRESDEN") baseUrl = self.mySite.edc.soapbaseurl # Create connection artefact to OC self.ocConnectInfo = OCConnectInfo(baseUrl, OCUserDetails().username) self.ocConnectInfo.setPassword(OCUserDetails().password) self.ocWebServices = OCWebServices(self.ocConnectInfo) # Create REST mainzellieste userName = self.mySite.pidg.adminusername password = self.mySite.pidg.adminpassword baseUrl = self.mySite.pidg.generatorbaseurl apiKey = self.mySite.pidg.apikey connectInfo = MainzellisteConnectInfo(baseUrl, userName, password, apiKey) self.svcPseudonymisation = PseudonymisationService(connectInfo) #----------------------------------------------------------------------- #----------------------- On Create ------------------------------------- self.reloadSites() #----------------------------------------------------------------------- #---------- Load modules buttons - events definitions ------------------ self.btnNew.clicked.connect(self.btnNewClicked) self.btnReload.clicked.connect(self.btnReloadClicked) self.tvStudies.selectionModel().currentChanged.connect( self.tvStudyChanged)
def _disableUpgradeFlag(self): """Remove upgrade flag from application config """ AppConfigurationService().remove("Temp") AppConfigurationService().saveConfiguration()
def _enableUpgradeFinishedFlag(self): """ """ AppConfigurationService().set("Temp", "isUpgrading", str(False)) AppConfigurationService().set("Temp", "upgradeFinished", str(True)) AppConfigurationService().saveConfiguration()
def __init__(self, parent=None): """Constructor of ExportModule View """ QWidget.__init__(self, parent) self.parent = parent #----------------------------------------------------------------------- #----------------------- Logger ---------------------------------------- self.logger = logging.getLogger(__name__) logging.config.fileConfig('logging.ini', disable_existing_loggers=False) #----------------------------------------------------------------------- #---------------------- App config -------------------------------------- self.appConfig = AppConfigurationService() #----------------------------------------------------------------------- #--------------------- Create Module UI -------------------------------- self.setupUi(self) #----------------------------------------------------------------------- #---------- Load modules buttons - events definitions ------------------ self.btnReload.clicked.connect(self.btnReloadClicked) self.btnMapExportField.clicked.connect(self.btnMapExportFieldClicked) self.btnLocateDataFilename.clicked.connect( self.btnLocateDataFilenameClicked) self.btnLocateMetaDataFilename.clicked.connect( self.btnLocateMetaDataFilenameClicked) self.btnValidateMapping.clicked.connect( self.btnValidateDataTransformationClicked) self.btnLoadMapping.clicked.connect(self.btnLoadMappingClicked) self.cmbStudyEvent.currentIndexChanged['QString'].connect( self.cmbStudyEventChanged) self.cmbEventForm.currentIndexChanged['QString'].connect( self.cmbEventFormChanged) #----------------------------------------------------------------------- # Domain model self.__study = None self.__studyEvents = [] self.__selectedStudyEvent = None self.__studyEventCrfs = [] self.__selectedEventCrf = None #----------------------------------------------------------------------- #----------------------- Services -------------------------------------- # There are two http services, one for communicating with my own # site server/database section = "MySiteServer" hostname = self.appConfig.get(section)["host"] port = self.appConfig.get(section)["port"] self.svcHttp = HttpConnectionService(hostname, port, UserDetails()) self.reload() #----------------------------------------------------------------------- # TODO: make it a Stragety desing pattern later self.fileDataService = CsvFileDataService() self.fileMetaDataService = OdmFileDataService() self.exportMapping = [] # Just for testing to have guick access to files self.dataFilename = "/mnt/edv/skripcakt/ulice/branches/radplanbio/data/radiochemotherapy.csv" self.metaDataFilename = "/mnt/edv/skripcakt/ulice/branches/radplanbio/data/HNSCCStudyMetadata.xml" #----------------------------------------------------------------------- # Create REST mainzellieste userName = "******" password = "******" baseUrl = "http://g89rtpsrv.med.tu-dresden.de:8080/mainzelliste-1.1-SNAPSHOT/" apiKey = "mdatdd" connectInfo = MainzellisteConnectInfo(baseUrl, userName, password, apiKey) self.svcPseudonymisation = PseudonymisationService(connectInfo)
def configure(): """Read configuration settings from config file """ appConfig = AppConfigurationService(ConfigDetails().configFileName) section = "RadPlanBioServer" if appConfig.hasSection(section): if appConfig.hasOption(section, "host"): ConfigDetails().rpbHost = appConfig.get(section)["host"] if appConfig.hasOption(section, "port"): ConfigDetails().rpbHostPort = appConfig.get(section)["port"] if appConfig.hasOption(section, "application"): ConfigDetails().rpbApplication = appConfig.get( section)["application"] section = "Proxy" if appConfig.hasSection(section): if appConfig.hasOption(section, "enabled"): ConfigDetails().proxyEnabled = appConfig.getboolean( section, "enabled") if appConfig.hasOption(section, "host"): ConfigDetails().proxyHost = appConfig.get(section)["host"] if appConfig.hasOption(section, "port"): ConfigDetails().proxyPort = appConfig.get(section)["port"] if appConfig.hasOption(section, "noproxy"): ConfigDetails().noProxy = appConfig.get(section)["noproxy"] section = "Proxy-auth" if appConfig.hasSection(section): if appConfig.hasOption(section, "enabled"): ConfigDetails().proxyAuthEnabled = appConfig.getboolean( section, "enabled") if appConfig.hasOption(section, "login"): ConfigDetails().proxyAuthLogin = appConfig.get(section)["login"] if appConfig.hasOption(section, "password"): ConfigDetails().proxyAuthPassword = appConfig.get( section)["password"] section = "GUI" if appConfig.hasSection(section): if appConfig.hasOption(section, "main.width"): ConfigDetails().width = int(appConfig.get(section)["main.width"]) if appConfig.hasOption(section, "main.height"): ConfigDetails().height = int(appConfig.get(section)["main.height"]) section = "DICOM" if appConfig.hasSection(section): if appConfig.hasOption(section, "replacepatientnamewith"): ConfigDetails().replacePatientNameWith = appConfig.get( section)["replacepatientnamewith"] if appConfig.hasOption(section, "constpatientname"): ConfigDetails().constPatientName = appConfig.get( section)["constpatientname"] if appConfig.hasOption(section, "allowmultiplepatientids"): ConfigDetails().allowMultiplePatientIDs = appConfig.getboolean( section, "allowmultiplepatientids") if appConfig.hasOption(section, "retainpatientcharacteristicsoption"): ConfigDetails( ).retainPatientCharacteristicsOption = appConfig.getboolean( section, "retainpatientcharacteristicsoption") if appConfig.hasOption(section, "retainstudydate"): ConfigDetails().retainStudyDate = appConfig.getboolean( section, "retainstudydate") if appConfig.hasOption(section, "retainstudytime"): ConfigDetails().retainStudyTime = appConfig.getboolean( section, "retainstudytime") if appConfig.hasOption(section, "retainseriesdate"): ConfigDetails().retainSeriesDate = appConfig.getboolean( section, "retainseriesdate") if appConfig.hasOption(section, "retainseriestime"): ConfigDetails().retainSeriesTime = appConfig.getboolean( section, "retainseriestime") if appConfig.hasOption(section, "retainstudyseriesdescriptions"): ConfigDetails( ).retainStudySeriesDescriptions = appConfig.getboolean( section, "retainstudyseriesdescriptions") if appConfig.hasOption(section, "autortstructmatch"): ConfigDetails().autoRTStructMatch = appConfig.getboolean( section, "autortstructmatch") if appConfig.hasOption(section, "autortstructref"): ConfigDetails().autoRTStructRef = appConfig.getboolean( section, "autortstructref") if appConfig.hasOption(section, "downloaddicompatientfoldername"): ConfigDetails().downloadDicomPatientFolderName = appConfig.get( section)["downloaddicompatientfoldername"] if appConfig.hasOption(section, "downloaddicomstudyfoldername"): ConfigDetails().downloadDicomStudyFolderName = appConfig.get( section)["downloaddicomstudyfoldername"] section = "AE" if appConfig.hasSection(section): if appConfig.hasOption(section, "name"): ConfigDetails().rpbAE = appConfig.get(section)["name"] if appConfig.hasOption(section, "port"): ConfigDetails().rpbAEport = int(appConfig.get(section)["port"]) if appConfig.hasOption(section, "aetsuffix"): ConfigDetails().rpbAETsuffix = appConfig.get(section)["aetsuffix"] if not ApplicationEntityService().isReady: if ConfigDetails( ).rpbAE is not None and ConfigDetails().rpbAE != "": # Consider AET suffix option when creating AE for client AET = ConfigDetails().rpbAE if ConfigDetails().rpbAETsuffix == "host": AET += str(QtNetwork.QHostInfo.localHostName()) elif ConfigDetails().rpbAETsuffix == "fqdn": AET += str( QtNetwork.QHostInfo.localHostName()) + "." + str( QtNetwork.QHostInfo.localDomainName()) ApplicationEntityService().init(AET, ConfigDetails().rpbAEport) aeCount = 0 section = "RemoteAEs" if appConfig.hasSection(section): if appConfig.hasOption(section, "count"): aeCount = int(appConfig.get(section)["count"]) for i in range(0, aeCount): section = "RemoteAE" + str(i) if appConfig.hasSection(section): address = "" if appConfig.hasOption(section, "address"): address = appConfig.get(section)["address"] port = -1 if appConfig.hasOption(section, "port"): port = int(appConfig.get(section)["port"]) aet = "" if appConfig.hasOption(section, "aet"): aet = appConfig.get(section)["aet"] ConfigDetails().remoteAEs.append( dict(Address=address, Port=port, AET=aet)) section = "SanityTests" if appConfig.hasSection(section): if appConfig.hasOption(section, "patientgendermatch"): ConfigDetails().patientGenderMatch = appConfig.getboolean( section, "patientGenderMatch") if appConfig.hasOption(section, "patientdobmatch"): ConfigDetails().patientDobMatch = appConfig.getboolean( section, "patientDobMatch") section = "General" if appConfig.hasSection(section): if appConfig.hasOption(section, "startupupdatecheck"): ConfigDetails().startupUpdateCheck = appConfig.getboolean( section, "startupupdatecheck") section = "Temp" if appConfig.hasSection(section): if appConfig.hasOption(section, "isupgrading"): ConfigDetails().isUpgrading = appConfig.get(section)["isupgrading"] if appConfig.hasOption(section, "upgradefinished"): ConfigDetails().upgradeFinished = appConfig.get( section)["upgradefinished"]