Tambah halaman G-Drive Ambulans, Sijagad, Supervisi dan update dashboard

This commit is contained in:
2026-08-03 18:44:19 +07:00
parent 824db369cd
commit 44d929e8fe
5 changed files with 4828 additions and 14 deletions
+25 -14
View File
@@ -220,7 +220,7 @@ body{
<h5>& Evaluasi</h5>
</div>
</div>
<div class="col-md-4 d-flex">
<div class="menu-card" onclick="window.location.href='./pasien/list'">
<div class="menu-icon c2">🧾</div>
@@ -231,7 +231,7 @@ body{
<div class="col-md-4 d-flex">
<div class="menu-card" onclick="window.location.href='./pasien/aktif'">
<div class="menu-icon c3">🚑</div>
<div class="menu-icon c3">💉</div>
<h5>Data Pasien Aktif</h5>
<p><?= $total ?? 0 ?> pasien aktif</p>
@@ -259,16 +259,16 @@ body{
</div>
<div class="col-md-4 d-flex">
<div class="menu-card" onclick="maintenance()">
<div class="menu-icon c6">🏃</div>
<h5>Endurance Exercise</h5>
<div class="menu-card" onclick="goGdrive()">
<div class="menu-icon c6">📊</div>
<h5>Dokumentasi G-Drive Ambulans 119</h5>
</div>
</div>
<div class="col-md-4 d-flex">
<div class="menu-card" onclick="maintenance()">
<div class="menu-icon c1">💉</div>
<h5>Input Tindakan Ambulans</h5>
<div class="menu-card" onclick="goSijagad()">
<div class="menu-icon c1">🚑</div>
<h5>SiJagad RSSA</h5>
</div>
</div>
</div>
@@ -357,15 +357,26 @@ function toggleSystemPanel(){
panel.style.display = (panel.style.display === "flex") ? "none" : "flex";
}
function goKajaga(){
const url = "<?= base_url('laporan/LAPORANKAJAGA.html') ?>";
openFrame(url + "?v=" + Date.now());
function goKajaga() {
const url = "https://kredensial.online/silaras119/public/laporan/LAPORANKAJAGA.html";
window.open(url + '?v=' + Date.now(), '_blank');
}
function goSupervisi(){
const url = "<?= base_url('supervisi/input-supervisi.html') ?>";
openFrame(url + "?v=" + Date.now());
function goSupervisi() {
const url = "https://kredensial.online/silaras119/public/supervisi/input-supervisi.html";
window.open(url + '?v=' + Date.now(), '_blank');
}
function goSijagad() {
const url = "https://kredensial.online/silaras119/public/sijagad/SIJAGAD.html";
window.open(url + '?v=' + Date.now(), '_blank');
}
function goGdrive() {
const url = "https://kredensial.online/silaras119/public/g-drive/G-driveAmbulans.html";
window.open(url + '?v=' + Date.now(), '_blank');
}
</script>
</body>
+272
View File
@@ -0,0 +1,272 @@
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Berkas G-Drive Ambulans 119</title>
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css">
<style>
*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Segoe UI, sans-serif;
}
body{
background:#f4f6f9;
}
.header{
background:linear-gradient(135deg,#dc3545,#8b0000);
color:white;
padding:30px;
text-align:center;
}
.header h1{
font-size:32px;
}
.header p{
margin-top:10px;
opacity:0.9;
}
.container{
max-width:1200px;
margin:auto;
padding:20px;
}
.search-box{
margin-bottom:25px;
}
.search-box input{
width:100%;
padding:15px;
border:none;
border-radius:12px;
font-size:16px;
box-shadow:0 2px 10px rgba(0,0,0,0.1);
}
.grid{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
gap:20px;
}
.card{
background:white;
border-radius:18px;
padding:20px;
box-shadow:0 5px 15px rgba(0,0,0,0.08);
transition:0.3s;
border-left:5px solid #dc3545;
}
.card:hover{
transform:translateY(-5px);
}
.icon{
font-size:40px;
color:#dc3545;
margin-bottom:15px;
}
.card h3{
margin-bottom:10px;
color:#333;
}
.card p{
color:#666;
font-size:14px;
margin-bottom:15px;
}
.badge{
display:inline-block;
background:#e9ecef;
padding:5px 10px;
border-radius:20px;
font-size:12px;
margin-bottom:15px;
}
.btn{
display:inline-block;
background:#dc3545;
color:white;
padding:10px 18px;
text-decoration:none;
border-radius:10px;
}
.btn:hover{
background:#b02a37;
}
</style>
</head>
<body>
<div class="header">
<h1><i class="fa-brands fa-google-drive"></i> Berkas G-Drive Ambulans 119</h1>
<p>Pusat Dokumen, SOP, Formulir, dan Berkas Operasional</p>
</div>
<div class="container">
<div class="search-box">
<input type="text" id="search" placeholder="Cari berkas...">
</div>
<div class="grid" id="fileGrid">
<!-- CARD -->
<div class="card">
<div class="icon">
<i class="fa-solid fa-file-pdf"></i>
</div>
<span class="badge">SOP</span>
<h3>SOP Ambulans 119</h3>
<p>Standar operasional pelayanan ambulans.</p>
<a href="https://drive.google.com/drive/folders/1cZlzwW7aN-2VJAZKvrMWL73UhAH2ApHi?usp=sharing" target="_blank" class="btn">
<i class="fa-solid fa-folder-open"></i> Buka
</a>
</div>
<div class="card">
<div class="icon">
<i class="fa-solid fa-boxes-stacked"></i>
</div>
<span class="badge">Bukti Inventaris</span>
<h3>Report Inventaris Ambulans 119</h3>
<select id="inventaris" class="form-select">
<option value="">-- Pilih Bukti Inventaris --</option>
<option value="https://docs.google.com/spreadsheets/d/1IO5GDAaU5b8mezUmcWTwwguHv5b0duyKs5VghmwqWqc/edit?usp=sharing">Inventaris Tas Emergensi</option>
<option value="https://docs.google.com/spreadsheets/d/1BBZCk1_CNfAGHpwRv5fhSRCNiNsuhzlyrdBJItfDhuA/edit?usp=sharing">Inventaris Alkes Ambulans 119 Commuter</option>
<option value="https://docs.google.com/spreadsheets/d/1d3xNA6-lmonR2R7vvuyzIYxoi4Hh2iTShdjSCh-ofgk/edit?usp=sharing">Inventaris Alkes Ambulans 119 Premio</option>
<option value="https://docs.google.com/spreadsheets/d/1LXammLHBjA7-h8Gf3ewfihIzQKzXBQcHJH01gKgRfZY/edit?usp=sharing">Inventaris Driver Ambulans 119 Commuter</option>
<option value="https://docs.google.com/spreadsheets/d/1Mjpen7ep8ZAtJL4XFUqZ9QyJ1g07LiMQvlU6H7Y9NxE/edit?usp=sharing">Inventaris Driver Ambulans 119 Premio</option>
</select>
<button class="btn" onclick="bukaInventaris()">
Buka
</button>
</div>
<div class="card">
<div class="icon">
<i class="fa-solid fa-book-medical"></i>
</div>
<span class="badge">Dokumen</span>
<h3>Dokumen Sertifikat</h3>
<p>Petugas Ambulans 119.</p>
<button class="btn" onclick="bukaSertifikat()">
<i class="fa-solid fa-lock"></i> Buka
</button>
</div>
<div class="card">
<div class="icon">
<i class="fa-solid fa-image"></i>
</div>
<span class="badge">Dokumen</span>
<h3>Dokumentasi Kegiatan</h3>
<p>Bukti Overtime Ambulans.</p>
<a href="https://drive.google.com/drive/folders/1luVM4d1Hj1SbpqLnPOzkziwHo9rvkhMl?usp=drive_link" target="_blank" class="btn">
Buka
</a>
</div>
<div class="card">
<div class="icon">
<i class="fa-solid fa-image"></i>
</div>
<span class="badge">Media</span>
<h3>Dokumentasi Kegiatan</h3>
<p>Foto dan video kegiatan Ambulans 119.</p>
<a href="https://drive.google.com/drive/folders/1qjZhMfWugeS2Ao6EFEtyPSea7pOSs7ho?usp=sharing" target="_blank" class="btn">
Buka
</a>
</div>
<div class="card">
<div class="icon">
<i class="fa-solid fa-image"></i>
</div>
<span class="badge">Dokumen</span>
<h3>Dekontaminasi dan Desinfeksi Ambulans 119</h3>
<p>Dokumen Kendali Dekontaminasi Armada Ambulans 119.</p>
<a href="https://docs.google.com/spreadsheets/d/11pmdIGAufu1YdFyIHmlowlUDNAu8SKmZy8rR4azYakE/edit?usp=sharing" target="_blank" class="btn">
Buka
</a>
</div>
<div class="card">
<div class="icon">
<i class="fa-solid fa-image"></i>
</div>
<span class="badge">Dokumen</span>
<h3>Inventariasi B3</h3>
<p>Dokumen Kendali B3 Ambulans 119.</p>
<a href="https://drive.google.com/drive/folders/1xaEc-r0STTs8bwtnVMDWx7WYxfBmf3HD?usp=drive_link" target="_blank" class="btn">
Buka
</a>
</div>
</div>
</div>
<script>
document.getElementById("search").addEventListener("keyup", function(){
let value = this.value.toLowerCase();
let cards = document.querySelectorAll(".card");
cards.forEach(card=>{
let text = card.innerText.toLowerCase();
card.style.display = text.includes(value) ? "block" : "none";
});
});
function bukaInventaris(){
const url = document.getElementById('inventaris').value;
if(url){
window.open(url,'_blank');
}
}
function bukaSertifikat(){
let password = prompt("Masukkan Password Dokumen Sertifikat:");
if(password === "119admin"){
window.open(
"https://drive.google.com/drive/folders/1Lfoc-hbgnkrdxNjiMw4YYVAJHLQxxBP1",
"_blank"
);
}else{
alert("Password salah!");
}
}
</script>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+486
View File
@@ -0,0 +1,486 @@
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Dokumen Supervisi Ambulans 119</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body{
background:#fff;
font-size:9px;
padding:10px;
line-height:1.25;
}
.header{
text-align:center;
border-bottom:2px solid #000;
padding-bottom:6px;
margin-bottom:6px;
}
.header h3{
margin:0;
font-size:12px;
font-weight:600;
}
.header h5{
margin:2px 0 0;
font-size:10px;
}
.header small{
font-size:12px;
}
.table{
margin-bottom:2px;
}
.table td,
.table th{
padding:3px 2px;
font-size:9px;
vertical-align:top;
}
.judul{
background:#d9d9d9;
font-weight:700;
padding:4px 8px;
margin-top:2px;
margin-bottom:2px;
border:1px solid #000;
font-size:9px;
}
.row-data{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:2px 2px;
}
.box{
border:1px solid #ccc;
padding:4px 2px;
border-radius:4px;
}
.label{
font-weight:400;
color:#444;
font-size:8px;
}
.value{
font-size:9px;
}
.ttd{
margin-top:8px;
}
.ttd td{
padding-top:30px;
text-align:center;
}
.checklist-table td,
.checklist-table th{
padding:2px 2px;
font-size:8px;
}
.fase{
background:#e9ecef;
font-weight:bold;
}
@page{
size:A4;
margin:8mm;
}
@media print{
.no-print{
display:none !important;
}
body{
padding:0;
font-size:8px;
}
.judul{
margin-top:6px;
padding:3px 6px;
}
.ttd{
margin-top:4px;
}
}
</style>
</head>
<body>
<div class="container-fluid">
<div class="header">
<h3>FORM SUPERVISI MONITORING DAN EVALUASI</h3>
<h5>PELAYANAN AMBULANS 119 PER ORDER/PASIEN</h5>
<small>RSUD Dr. Saiful Anwar Malang</small>
</div>
<div class="text-end no-print mb-3">
<button onclick="window.print()"
class="btn btn-primary">
🖨 Cetak PDF
</button>
</div>
<!-- DATA SUPERVISI -->
<div class="judul">
DATA SUPERVISI
</div>
<table class="table table-bordered">
<tr>
<td width="12%">Supervisor</td>
<td width="21%" id="oSupervisor"></td>
<td width="12%">Tanggal Supervisi</td>
<td width="22%" id="oTanggalSupervisi"></td>
<td width="12%">Tanggal Pelayanan</td>
<td width="23%" id="oTanggalPelayanan"></td>
</tr>
</table>
<!-- DATA PASIEN -->
<div class="judul">
DATA PASIEN / PELAYANAN
</div>
<table class="table table-bordered">
<tr>
<td width="12%">Jenis Layanan</td>
<td width="21%" id="oJenisLayanan"></td>
<td width="12%">Nama Pasien</td>
<td width="22%" id="oNamaPasien"></td>
<td width="12%">No Register</td>
<td width="22%" id="oNomorRegister"></td>
</tr>
<tr>
<td>Tujuan</td>
<td id="oTujuan"></td>
<td >Armada</td>
<td id="oArmada"></td>
<td>Tas Emergensi</td>
<td id="oTasEmergensi"></td>
</tr>
<tr>
<td>Jenis Pembayaran</td>
<td id="oJenisPembayaran"></td>
<td>Total Biaya</td>
<td id="oTotalBiaya"></td>
<td>No Kuitansi</td>
<td id="oNoKuitansi"></td>
</tr>
</table>
<!-- DATA KILOMETER -->
<div class="judul">
DATA KILOMETER
</div>
<table class="table table-bordered">
<tr>
<td width="23%">KM Start Pangkalan Ambulans 119</td>
<td width="12%" id="oKmAwal"></td>
<td width="20%">KM Tiba di Lokasi Pasien</td>
<td width="10%" id="oKmLokasi"></td>
<td width="23%">KM Tiba Tujuan Pengantaran</td>
<td width="14%" id="oKmTujuan"></td>
</tr>
<tr>
<td>KM Tiba di Pangkalan Ambulans 119</td>
<td id="oKmAkhir"></td>
<td>Total Jarak Tempuh</td>
<td id="oKmTotal"></td>
<td>KM Terbayar</td>
<td id="oKmTerbayar"></td>
</tr>
</table>
<!-- TIM -->
<div class="judul">
TIM AMBULANS
</div>
<table class="table table-bordered">
<tr>
<td width="15%">Dokter</td>
<td width="35%" id="oDokter"></td>
<td width="15%">Kepala Jaga</td>
<td width="35%" id="oKepalaJaga"></td>
</tr>
<tr>
<td>Perawat Pelaksana</td>
<td id="oPerawat"></td>
<td>Driver</td>
<td id="oDriver"></td>
</tr>
</table>
<!-- HASIL -->
<div class="judul">
DETAIL CHECKLIST SUPERVISI
</div>
<div id="oChecklist"></div>
<table class="table table-bordered">
<tr>
<td width="20%">Jumlah Ya</td>
<td id="oJumlahYa"></td>
</tr>
<tr>
<td>Nilai</td>
<td id="oNilai"></td>
</tr>
<tr>
<td>Kategori</td>
<td id="oKategori"></td>
</tr>
</table>
<!-- TEMUAN -->
<div class="judul">
TEMUAN / KETIDAKSESUAIAN
</div>
<div class="border p-1 " id="oTemuan"></div>
<div class="judul">
REKOMENDASI PERBAIKAN
</div>
<div class="border p-1" id="oRekomendasi"></div>
<!-- TTD -->
<div class="row text-center ttd">
<div class="col-6">
Supervisor
<br><br><br><br>
<u id="oTtdSupervisor"></u>
</div>
</div>
</div>
<script>
const data =
JSON.parse(
localStorage.getItem("dataSupervisi")
);
if(data){
document.getElementById("oSupervisor").innerText = data.supervisor;
document.getElementById("oTanggalSupervisi").innerText = data.tanggalSupervisi;
document.getElementById("oTanggalPelayanan").innerText = data.tanggalPelayanan;
document.getElementById("oNomorRegister").innerText = data.nomorRegister;
document.getElementById("oNamaPasien").innerText = data.namaPasien;
document.getElementById("oJenisLayanan").innerText = data.jenisLayanan;
document.getElementById("oTujuan").innerText = data.tujuan;
document.getElementById("oArmada").innerText = data.armada;
document.getElementById("oTasEmergensi").innerText = data.tasEmergensi;
document.getElementById("oJenisPembayaran").innerText = data.jenisPembayaran;
document.getElementById("oTotalBiaya").innerText =
"Rp " + Number(data.totalBiaya).toLocaleString("id-ID");
document.getElementById("oNoKuitansi").innerText = data.noKuitansi;
document.getElementById("oKmAwal").innerText = data.kmAwalMako;
document.getElementById("oKmLokasi").innerText = data.kmLokasi;
document.getElementById("oKmTujuan").innerText = data.kmTujuan;
document.getElementById("oKmAkhir").innerText = data.kmAkhirMako;
document.getElementById("oKmTotal").innerText = data.kmTotal;
document.getElementById("oKmTerbayar").innerText = data.kmTerbayar;
document.getElementById("oDokter").innerText = data.dokter;
document.getElementById("oKepalaJaga").innerText = data.kepalaJaga;
document.getElementById("oPerawat").innerText = data.perawatPelaksana.join(", ");
document.getElementById("oDriver").innerText = data.driverAmbulans.join(", ");
document.getElementById("oJumlahYa").innerText = data.jumlahYa;
document.getElementById("oNilai").innerText = data.nilaiPersen;
document.getElementById("oKategori").innerText = data.kategori;
document.getElementById("oTemuan").innerText = data.temuan;
document.getElementById("oRekomendasi").innerText = data.rekomendasi;
document.getElementById("oTtdSupervisor").innerText = data.supervisor;
}
const faseChecklist = [
{
fase: "PENERIMAAN ORDER",
indikator: [
"Data order dan identitas pasien diterima lengkap",
"Lokasi/tujuan dan kebutuhan pelayanan teridentifikasi dengan jelas"
]
},
{
fase: "DISPATCH & PERSIAPAN",
indikator: [
"Tim ambulans merespon order sesuai ketentuan",
"Ambulans, alat medis, dan logistik siap operasional",
"Petugas menggunakan APD sesuai level"
]
},
{
fase: "PENJEMPUTAN / PENERIMAAN PASIEN",
indikator: [
"Identifikasi pasien dilakukan dengan benar",
"Kondisi pasien dikaji sebelum transportasi",
"Pemindahan pasien ke ambulans sesuai prosedur keselamatan"
]
},
{
fase: "TRANSPORTASI PASIEN",
indikator: [
"Monitoring pasien selama perjalanan dilakukan sesuai kebutuhan",
"Tindakan medis/keperawatan selama transportasi terdokumentasi",
"Keselamatan pasien terjaga selama perjalanan"
]
},
{
fase: "SERAH TERIMA PASIEN",
indikator: [
"Serah terima pasien kepada petugas penerima/keluarga dilakukan dengan lengkap",
"Dokumen dan informasi kondisi pasien disampaikan dengan benar"
]
},
{
fase: "PENYELESAIAN ORDER",
indikator: [
"Dokumentasi pelayanan ambulans lengkap dan sesuai",
"Waktu pelayanan tercatat lengkap pada sistem/formulir",
"Pembayaran terselesaikan (pasien Umum) / Berkas Klaim BPJS Lenkap (pasien BPJS)",
"Ambulans telah didekontaminasi dan siap operasional kembali"
]
}
];
let nomor = 0;
let htmlChecklist = "";
faseChecklist.forEach(fase => {
htmlChecklist += `
${fase.fase}
</div>
<table class="table table-bordered table-sm ">
<thead>
<tr>
<th width="5%">No</th>
<th>Indikator Supervisi</th>
<th width="12%">Hasil</th>
</tr>
</thead>
<tbody>
`;
fase.indikator.forEach(item => {
const hasil =
data.checklist?.[nomor]?.hasil || "-";
htmlChecklist += `
<tr>
<td class="text-center">
${nomor + 1}
</td>
<td>
${item}
</td>
<td class="text-center fw-bold">
${
hasil === "Ya"
? "✅ YA"
: "❌ TIDAK"
}
</td>
</tr>
`;
nomor++;
});
htmlChecklist += `
</tbody>
</table>
`;
});
document.getElementById(
"oChecklist"
).innerHTML = htmlChecklist;
</script>
</body>
</html>