Compare commits
4
Commits
fc9b4f5761
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
335f2b6c5a | ||
|
|
1875b6cab1 | ||
|
|
9f7f55c98d | ||
|
|
64aa3480a0 |
+22
-3
@@ -21,6 +21,9 @@ switch ($action) {
|
||||
case "searchTindakan":
|
||||
searchTindakan($db, $q);
|
||||
break;
|
||||
case "postLaporanOperasi":
|
||||
postLaporanOperasi($db, $_POST);
|
||||
break;
|
||||
default :
|
||||
echo json_encode([
|
||||
"error" => "invalid action"
|
||||
@@ -28,15 +31,15 @@ switch ($action) {
|
||||
}
|
||||
|
||||
function searchDPJP(PostgresDb $db, string $q) {
|
||||
$query = "SELECT kddokter, namadokter, kdsmf, kode_dpjp FROM public.m_dokter WHERE kdsmf LIKE '%BEDAH%'";
|
||||
$query = "SELECT kddokter, namadokter, kdsmf, kode_dpjp, nip FROM public.m_dokter WHERE kdsmf LIKE '%BEDAH%'";
|
||||
|
||||
if ($q != '') {
|
||||
$query .= " AND (namadokter ILIKE '%$q%' OR kode_dpjp ILIKE '%$q%')";
|
||||
}
|
||||
|
||||
$query .= " LIMIT 10";
|
||||
|
||||
$sql_dokter_bedah = $db->query($query);
|
||||
|
||||
$query .= " LIMIT 10";
|
||||
|
||||
$arr_dokter_bedah = array();
|
||||
foreach ($sql_dokter_bedah->fetchAll() as $ds) {
|
||||
@@ -91,4 +94,20 @@ function searchTindakan(PostgresDb $db, string $q) {
|
||||
"data" => $result
|
||||
]);
|
||||
}
|
||||
|
||||
function postLaporanOperasi(PostgresDb $db, $data) {
|
||||
$query = "INSERT into t_operasi (tanggal, jammulai, jamselesai, diagnosa, tindakan, jenisanastesi,
|
||||
nip, dokteroperator, dokter_bedah, kode_dokteroperator, dokteranastesi, kode_dokteranastesi,
|
||||
asistenoperator, perawatinstrumen, pembedahan, jaringan, jnsoperasi, lama_operasi,
|
||||
diagnosa_prabedah, kd_billing, sistem_operasi, pembiusan_mulai, pembiusan_selesai, lama_pembiusan,
|
||||
operasi_ke, ket_lahir, ket_tempat_lahir, berat_badan, jumlah_pendarahan, ket_saat_lahir,
|
||||
merek, nama_implant, stiker, nama_pendamping, specimen, jnsdarahmasuk, uraian_operasi,
|
||||
jenis_laporan, ruang_tindakan) VALUES
|
||||
( ".$data["tgl_bedah"].", ".$data["tgl_bedah"].") ";
|
||||
echo json_encode([
|
||||
"message" => "success post laporan operasi",
|
||||
"data" => $data,
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,5 +1,12 @@
|
||||
<?php
|
||||
|
||||
$riwayat = [
|
||||
[
|
||||
"tanggal" => "3/17/2026, 8:52:26 AM",
|
||||
"status" => "Tervalidasi",
|
||||
"operator" => " dr.SYAIFULLAH AMISRAGANI, Sp.OT"
|
||||
],
|
||||
];
|
||||
if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
echo "<pre>";
|
||||
print_r($_POST);
|
||||
@@ -16,7 +23,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
<title>Laporan Operasi</title>
|
||||
|
||||
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<link href='/lib/suneditor/dist/css/suneditor.min.css' rel='stylesheet' type='text/css' />
|
||||
<style>
|
||||
.section-title {
|
||||
font-weight: 600;
|
||||
@@ -32,19 +39,19 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
</head>
|
||||
|
||||
<body class="bg-light">
|
||||
<body class="bg-white">
|
||||
|
||||
<div class="container mt-4">
|
||||
|
||||
<h4 class="text-center mb-4">FORM LAPORAN OPERASI</h4>
|
||||
|
||||
<form method="POST" enctype="multipart/form-data">
|
||||
<form method="POST" id="formLaporanOperasi" enctype="multipart/form-data">
|
||||
|
||||
<!-- IDENTITAS -->
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-4 position-relative">
|
||||
<div class="col-md-6 position-relative">
|
||||
<label>DPJP Operator</label>
|
||||
<input
|
||||
type="text"
|
||||
@@ -54,6 +61,10 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
autocomplete="off"
|
||||
>
|
||||
<input type="hidden" name="dpjp_operator" id="dpjp_operator">
|
||||
<input type="hidden" name="nama_dpjp_operator" id="nama_dpjp_operator">
|
||||
<input type="hidden" name="nip_dpjp_operator" id="nip_dpjp_operator">
|
||||
<input type="hidden" name="kode_dpjp_operator" id="kode_dpjp_operator">
|
||||
|
||||
<div
|
||||
id="resultDPJP"
|
||||
class="list-group position-absolute w-100"
|
||||
@@ -61,21 +72,16 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-6">
|
||||
<label>Asisten Operator</label>
|
||||
<input class="form-control" name="asisten_operator">
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label>Instrumentir</label>
|
||||
<input class="form-control" name="instrumentir">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-6">
|
||||
<label>DPJP Anastesi</label>
|
||||
<input
|
||||
type="text"
|
||||
@@ -85,6 +91,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
autocomplete="off"
|
||||
>
|
||||
<input type="hidden" name="dpjp_anestesi" id="dpjp_anestesi">
|
||||
<input type="hidden" name="nama_dpjp_anestesi" id="nama_dpjp_anestesi">
|
||||
<div
|
||||
id="resultDokterAnestesi"
|
||||
class="list-group position-absolute w-100"
|
||||
@@ -92,43 +99,52 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-6">
|
||||
<label>Asisten Anastesi</label>
|
||||
<input class="form-control" name="asisten_anastesi">
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-6">
|
||||
<label>Tanggal Pembedahan</label>
|
||||
<input type="date" class="form-control" name="tgl_bedah" id="tgl_bedah" required>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label>Instrumentir</label>
|
||||
<input class="form-control" name="instrumentir">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- DIAGNOSA -->
|
||||
|
||||
<div class="row mt-3">
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-12">
|
||||
<label>Diagnosa Pra Bedah</label>
|
||||
<textarea class="form-control" name="diag_pre"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-12">
|
||||
<label>Diagnosa Pasca Bedah</label>
|
||||
<textarea class="form-control" name="diag_post"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- TINDAKAN OPERATIF -->
|
||||
|
||||
<div class="section-title">Tindakan Operatif</div>
|
||||
|
||||
<div id="tindakanContainer" class="container border pl-3">
|
||||
<div id="tindakanContainer" class="container">
|
||||
|
||||
<div class="row my-2 tindakanRow position-relative">
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-10">
|
||||
<input
|
||||
type="text"
|
||||
class="form-control tindakanSearch"
|
||||
@@ -142,6 +158,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
<div class="col-md-2">
|
||||
<button type="button" class="btn btn-success addTindakan">+</button>
|
||||
<button type="button" class="btn btn-danger removeTindakan">🗑</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -150,228 +167,144 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
<!-- DETAIL OPERASI -->
|
||||
|
||||
<div class="row my-3 d-flex flex-column">
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Jenis Tindakan Operasi</label>
|
||||
</div>
|
||||
<div class="container bg-light my-4 py-2">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label>Jenis Tindakan Operasi</label>
|
||||
<select class="form-select" name="jenis_tindakan">
|
||||
<option>Kecil</option>
|
||||
<option>Sedang</option>
|
||||
<option>Besar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Kode Billing</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<input class="form-control" name="kode_billing">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Jenis Anastesi</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<select class="form-select" name="jenis_anastesi">
|
||||
<option>General</option>
|
||||
<option>Lokal</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<label>Sistem Pelayanan</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label>Sistem Pelayanan</label>
|
||||
<select class="form-select" name="sistem_pelayanan">
|
||||
<option>Emergency</option>
|
||||
<option>Elektif</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- OPERASI TIME -->
|
||||
|
||||
</div>
|
||||
<div class="row mt-4 mb-3">
|
||||
<div class="col-md-4">
|
||||
<label>Operasi Mulai</label>
|
||||
<input type="datetime-local" name="operasi_mulai" id="op_mulai" class="form-control">
|
||||
</div>
|
||||
|
||||
<!-- OPERASI TIME -->
|
||||
|
||||
<!-- <div class="section-title">Waktu Operasi</div> -->
|
||||
|
||||
<div class="row mt-4 mb-3">
|
||||
<div class="col-md-4">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label>Operasi Mulai</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<input type="datetime-local" id="op_mulai" class="form-control">
|
||||
<div class="col-md-4">
|
||||
<label>Lama Operasi</label>
|
||||
<div class="input-group">
|
||||
<input type="number" name="lama_operasi" id="lama_op" class="form-control">
|
||||
<span class="input-group-text">menit</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label>Operasi Selesai</label>
|
||||
<input type="datetime-local" name="operasi_selesai" id="op_selesai" class="form-control" disabled>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label>Lama Operasi</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="input-group">
|
||||
<input type="number" id="lama_op" class="form-control">
|
||||
<span class="input-group-text">menit</span>
|
||||
</div>
|
||||
<!-- PEMBIUSAN TIME-->
|
||||
|
||||
<div class="row mt-4 mb-3">
|
||||
<div class="col-md-4">
|
||||
<label>Pembiusan Mulai</label>
|
||||
<input type="datetime-local" name="pembiusan_mulai" id="bius_mulai" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label>Lama Pembiusan</label>
|
||||
<div class="input-group">
|
||||
<input type="number" name="lama_pembiusan" id="lama_bius" class="form-control">
|
||||
<span class="input-group-text">menit</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label>Operasi Selesai</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<input type="datetime-local" id="op_selesai" class="form-control" disabled>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label>Pembiusan Selesai</label>
|
||||
<input type="datetime-local" name="pembiusan_selesai" id="bius_selesai" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- PEMBIUSAN TIME-->
|
||||
|
||||
<!-- <div class="section-title">Pembiusan</div> -->
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label>Pembiusan Mulai</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<input type="datetime-local" id="bius_mulai" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label>Lama Pembiusan</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="input-group">
|
||||
<input type="number" id="lama_bius" class="form-control">
|
||||
<span class="input-group-text">menit</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label>Pembiusan Selesai</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<input type="datetime-local" id="bius_selesai" class="form-control" disabled>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- OBG -->
|
||||
|
||||
<!-- <div class="section-title">Data OBG</div> -->
|
||||
<div class="row mt-3">
|
||||
|
||||
<div class="row my-3 d-flex flex-column">
|
||||
|
||||
<div class="row my-3">
|
||||
<div class="col-md-3">
|
||||
<label>Jenis Pelayanan</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<select class="form-select" name="jenis_pelayanan">
|
||||
<option>Bersih</option>
|
||||
<option>Kotor</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>Jenis Pelayanan</label>
|
||||
<select class="form-select" name="jenis_pelayanan">
|
||||
<option>Bersih</option>
|
||||
<option>Kotor</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Operasi Ke</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<input class="form-control" name="operasi_ke">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>Operasi Ke</label>
|
||||
<input class="form-control" name="operasi_ke">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Keterangan Lahir</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="container bg-light my-4 py-2">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label>Keterangan Lahir (OBG)</label>
|
||||
<select class="form-select" name="ket_lahir">
|
||||
<option>Lahir Hidup</option>
|
||||
<option>Lahir Mati</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Apgar Score</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-6">
|
||||
<label>Apgar Score (OBG)</label>
|
||||
<input class="form-control" name="apgar">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Berat Badan</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-6">
|
||||
<label>Berat Badan Bayi Lahir (OBG)</label>
|
||||
<div class="input-group">
|
||||
<input class="form-control" name="bb">
|
||||
<span class="input-group-text">gram</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Waktu Lahir</label>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<input class="form-control" name="waktu_lahir">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<label>Uraian Operasi</label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<textarea class="form-control" rows="5" name="uraian"></textarea>
|
||||
<label>Waktu Lahir (OBG)</label>
|
||||
<input class="form-control" name="waktu_lahir">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- DARAH MASUK -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
Jumlah Pendarahan
|
||||
<!-- URAIAN SUNEDITOR -->
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-12">
|
||||
<label>Uraian Operasi</label>
|
||||
<textarea class="form-control" id="fr_uraian_operasi" name="uraian"></textarea>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
</div>
|
||||
|
||||
<!-- DARAH MASUK -->
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-6">
|
||||
<label>Komplikasi Selama Pembedahan</label>
|
||||
<input class="form-control" name="komplikasi_pembedahan">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>Jumlah Pendarahan</label>
|
||||
<div class="input-group">
|
||||
<input class="form-control" type="number" name="sum_darah">
|
||||
<span class="input-group-text">cc</span>
|
||||
@@ -379,21 +312,20 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-3">Jenis & Jumlah Darah Masuk</div>
|
||||
|
||||
<div class="col-md-9" id="darahContainer">
|
||||
<div class="row my-4 py-2 bg-light">
|
||||
<label>Jenis & Jumlah Darah Masuk</label>
|
||||
<div class="col-md-12 mt-2" id="darahContainer">
|
||||
|
||||
<div class="row darahRow mb-2">
|
||||
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-6">
|
||||
<div class="input-group">
|
||||
<input class="form-control" name="jumlah_darah[]" type="number">
|
||||
<span class="input-group-text">cc</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-4">
|
||||
<select name="jenis_darah[]" class="form-select">
|
||||
<option>PRC</option>
|
||||
<option>WB</option>
|
||||
@@ -412,101 +344,59 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- FILE IMPLANT -->
|
||||
|
||||
<div class="section-title">Implant</div>
|
||||
<div class="row d-flex flex-column mt-3 border py-3" id="implantSection">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Merek</label>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<input class="form-control" type="file" id="merek">
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<p>*Format: JPG, PNG | Maks: 1MB</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Nama Implant</label>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<input class="form-control" type="file" id="implant">
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<p>*Format: JPG, PNG | Maks: 1MB</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Stiker / Nomor Register Implant</label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<input class="form-control" id="stiker">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-3">
|
||||
<label>Nama Pendamping Implant</label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<input class="form-control" id="pendamping_implant">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 d-flex justify-content-end">
|
||||
<button type="button" id="btnSimpanImplant" class="btn btn-primary mt-3">Simpan</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- TABLE IMPLANT -->
|
||||
<div class="mt-4">
|
||||
|
||||
<!-- <h5>Daftar Implant</h5> -->
|
||||
|
||||
<table class="table table-bordered table-striped">
|
||||
|
||||
<thead class="table-primary">
|
||||
<tr>
|
||||
<th>Merek</th>
|
||||
<th>Nama Implant</th>
|
||||
<th>Stiker</th>
|
||||
<th>Pendamping</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody id="tableImplantBody">
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<!-- IMPLANT -->
|
||||
|
||||
<div class="row">
|
||||
<table class="table table-bordered align-middle bg-light">
|
||||
<thead class="table-primary text-center">
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Merek</th>
|
||||
<th>Nama Implant</th>
|
||||
<th>Stiker / Nomor Register Implant</th>
|
||||
<th>Nama Pendamping Implant</th>
|
||||
<th>Gambar</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tableBodyImplant">
|
||||
<tr>
|
||||
<td class="text-center row-number">1</td>
|
||||
<td><input type="text" name="merek[]"></td>
|
||||
<td><input type="text" name="nama_implant[]"></td>
|
||||
<td><input type="text" name="nomor_implant[]"></td>
|
||||
<td><input type="text" name="pendamping[]"></td>
|
||||
<td>
|
||||
<input type="file" name="gambar[]" class="form-control form-control-sm">
|
||||
<small class="text-muted">Format: JPG, PNG | Maks: 1MB</small>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<button type="button" class="btn btn-success btn-sm" onclick="addRowImplant()">+</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" onclick="deleteRowImplant(this)">🗑</button>
|
||||
<button type="button" class="btn btn-primary btn-sm" onclick="moveUpImplant(this)">↑</button>
|
||||
<button type="button" class="btn btn-primary btn-sm" onclick="moveDownImplant(this)">↓</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- SPECIMEN / JARINGAN -->
|
||||
|
||||
<div class="row mt-3 border py-3">
|
||||
<div class="col-md-3">Specimen / Jaringan dikirim ke</div>
|
||||
<div class="row mt-3 py-3">
|
||||
<label>Specimen / Jaringan dikirim ke</label>
|
||||
|
||||
<div class="col-md-9" id="specimenContainer">
|
||||
<div class="col-md-12 mt-2" id="specimenContainer">
|
||||
|
||||
<div class="row specimenRow mb-2">
|
||||
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-6">
|
||||
<div class="input-group">
|
||||
<input class="form-control" name="jumlah_specimen[]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-4">
|
||||
<select name="jenis_specimen[]" class="form-select">
|
||||
<option>PA</option>
|
||||
<option>Mikrobiologi</option>
|
||||
@@ -670,13 +560,24 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script type='text/javascript' src='/lib/suneditor/dist/suneditor.min.js'></script>
|
||||
|
||||
<script>
|
||||
const BASEURL = "http://localhost:8080/dataLaporanOperasi.php";
|
||||
const frUraianOperasi = SUNEDITOR.create((document.getElementById('fr_uraian_operasi') || 'fr_uraian_operasi'), {
|
||||
height: '200px',
|
||||
})
|
||||
</script>
|
||||
|
||||
<script>
|
||||
const BASEURL = "http://10.10.150.191:8000/dataLaporanOperasi.php";
|
||||
|
||||
/* SEARCH AND SHOW DPJP*/
|
||||
const inputDokter = document.getElementById("searchDPJP")
|
||||
const resultDokter = document.getElementById("resultDPJP")
|
||||
const hiddenDokter = document.getElementById("dpjp_operator")
|
||||
const hiddenNamaDokter = document.getElementById("nama_dpjp_operator")
|
||||
const hiddenNipDokter = document.getElementById("nip_dpjp_operator")
|
||||
const hiddenKodeDokter = document.getElementById("kode_dpjp_operator")
|
||||
|
||||
let timer = null
|
||||
|
||||
@@ -711,6 +612,9 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
inputDokter.value = d.namadokter
|
||||
hiddenDokter.value = d.kddokter
|
||||
hiddenNamaDokter.value = d.namadokter
|
||||
hiddenNipDokter.value = d.nip
|
||||
hiddenKodeDokter.value = d.kode_dpjp
|
||||
|
||||
resultDokter.innerHTML = ""
|
||||
|
||||
@@ -730,6 +634,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
const inputDokterAnestesi = document.getElementById("searchDokterAnestesi")
|
||||
const resultDokterAnestesi = document.getElementById("resultDokterAnestesi")
|
||||
const hiddenDokterAnestesi = document.getElementById("dpjp_anestesi")
|
||||
const hiddenNamaDokterAnestesi = document.getElementById("nama_dpjp_anestesi")
|
||||
|
||||
inputDokterAnestesi.addEventListener("input", () => {
|
||||
|
||||
@@ -762,6 +667,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
inputDokterAnestesi.value = d.namadokter
|
||||
hiddenDokterAnestesi.value = d.kddokter
|
||||
hiddenNamaDokterAnestesi.value = d.namadokter
|
||||
|
||||
resultDokterAnestesi.innerHTML = ""
|
||||
|
||||
@@ -827,7 +733,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
timerTindakan = setTimeout(() => {
|
||||
|
||||
fetch(`http://localhost:8080/dataLaporanOperasi.php?action=searchTindakan&q=${keyword}`)
|
||||
fetch(`${BASEURL}?action=searchTindakan&q=${keyword}`)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
|
||||
@@ -862,36 +768,32 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
document.addEventListener("click", function(e){
|
||||
|
||||
if (!e.target.classList.contains("addTindakan")) return
|
||||
if (e.target.classList.contains("addTindakan")) {
|
||||
let row = document.querySelector(".tindakanRow")
|
||||
let clone = row.cloneNode(true)
|
||||
|
||||
let row = document.querySelector(".tindakanRow")
|
||||
let clone = row.cloneNode(true)
|
||||
clone.querySelector(".tindakanSearch").value = ""
|
||||
clone.querySelector(".tindakanValue").value = ""
|
||||
clone.querySelector(".tindakanResult").innerHTML = ""
|
||||
|
||||
clone.querySelector(".tindakanSearch").value = ""
|
||||
clone.querySelector(".tindakanValue").value = ""
|
||||
clone.querySelector(".tindakanResult").innerHTML = ""
|
||||
row.parentNode.appendChild(clone)
|
||||
}
|
||||
|
||||
row.parentNode.appendChild(clone)
|
||||
// hapus tindakan
|
||||
if (e.target.classList.contains("removeTindakan")) {
|
||||
|
||||
let rows = document.querySelectorAll(".tindakanRow")
|
||||
|
||||
if (rows.length > 1) {
|
||||
e.target.closest(".tindakanRow").remove()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
/* darah */
|
||||
|
||||
// function sumDarah() {
|
||||
|
||||
// let inputs = document.querySelectorAll('input[name="jumlah_darah[]"]')
|
||||
// let total = 0
|
||||
|
||||
// inputs.forEach(input => {
|
||||
// let val = parseFloat(input.value)
|
||||
// if (!isNaN(val)) {
|
||||
// total += val
|
||||
// }
|
||||
// })
|
||||
|
||||
// document.querySelector('input[name="sum_darah"]').value = total
|
||||
// }
|
||||
|
||||
document.addEventListener("click", e => {
|
||||
|
||||
if (e.target.classList.contains("addDarah")) {
|
||||
@@ -910,21 +812,12 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
if (rows.length > 1) {
|
||||
e.target.closest(".darahRow").remove()
|
||||
sumDarah()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
document.addEventListener("input", function(e) {
|
||||
|
||||
if (e.target.name === "jumlah_darah[]") {
|
||||
sumDarah()
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
/* specimen */
|
||||
|
||||
document.addEventListener("click", e => {
|
||||
@@ -953,61 +846,65 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
/* Tabel implant */
|
||||
|
||||
document.getElementById("btnSimpanImplant").addEventListener("click", function() {
|
||||
let tableBody = document.getElementById("tableBodyImplant")
|
||||
|
||||
let merekInput = document.getElementById("merek")
|
||||
let implantInput = document.getElementById("implant")
|
||||
let stiker = document.getElementById("stiker").value
|
||||
let pendamping = document.getElementById("pendamping_implant").value
|
||||
|
||||
let merekFile = merekInput.files[0]
|
||||
let implantFile = implantInput.files[0]
|
||||
|
||||
if (merekFile == undefined || implantFile == undefined || stiker == '' || pendamping == '') {
|
||||
alert('form implant harus diisi')
|
||||
return
|
||||
}
|
||||
|
||||
let merekName = merekFile ? merekFile.name : "-"
|
||||
let implantName = implantFile ? implantFile.name : "-"
|
||||
|
||||
let tbody = document.getElementById("tableImplantBody")
|
||||
|
||||
let row = document.createElement("tr")
|
||||
|
||||
row.innerHTML = `
|
||||
<td>${merekName}</td>
|
||||
<td>${implantName}</td>
|
||||
<td>${stiker}</td>
|
||||
<td>${pendamping}</td>
|
||||
<td>
|
||||
<button class="btn btn-sm btn-danger btnDelete">Hapus</button>
|
||||
function createRowImplant(index) {
|
||||
return `
|
||||
<tr>
|
||||
<td class="text-center row-number">${index}</td>
|
||||
<td><input type="text" name="merek[]"></td>
|
||||
<td><input type="text" name="nama_implant[]"></td>
|
||||
<td><input type="text" name="nomor_implant[]"></td>
|
||||
<td><input type="text" name="pendamping[]"></td>
|
||||
<td>
|
||||
<input type="file" name="gambar[]" class="form-control form-control-sm">
|
||||
<small class="text-muted">Format: JPG, PNG | Maks: 1MB</small>
|
||||
</td>
|
||||
`
|
||||
|
||||
tbody.appendChild(row)
|
||||
|
||||
clearForm()
|
||||
|
||||
})
|
||||
|
||||
function clearForm() {
|
||||
|
||||
document.getElementById("merek").value = ""
|
||||
document.getElementById("implant").value = ""
|
||||
document.getElementById("stiker").value = ""
|
||||
document.getElementById("pendamping_implant").value = ""
|
||||
<td class="text-center">
|
||||
<button type="button" class="btn btn-success btn-sm" onclick="addRowImplant()">+</button>
|
||||
<button type="button" class="btn btn-danger btn-sm deleteImplant" onclick="deleteRowImplant(this)">🗑</button>
|
||||
<button type="button"class="btn btn-primary btn-sm upImplant" onclick="moveUpImplant(this)">↑</button>
|
||||
<button type="button" class="btn btn-primary btn-sm downImplant" onclick="moveDownImplant(this)">↓</button>
|
||||
</td>
|
||||
</tr>
|
||||
`
|
||||
}
|
||||
|
||||
document.addEventListener("click", function(e) {
|
||||
function addRowImplant() {
|
||||
let rowCount = tableBody.rows.length + 1
|
||||
tableBody.insertAdjacentHTML("beforeend", createRowImplant(rowCount))
|
||||
reindex()
|
||||
}
|
||||
|
||||
if (e.target.classList.contains("btnDelete")) {
|
||||
|
||||
e.target.closest("tr").remove()
|
||||
function deleteRowImplant(btn) {
|
||||
let row = btn.closest("tr")
|
||||
row.remove()
|
||||
reindex()
|
||||
}
|
||||
|
||||
function moveUpImplant(btn) {
|
||||
let row = btn.closest("tr")
|
||||
let prev = row.previousElementSibling
|
||||
if (prev) {
|
||||
row.parentNode.insertBefore(row, prev)
|
||||
reindex()
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
function moveDownImplant(btn) {
|
||||
let row = btn.closest("tr")
|
||||
let next = row.nextElementSibling
|
||||
if (next) {
|
||||
row.parentNode.insertBefore(next, row)
|
||||
reindex()
|
||||
}
|
||||
}
|
||||
|
||||
function reindex() {
|
||||
[...tableBody.rows].forEach((row, i) => {
|
||||
row.querySelector(".row-number").innerText = i + 1
|
||||
})
|
||||
}
|
||||
|
||||
/* Modal Riwayat*/
|
||||
document.getElementById("btnRiwayat").addEventListener("click", function(){
|
||||
@@ -1019,7 +916,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
|
||||
/* Tabel Riwayat Operasi */
|
||||
document.getElementById("btnSimpanLaporan").addEventListener("click", function() {
|
||||
let operatorDPJP = document.getElementById("dpjp_operator").value
|
||||
let operatorDPJP = document.getElementById("searchDPJP").value
|
||||
let tglBedah = document.getElementById("tgl_bedah")
|
||||
let dateNow = new Date()
|
||||
|
||||
@@ -1046,10 +943,33 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
</td>
|
||||
`
|
||||
|
||||
tbody.appendChild(row)
|
||||
// tbody.appendChild(row)
|
||||
|
||||
tglBedah.value = ""
|
||||
// tglBedah.value = ""
|
||||
})
|
||||
|
||||
// SUBMIT FORM
|
||||
document.getElementById("btnSimpanLaporan").addEventListener("click", async function() {
|
||||
|
||||
const form = document.getElementById("formLaporanOperasi")
|
||||
|
||||
let formData = new FormData(form)
|
||||
formData.set("uraian", frUraianOperasi.getContents())
|
||||
|
||||
// const plainObject = Object.fromEntries(formData.entries());
|
||||
|
||||
// console.log("form value: ", plainObject)
|
||||
let res = await fetch(`${BASEURL}?action=postLaporanOperasi`, {
|
||||
method: "POST",
|
||||
body: formData
|
||||
})
|
||||
|
||||
let data = await res.json()
|
||||
|
||||
console.log(data)
|
||||
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
<?php
|
||||
if (!function_exists('form_dropdown')) {
|
||||
function form_dropdown($name = '', $options = array(), $selected = array(), $extra = '', $callback = null)
|
||||
{
|
||||
if (!is_array($selected)) {
|
||||
$selected = array($selected);
|
||||
}
|
||||
// If no selected state was submitted we will attempt to set it automatically
|
||||
if (count($selected) === 0) {
|
||||
// If the form name appears in the $_POST array we have a winner!
|
||||
if (isset($_POST[$name])) {
|
||||
$selected = array($_POST[$name]);
|
||||
}
|
||||
}
|
||||
if ($extra != '') $extra = ' ' . $extra;
|
||||
$multiple = (count($selected) > 1 && strpos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : '';
|
||||
$form = '<select name="' . $name . '"' . $extra . $multiple . ">\n";
|
||||
foreach ($options as $key => $val) {
|
||||
$key = (string)$key;
|
||||
if (is_array($val) && !empty($val)) {
|
||||
$form .= '<optgroup label="' . $key . '">' . "\n";
|
||||
foreach ($val as $optgroup_key => $optgroup_val) {
|
||||
$sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : '';
|
||||
$form .= '<option value="' . $optgroup_key . '"' . $sel . '>' . (string)$optgroup_val . "</option>\n";
|
||||
}
|
||||
$form .= '</optgroup>' . "\n";
|
||||
} else {
|
||||
$val = ($callback != '') ? $callback($val) : $val;
|
||||
$sel = (in_array($key, $selected)) ? ' selected="selected"' : '';
|
||||
$form .= '<option value="' . $key . '"' . $sel . '>' . (string)$val . "</option>\n";
|
||||
}
|
||||
}
|
||||
$form .= '</select>';
|
||||
return $form;
|
||||
}
|
||||
}
|
||||
?>
|
||||
+1
File diff suppressed because one or more lines are too long
Vendored
+2
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user