def create(self, request, *args, **kwargs):
        """Validates user credentials with the backing data store.

         Request parameters:
            username
                a valid username
            password
                a valid password

         Parameters:
            request
                An authorization check request.
        """
        try:
            wsname = "sessions"
            auth = {
                "username": request.REQUEST.get("username", None),
                "password": request.REQUEST.get("password", None)
            }
            logging.info("username %s" % auth['username'])
            opener = openmrslib.build_opener(host=settings.OPENMRS_SERVER_URL)
            return succeed(opener.wsdispatch(wsname, auth=auth))
        except Exception, e:
            msg = "%s" % e
            logging.error(msg)
            return fail(msg)
示例#2
0
 def read(self,request, id=None, **kwargs):
     """ Returns zero or more patients from OpenMRS
     """
     try:
         opener = openmrslib.build_opener(host=settings.OPENMRS_SERVER_URL)
         query = self.flatten_dict(request.GET)
         username = query.pop("username")
         password = query.pop("password")
         if id and id != 'list':
             response = opener.getPatient(username, password, id)   
             if openmrslib.OPENMRS_VERSION < 1.8:
                 message = parseOne(response)
             else:
                 message =response
             if len(message) == 0:
                 return fail("")
         else:
             response = opener.getAllPatients(username, password, query=query)   
             if openmrslib.OPENMRS_VERSION < 1.8:
                 message = parseAll(response)
             else:
                 message = ""
                 logging.debug("Response: %s" % response) 
                 for p in response:
                     logging.debug(p)
                     firstname = p["givenName"]
                     lastname = p["family_name"]
                     gender = p["gender"]
                     birthdate = p["birthdate"]
                     uuid = p["uuid"]
                     patient = "%s%s%s%s%s%s".format(firstname.lower(),
                                                     birthdate[0:4],
                                                     birthdate[5:7],
                                                     birthdate[8:10],
                                                     lastname.lower(),
                                                     gender.lower())
                     message.append(patient)
         logging.debug("message: %s" % message)
         return succeed(message)
     except Exception, e:
         logging.error("Error: %s" % str(e))
         printstack(e)
         return fail("%s" % e)
 def read(self, request, id=None, **kwargs):
     """ Returns zero or more patients from OpenMRS
     """
     try:
         opener = openmrslib.build_opener(host=settings.OPENMRS_SERVER_URL)
         query = self.flatten_dict(request.GET)
         username = query.pop("username")
         password = query.pop("password")
         if id and id != 'list':
             response = opener.getPatient(username, password, id)
             if openmrslib.OPENMRS_VERSION < 1.8:
                 message = parseOne(response)
             else:
                 message = response
             if len(message) == 0:
                 return fail("")
         else:
             response = opener.getAllPatients(username,
                                              password,
                                              query=query)
             if openmrslib.OPENMRS_VERSION < 1.8:
                 message = parseAll(response)
             else:
                 message = ""
                 logging.debug("Response: %s" % response)
                 for p in response:
                     logging.debug(p)
                     firstname = p["givenName"]
                     lastname = p["family_name"]
                     gender = p["gender"]
                     birthdate = p["birthdate"]
                     uuid = p["uuid"]
                     patient = "%s%s%s%s%s%s".format(
                         firstname.lower(), birthdate[0:4], birthdate[5:7],
                         birthdate[8:10], lastname.lower(), gender.lower())
                     message.append(patient)
         logging.debug("message: %s" % message)
         return succeed(message)
     except Exception, e:
         logging.error("Error: %s" % str(e))
         printstack(e)
         return fail("%s" % e)
示例#4
0
    def create(self,request, *args, **kwargs):
        """Validates user credentials with the backing data store.

         Request parameters:
            username
                a valid username
            password
                a valid password

         Parameters:
            request
                An authorization check request.
        """
        try:
            wsname = "sessions"
            auth = {"username": request.REQUEST.get("username", None),
                    "password" : request.REQUEST.get("password", None)}
            logging.info("username %s" % auth['username'])
            opener = openmrslib.build_opener(host=settings.OPENMRS_SERVER_URL)
            return succeed(opener.wsdispatch(wsname, auth=auth))
        except Exception, e:
            msg = "%s" % e
            logging.error(msg)
            return fail(msg)