def handleLogin(self):
        """Send authenticate user message to site server
        """
        username = str(self.txtUsername.text())
        password = str(self.txtPassword.text())
        passwordHash = hashlib.sha1(password).hexdigest()

        # Create connection artefact to users main OpenClinica SOAP
        ocConnectInfo = OCConnectInfo(ConfigDetails().ocWsHost, username)
        ocConnectInfo.setPasswordHash(passwordHash)

        if ConfigDetails().proxyEnabled:
            ocWebServices = OCWebServices(ocConnectInfo,
                                          ConfigDetails().proxyHost,
                                          ConfigDetails().proxyPort,
                                          ConfigDetails().noProxy,
                                          ConfigDetails().proxyAuthLogin,
                                          ConfigDetails().proxyAuthPassword)
        else:
            ocWebServices = OCWebServices(ocConnectInfo)

        successfull = False
        try:
            successfull, studies = ocWebServices.listAllStudies()
        except:
            QtGui.QMessageBox.warning(
                self, "Error",
                "Cannot communicate with the server, no network connection or the server is not running."
            )

        if (successfull):
            OCUserDetails().username = username
            OCUserDetails().passwordHash = passwordHash
            OCUserDetails().connected = True

            UserDetails().username = username
            UserDetails().clearpass = password
            UserDetails().password = passwordHash

            self.accept()
        else:
            QtGui.QMessageBox.warning(self, 'Error',
                                      'Wrong username or password.')
    def prepareServices(self):
        """Prepare services for this module
        """
        # HTTP connection to RadPlanBio server (Database)
        self.svcHttp = HttpConnectionService(ConfigDetails().ocHost, ConfigDetails().ocPort, UserDetails())

        if ConfigDetails().proxyEnabled:
            self.svcHttp.setupProxy(ConfigDetails().proxyHost, ConfigDetails().proxyPort, ConfigDetails().noProxy)
        if ConfigDetails().proxyAuthEnabled:
            self.svcHttp.setupProxyAuth(ConfigDetails().proxyAuthLogin, ConfigDetails().proxyAuthPassword)

        # Create connection artefact to users main OpenClinica SOAP
        self.ocConnectInfo = OCConnectInfo(ConfigDetails().ocWsHost, OCUserDetails().username)
        self.ocConnectInfo.setPasswordHash(OCUserDetails().passwordHash)

        if ConfigDetails().proxyEnabled:
            self.ocWebServices = OCWebServices(self.ocConnectInfo, ConfigDetails().proxyHost, ConfigDetails().proxyPort, ConfigDetails().noProxy, ConfigDetails().proxyAuthLogin, ConfigDetails().proxyAuthPassword)
        else:
            self.ocWebServices = OCWebServices(self.ocConnectInfo)

        # ODM XML metadata processing
        self.svcOdm = OdmFileDataService()
from contexts.ConfigDetails import ConfigDetails
from contexts.UserDetails import UserDetails

# Services
from rest.HttpConnectionService import HttpConnectionService
from soap.OCConnectInfo import OCConnectInfo
from soap.OCWebServices import OCWebServices

ocWsHost = "http://skripcak.net:8080/OpenClinica-ws"
password = "******"

OCUserDetails().username = "******"
OCUserDetails().connected = False

# Create connection artefact to users main OpenClinica SOAP
ocConnectInfo = OCConnectInfo(ocWsHost, OCUserDetails().username)
ocConnectInfo.setPassword(password)

# Initialise SOAP services
ocWebServices = OCWebServices(ocConnectInfo)

successfull = False
try:
    successfull, studies = ocWebServices.listAllStudies()
except:
    print "Cannot communicate with the server, no network connection or the server is not running."

if successfull:
    for study in studies:
        selectedStudy = study
        sucessfull, studyMetadata = ocWebServices.getStudyMetadata(