Compare commits

..

No commits in common. "main" and "composer-prod" have entirely different histories.

6 changed files with 86 additions and 147 deletions

View File

@ -71,9 +71,9 @@ class ApiController extends BaseController {
$total_simpan_non = count($decrypted_data['result_data']); $total_simpan_non = count($decrypted_data['result_data']);
$total_simpan_non = strval($total_simpan_non); $total_simpan_non = strval($total_simpan_non);
// Digunakna untuk memfilter data
$decrypted_data = $this->filterData($decrypted_data); $decrypted_data = $this->filterData($decrypted_data);
$sn_number = $decrypted_data['sn_number']; $sn_number = $decrypted_data['sn_number'];
$timezone = 7;
$total_simpan_filter = count($decrypted_data['result_data']); $total_simpan_filter = count($decrypted_data['result_data']);
$total_simpan_filter = strval($total_simpan_filter); $total_simpan_filter = strval($total_simpan_filter);
@ -86,8 +86,6 @@ class ApiController extends BaseController {
$patresFlagValues = []; $patresFlagValues = [];
$flagdefCache = []; $flagdefCache = [];
$now = date('Y-m-d H:i:s');
// Proses setiap item dalam data yang diterima // Proses setiap item dalam data yang diterima
foreach ($decrypted_data['result_data'] as $key => $value) { foreach ($decrypted_data['result_data'] as $key => $value) {
$SAMP_ID = $value['SAMP_ID']; $SAMP_ID = $value['SAMP_ID'];
@ -96,27 +94,19 @@ class ApiController extends BaseController {
// $CONC_DATA = isset($value['CONC_DATA']) ? $value['CONC_DATA'] : null; // $CONC_DATA = isset($value['CONC_DATA']) ? $value['CONC_DATA'] : null;
// $OD_DATA = isset($value['OD_DATA']) ? $value['OD_DATA'] : null; // $OD_DATA = isset($value['OD_DATA']) ? $value['OD_DATA'] : null;
// Jika tidak ada nilai, set sebagai NULL // Jika tidak ada nilai, set sebagai NULL
// $CONC_DATA = isset($value['CONC_DATA']) ? "'".$value['CONC_DATA']."'" : 'NULL'; $CONC_DATA = isset($value['CONC_DATA']) ? "'".$value['CONC_DATA']."'" : 'NULL';
// $OD_DATA = isset($value['OD_DATA']) ? "'".$value['OD_DATA']."'" : 'NULL'; $OD_DATA = isset($value['OD_DATA']) ? "'".$value['OD_DATA']."'" : 'NULL';
// DOUBLE — harus numeric literal / NULL (tidak boleh string)
$CONC_DATA = (isset($value['CONC_DATA']) && $value['CONC_DATA'] !== '')
? floatval($value['CONC_DATA'])
: 'NULL';
$OD_DATA = (isset($value['OD_DATA']) && $value['OD_DATA'] !== '')
? floatval($value['OD_DATA'])
: 'NULL';
$RST_DATE = $value['RST_DATE']; $RST_DATE = $value['RST_DATE'];
$RST_DATE = date("Y-m-d H:i:s.v", strtotime($RST_DATE) - $timezone * 3600); // Ubah je Timezone tertentu
$FLAG = $value['Flag']; $FLAG = $value['Flag'];
$REACTION_NO = $value['ReactionNo']; $REACTION_NO = $value['ReactionNo'];
$DIL_ORD = $value['DIL_ORD']; $DIL_ORD = $value['DIL_ORD'];
// Input ke Tabel PATRES - Input Satu Persatu // Input ke Tabel PATRES - Input Satu Persatu
$sql = "INSERT INTO patres (EquipmentID, SampleID, TestTechCode, Aspcnt, Result, ResultDateTime, createdate) $sql = "INSERT INTO patres (EquipmentID, SampleID, TestTechCode, Aspcnt, Result, ResultDateTime, createdate)
VALUES ('$sn_number', '$SAMP_ID', '$ITEM_NAME', $ASP_CNT, $CONC_DATA, '$RST_DATE', '$now')"; VALUES ('$sn_number', '$SAMP_ID', '$ITEM_NAME', $ASP_CNT, $CONC_DATA, '$RST_DATE', NOW())";
$db->query($sql); $db->query($sql);
$patres_lastid = $db->insertID(); $patres_lastid = $db->insertID();
@ -139,7 +129,7 @@ class ApiController extends BaseController {
} else { } else {
// Insert Data ke Tabel Flagdef // Insert Data ke Tabel Flagdef
$sql = "INSERT INTO flagdef (Instrumentid, Flag, flagtext, FlagDesc, onscreen, onresult, createdate) $sql = "INSERT INTO flagdef (Instrumentid, Flag, flagtext, FlagDesc, onscreen, onresult, createdate)
VALUES (1, '$FLAG', '$FLAG', '', 1, 1, '$now')"; VALUES (1, '$FLAG', '$FLAG', '', 1, 1, NOW())";
$db->query($sql); $db->query($sql);
// Ambil FlagDefID baru // Ambil FlagDefID baru
@ -178,14 +168,15 @@ class ApiController extends BaseController {
$db->transComplete(); $db->transComplete();
// Cek status transaksi // Cek status transaksi
if (! $db->transStatus()) { if ($db->transStatus() === FALSE) {
$db->transRollback(); $db->transRollback();
// return $this->respond(['message' => 'Server tidak menyimpan data anda, dikarenakan terjadi kesalahan saat memproses data.'], 500); // return $this->respond(['message' => 'Server tidak menyimpan data anda, dikarenakan terjadi kesalahan saat memproses data.'], 500);
return $this->respond(['message' => $db->error()], 500); return $this->respond(['message' => $db->error()], 500);
} else { } else {
$db->transCommit();
return $this->respond(['message' => "Menyimpan ". $total_simpan_filter . " dari " . $total_simpan_non ." data, Data berhasil diproses."], 201); return $this->respond(['message' => "Menyimpan ". $total_simpan_filter . " dari " . $total_simpan_non ." data, Data berhasil diproses."], 201);
} }
} }
// Digunakan Untuk Memfilter Data Valid dan Tidak Valid // Digunakan Untuk Memfilter Data Valid dan Tidak Valid

View File

@ -56,53 +56,33 @@ class Equipment extends BaseController {
$query = $db->query($sql); $query = $db->query($sql);
$results = $query->getResultArray(); $results = $query->getResultArray();
$data['testcount'] = $results[0]['testcount']; $data['testcount'] = $results[0]['testcount'];
$timezone = 7;
if ($timezone == 7) {
$data['timezone'] = "WIB";
} else if ($timezone == 8) {
$data['timezone'] = "WITA";
} else if ($timezone == 9) {
$data['timezone'] = "WIT";
} else {
$data['timezone'] = "";
}
$sql = "SELECT $sql = "SELECT DATEDIFF(
DATEDIFF( MAX(ResultDateTime),
MAX(ResultDateTime + INTERVAL $timezone HOUR), MIN(ResultDateTime)) as days,
MIN(ResultDateTime + INTERVAL $timezone HOUR) MIN(ResultDateTime) as firstdate,
) AS days, MAX(ResultDateTime) as lastdate
MIN(ResultDateTime + INTERVAL $timezone HOUR) AS firstdate, FROM patres
MAX(ResultDateTime + INTERVAL $timezone HOUR) AS lastdate WHERE EquipmentID='$EquipmentID';";
FROM patres
WHERE EquipmentID = '$EquipmentID'";
$query = $db->query($sql); $query = $db->query($sql);
$results = $query->getResultArray(); $results = $query->getResultArray();
$data['days'] = $results[0]['days']; $data['days'] = $results[0]['days'];
$data['firstdate'] = $results[0]['firstdate']; $data['firstdate'] = $results[0]['firstdate'];
$data['lastdate'] = $results[0]['lastdate']; $data['lastdate'] = $results[0]['lastdate'];
$sql = "SELECT $sql = "SELECT YEAR(ResultDateTime) AS year, MONTH(ResultDateTime) AS month, COUNT(*) AS count
YEAR(ResultDateTime + INTERVAL 7 HOUR) AS year, FROM patres
MONTH(ResultDateTime + INTERVAL 7 HOUR) AS month, WHERE EquipmentID = '$EquipmentID'
COUNT(*) AS count GROUP BY YEAR(ResultDateTime), MONTH(ResultDateTime)
FROM patres ORDER BY YEAR(ResultDateTime), MONTH(ResultDateTime);";
WHERE EquipmentID = '$EquipmentID'
GROUP BY
YEAR(ResultDateTime + INTERVAL 7 HOUR),
MONTH(ResultDateTime + INTERVAL 7 HOUR)
ORDER BY
YEAR(ResultDateTime + INTERVAL 7 HOUR),
MONTH(ResultDateTime + INTERVAL 7 HOUR)";
$query = $db->query($sql); $query = $db->query($sql);
$results = $query->getResultArray(); $results = $query->getResultArray();
$data['counts'] = $results; $data['counts'] = $results;
$sql = "SELECT SampleID, TestTechCode, Result, ResultDateTime + INTERVAL $timezone HOUR AS ResultDateTime, CreateDate + INTERVAL $timezone HOUR AS CreateDate FROM patres $sql = "SELECT SampleID,TestTechCode,Result,ResultDateTime,CreateDate FROM patres
WHERE EquipmentID='$EquipmentID' WHERE EquipmentID='$EquipmentID'
ORDER BY ResultID DESC ORDER BY ResultID DESC
LIMIT 2000"; LIMIT 3000";
$query = $db->query($sql); $query = $db->query($sql);
$results = $query->getResultArray(); $results = $query->getResultArray();
$data['testData'] = $results; $data['testData'] = $results;

View File

@ -8,8 +8,7 @@ class Home extends BaseController {
$curl = curl_init(); $curl = curl_init();
curl_setopt_array($curl, array( curl_setopt_array($curl, array(
CURLOPT_URL => 'services-summit.my.id/api/getProductSites', //PROD CURLOPT_URL => 'services-summit.my.id/api/getProductSites',
// CURLOPT_URL => 'https://services-summit.my.id/api/getProductSites', //DEV
CURLOPT_RETURNTRANSFER => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_CUSTOMREQUEST => 'GET',
@ -39,64 +38,48 @@ class Home extends BaseController {
]; ];
// Mengelompokkan Data Khusus 1024i // Mengelompokkan Data Khusus 1024i
} } else if ($item["productaliasid"] == 18) {
// else if ($item["productaliasid"] == 18) { $productList1024i[] = [
// $productList1024i[] = [ "productaliasid" => $item["productaliasid"],
// "productaliasid" => $item["productaliasid"], "productnumber" => $item["productnumber"],
// "productnumber" => $item["productnumber"], "sitename" => $item["sitename"]
// "sitename" => $item["sitename"] ];
// ];
// // Mengelompokkan Data Khusus 24i // Mengelompokkan Data Khusus 24i
// } else if ($item["productaliasid"] == 19) { } else if ($item["productaliasid"] == 19) {
// $productList24i[] = [ $productList24i[] = [
// "productaliasid" => $item["productaliasid"], "productaliasid" => $item["productaliasid"],
// "productnumber" => $item["productnumber"], "productnumber" => $item["productnumber"],
// "sitename" => $item["sitename"] "sitename" => $item["sitename"]
// ]; ];
// // Mengelompokkan Data Khusus 50i // Mengelompokkan Data Khusus 50i
// } else if ($item["productaliasid"] == 21) { } else if ($item["productaliasid"] == 21) {
// $productList50i[] = [ $productList50i[] = [
// "productaliasid" => $item["productaliasid"], "productaliasid" => $item["productaliasid"],
// "productnumber" => $item["productnumber"], "productnumber" => $item["productnumber"],
// "sitename" => $item["sitename"] "sitename" => $item["sitename"]
// ]; ];
// } else { } else {
// $productList30i = null; $productList30i = null;
// $productList1024i = null; $productList1024i = null;
// $productList24i = null; $productList24i = null;
// $productList50i = null; $productList50i = null;
// } }
} }
$timezone = 7; $sql = "SELECT EquipmentID, COUNT(*) AS patresCount, MAX(ResultDateTime) AS lastResultDate
if ($timezone == 7) {
$data['timezone'] = "WIB";
} else if ($timezone == 8) {
$data['timezone'] = "WITA";
} else if ($timezone == 9) {
$data['timezone'] = "WIT";
} else {
$data['timezone'] = "";
}
$sql = "SELECT EquipmentID, COUNT(*) AS patresCount,
DATE_ADD(MAX(ResultDateTime), INTERVAL $timezone HOUR) AS lastResultDate
FROM patres FROM patres
GROUP BY EquipmentID GROUP BY EquipmentID
ORDER BY patresCount DESC"; ORDER By patresCount DESC";
$query = $db->query($sql);
$query = $db->query($sql);
$results = $query->getResultArray(); $results = $query->getResultArray();
// siapkan variabel dulu biar tidak "undefined variable"
$tms30i = [];
// Menyamakan Data CRM dan CLQMS Berdasarkan SN Number // Menyamakan Data CRM dan CLQMS Berdasarkan SN Number
if (!empty($results) && !empty($productList30i)) { foreach ($results as $itemDB) {
foreach ($results as $itemDB) { foreach ($productList30i as $itemCRM) {
foreach ($productList30i as $itemCRM) {
if ($itemDB['EquipmentID'] == $itemCRM['productnumber']) {
// echo "<br>Product Alias ID CRM: " . $itemCRM["productaliasid"] . "<br>"; // echo "<br>Product Alias ID CRM: " . $itemCRM["productaliasid"] . "<br>";
// echo "Product Number: " . $itemCRM["productnumber"] . "<br>"; // echo "Product Number: " . $itemCRM["productnumber"] . "<br>";
// echo "Site Name: " . $itemCRM["sitename"] . "<br><br>"; // echo "Site Name: " . $itemCRM["sitename"] . "<br><br>";
@ -104,25 +87,23 @@ class Home extends BaseController {
// echo "Product Number: " . $itemDB["patresCount"] . "<br>"; // echo "Product Number: " . $itemDB["patresCount"] . "<br>";
// echo "Site Name: " . $itemDB["lastResultDate"] . "<br><br>"; // echo "Site Name: " . $itemDB["lastResultDate"] . "<br><br>";
// echo "----------------------------<br><br>"; // echo "----------------------------<br><br>";
if ($itemDB['EquipmentID'] == $itemCRM['productnumber']) { $tms30i[] = [
$tms30i[] = [ "productaliasid" => $itemCRM["productaliasid"],
"productaliasid" => $itemCRM["productaliasid"], "EquipmentID" => $itemDB["EquipmentID"],
"EquipmentID" => $itemDB["EquipmentID"], "sitename" => $itemCRM["sitename"],
"sitename" => $itemCRM["sitename"], "patresCount" => $itemDB["patresCount"],
"patresCount" => $itemDB["patresCount"], "lastResultDate" => $itemDB["lastResultDate"]
"lastResultDate" => $itemDB["lastResultDate"], ];
];
}
} }
} }
} }
// kalau tidak ada data, $tms30i akan tetap berupa array kosong [] $data['tms30i'] = $tms30i;
$data['tms30i'] = $tms30i ?? [];
return view('home_dashboard.php', $data); return view('home_dashboard.php', $data);
} }
} }

View File

@ -48,7 +48,19 @@
<div class="card shadow-none"> <div class="card shadow-none">
<div class="card-header"> <div class="card-header">
- <?php if ($EquipmentID == '6011310722') : ?>
<div class="fw-bold">National Hospital Surabaya<span class="float-end p-0">TMS 30i &nbsp;<i class="bi bi-pc-display-horizontal"></i></span></div>
<?php elseif ($EquipmentID == '6015090124') : ?>
<div class="fw-bold">Persada Hospital</div>
<?php elseif ($EquipmentID == '6011320722') : ?>
<div class="fw-bold">RS Mardi Rahayu Kudus</div>
<?php elseif ($EquipmentID == '6005840519') : ?>
<div class="fw-bold">RS dr. Oen Kandang Sapi Solo</div>
<?php elseif ($EquipmentID == '6006100619') : ?>
<div class="fw-bold">RS Permata Cibubur</div>
<?php elseif ($EquipmentID == '6015560324') : ?>
<div class="fw-bold">ScanMe Labs Jakarta Kelapa Gading</div>
<?php endif; ?>
</div> </div>
<div class="card-body p-4"> <div class="card-body p-4">
@ -137,10 +149,10 @@
<div class="col-12 mb-3"> <div class="col-12 mb-3">
<div class="row text-center p-2 mt-1"> <div class="row text-center p-2 mt-1">
<div class="col-12 col-md-6"> <div class="col-12 col-md-6">
Tanggal Awal : <span class="fw-bold"><?=$formatedFirstDate;?> (<?=$timezone;?>)</span> Tanggal Awal : <span class="fw-bold"><?=$formatedFirstDate;?></span>
</div> </div>
<div class="col-12 col-md-6"> <div class="col-12 col-md-6">
Tanggal Akhir : <span class="fw-bold"><?=$formatedLastDate;?> (<?=$timezone;?>)</span> Tanggal Akhir : <span class="fw-bold"><?=$formatedLastDate;?></span>
</div> </div>
</div> </div>
</div> </div>
@ -164,8 +176,8 @@
<th scope="col">Sample ID</th> <th scope="col">Sample ID</th>
<th scope="col">Test Code</th> <th scope="col">Test Code</th>
<th scope="col">Result</th> <th scope="col">Result</th>
<th scope="col">Result Date (<?=$timezone;?>)</th> <th scope="col">Result Date</th>
<th scope="col">Create Date (<?=$timezone;?>)</th> <th scope="col">Create Date</th>
</thead> </thead>
<tbody> <tbody>

View File

@ -219,7 +219,7 @@
<?php <?php
$dateObject = new DateTime($value['lastResultDate']); $dateObject = new DateTime($value['lastResultDate']);
$formattedDate = $dateObject->format('D, d M Y - H:i:s.v'); $formattedDate = $dateObject->format('D, d M Y - H:i:s.v');
echo($formattedDate." (". $timezone .")"); echo($formattedDate);
?> ?>
</em> </em>
</footer> </footer>

View File

@ -1,25 +0,0 @@
Setelah Di Dekripsi :
{
"instnumber": "ProductNumber",
"pr_key": "HKQOs6W3thfaCarLK",
"result_data": [
{
"SAMP_ID": "202308080600101",
"ITEM_NAME": "TEST3438",
"ASP_CNT": 1,
"CONC_DATA": 0.0,
"OD_DATA": -0.001560902221253245,
"RST_DATE": "2023-08-08 12:22:08",
"Flag": null,
"ReactionNo": 1,
"DIL_ORD": 0
}
]
}
Sebelum Di Dekripsi :
{
"instrument_data": "yOLvBGUP8oBMJKJaxCefOd/Qp8XCbBTEqTQqyQUH0xiQYiUZwLioxBPYSSzH1nMbiHRx0m7D4uUmTh4Y9XRZFvUYnnPaCcU9kcddBN74cCZDBxAiVhd4n7YtLwPoQBfcuiM4cvZ6LA7giBHCIndnCuTNl3IV+VgaA6Dw/XCkwBJjWGWqNFUWxzfxU3WqGoWZryV40rgyUALQEO0zbF5C8znLiV7wMSURd84l/1N2iIn4ekCBWhsIHk9/ifNyfwwLIKwi+bbUHAd7rzl/xxn7CJUVWcC/4gycAdzpP+JuX1Urf1vkik5n+74s4KuHAX2iiQ1WA/90Ck4Naz09s4wM9PwItPpMIQdzwmW3OxsRvyVIGlkuwcsqBmlDeoRr4+ox",
"checksum": "5648edefbcd26c932db9e2b078e85ef4924ffdbb1deab35fff0611819c702e95"
}