fix generate qr report di lab

This commit is contained in:
Hanan Askarim
2026-06-09 08:41:31 +07:00
parent c4e590d153
commit bff1943054
3 changed files with 125 additions and 104 deletions

View File

@@ -124,11 +124,20 @@ EOF;
}
public function v3($orderHeaderID)
{
$sql = "SELECT QR_PrintOutReportURL
FROM qr_printout
WHERE QR_PrintOutT_OrderHeaderID = ?
AND QR_PrintOutIsActive = 1
ORDER BY QR_PrintOutID DESC
$sql = "SELECT IFNULL(qp.QR_PrintOutVerifyURL, '') AS verify_url
FROM one_lab.qr_printout qp
JOIN one_lab.t_orderheader_group_result r
ON r.T_OrderHeaderGroupResultT_OrderHeaderID = qp.QR_PrintOutT_OrderHeaderID
AND r.T_OrderHeaderGroupResultGroup_ResultID = qp.QR_PrintOutGroup_ResultID
AND r.T_OrderHeaderGroupResultT_TestID = qp.QR_PrintOutT_TestID
JOIN one_lab.t_orderheader_group_result_details d
ON d.T_OrderHeaderGroupResultDetailsT_OrderHeaderGroupResultID = r.T_OrderHeaderGroupResultID
WHERE d.T_OrderHeaderGroupResultDetailsT_OrderHeaderID = ?
AND d.T_OrderHeaderGroupResultDetailsIsActive = 'Y'
AND r.T_OrderHeaderGroupResultIsActive = 'Y'
AND qp.QR_PrintOutIsActive = 1
AND IFNULL(qp.QR_PrintOutVerifyURL, '') <> ''
ORDER BY qp.QR_PrintOutID DESC
LIMIT 1";
$rs = $this->get_one_row($sql, array($orderHeaderID));
if ($rs["status"] == -1) {
@@ -140,8 +149,8 @@ EOF;
exit;
}
$reportUrl = $rs["data"]["QR_PrintOutReportURL"];
$img_qrcode = $this->post("http://localhost/charts/qrtext.php", $reportUrl);
$verifyUrl = $rs["data"]["verify_url"];
$img_qrcode = $this->post("http://localhost/charts/qrtext.php", $verifyUrl);
header("Content-type: image/png");
echo $img_qrcode;
exit;
@@ -149,7 +158,7 @@ EOF;
public function v3_nonlab($resultEntryID)
{
$sql = " SELECT
qp.QR_PrintOutReportURL
IFNULL(qp.QR_PrintOutVerifyURL, '') AS verify_url
FROM one_lab.so_resultentry se
JOIN one_lab.t_orderheader oh
ON oh.T_OrderHeaderID = se.SO_ResultEntryT_OrderHeaderID
@@ -170,8 +179,8 @@ EOF;
exit;
}
$reportUrl = $rs["data"]["QR_PrintOutReportURL"];
$img_qrcode = $this->post("http://localhost/charts/qrtext.php", $reportUrl);
$verifyUrl = $rs["data"]["verify_url"];
$img_qrcode = $this->post("http://localhost/charts/qrtext.php", $verifyUrl);
header("Content-type: image/png");
echo $img_qrcode;
exit;

View File

@@ -99,17 +99,17 @@ class Rv_patient extends MY_Controller
);
exit;
}
$sql = "INSERT INTO mcu_resume_results(
Mcu_ResumeResultsType,
Mcu_ResumeResultsT_OrderHeaderID,
Mcu_ResumeResultsGroupResultID,
Mcu_ResumeResultsT_TestID,
Mcu_ResumeResultsName,
Mcu_ResumeResultsJSON,
Mcu_ResumeResultsCreated,
Mcu_ResumeResultsUserID)
VALUES('KHUSUS',?,?,?,?,?,NOW(),?)";
$qry = $this->db_smartone->query($sql, array($order_id, $groupResultID, 0, $groupResultName, $j_data_result_lab, $userID));
$sql = "INSERT INTO mcu_resume_results(
Mcu_ResumeResultsType,
Mcu_ResumeResultsT_OrderHeaderID,
Mcu_ResumeResultsGroupResultID,
Mcu_ResumeResultsT_TestID,
Mcu_ResumeResultsName,
Mcu_ResumeResultsJSON,
Mcu_ResumeResultsCreated,
Mcu_ResumeResultsUserID)
VALUES('KHUSUS',?,?,?,?,?,NOW(),?)";
$qry = $this->db_smartone->query($sql, array($order_id, $groupResultID, 0, $groupResultName, $j_data_result_lab, $userID));
if (!$qry) {
echo json_encode(
array("status" => "ERR", "message" => "Error: insert mcu results")
@@ -183,7 +183,8 @@ class Rv_patient extends MY_Controller
$sql_get = "SELECT T_OrderHeaderGroupResultID,
T_OrderHeaderGroupResultGroup_ResultID,
T_OrderHeaderGroupResultT_TestID,
T_OrderHeaderGroupResultGroup_ResultName
T_OrderHeaderGroupResultGroup_ResultName,
Group_ResultName
FROM t_orderheader_group_result
JOIN group_result ON T_OrderHeaderGroupResultGroup_ResultID = Group_ResultID
AND Group_ResultFlagNonLab = 'N'
@@ -196,25 +197,12 @@ class Rv_patient extends MY_Controller
}
$data = $qry_get->result_array();
$sql_url = "SELECT Print_TransactionID,
Print_TransactionType,
Print_TransactionCode,
Print_TransactionName,
Print_TransactionUrl,
Print_TransactionUrlWatermark,
Print_TransactionUrlEletronic,
Print_TransactionParams
FROM print_transaction
WHERE Print_TransactionCode = 'LAB-RESULT-P-01'
LIMIT 1";
$qry_url = $this->db_smartone->query($sql_url);
if (!$qry_url) {
$this->sys_error_db('error print_transaction', $this->db_smartone);
exit;
}
$rst_url = $qry_url->row_array();
$template_url = $rst_url['Print_TransactionUrlWatermark'];
$template_url_electronic = isset($rst_url['Print_TransactionUrlEletronic']) ? $rst_url['Print_TransactionUrlEletronic'] : '';
// mapping test kode print
$map = [
'LAB' => 'LAB-RESULT-P-01',
'Papsmear' => 'PAP-P-01',
'FNA' => 'FNA-P-01'
];
$sql_branch = "SELECT M_BranchID,
M_BranchCode,
@@ -228,42 +216,8 @@ class Rv_patient extends MY_Controller
$this->sys_error_db('error m_branch', $this->db_smartone);
exit;
}
$branch = $qry_branch->row_array();
$base = "http://localhost/";
// Tambah base_url di depan
$full_url = $base . ltrim($template_url, '/');
// Ganti nama report jadi _watermark
$full_url = str_replace(
'rpt_test.rptdesign',
'rpt_test_watermark.rptdesign',
$full_url
);
// Ganti parameter
$full_url = str_replace(
['PUsername', 'PT_OrderHeaderID', 'TS'],
[
trim($this->sys_user['M_UserUsername']),
$order_id,
time()
],
$full_url
);
$full_url_electronic = '';
if ($template_url_electronic !== '') {
$full_url_electronic = $base . ltrim($template_url_electronic, '/');
$full_url_electronic = str_replace(
['PUsername', 'PT_OrderHeaderID', 'TS'],
[
trim($this->sys_user['M_UserUsername']),
$order_id,
time()
],
$full_url_electronic
);
}
$branch = $qry_branch->row_array();
$base = "http://localhost/";
// ambil endpoint URL dari DB
$sql_url = "SELECT QR_ReportEndpointID,
@@ -288,6 +242,65 @@ class Rv_patient extends MY_Controller
foreach ($data as $key => $value) {
$group_result_name = $value['Group_ResultName'];
// kalau tidak ada di mapping skip
if (!isset($map[$group_result_name])) {
continue;
}
$printCode = $map[$group_result_name];
// ambil URL print
$sql_url = "SELECT Print_TransactionUrlWatermark, Print_TransactionUrlEletronic
FROM print_transaction
WHERE Print_TransactionCode = ?
LIMIT 1";
$qry_url = $this->db_onedev->query($sql_url, [$printCode]);
if (!$qry_url) {
$this->sys_error_db('error print_transaction', $this->db_onedev);
exit;
}
$rst_url = $qry_url->row_array();
$template_url = $rst_url['Print_TransactionUrlWatermark'];
$template_url_electronic = isset($rst_url['Print_TransactionUrlEletronic']) ? $rst_url['Print_TransactionUrlEletronic'] : '';
// Tambah base_url di depan
$full_url = $base . ltrim($template_url, '/');
// ubah semua report jadi versi watermark
$full_url = str_replace(
'.rptdesign',
'_watermark.rptdesign',
$full_url
);
// Ganti parameter
$full_url = str_replace(
['PUsername', 'PT_OrderHeaderID', 'TS'],
[
trim($this->sys_user['M_UserUsername']),
$order_id,
time()
],
$full_url
);
$full_url_electronic = '';
if ($template_url_electronic !== '') {
$full_url_electronic = $base . ltrim($template_url_electronic, '/');
$full_url_electronic = str_replace(
['PUsername', 'PT_OrderHeaderID', 'TS'],
[
trim($this->sys_user['M_UserUsername']),
$order_id,
time()
],
$full_url_electronic
);
}
// cek sudah ada atau belum
$sql_check = "SELECT QR_PrintOutID, QR_PrintOutUploadStatus
FROM qr_printout
@@ -308,19 +321,19 @@ class Rv_patient extends MY_Controller
$params = [
'orderHeaderID' => $order_id,
'groupResultID' => $value['T_OrderHeaderGroupResultGroup_ResultID'],
'testID' => $value['T_OrderHeaderGroupResultT_TestID'],
'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'],
'verifyBaseURL' => $verify_url,
'QR_PrintOutReportURL' => $full_url,
'QR_PrintOutReportURLElectronic' => $full_url_electronic,
'createdByUserID' => $userID
];
'testID' => $value['T_OrderHeaderGroupResultT_TestID'],
'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'],
'verifyBaseURL' => $verify_url,
'QR_PrintOutReportURL' => $full_url,
'QR_PrintOutReportURLElectronic' => $full_url_electronic,
'createdByUserID' => $userID
];
$this->generateqrreport->saveQRPrintout($params);
}
}
echo $this->sys_ok(array("status" => "OK"));
$this->sys_ok(array("status" => "OK"));
}
/**
@@ -369,17 +382,17 @@ class Rv_patient extends MY_Controller
// Insert new record
$j_data_result = json_encode($rows_result);
$sql = "INSERT INTO mcu_resume_results(
Mcu_ResumeResultsType,
Mcu_ResumeResultsT_OrderHeaderID,
Mcu_ResumeResultsGroupResultID,
Mcu_ResumeResultsT_TestID,
Mcu_ResumeResultsName,
Mcu_ResumeResultsJSON,
Mcu_ResumeResultsCreated,
Mcu_ResumeResultsUserID)
VALUES('KHUSUS',?,?,?,?,?,NOW(),?)";
$qry = $this->db_smartone->query($sql, array($order_id, $groupResultID, 0, $groupResultName, $j_data_result, $userID));
$sql = "INSERT INTO mcu_resume_results(
Mcu_ResumeResultsType,
Mcu_ResumeResultsT_OrderHeaderID,
Mcu_ResumeResultsGroupResultID,
Mcu_ResumeResultsT_TestID,
Mcu_ResumeResultsName,
Mcu_ResumeResultsJSON,
Mcu_ResumeResultsCreated,
Mcu_ResumeResultsUserID)
VALUES('KHUSUS',?,?,?,?,?,NOW(),?)";
$qry = $this->db_smartone->query($sql, array($order_id, $groupResultID, 0, $groupResultName, $j_data_result, $userID));
if (!$qry) {
echo json_encode(
array("status" => "ERR", "message" => "Error: insert into mcu result 2")

View File

@@ -208,7 +208,7 @@ class Samplingcall extends MY_Controller
IFNULL(M_PatientPhotoThumb,'') as M_PatientPhotoThumb,
M_SexName as M_SexName,
M_TitleName as M_TitleName,
M_PatientName_enc, M_PatientDOB_enc, M_TitleName,
M_PatientName_enc, M_PatientDOB_enc,
M_CompanyName,
fn_sampling_queue_status_name(T_OrderHeaderID,T_SampleStationID) as status,
M_PatientDOB as patient_dob_raw,
@@ -570,7 +570,7 @@ class Samplingcall extends MY_Controller
$userid = $prm['staff']['userid'];
}
$sql = "SELECT T_OrderHeaderQueue AS queueNumber ,
M_LocationID AS locationID,
@@ -586,7 +586,7 @@ class Samplingcall extends MY_Controller
$splitedLocationName = explode(" ", $locationName);
$locationName = $splitedLocationName[0];
if ($prm['act'] == 'call') {
$sql = "SELECT T_SamplingQueueLastStatusID, T_SamplingQueueStatusName, T_SampleStationName, T_SampleStationID, T_SampleStationIsNonLab
@@ -1010,18 +1010,18 @@ class Samplingcall extends MY_Controller
$rows = $this->db_onedev->query($query);
}
if ($status_call['status'] == 'NOTCALL') {
$rst_data = $status_call;
}
if ($prm['act'] == 'skip' || $status_call['status'] == 'NOTCALL') {
$skip_time = date('Y-m-d H:i:s', strtotime($prm['skiptime'])+10);
$skip_time = date('Y-m-d H:i:s', strtotime($prm['skiptime']) + 10);
$sql = "UPDATE antrian_samplestation SET AntrianSampleStationIsActive = 'N'
WHERE
AntrianSampleStationT_OrderLocationID = ?";
$query = $this->db_onedev->query($sql,array($prm['orderlocationid']));
$query = $this->db_onedev->query($sql, array($prm['orderlocationid']));
/* start dipaggil 3 kali skpi ururtan jd ke bawah */
/*$sql = "SELECT COUNT(*) as x_count
FROM antrian_samplestation
@@ -1045,8 +1045,7 @@ class Samplingcall extends MY_Controller
VALUES(
?,?,?,NOW()
)";
$query = $this->db_onedev->query($sql,array($prm['orderlocationid'],$skip_time,$userid));
$query = $this->db_onedev->query($sql, array($prm['orderlocationid'], $skip_time, $userid));
}
if (intval($next_status) == 1) {