docs: def get_person_by_prox_rfid(self, prox_rfid):
          """
          Returns a restclients.Person object for the given rfid.  If the rfid
          isn't found, or if there is an error communicating with the IdCard WS,
          a DataFailureException will be thrown.
          """
          if not self.valid_prox_rfid(prox_rfid):
              raise InvalidProxRFID(prox_rfid)
  
          url = "{}.json?{}".format(
              CARD_PREFIX, urlencode({"prox_rfid": prox_rfid}))
          response = DAO.getURL(url, {"Accept": "application/json"})
  
          if response.status != 200:
              raise DataFailureException(url, response.status, response.data)
  
          data = json.loads(response.data)
          if not len(data["Cards"]):
              raise DataFailureException(url, 404, "No card found")
  
          regid = data["Cards"][0]["RegID"]
          return self.get_person_by_regid(regid)