Esempio n. 1
0
 /**
  * @param $params
  * @param $includeDateOfBirth
  *
  * @return mixed
  */
 public function getPossibleDuplicatesByDemographic($params, $includeDateOfBirth = false)
 {
     $this->setPatientModel();
     $sql = "SELECT *\n\t\t\t\t  FROM `patient`\n \t\t\t\t WHERE `fname` SOUNDS LIKE '{$params->fname}'\n \t\t\t\t   AND `lname` SOUNDS LIKE '{$params->lname}'\n \t\t\t\t   AND `sex` = '{$params->sex}'";
     $this->patientContacts = new PatientContacts();
     if ($includeDateOfBirth) {
         $sql = " AND `DOB` = '{$params->DOB}'";
     }
     if (isset($params->pid) && $params->pid != 0) {
         $sql .= " AND `pid` != '{$params->pid}'";
     }
     $results = $this->p->sql($sql)->all();
     foreach ($results as $index => $record) {
         $contact = $this->patientContacts->getSelfContact($record['pid']);
         $results[$index]['name'] = Person::fullname($record['fname'], $record['mname'], $record['lname']);
         if (isset($contact)) {
             $results[$index]['fulladdress'] = Person::fulladdress(isset($contact['street_mailing_address']) ? $contact['street_mailing_address'] : '', null, isset($contact['city']) ? $contact['city'] : '', isset($contact['state']) ? $contact['state'] : '', isset($contact['zip']) ? $contact['zip'] : '');
             $results[$index]['phones'] = isset($contact['phone_local_number']) ? $contact['phone_use_code'] . '-' . $contact['phone_area_code'] . '-' . $contact['phone_local_number'] : '';
         }
     }
     return ['total' => count($results), 'data' => $results];
 }