function save_issue($entity) { if (!$entity->is_new()) { return update_issue($entity); } else { if ($entity->validate()) { global $__db_conn; $sql = "INSERT INTO issue(created_at,updated_at,title,body,num,url,project_id) values (':created_at:',':updated_at:',':title:',':body:',':number:',':url:',':project_id:');"; $sql = str_replace(":created_at:", Date("Y-m-d"), $sql); $sql = str_replace(":updated_at:", Date("Y-m-d"), $sql); preg_match_all("/:([a-zA-Z_0-9]*):/", $sql, $matches); foreach ($matches[1] as $attr) { $sql = str_replace(":{$attr}:", mysql_real_escape_string($entity->{$attr}), $sql); } mysql_query($sql, $__db_conn); $entity->id = mysql_insert_id($__db_conn); return true; } } }
function create_patient(&$medics, &$errors) { $alertmsg = ""; $patient_pid = get_patientid($medics); $pubpid = trim($medics->pubpid); // ID must be valid or 'NEWPATIENT' if (empty($pubpid)) { array_push($errors, "Patient ID '{$pubpid}' missing, patient skipped! "); return $alertmsg; } if ($pubpid != 'NEWPATIENT') { // 1. validate patient $patient_pid = 0; $query = "SELECT pid FROM patient_data WHERE pubpid LIKE '{$pubpid}'"; $res = sqlStatement($query); $row = sqlFetchArray($res); if ($row) { $patient_pid = $row['pid']; if (sqlFetchArray($res)) { array_push($errors, "Patient ID '{$pubpid}' is ambiguous, patient skipped! "); return $alertmsg; } else { // array_push( $errors, "Patient ID '$pubpid' exists, updates/new encounters only. "); } } } // 2. validate insurance provider - REMOVED // 3. validate billing provider $tmp = array(); $tmp = fetchProviderInfo($medics); if (!array($tmp)) { array_push($errors, "Provider '{$tmp}' not found, patient skipped!"); return $alertmsg; } $patient_provider_id = $tmp['id']; $patient_provider_name = $tmp['username']; $patient_provider_facility = $tmp['facility_id']; // 4. get facility from // Move to function $row = sqlQuery("SELECT id, name, pos_code FROM facility WHERE id = '{$patient_provider_facility}'"); if (!$row['id']) { array_push($errors, "Facility '{$tmp}' not found, patient skipped! "); return $alertmsg; } $patient_facility_id = $row['id']; $patient_facility_name = $row['name']; $patient_facility_pos = $row['pos_code']; // 5. insert patient data if (!$patient_pid) { // Insert into patient_data. // $row = sqlQuery("SELECT max(pid)+1 AS pid FROM patient_data"); $patient_pid = $row['pid'] ? $row['pid'] : 1; // Combine street lines $patient_street = $medics->street . ' ' . $medics->street2; // Build array newPatientData('', '', form2db($medics->fname), form2db($medics->lname), form2db($medics->mname), sex($medics->sex), form2db($medics->dob), form2db($patient_street), '', '', '', form2db($medics->zip), form2db($medics->city), form2db($medics->state), '', '', '', form2db($medics->phone_home), form2db($medics->phone_alternate), '', '', '', '', '', '', '', form2db($medics->ethnicity), '', '', '', '', '', '0000-00-00 00:00:00', $patient_pid, $patient_pid, '', '', '', '', '', '', form2db($medics->hippa_notice), form2db($medics->hippa_notice), '', '', '', form2db($medics->hippa_notice), '', $dos = fixDate($medics->fromdate)); // Insert dummy row for employer_data. newEmployerData($patient_pid); // Update or Instest subscriber ins data if ($medics->pubpid == 'NEWPATIENT' || !empty($medics->policy_id)) { newInsuranceData($patient_pid, 'primary', $insurance_company_id, form2db($medics->policy_id), '', '', form2db($medics->lname), form2db($medics->mname), form2db($medics->fname), 'self', '', fixDate($medics->dob), form2db($medics->street), form2db($medics->zip), form2db($medics->city), form2db($medics->state), '', form2db($medics->phone_home), '', '', '', '', '', '', '', sex($medics->sex), fixDate($medics->eff_date)); } $tmp = $medics->lname . ',' . $medics->fname; $alertmsg .= "New Patient Added: '{$patient_pid}' / '{$tmp}' <br>\n"; } $medics->pid = $patient_pid; $history = array('history_father' => form2db($medics->familyinformation->father), 'history_mother' => form2db($medics->familyinformation->mother), 'history_spouse' => form2db($medics->familyinformation->spouse), 'history_siblings' => form2db($medics->familyinformation->siblings), 'history_offspring' => form2db($medics->familyinformation->offspring), 'relatives_cancer' => form2db($medics->medical->relativesexperience->cancer), 'relatives_tuberculosis' => form2db($medics->medical->relativesexperience->tuberculosis), 'relatives_diabetes' => form2db($medics->medical->relativesexperience->diabetes), 'relatives_high_blood_pressure' => form2db($medics->medical->relativesexperience->highbloodpressure), 'relatives_heart_problems' => form2db($medics->medical->relativesexperience->heartproblems), 'relatives_stroke' => form2db($medics->medical->relativesexperience->stroke), 'relatives_epilepsy' => form2db($medics->medical->relativesexperience->epilepsy), 'relatives_mental_illness' => form2db($medics->medical->relativesexperience->mentalillness), 'relatives_suicide' => form2db($medics->medical->relativesexperience->suicide), 'usertext12' => form2db($medics->medical->relativesexperience->other), 'coffee' => form2db($medics->medical->lifestyleusage->coffee), 'tobacco' => form2db($medics->medical->lifestyleusage->tobacco), 'alcohol' => form2db($medics->medical->lifestyleusage->alcohol), 'sleep_patterns' => form2db($medics->medical->lifestyleusage->sleep), 'exercise_patterns' => form2db($medics->medical->lifestyleusage->exercise), 'seatbelt_use' => form2db($medics->medical->lifestyleusage->seatbelt), 'counseling' => form2db($medics->medical->lifestyleusage->counseling), 'hazardous_activities' => form2db($medics->medical->lifestyleusage->hazardactivities), 'usertext13' => form2db($medics->medical->lifestyleusage->urinaryincontinence), 'usertext14' => form2db($medics->medical->lifestyleusage->fallhistory), 'additional_history' => form2db($medics->medical->lifestyleusage->other) . " " . form2db($medics->medical->lifestyleusage->generalnotes)); // Insert/Update into history_data. if ($medics->pubpid == 'NEWPATIENT') { newHistoryData($patient_pid, $history); } else { updateHistoryData($patient_pid, $history); } // Add or Update History data add_update_history($medics, $patient_pid, $errors); // Create or update an issue for each historical medication. // foreach ($medics->medical->medications->medication as $medication) { if (isempty($medication->name)) { continue; } $meds = array(); $meds['title'] = form2db($medication->name); $meds['dosage'] = form2db($medication->dosage); $meds['frequency'] = form2db($medication->frequency); $meds['duration'] = form2db($medication->duration); // TBD does not exsist in MEDICS $meds['id'] = form2db($medication->id); if (!isempty($meds['id'])) { $row = sqlQuery("SELECT id FROM lists WHERE id = " . $meds['id']); if (!$row) { create_issue($patient_pid, 'medication', $meds); } else { update_issue($patient_pid, 'medication', $meds); } } else { create_issue($patient_pid, 'medication', $meds); } } return $alertmsg; }