/** * @param stdClass $params * @return array */ public function getMessages(stdClass $params) { $currUser = $_SESSION['user']['id']; if (isset($params->get)) { if ($params->get == 'inbox') { $wherex = "messages.to_deleted = '0' AND users.id = '{$currUser}'"; } elseif ($params->get == 'sent') { $wherex = "messages.from_deleted = '0' AND messages.from_id = '{$currUser}'"; } elseif ($params->get == 'trash') { $wherex = "messages.to_deleted = '1' OR messages.from_deleted = '1' AND users.id = '{$currUser}'"; } } else { $wherex = "messages.to_deleted = '0' AND users.id = '{$currUser}'"; } $this->setSQL("SELECT messages.* ,\n users.title AS user_title,\n users.fname AS user_fname,\n users.mname AS user_mname,\n users.lname AS user_lname,\n patient_demographics.fname AS patient_fname,\n patient_demographics.mname AS patient_mname,\n patient_demographics.lname AS patient_lname\n FROM messages\n LEFT OUTER JOIN patient_demographics ON messages.pid = patient_demographics.pid\n LEFT OUTER JOIN users ON messages.to_id = users.id\n WHERE {$wherex}\n ORDER BY messages.date\n LIMIT {$params->start}, {$params->limit}"); $messages = array(); foreach ($this->fetchRecords(PDO::FETCH_ASSOC) as $row) { $row['patient_name'] = Person::fullname($row['patient_fname'], $row['patient_mname'], $row['patient_lname']); $id = $row['from_id']; $this->setSQL("SELECT title, fname, mname, lname FROM users WHERE id ='{$id}' "); $record = $this->fetchRecord(); $row['from_user'] = $record['user_title'] . ' ' . Person::fullname($record['fname'], $record['mname'], $record['lname']); $row['to_user'] = $row['user_title'] . ' ' . Person::fullname($row['user_fname'], $row['user_mname'], $row['user_lname']); array_push($messages, $row); } $total = count($messages); return array('totals' => $total, 'messages' => $messages); }
/** * @param stdClass $params * @return array */ public function getMessages(stdClass $params) { $currUser = $_SESSION['user']['id']; if ($params->get == 'inbox') { $wherex = "pnotes.to_deleted = '0' AND users.id = '" . $currUser . "'"; } elseif ($params->get == 'sent') { $wherex = "pnotes.from_deleted = '0' AND pnotes.from_id = '" . $currUser . "'"; } elseif ($params->get == 'trash') { $wherex = "pnotes.to_deleted = '1' OR pnotes.from_deleted = '1' AND users.id = '" . $currUser . "'"; } else { $wherex = "pnotes.to_deleted = '0' AND users.id = '" . $currUser . "'"; } $this->setSQL("SELECT pnotes.* ,\n users.title AS user_title,\n users.fname AS user_fname,\n users.mname AS user_mname,\n users.lname AS user_lname,\n form_data_demographics.fname AS patient_fname,\n form_data_demographics.mname AS patient_mname,\n form_data_demographics.lname AS patient_lname\n FROM pnotes\n LEFT OUTER JOIN form_data_demographics ON pnotes.pid = form_data_demographics.pid\n LEFT OUTER JOIN users ON pnotes.to_id = users.id\n WHERE {$wherex}\n ORDER BY pnotes.date\n LIMIT {$params->start}, {$params->limit}"); $rows = array(); foreach ($this->execStatement(PDO::FETCH_ASSOC) as $row) { $row['patient_name'] = Person::fullname($row['patient_fname'], $row['patient_mname'], $row['patient_lname']); $id = $row['from_id']; $this->setSQL("SELECT title, fname, mname, lname FROM users WHERE id ='{$id}' "); $record = $this->fetch(); $row['from_user'] = $record['user_title'] . ' ' . Person::fullname($record['fname'], $record['mname'], $record['lname']); $row['to_user'] = $row['user_title'] . ' ' . Person::fullname($row['user_fname'], $row['user_mname'], $row['user_lname']); array_push($rows, $row); } return $rows; }
public function getUsers() { include_once "Person.php"; $sql = "SELECT id, title, fname, mname, lname\n FROM users\n WHERE username != '' AND active = 1 AND ( info IS NULL OR info NOT LIKE '%Inactive%' )\n ORDER BY lname, fname"; $this->setSQL($sql); $rows = array(); foreach ($this->execStatement(PDO::FETCH_ASSOC) as $row) { $row['name'] = $row['title'] . ' ' . Person::fullname($row['fname'], $row['mname'], $row['lname']); unset($row['title'], $row['fname'], $row['mname'], $row['lname']); array_push($rows, $row); } return $rows; }
public function getMessages(stdClass $params) { $messages = array(); $Where = new stdClass(); if ($this->Patient == null) { $this->Patient = MatchaModel::setSenchaModel('App.model.patient.Patient'); } if ($this->User == null) { $this->User = MatchaModel::setSenchaModel('App.model.administration.User'); } if ($this->Messages == null) { $this->Messages = MatchaModel::setSenchaModel('App.model.messages.Messages'); } $uid = $_SESSION['user']['id']; if (isset($params->get)) { if ($params->get == 'inbox') { $Where->to_deleted = 0; $Where->to_id = $uid; } if ($params->get == 'sent') { $Where->from_deleted = 0; $Where->from_id = $uid; } if ($params->get == 'trash') { $Where->to_deleted = 1; $Where->to_id = $uid; $Where->from_deleted = 1; } } else { $Where = null; } foreach ($this->Messages->load($Where)->all() as $row) { $UserTo = $this->User->load(array('id' => $row['to_id']))->one(); $row['to_user'] = $UserTo['title'] . ' ' . Person::fullname($UserTo['fname'], $UserTo['mname'], $UserTo['lname']); $Patient = $this->Patient->load(array('pid' => $row['pid']))->one(); $row['patient_name'] = Person::fullname($Patient['fname'], $Patient['mname'], $Patient['lname']); $UserFrom = $this->User->load(array('id' => $row['from_id']))->one(); $row['from_user'] = $UserFrom['title'] . ' ' . Person::fullname($UserFrom['fname'], $UserFrom['mname'], $UserFrom['lname']); array_push($messages, $row); } return $messages; }
public function addEvent(stdClass $params) { $sql = "SELECT fname, mname, lname FROM form_data_demographics WHERE pid='{$params->patient_id}'"; $this->setSQL($sql); $rec = $this->fetch(); $fullName = Person::fullname($rec['fname'], $rec['mname'], $rec['lname']); $row['user_id'] = $params->user_id; $row['category'] = $params->category; $row['facility'] = $params->facility; $row['billing_facillity'] = $params->billing_facillity; $row['patient_id'] = $params->patient_id; $row['title'] = $fullName; $row['status'] = $params->status; $row['start'] = $params->start; $row['end'] = $params->end; $row['rrule'] = $params->rrule; $row['loc'] = $params->loc; $row['notes'] = $params->notes; $row['url'] = $params->url; $row['ad'] = $params->ad; $sql = $this->sqlBind($row, "calendar_events", "I"); $this->setSQL($sql); $ret = $this->execLog(); // ******************************************************************** // If no error found, return the same record back to the calendar // ******************************************************************** if ($ret[2]) { echo '{ success: false, errors: { reason: "' . $ret[2] . '" }}'; } else { $sql = "SELECT * FROM calendar_events WHERE id = '" . $this->lastInsertId . "' "; $this->setSQL($sql); $rows = array(); foreach ($this->execStatement(PDO::FETCH_ASSOC) as $row) { array_push($rows, $row); } return array('success' => true, 'message' => 'Loaded data', 'data' => $rows); } }
/** * @param stdClass $params * @return stdClass */ public function addUser(stdClass $params) { if (!$this->usernameExist($params->username)) { $data = get_object_vars($params); unset($data['password']); $role['role_id'] = $data['role_id']; unset($data['id'], $data['role_id'], $data['fullname']); if ($data['taxonomy'] == '') { unset($data['taxonomy']); } foreach ($data as $key => $val) { if ($val == null || $val == '') { unset($data[$key]); } } $sql = $this->db->sqlBind($data, 'users', 'I'); $this->db->setSQL($sql); $this->db->execLog(); $params->id = $this->user_id = $this->db->lastInsertId; $params->fullname = Person::fullname($params->fname, $params->mname, $params->lname); if ($params->password != '') { $this->changePassword($params->password); } $params->password = ''; $role['user_id'] = $params->id; $sql = $this->db->sqlBind($role, 'acl_user_roles', 'I'); $this->db->setSQL($sql); $this->db->execLog(); return $params; } else { return array('success' => false, 'error' => "Username \"{$params->username}\" exist, please try a different username"); } }
/** * @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]; }
/** * @return mixed * @throws Exception */ function getPatient() { $dom = $this->document['ClinicalDocument']['recordTarget']['patientRole']; $patient = new stdClass(); // IDs if ($this->isAssoc($dom['id'])) { $patient->pubpid = $dom['id']['@attributes']['extension']; } else { $foo = []; foreach ($dom['id'] as $id) { $foo[] = $id['@attributes']['extension']; } $patient->pubpid = implode('~', $foo); unset($foo); } // address // TODO: Here we need to create a new Patient Contact record. (Self) $a = isset($dom['addr']) ? $dom['addr'] : []; //$PatientContact = new PatientContacts(); $patient->address = isset($a['streetAddressLine']) ? $a['streetAddressLine'] : ''; $patient->city = isset($a['city']) ? $a['city'] : ''; $patient->state = isset($a['state']) ? $a['state'] : ''; $patient->zipcode = isset($a['postalCode']) ? $a['postalCode'] : ''; $patient->country = isset($a['country']) ? $a['country'] : ''; unset($a); // phones if (isset($dom['telecom'])) { $telecoms = $this->telecomHandler($dom['telecom']); foreach ($telecoms as $type => $telecom) { if ($type == 'WP') { $patient->work_phone = $telecom; } else { $patient->home_phone = $telecom; } } } if (!isset($dom['patient'])) { throw new Exception('Error: ClinicalDocument->recordTarget->patientRole->Patient is required'); } //names if (!isset($dom['patient']['name']['given'])) { throw new Exception('Error: Patient given name is required'); } if (!isset($dom['patient']['name']['family'])) { throw new Exception('Error: Patient family name is required'); } $names = $this->nameHandler($dom['patient']['name']); $patient->fname = $names['fname']; $patient->mname = $names['mname']; $patient->lname = $names['lname']; $patient->name = Person::fullname($names['fname'], $names['mname'], $names['lname']); //gender if (!isset($dom['patient']['administrativeGenderCode'])) { throw new Exception('Error: Patient gender is required'); } $patient->sex = $dom['patient']['administrativeGenderCode']['@attributes']['code']; //DOB $patient->DOB = $this->dateParser($dom['patient']['birthTime']['@attributes']['value']); // fix for date with only the day... add the time at the end if (strlen($patient->DOB) <= 10) { $patient->DOB .= ' 00:00:00'; } //marital StatusCode $patient->marital_status = isset($dom['patient']['maritalStatusCode']['@attributes']['code']) ? $dom['patient']['maritalStatusCode']['@attributes']['code'] : ''; //race $patient->race = isset($dom['patient']['raceCode']['@attributes']['code']) ? $dom['patient']['raceCode']['@attributes']['code'] : ''; //ethnicGroupCode $patient->ethnicity = isset($dom['patient']['ethnicGroupCode']['@attributes']['code']) ? $dom['patient']['ethnicGroupCode']['@attributes']['code'] : ''; //birthplace if (isset($dom['patient']['birthplace']['place']['addr'])) { $addr = $dom['patient']['birthplace']['place']['addr']; $foo = ''; if (isset($addr['city'])) { $foo .= is_string($addr['city']) ? $addr['city'] : ''; } if (isset($addr['state'])) { $foo .= is_string($addr['state']) ? ' ' . $addr['state'] : ''; } if (isset($addr['country'])) { $foo .= is_string($addr['country']) ? ' ' . $addr['country'] : ''; } $patient->birth_place = trim($foo); } else { $patient->birth_place = ''; } //languageCommunication $patient->language = isset($dom['patient']['languageCommunication']['languageCode']['@attributes']['code']) ? $dom['patient']['languageCommunication']['languageCode']['@attributes']['code'] : ''; //religious not implemented //$patient->religion = ''; //guardian // TODO: Here we need to create a new Patient Contact record. (Guardian) if (isset($dom['patient']['guardian'])) { // do a bit more... // lets just save the name for now if ($dom['patient']['guardian']['guardianPerson']) { $name = isset($dom['patient']['guardian']['guardianPerson']['name']['given']) ? $dom['patient']['guardian']['guardianPerson']['name']['given'] : ''; $name .= isset($dom['patient']['guardian']['guardianPerson']['name']['family']) ? ' ' . $dom['patient']['guardian']['guardianPerson']['name']['family'] : ''; $patient->guardians_name = trim($name); } } unset($dom); return $patient; }
public function getEncounterSummary(stdClass $params) { $this->setEid($params->eid); $this->db->setSQL("SELECT e.*,\n\t\t\t\t\t\t\t\t p.fname,\n\t\t\t\t\t\t\t\t p.mname,\n\t\t\t\t\t\t\t\t p.lname,\n\t\t\t\t\t\t\t\t p.DOB,\n\t\t\t\t\t\t\t\t p.sex\n\t\t\t\t\t\t\t FROM encounters AS e\n\t\t\t\t\t LEFT JOIN patient_demographics AS p ON e.pid = p.pid\n\t\t\t\t\t\t\tWHERE e.eid = '{$params->eid}'"); $e = $this->db->fetchRecord(PDO::FETCH_ASSOC); $e['name'] = Person::fullname($e['fname'], $e['mname'], $e['lname']); $e['pic'] = $this->patient->getPatientPhotoSrcIdByPid($e['pid']); $e['age'] = $this->patient->getPatientAgeByDOB($e['DOB']); $this->addEncounterHistoryEvent('Encounter viewed'); if (!empty($e)) { return array('success' => true, 'encounter' => $e); } else { return array('success' => false, 'error' => "Encounter ID {$params->eid} not found"); } }
/** * @param $pid * @return array */ public function getPatientDemographicDataByPid($pid) { $this->db->setSQL("SELECT * FROM patient_demographics WHERE pid = '{$pid}'"); $patient = $this->db->fetchRecord(PDO::FETCH_ASSOC); $patient['pic'] = $this->getPatientPhotoSrcIdByPid($patient['pid']); $patient['name'] = Person::fullname($patient['fname'], $patient['mname'], $patient['lname']); $patient['age'] = $this->getPatientAgeByDOB($patient['DOB']); return $patient; }
/** * Form now this is just getting the latest open encounter for all the patients. * * @param $params * * @return array */ public function getPatientsByPoolAreaAccess($params) { Matcha::pauseLog(true); if (is_numeric($params)) { $uid = $params; } elseif (!is_numeric($params) && isset($params->eid)) { $uid = $params->eid; } elseif (!isset($_SESSION['user']['id'])) { return []; } else { $uid = $_SESSION['user']['id']; } $this->acl = new ACL($uid); $pools = []; if ($this->acl->hasPermission('use_pool_areas')) { $this->setPatient(); $activeAreas = $this->getFacilityActivePoolAreas(); $areas = []; $pools = []; if (!empty($activeAreas)) { foreach ($activeAreas as $activeArea) { if ($activeArea['id'] == 1 && $this->acl->hasPermission('access_poolcheckin') || $activeArea['id'] == 2 && $this->acl->hasPermission('access_pooltriage') || $activeArea['id'] == 3 && $this->acl->hasPermission('access_poolphysician') || $activeArea['id'] == 4 && $this->acl->hasPermission('access_poolcheckout')) { $areas[] = 'pp.area_id = \'' . $activeArea['id'] . '\''; } } $whereAreas = '(' . implode(' OR ', $areas) . ')'; $sql = "SELECT pp.*, p.fname, p.lname, p.mname, pa.title\n\t\t\t\t\t FROM `patient_pools` AS pp\n\t\t\t\t LEFT JOIN `patient` AS p ON pp.pid = p.pid\n\t\t\t\t LEFT JOIN `pool_areas` AS pa ON pp.area_id = pa.id\n\t\t\t\t WHERE {$whereAreas}\n\t\t\t\t\t AND pp.time_out IS NULL\n\t\t\t\t\t AND pp.in_queue = '1'\n\t\t\t ORDER BY pp.time_in\n\t\t\t LIMIT 25"; $patientPools = $this->pa->sql($sql)->all(); $pools = []; foreach ($patientPools as $patientPool) { $patientPool['name'] = ($patientPool['eid'] != null ? '*' : '') . Person::fullname($patientPool['fname'], $patientPool['mname'], $patientPool['lname']); $patientPool['shortName'] = Person::ellipsis($patientPool['name'], 15); $patientPool['poolArea'] = $patientPool['title']; $patientPool['patient'] = $this->patient->getPatientDemographicDataByPid($patientPool['pid']); $patientPool['floorPlanId'] = $this->getFloorPlanIdByPoolAreaId($patientPool['area_id']); $z = $this->getPatientCurrentZoneInfoByPid($patientPool['pid']); $pools[] = empty($z) ? $patientPool : array_merge($patientPool, $z); } $pools = array_slice($pools, 0, 25); } } Matcha::pauseLog(false); return $pools; }
public function getUserFullNameById($id) { $user = $this->u->load($id)->one(); return Person::fullname($user['fname'], $user['mname'], $user['lname']); }
public function get_PatientTokensData($pid, $allNeededInfo, $tokens) { // Code reference: Relationship codes as specified by HL7. v2: Added 'Household' concept // https://phinvads.cdc.gov/vads/ViewValueSet.action?id=6FD34BBC-617F-DD11-B38D-00188B398520# $patientContact = new PatientContacts(); $contactSelf = $patientContact->getContactByType($pid, 'SEL'); $contactGuardian = $patientContact->getContactByType($pid, 'GRD'); $contactMother = $patientContact->getContactByType($pid, 'MTH'); $contactEmergency = $patientContact->getContactByType($pid, 'EMC'); $contactEmployer = $patientContact->getContactByType($pid, 'EMR'); $patientData = $this->getAllPatientData($pid); $age = $this->patient->getPatientAgeByDOB($patientData['DOB']); $user = new User(); $patienInformation = ['[PATIENT_NAME]' => $patientData['fname'], '[PATIENT_ID]' => $patientData['pid'], '[PATIENT_FULL_NAME]' => $this->patient->getPatientFullNameByPid($patientData['pid']), '[PATIENT_LAST_NAME]' => $patientData['lname'], '[PATIENT_SEX]' => $patientData['sex'], '[PATIENT_BIRTHDATE]' => $patientData['DOB'], '[PATIENT_MARITAL_STATUS]' => $patientData['marital_status'], '[PATIENT_SOCIAL_SECURITY]' => $patientData['SS'], '[PATIENT_EXTERNAL_ID]' => $patientData['pubpid'], '[PATIENT_DRIVERS_LICENSE]' => $patientData['drivers_license'], '[PATIENT_ADDRESS]' => isset($contactSelf['street_mailing_address']) ? $contactSelf['street_mailing_address'] : '', '[PATIENT_CITY]' => isset($contactSelf['city']) ? $contactSelf['city'] : '', '[PATIENT_STATE]' => isset($contactSelf['state']) ? $contactSelf['state'] : '', '[PATIENT_COUNTRY]' => isset($contactSelf['country']) ? $contactSelf['country'] : '', '[PATIENT_ZIPCODE]' => isset($contactSelf['zip']) ? $contactSelf['zip'] : '', '[PATIENT_HOME_PHONE]' => isset($contactSelf['phone_local_number']) ? $contactSelf['phone_use_code'] . '-' . $contactSelf['phone_area_code'] . '-' . $contactSelf['phone_local_number'] : '', '[PATIENT_MOBILE_PHONE]' => isset($contactSelf['phone_local_number']) ? $contactSelf['phone_use_code'] . '-' . $contactSelf['phone_area_code'] . '-' . $contactSelf['phone_local_number'] : '', '[PATIENT_WORK_PHONE]' => isset($contactSelf['phone_local_number']) ? $contactSelf['phone_use_code'] . '-' . $contactSelf['phone_area_code'] . '-' . $contactSelf['phone_local_number'] : '', '[PATIENT_EMAIL]' => '', '[PATIENT_MOTHERS_NAME]' => isset($contactMother['first_name']) ? Person::fullname($contactMother['first_name'], $contactMother['middle_name'], $contactMother['last_name']) : '', '[PATIENT_GUARDIANS_NAME]' => isset($contactGuardian['first_name']) ? Person::fullname($contactGuardian['first_name'], $contactGuardian['middle_name'], $contactGuardian['last_name']) : '', '[PATIENT_EMERGENCY_CONTACT]' => isset($contactEmergency['first_name']) ? Person::fullname($contactEmergency['first_name'], $contactEmergency['middle_name'], $contactEmergency['last_name']) : '', '[PATIENT_EMERGENCY_PHONE]' => isset($contactEmergency['phone_local_number']) ? $contactEmergency['phone_use_code'] . '-' . $contactEmergency['phone_area_code'] . '-' . $contactEmergency['phone_local_number'] : '', '[PATIENT_PROVIDER]' => is_numeric($patientData['provider']) ? $user->getUserFullNameById($patientData['provider']) : '', '[PATIENT_PHARMACY]' => $patientData['pharmacy'], '[PATIENT_AGE]' => $age['DMY']['years'], '[PATIENT_OCCUPATION]' => $patientData['occupation'], '[PATIENT_EMPLOYEER]' => isset($contactEmployer['first_name']) ? Person::fullname($contactEmployer['first_name'], $contactEmployer['middle_name'], $contactEmployer['last_name']) : '', '[PATIENT_RACE]' => $patientData['race'], '[PATIENT_ETHNICITY]' => $patientData['ethnicity'], '[PATIENT_LENGUAGE]' => $patientData['language'], '[PATIENT_PICTURE]' => '<img src="' . $patientData['image'] . '" style="width:100px;height:100px">', '[PATIENT_QRCODE]' => '<img src="' . $patientData['qrcode'] . '" style="width:100px;height:100px">', '[PATIENT_TABACCO]' => 'tabaco', '[PATIENT_ALCOHOL]' => 'alcohol']; unset($user); foreach ($tokens as $i => $tok) { if (isset($patienInformation[$tok]) && ($allNeededInfo[$i] == '' || $allNeededInfo[$i] == null)) { $allNeededInfo[$i] = $patienInformation[$tok]; } } return $allNeededInfo; }
/** * Function: getEncountersByPayment */ public function getEncountersByPayment(stdClass $params) { $encounters = array(); $sql = "SELECT\n\t\t\t\t\tencounters.eid,\n\t\t\t\t\tencounters.pid,\n\t\t\t\t\tIf(encounters.provider_uid Is Null, 'None', encounters.provider_uid) As encounterProviderUid,\n\t\t\t\t\tIf(patient.provider Is Null, 'None', patient.provider) As primaryProviderUid,\n\t\t\t\t\tencounters.service_date,\n\t\t\t\t\tencounters.billing_stage,\n\t\t\t\t\tpatient.primary_insurance_provider,\n\t\t\t\t\tpatient.title,\n\t\t\t\t\tpatient.fname,\n\t\t\t\t\tpatient.mname,\n\t\t\t\t\tpatient.lname,\n\t\t\t\t\tencounters.close_date,\n\t\t\t\t\tencounters.supervisor_uid,\n\t\t\t\t\tencounters.provider_uid,\n\t\t\t\t\tencounters.open_uid\n\t\t\t\tFROM\n\t\t\t\t\tencounters\n\t\t\t\tLEFT JOIN\n\t\t\t\t\tpatient\n\t\t\t\tON patient.pid = encounters.pid\n\t\t\t\tORDER BY\n \t\t\t\t\tencounters.service_date"; $this->db->setSQL($sql); foreach ($this->db->fetchRecords(PDO::FETCH_ASSOC) as $row) { $row['patientName'] = $row['title'] . ' ' . Person::fullname($row['fname'], $row['mname'], $row['lname']); $encounters[] = $row; } $total = count($encounters); $encounters = array_slice($encounters, $params->start, $params->limit); return array('totals' => $total, 'encounters' => $encounters); }
public function getUsers() { include_once 'Person.php'; if ($this->U == null) { $this->U = MatchaModel::setSenchaModel('App.model.administration.User'); } $rows = []; $records = $this->U->load(['active' => 1], ['id', 'title', 'fname', 'mname', 'lname'])->all(); foreach ($records['data'] as $row) { $row['name'] = $row['title'] . ' ' . Person::fullname($row['fname'], $row['mname'], $row['lname']); unset($row['title'], $row['fname'], $row['mname'], $row['lname']); array_push($rows, $row); } return $rows; }
/** * @param stdClass $params * @return stdClass * NOTES: Update contact address to who? * Naming: "updatePatientAddress" */ public function updateAddress(stdClass $params) { $data = get_object_vars($params); unset($data['id'], $data['fullname'], $data['fulladdress']); $sql = $this->db->sqlBind($data, "users", "U", "id='" . $params->id . "'"); $this->db->setSQL($sql); $this->db->execLog(); $params->fullname = Person::fullname($params->fname, $params->mname, $params->lname); $params->fulladdress = Person::fulladdress($params->street, $params->streetb, $params->city, $params->state, $params->zip); return $params; }
/** * @param $pid * * @return string */ public function getPatientFullNameByPid($pid) { $this->setPatientModel(); $p = $this->p->sql("SELECT fname,mname,lname FROM patient WHERE pid = '{$pid}'")->one(); return Person::fullname($p['fname'], $p['mname'], $p['lname']); }
/** * Events are the patient appointments * * @param stdClass $params * @return array */ public function getEvents(stdClass $params) { $sql = "SELECT * FROM calendar_events WHERE start BETWEEN '" . $params->startDate . " 00:00:00' AND '" . $params->endDate . " 23:59:59' "; $this->db->setSQL($sql); $rows = array(); foreach ($this->db->fetchRecords(PDO::FETCH_ASSOC) as $row) { $row['id'] = intval($row['id']); $row['calendarId'] = intval($row['user_id']); $row['category'] = intval($row['category']); $row['facility'] = intval($row['facility']); $row['billing_facility'] = intval($row['billing_facillity']); $row['patient_id'] = intval($row['patient_id']); $sql = "SELECT * FROM patient_demographics WHERE pid= '" . $row['patient_id'] . "'"; $this->db->setSQL($sql); foreach ($this->db->fetchRecords(PDO::FETCH_ASSOC) as $urow) { $row['title'] = Person::fullname($urow['fname'], $urow['mname'], $urow['lname']); } array_push($rows, $row); } //print_r(json_encode(array('success'=>true, 'message'=>'Loaded data', // 'data'=>$rows))); } return array('success' => true, 'message' => 'Loaded data', 'data' => $rows); }