add action tindakan

This commit is contained in:
renaldybrada
2026-03-13 14:36:02 +07:00
parent 89e533aa44
commit fc9b4f5761
2 changed files with 98 additions and 50 deletions
+27
View File
@@ -18,6 +18,9 @@ switch ($action) {
case "searchDokterAnestesi":
searchDokterAnestesi($db, $q);
break;
case "searchTindakan":
searchTindakan($db, $q);
break;
default :
echo json_encode([
"error" => "invalid action"
@@ -32,6 +35,8 @@ function searchDPJP(PostgresDb $db, string $q) {
}
$sql_dokter_bedah = $db->query($query);
$query .= " LIMIT 10";
$arr_dokter_bedah = array();
foreach ($sql_dokter_bedah->fetchAll() as $ds) {
@@ -51,6 +56,8 @@ function searchDokterAnestesi(PostgresDb $db, string $q) {
$query .= " AND (namadokter ILIKE '%$q%' OR kode_dpjp ILIKE '%$q%')";
}
$query .= " LIMIT 10";
$sql_dokter_anestesi = $db->query($query);
$arr_dokter_anestesi = array();
@@ -64,4 +71,24 @@ function searchDokterAnestesi(PostgresDb $db, string $q) {
]);
}
function searchTindakan(PostgresDb $db, string $q) {
$query = "SELECT kode as code, keterangan as str from icd_cm";
if ($q != '') {
$query .= " where kode ilike '$q%' OR keterangan ilike '%$q%'";
}
$query .= " LIMIT 10";
$sql_tindakan = $db->query($query);
$result = array();
foreach($sql_tindakan->fetchAll() as $t) {
array_push($result, $t);
}
echo json_encode([
"message" => "success get tindakan",
"data" => $result
]);
}
?>
+71 -50
View File
@@ -1,40 +1,5 @@
<?php
require_once "lib/PostgresDb.php";
require "lib/functions.php";
// initiate db class connection
$db = new PostgresDb();
// query dokter bedah
$sql_dokter_bedah = $db->query(
"SELECT * FROM public.m_dokter WHERE kdsmf LIKE '%BEDAH%'"
);
$arr_dokter_bedah = array();
foreach ($sql_dokter_bedah->fetchAll() as $ds) {
$arr_dokter_bedah[$ds['kddokter']] = $ds['namadokter'];
}
// query dokter anestesi
$sql_dokter_anesthesi = $db->query("SELECT * FROM public.m_dokter WHERE kdsmf LIKE '%ANESTHESI%'");
$arr_dokter_anesthesi = array();
foreach ($sql_dokter_anesthesi->fetchAll() as $ds) {
$arr_dokter_anesthesi[$ds['kddokter']] = $ds['namadokter'];
}
$riwayat = [
[
"tanggal" => "28/1/2026, 2:27:04 PM",
"operator" => "dr.SYAIFULLAH AMISRAGANI, Sp.OT",
"status" => "Tervalidasi"
],
[
"tanggal" => "29/1/2026, 10:13:29 AM",
"operator" => "dr.PRADANA NURHADI,Sp.U",
"status" => "Belum Validasi"
]
];
if ($_SERVER['REQUEST_METHOD'] == "POST") {
echo "<pre>";
print_r($_POST);
@@ -161,10 +126,18 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
<div id="tindakanContainer" class="container border pl-3">
<div class="row my-2 tindakanRow">
<div class="row my-2 tindakanRow position-relative">
<div class="col-md-6">
<input class="form-control" name="tindakan_operatif[]" placeholder="Cari Prosedur">
<input
type="text"
class="form-control tindakanSearch"
placeholder="Cari Prosedur"
autocomplete="off"
>
<input type="hidden" name="tindakan_operatif[]" class="tindakanValue">
<div class="list-group tindakanResult position-absolute w-100" style="z-index:1000"></div>
</div>
<div class="col-md-2">
@@ -833,25 +806,73 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
document.getElementById("lama_bius").oninput = () => calc("bius_mulai", "lama_bius", "bius_selesai")
/* dynamic tindakan */
let timerTindakan = null
document.addEventListener("click", e => {
document.addEventListener("input", function(e){
if (e.target.classList.contains("addTindakan")) {
let row = document.createElement("div")
row.classList.add("row", "my-2", "tindakanRow")
row.innerHTML = `
<div class="col-md-6">
<input class="form-control" name="tindakan_operatif[]" placeholder="Cari Prosedur">
</div>
if (!e.target.classList.contains("tindakanSearch")) return
<div class="col-md-2">
<button type="button" class="btn btn-success addTindakan">+</button>
</div>
`
document.getElementById("tindakanContainer").appendChild(row)
let input = e.target
let row = input.closest(".tindakanRow")
let result = row.querySelector(".tindakanResult")
clearTimeout(timerTindakan)
let keyword = input.value
if (keyword.length < 2) {
result.innerHTML = ""
return
}
timerTindakan = setTimeout(() => {
fetch(`http://localhost:8080/dataLaporanOperasi.php?action=searchTindakan&q=${keyword}`)
.then(res => res.json())
.then(data => {
result.innerHTML = ""
data.data.forEach(d => {
let item = document.createElement("button")
item.type = "button"
item.className = "list-group-item list-group-item-action"
item.textContent = d.str
item.onclick = () => {
input.value = d.str
row.querySelector(".tindakanValue").value = d.code
result.innerHTML = ""
}
result.appendChild(item)
})
})
}, 300)
})
document.addEventListener("click", function(e){
if (!e.target.classList.contains("addTindakan")) return
let row = document.querySelector(".tindakanRow")
let clone = row.cloneNode(true)
clone.querySelector(".tindakanSearch").value = ""
clone.querySelector(".tindakanValue").value = ""
clone.querySelector(".tindakanResult").innerHTML = ""
row.parentNode.appendChild(clone)
})
/* darah */