def modify_claim_fields()

in common/src/common/utils/neo4j_new_incoming_claim.py [0:0]


def modify_claim_fields(claim_dict):
  claim_dict = map_key_names(claim_dict)
  if "driver_license" in claim_dict["document_details"].keys():
    claim_dict["driver_license_id_number"] = claim_dict["document_details"]\
    ["driver_license"]["id_number"]
  else:
    claim_dict["driver_license_id_number"] = ""
  if "rec_id" in claim_dict["document_details"].keys():
    claim_dict["rec_id_number"] = claim_dict["document_details"]\
      ["rec_id"]["id_number"]
  else:
    claim_dict["rec_id_number"] = ""
  if "foreign_passport" in claim_dict["document_details"].keys():
    claim_dict["foreign_passport_number"] = claim_dict["document_details"]\
      ["foreign_passport"]["passport_number"]
  else:
    claim_dict["foreign_passport_number"] = ""
  if "us_passport" in claim_dict["document_details"].keys():
    claim_dict["us_passport_document_id"] = claim_dict["document_details"]\
      ["us_passport"]["document_id"]
  else:
    claim_dict["us_passport_document_id"] = ""
  del claim_dict["document_details"]

  new_claim_df = pd.DataFrame([claim_dict], columns=claim_dict.keys())
  #replace null values
  new_claim_df.fillna(value="", inplace=True)
  #create new columns
  new_claim_df["email_username"] = new_claim_df["email_address"].apply\
  (lambda x:x.split("@")[0])
  new_claim_df["email_tokenised"] = new_claim_df["email_username"].apply\
  (lambda x: re.sub(r"[^A-Za-z]+", "", x).lower())
  new_claim_df["full_name"] = new_claim_df["first_name"] + " " +\
  new_claim_df["middle_name"] + " "+ new_claim_df["last_name"]
  new_claim_df["full_name"] = new_claim_df["full_name"].str.lower()
  new_claim_df["res_address"] = new_claim_df["res_address_line1"]+" "+\
  new_claim_df["res_address_line2"]+" "+ new_claim_df["res_address_city"]+" "+\
  new_claim_df["res_address_state"]
  new_claim_df["res_address"] = new_claim_df["res_address"].apply\
  (lambda x: re.sub(" +", " ", x).lower())
  new_claim_df["mail_address"] = new_claim_df["mail_address_line1"]+" "+\
  new_claim_df["mail_address_line2"]+" "+new_claim_df["mail_address_city"]+" "+\
  new_claim_df["mail_address_state"]
  new_claim_df["mail_address"] = new_claim_df["mail_address"].apply\
  (lambda x: re.sub(" +", " ", x).lower())

  col_list = [
      "claim_id", "full_name", "date_of_birth", "res_address", "mail_address",
      "res_address_zipcode", "email_address", "email_username",
      "email_tokenised", "phone_num", "itin_number", "tf_number",
      "driver_license_id_number", "register_ip_address", "rec_id_number",
      "foreign_passport_number", "us_passport_document_id"
  ]
  new_claim_df = new_claim_df[col_list]
  claim_dict = new_claim_df.to_dict("records")[0]
  return claim_dict