function get_activity_specimen($lab_config_id, $user_id, $date_from, $date_to) { $query_string = "SELECT * from specimen " . "WHERE user_id={$user_id} " . "AND (date_collected BETWEEN '{$date_from}' AND '{$date_to}') " . "ORDER BY date_collected DESC"; $resultset = query_associative_all($query_string, $row_count); $retval = array(); foreach ($resultset as $record) { $specimen = Specimen::getObject($record); $retval[] = $specimen; } return $retval; }
public static function getUnreported() { # Returns all test results that have been entered but not reported $query_string = "SELECT sp.* FROM specimen sp " . "WHERE sp.report_to <> '' " . "AND sp.date_reported IS NULL " . "AND ( " . "SELECT DISTINCT t.specimen_id FROM test t " . "WHERE t.specimen_id=sp.specimen_id " . "AND t.result = '' " . ") IS NULL"; $resultset = query_associative_all($query_string, $row_count); $retval = array(); if ($resultset == null) { return $retval; } foreach ($resultset as $record) { $retval[] = Specimen::getObject($record); } return $retval; }
echo $patient->getAge(); ?> </td> <?php } ?> <?php if (strpos($_SERVER["HTTP_REFERER"], "search.php") !== false) { # Show status of most recently registered specimens $today = date("Y-m-d"); $query_string = "SELECT * FROM specimen WHERE patient_id={$patient->patientId} and date_collected='{$today}'"; $resultset = query_associative_all($query_string, $row_count); $status = LangUtil::$generalTerms['DONE']; foreach ($resultset as $record) { $specimen = Specimen::getObject($record); if ($specimen->statusCodeId == Specimen::$STATUS_PENDING || $specimen->statusCodeId == Specimen::$STATUS_REFERRED) { $status = LangUtil::$generalTerms['PENDING_RESULTS']; break; } } echo "<td>{$status}</td>"; } ?> <td> <?php if (strpos($_SERVER["HTTP_REFERER"], "find_patient.php") !== false || strpos($_SERVER["HTTP_REFERER"], "doctor_register.php") !== false) { # Called from find_patient.php. Show 'profile' and 'register specimen' link ?> <a href='new_specimen.php?pid=<?php echo $patient->patientId;
$importPatientId = $_REQUEST['patientId']; $importlabConfigIdEnd = strpos($importPatientId, "0"); $importLabConfigId = substr($importPatientId, 0, $importlabConfigIdEnd); /* $saved_db = DbUtil::switchToCountry($country); $querySelect = "SELECT * FROM patient ". "WHERE patient_id=$importPatientId"; $patientRecord = query_associative_one($querySelect); DbUtil::switchRestore($saved_db); */ $saved_db = DbUtil::switchToLabConfig($importLabConfigId); $querySelect = "SELECT * FROM specimen " . "WHERE patient_id={$importPatientId}"; $resultset = query_associative_all($querySelect, $rowCount); foreach ($resultset as $record) { $specimenRecords[] = Specimen::getObject($record); } foreach ($specimenRecords as $specimenRecord) { $querySelect = "SELECT * FROM test " . "WHERE specimen_id={$specimenRecord->specimenId}"; $resultset = query_associative_all($querySelect, $rowCount); foreach ($resultset as $record) { $testRecords[] = Test::getObject($record); } } DbUtil::switchRestore($saved_db); /* Build a mapping of Specimens from the Global Table & make appropriate substitutions */ $saved_db = DbUtil::switchToGlobal(); $querySelect = "SELECT * FROM specimen_mapping"; $resultset = query_associative_all($querySelect, $rowCount); if ($resultset) { $specimenIds = array();
public function getSpecimenRegLog($user_id, $lab_config_id, $date_from, $date_to) { $saved_db = DbUtil::switchToLabConfig($lab_config_id); $date_from_parts = explode("-", $date_from); $date_to_parts = explode("-", $date_to); $date_from_ts = mktime(0, 0, 0, $date_from_parts[1], $date_from_parts[2], $date_from_parts[0]); $date_from_ts = date('Y-m-d H:i:s', $date_from_ts); $date_to_ts = mktime(0, 0, 0, $date_to_parts[1], $date_to_parts[2], $date_to_parts[0]); $date_to_ts = date('Y-m-d H:i:s', $date_to_ts); $query_string = "SELECT * FROM specimen " . "WHERE ts BETWEEN '{$date_from_ts}' AND '{$date_to_ts}' " . "AND user_id = {$user_id}"; $resultset = query_associative_all($query_string, $row_count); $test_list = array(); if (count($resultset) > 0) { foreach ($resultset as $record) { $test_list[] = Specimen::getObject($record); } } DbUtil::switchRestore($saved_db); return $test_list; }
function add_results_sequential($user_list = array()) { # Adds random result entries for scheduled specimen global $NUM_SPECIMENS, $F_PENDING, $SPECIMEN_ID_START; $lab_config_id = $_SESSION['lab_config_id']; $saved_db = DbUtil::switchToLabConfig($lab_config_id); $num_specimens2 = query_num_rows("specimen"); $specimens_to_handle = floor($num_specimens2 * (1 - $F_PENDING)); $specimen_target_list = array(); $query_string = "SELECT * FROM specimen ORDER BY date_collected LIMIT " . $specimens_to_handle; $resultset = query_associative_all($query_string, $row_count); foreach ($resultset as $record) { $specimen_entry = Specimen::getObject($record); $specimen_target_list[] = $specimen_entry; } DbUtil::switchRestore($saved_db); $count = 0; $specimen_id_count = $SPECIMEN_ID_START; foreach ($specimen_target_list as $specimen) { if ($specimen == null) { # TODO: } $result_entry_ts = get_random_ts($specimen->dateCollected); if ($specimen == null) { # Specimen does not exist //echo "Specimen does not exist<br>"; //$count++; $specimen_id_count++; continue; } $saved_db = DbUtil::switchToLabConfig($_SESSION['lab_config_id']); $specimen_id = $specimen->specimenId; $status_code = get_specimen_status($specimen_id); DbUtil::switchRestore($saved_db); if ($status_code == Specimen::$STATUS_DONE) { # Results already entered //echo "Results already entered<br>"; $count++; $specimen_id_count++; continue; } $patientId = $specimen->patientId; $currentPatient = Patient::getById($patientId); $hashValue = $currentPatient->generateHashValue(); # Fetch tests scheduled for this specimen $test_list = get_tests_by_specimen_id($specimen_id); # For each test, fetch test measures and range from catalog foreach ($test_list as $test) { $measure_list = get_test_type_measures($test->testTypeId); $result_entry = ""; foreach ($measure_list as $measure) { $range = get_measure_range($measure); # Select random result value $result_val = get_random_range_value($range); csv_append($result_val, $result_entry); } $test_id = $test->testId; # Update result field in test entry $saved_db = DbUtil::switchToLabConfig($lab_config_id); # Select random technician as the one of entered this result $user_id = 0; if (count($user_list) != 0) { $random_user_index = rand(1, count($user_list)); $random_user = $user_list[$random_user_index - 1]; $user_id = $random_user->userId; } add_test_result($test_id, $result_entry, "", "", $user_id, $result_entry_ts, $hashValue); # Randomly this test result mark as verified or keep as unverified # null or 0 => not verified, non-zero => verified. if (with_probability(0.9)) { $is_verified = 2; $test->setVerifiedBy($is_verified); } DbUtil::switchRestore($saved_db); } $saved_db = DbUtil::switchToLabConfig($lab_config_id); # Mark specimen as 'all tests done' update_specimen_status($specimen_id); # Randomly mark this specimen as reported or keep as unreported if (with_probability(0.9)) { $date_reported = date("Y-m-d H:i:s"); $specimen->setDateReported($date_reported); } DbUtil::switchRestore($saved_db); # Update counters $count++; $specimen_id_count++; } }