<?= $this->extend('layout/template'); ?>
<?= $this->section('content'); ?>


<nav class="page-breadcrumb">
    <ol class="breadcrumb">
        <li class="breadcrumb-item"><?= $Breadcumb ?></li>
        <li class="breadcrumb-item active" aria-current="page">Data <?= $Breadcumb ?></li>
    </ol>
</nav>

<div class="row">
    <div class="col-md-12 grid-margin stretch-card">
        <div class="card">
            <div class="card-body">

                <div class="col-md-2 grid-margin stretch-card">
                    <a class="btn btn-primary me-2" data-bs-toggle="modal" data-bs-target="#tambahModal">Tambah Data</a>


                </div>

                <!-- Tombol Export -->
                <div class="d-flex justify-content-end  ms-auto mb-3">


                    <!-- Tombol Export Excel -->
                    <!-- <button type="button" class="btn btn-success btn-sm ml-3" title="Export Excel" onclick="exportExcel()">
                        <i class="icon-md" data-feather="file-text"></i> Export Excel
                    </button> -->
                </div>

                <h6 class="card-title">Data <?= $Breadcumb ?></h6>

                <div class="table-responsive">
                    <table id="dataPasien" class="table table-bordered table-hover table no-wrap">
                        <thead class="table-info text-dark">
                            <tr>
                                <th style="width: 5%;">#</th>
                                <th>No. RM</th>
                                <th>NIK</th>
                                <th>No. BPJS</th>
                                <th>Nama</th>
                                <th>Jenis Kelamin</th>
                                <th>Tanggal Lahir</th>
                                <th>Alamat</th>
                                <th>Terdaftar</th>
                                <th>Aksi</th>
                            </tr>
                        </thead>
                        <tbody></tbody>
                    </table>
                </div>

            </div>

        </div>
    </div>
</div>

<!-- Modal Tambah Data -->
<div class="modal fade" id="tambahModal" tabindex="-1" role="dialog" aria-labelledby="tambahModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="tambahModalLabel">Tambah Data <?= $Breadcumb ?></h5>

                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
            </div>
            <div class="modal-body">
                <form id="formTambahData">
                    <div class="mb-3">
                        <label for="nik">NIK</label>
                        <div class="input-group">
                            <input type="text" class="form-control" id="nik" name="nik" maxlength="16" onkeypress="hanyaAngka(event)" oninput="bersihkanInputAngka('nik')">
                            <span class="input-group-text">
                                <button class="btn btn-primary" type="button" onclick="cekIHS()">
                                    Cek
                                </button>
                            </span>
                        </div>
                        <small id="ihs_result" class="form-text text-muted"></small>
                    </div>

                    <div class="mb-3">
                        <label for="no_bpjs">No. BPJS</label>
                        <div class="input-group">
                            <input type="text" class="form-control" id="no_bpjs" maxlength="13" name="no_bpjs" onkeypress="hanyaAngka(event)" oninput="bersihkanInputAngka('no_bpjs')">
                            <span class="input-group-text">
                                <button class="btn btn-primary" type="button" onclick="cekNoBPJS()">
                                    Cek
                                </button>
                            </span>
                        </div>
                    </div>
                    <div id="bpjs_result" class="mt-2 text-success small"></div>

                    <div class="mb-3">
                        <label for="nama_lengkap">Nama Lengkap</label>
                        <input type="text" class="form-control" id="nama_lengkap" name="nama_lengkap" required>
                    </div>
                    <div class="mb-3">
                        <label for="tempat_lahir">Tempat Lahir</label>
                        <input type="text" class="form-control" id="tempat_lahir" name="tempat_lahir">
                    </div>

                    <div class="mb-3">
                        <label for="tanggallahir">Tanggal Lahir</label>
                        <div class="input-group">
                            <input type="text" name="tanggallahir" id="tanggallahir" class="form-control" placeholder="Pilih tanggal atau usia (misal: 64 thn 11 bln)" required>
                            <span class="input-group-text" id="calendar-icon"><i data-feather="calendar"></i></span>
                        </div>
                    </div>

                    <div class="mb-3">
                        <label for="jenis_kelamin">Jenis Kelamin</label>
                        <select class="form-control" id="jenis_kelamin" name="jenis_kelamin">
                            <option value="" disabled selected>-- Pilih Jenis Kelamin --</option>
                            <option value="L">Laki - Laki</option>
                            <option value="P">Perempuan</option>
                        </select>
                    </div>



                    <div class="mb-3">
                        <label for="agama">Agama</label>
                        <input type="text" class="form-control" id="agama" name="agama">
                    </div>

                    <div class="mb-3">
                        <label for="status_perkawinan">Status Perkawinan</label>
                        <select class="form-control" id="status_perkawinan" name="status_perkawinan">
                            <option value="">-- Pilih Status --</option>
                            <option value="Belum Kawin">Belum Kawin</option>
                            <option value="Kawin">Kawin</option>
                            <option value="Cerai Hidup">Cerai Hidup</option>
                            <option value="Cerai Mati">Cerai Mati</option>
                        </select>
                    </div>

                    <div class="mb-3">
                        <label for="pekerjaan">Pekerjaan</label>
                        <input type="text" class="form-control" id="pekerjaan" name="pekerjaan">
                    </div>

                    <div class="mb-3">
                        <label for="provinsi">Provinsi</label>
                        <select class="form-control" id="provinsi" name="provinsi" required>
                            <option value="">-- Pilih Provinsi --</option>
                        </select>
                    </div>

                    <div class="mb-3">
                        <label for="kab_kota">Kab/Kota</label>
                        <select class="form-control" id="kab_kota" name="kab_kota" required>
                            <option value="">-- Pilih Kabupaten/Kota --</option>
                        </select>
                    </div>

                    <div class="col-md-12 mb-3">
                        <label for="alamat">Alamat</label>
                        <textarea class="form-control" id="alamat" name="alamat" rows="3"></textarea>
                    </div>

                    <div class="mb-3">
                        <label for="no_hp">No. HP</label>
                        <input type="text" class="form-control" id="no_hp" name="no_hp">
                    </div>

                    <div class="mb-3">
                        <label for="email">Email</label>
                        <input type="email" class="form-control" id="email" name="email">
                    </div>

                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                        <button type="submit" class="btn btn-primary">Tambah</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

<!-- Modal Edit Data -->
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="editModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="editModalLabel">Edit Data <?= $Breadcumb ?></h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
            </div>
            <div class="modal-body">
                <form id="formEditData">
                    <input type="hidden" id="id_pasien" name="id_pasien">

                    <div class="mb-3">
                        <label for="edit_nik">NIK</label>
                        <div class="input-group">
                            <input type="text" class="form-control" id="edit_nik" name="nik" maxlength="16" onkeypress="hanyaAngka(event)" oninput="bersihkanInputAngka('nik')">
                            <span class="input-group-text">
                                <button class="btn btn-primary" type="button" onclick="cekIHS()">
                                    Cek
                                </button>
                            </span>
                        </div>
                        <small id="ihs_result" class="form-text text-muted"></small>
                    </div>

                    <div class="mb-3">
                        <label for="edit_no_bpjs">No. BPJS</label>
                        <div class="input-group">
                            <input type="text" class="form-control" id="edit_no_bpjs" maxlength="13" name="no_bpjs" onkeypress="hanyaAngka(event)" oninput="bersihkanInputAngka('no_bpjs')">
                            <span class="input-group-text">
                                <button class="btn btn-primary" type="button" onclick="cekNoBPJS()">
                                    Cek
                                </button>
                            </span>
                        </div>
                    </div>
                    <div id="bpjs_result" class="mt-2 text-success small"></div>

                    <div class="mb-3">
                        <label for="edit_nama_lengkap">Nama Lengkap</label>
                        <input type="text" class="form-control" id="edit_nama_lengkap" name="nama_lengkap" required>
                    </div>
                    <div class="mb-3">
                        <label for="edit_tempat_lahir">Tempat Lahir</label>
                        <input type="text" class="form-control" id="edit_tempat_lahir" name="tempat_lahir">
                    </div>

                    <div class="mb-3">
                        <label for="edit_tanggallahir">Tanggal Lahir</label>
                        <div class="input-group">
                            <input type="text" name="tanggallahir" id="edit_tanggallahir" class="form-control" placeholder="Pilih tanggal atau usia (misal: 64 thn 11 bln)" required>
                            <span class="input-group-text" id="calendar-icon"><i data-feather="calendar"></i></span>
                        </div>
                    </div>

                    <div class="mb-3">
                        <label for="edit_jenis_kelamin">Jenis Kelamin</label>
                        <select class="form-control" id="edit_jenis_kelamin" name="jenis_kelamin">
                            <option value="" disabled selected>-- Pilih Jenis Kelamin --</option>
                            <option value="L">Laki - Laki</option>
                            <option value="P">Perempuan</option>
                        </select>
                    </div>

                    <div class="mb-3">
                        <label for="edit_agama">Agama</label>
                        <input type="text" class="form-control" id="edit_agama" name="agama">
                    </div>

                    <div class="mb-3">
                        <label for="edit_status_perkawinan">Status Perkawinan</label>
                        <select class="form-control" id="edit_status_perkawinan" name="status_perkawinan">
                            <option value="">-- Pilih Status --</option>
                            <option value="Belum Kawin">Belum Kawin</option>
                            <option value="Kawin">Kawin</option>
                            <option value="Cerai Hidup">Cerai Hidup</option>
                            <option value="Cerai Mati">Cerai Mati</option>
                        </select>
                    </div>

                    <div class="mb-3">
                        <label for="edit_pekerjaan">Pekerjaan</label>
                        <input type="text" class="form-control" id="edit_pekerjaan" name="pekerjaan">
                    </div>

                    <div class="mb-3">
                        <label for="edit_provinsi">Provinsi</label>
                        <select class="form-control" id="edit_provinsi" name="provinsi" required>
                            <option value="">-- Pilih Provinsi --</option>
                        </select>
                    </div>

                    <div class="mb-3">
                        <label for="edit_kab_kota">Kab/Kota</label>
                        <select class="form-control" id="edit_kab_kota" name="kab_kota" required>
                            <option value="">-- Pilih Kabupaten/Kota --</option>
                        </select>
                    </div>

                    <div class="col-md-12 mb-3">
                        <label for="edit_alamat">Alamat</label>
                        <textarea class="form-control" id="edit_alamat" name="alamat" rows="3"></textarea>
                    </div>

                    <div class="mb-3">
                        <label for="edit_no_hp">No. HP</label>
                        <input type="text" class="form-control" id="edit_no_hp" name="no_hp">
                    </div>

                    <div class="mb-3">
                        <label for="edit_email">Email</label>
                        <input type="email" class="form-control" id="edit_email" name="email">
                    </div>

                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                        <button type="submit" class="btn btn-primary">Update</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>


<!-- Modal Import Data -->
<div class="modal fade" id="importModal" tabindex="-1" role="dialog" aria-labelledby="importModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="importModalLabel">Import Data pasien</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <form id="importForm" enctype="multipart/form-data">
                    <div class="mb-3">
                        <label for="fileImport" class="form-label">Pilih File Excel</label>
                        <input type="file" class="form-control" id="fileImport" name="fileImport" accept=".xlsx, .xls, .csv" required>
                    </div>
                    <div class="alert alert-info" role="alert">
                        Format file harus sesuai dengan kolom berikut: <b>Nama, NIK, Tanggal Lahir, Jenis Kelamin, Alamat, Nama Ibu, Nama Ayah, Status Imunisasi, Berat Badan, Tinggi Badan</b>.
                    </div>
                    <button type="submit" class="btn btn-primary">Upload</button>
                </form>
            </div>
        </div>
    </div>
</div>


<!-- cek IHS Satu Sehat -->
<script>
    function cekIHS() {
        const nik = $('#nik').val().trim();
        const out = $('#ihs_result');

        if (nik.length !== 16) {
            out.text('NIK harus 16 digit').removeClass('text-success').addClass('text-danger');
            return;
        }
        out.text('Memeriksa...').removeClass('text-danger text-success');

        $.ajax({
            url: "<?= base_url('satusehat/cek-nik') ?>",
            method: "POST",
            data: {
                nik
            },
            dataType: "json",
            success: function(res) {
                if (res.total > 0 && res.entry) {
                    const pat = res.entry[0].resource;
                    out.text(`✔ ${pat.name[0].given.join(' ')} ${pat.name[0].family}`)
                        .removeClass('text-danger').addClass('text-success');
                } else {
                    out.text('✖ NIK tidak ditemukan').removeClass('text-success').addClass('text-danger');
                }
            },
            error: function() {
                out.text('✖ Gagal terhubung').removeClass('text-success').addClass('text-danger');
            }
        });
    }
</script>

<!-- cek no bpjs -->
<script>
    function cekNoBPJS() {
        const no_bpjs = $('#no_bpjs').val();
        if (!no_bpjs) {
            alert('Masukkan Nomor BPJS terlebih dahulu');
            return;
        }

        $.ajax({
            url: "<?= base_url('bpjs/cek-peserta') ?>",
            method: "POST",
            data: {
                no_bpjs: no_bpjs
            },
            dataType: "json",
            success: function(response) {
                if (response.metaData.code === "200") {
                    $('#bpjs_result').html('Peserta: ' + response.response.peserta.nama + ' (' + response.response.peserta.statusPeserta.keterangan + ')');
                } else {
                    $('#bpjs_result').html('<span class="text-danger">' + response.metaData.message + '</span>');
                }
            },
            error: function(xhr) {
                $('#bpjs_result').html('<span class="text-danger">Terjadi kesalahan</span>');
            }
        });
    }
</script>


<!-- SCRIPT VALIDASI -->
<script>
    // Batasi hanya angka saat input NIK dan BPJS
    function hanyaAngka(evt) {
        const charCode = evt.which ? evt.which : evt.keyCode;
        if (charCode < 48 || charCode > 57) {
            evt.preventDefault();
        }
    }

    // Validasi saat submit
    document.getElementById("formTambahData").addEventListener("submit", function(e) {
        const nik = document.getElementById("nik").value.trim();
        const bpjs = document.getElementById("no_bpjs").value.trim();

        const nikPattern = /^\d{16}$/;
        const bpjsPattern = /^\d{13}$/;

        // Validasi NIK
        if (!nikPattern.test(nik)) {
            alert("NIK harus 16 digit angka.");
            e.preventDefault();
            return false;
        }

        // Validasi BPJS (boleh kosong, tapi kalau diisi harus 13 digit)
        if (bpjs && !bpjsPattern.test(bpjs)) {
            alert("Nomor BPJS harus 13 digit angka.");
            e.preventDefault();
            return false;
        }
    });

    // Hapus karakter non-angka jika ada saat paste
    function bersihkanInputAngka(id) {
        const el = document.getElementById(id);
        el.value = el.value.replace(/\D/g, '');
    }
</script>

<!-- ambil dari alamat nasional -->
<script>
    $(document).ready(function() {
        // Ambil data provinsi
        $.getJSON("https://www.emsifa.com/api-wilayah-indonesia/api/provinces.json", function(data) {
            $.each(data, function(key, val) {
                $('#provinsi').append('<option value="' + val.name + '" data-id="' + val.id + '">' + val.name + '</option>');
            });
        });

        // Ambil kabupaten/kota berdasarkan provinsi
        $('#provinsi').change(function() {
            var provinsiId = $('#provinsi option:selected').data('id');
            $('#kab_kota').html('<option value="">-- Pilih Kabupaten/Kota --</option>');

            $.getJSON("https://www.emsifa.com/api-wilayah-indonesia/api/regencies/" + provinsiId + ".json", function(data) {
                $.each(data, function(key, val) {
                    $('#kab_kota').append('<option value="' + val.name + '">' + val.name + '</option>');
                });
            });
        });
    });

    // =================== Edit Data ===================
    $.getJSON("https://www.emsifa.com/api-wilayah-indonesia/api/provinces.json", function(data) {
        $.each(data, function(key, val) {
            $('#edit_provinsi').append('<option value="' + val.name + '" data-id="' + val.id + '">' + val.name + '</option>');
        });
    });

    $('#edit_provinsi').change(function() {
        var provinsiId = $('#edit_provinsi option:selected').data('id');
        $('#edit_kab_kota').html('<option value="">-- Pilih Kabupaten/Kota --</option>');

        if (provinsiId) {
            $.getJSON("https://www.emsifa.com/api-wilayah-indonesia/api/regencies/" + provinsiId + ".json", function(data) {
                $.each(data, function(key, val) {
                    $('#edit_kab_kota').append('<option value="' + val.name + '">' + val.name + '</option>');
                });
            });
        }
    });
</script>


<!-- UNTUK EXPORT EXCEL -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
<script>
    function exportExcel() {
        $.ajax({
            url: "<?= base_url('pasien/datatables') ?>",
            type: "POST",
            data: {
                length: -1 // ambil semua data
            },
            success: function(response) {
                if (!response.data || response.data.length === 0) {
                    alert("Tidak ada data untuk diekspor!");
                    return;
                }

                // Buat worksheet dan header
                const ws = XLSX.utils.aoa_to_sheet([]);
                const headers = [
                    ["#", "ICDX", "Nama Pasien", "Jenis Kelamin", "Tanggal Lahir", "Alamat", "Tanggal Dibuat"]
                ];
                XLSX.utils.sheet_add_aoa(ws, headers, {
                    origin: "A1"
                });

                // Tambahkan data dari response
                const data = response.data.map((item, index) => [
                    index + 1,
                    item.icdx,
                    item.nama_pasien,
                    item.jenis_kelamin,
                    item.tanggallahir,
                    item.alamat,
                    item.created_at
                ]);

                XLSX.utils.sheet_add_aoa(ws, data, {
                    origin: "A2"
                });

                const wb = XLSX.utils.book_new();
                XLSX.utils.book_append_sheet(wb, ws, "Data Pasien");

                XLSX.writeFile(wb, "Data_Pasien.xlsx");
            },
            error: function(xhr, status, error) {
                alert("Gagal mengambil data dari server!");
                console.error(error);
            }
        });
    }
</script>

<!-- validasi tanggal TAMBAH DAN EDIT -->
<script>
    document.addEventListener("DOMContentLoaded", function() {
        // Ambil semua input tanggal lahir (tambah dan edit)
        const inputIds = ["tanggallahir", "edit_tanggallahir"];

        // Fungsi untuk konversi input usia ke tanggal
        function convertToDate(input) {
            const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
            if (dateRegex.test(input)) {
                return new Date(input);
            }

            const today = new Date();
            let birthDate = null;

            const combinedRegex = /^(\d+)\s*thn\s*(\d+)?\s*bln?$/i;
            const yearOnlyRegex = /^(\d+)\s*thn$/i;
            const monthOnlyRegex = /^(\d+)\s*bln$/i;

            if (combinedRegex.test(input)) {
                const match = input.match(combinedRegex);
                const years = parseInt(match[1]);
                const months = parseInt(match[2] || 0);
                birthDate = new Date(today.getFullYear() - years, today.getMonth() - months, today.getDate());
            } else if (yearOnlyRegex.test(input)) {
                const years = parseInt(input.match(yearOnlyRegex)[1]);
                birthDate = new Date(today.getFullYear() - years, today.getMonth(), today.getDate());
            } else if (monthOnlyRegex.test(input)) {
                const months = parseInt(input.match(monthOnlyRegex)[1]);
                birthDate = new Date(today.getFullYear(), today.getMonth() - months, today.getDate());
            }

            return birthDate;
        }

        // Fungsi untuk validasi dan konversi untuk masing-masing input
        function applyValidation(inputElement) {
            function handleInput() {
                const result = convertToDate(inputElement.value);
                if (result) {
                    inputElement.style.borderColor = "green";
                    inputElement.value = result.toISOString().split('T')[0];
                } else {
                    inputElement.style.borderColor = "red";
                }
            }

            inputElement.addEventListener("input", handleInput);

            const calendarIcon = inputElement.parentElement.querySelector(".input-group-text");
            if (calendarIcon) {
                calendarIcon.addEventListener("click", function() {
                    const today = new Date();
                    const defaultDate = today.toISOString().split('T')[0];
                    inputElement.value = defaultDate;
                    handleInput();
                });
            }
        }

        // Jalankan validasi untuk setiap input ID
        inputIds.forEach(id => {
            const input = document.getElementById(id);
            if (input) {
                applyValidation(input);
            }
        });
    });
</script>


<!-- SCRIPT  UNTUK LOAD DATA  TABLE -->
<script>
    $(document).ready(function() {
        $('#dataPasien').DataTable({
            processing: true,
            serverSide: true,
            ajax: {
                url: "<?= base_url('pasien/datatables') ?>",
                type: "POST"
            },
            columns: [{
                    data: 'no'
                },
                {
                    data: 'no_rm'
                },
                {
                    data: 'nik'
                },
                {
                    data: 'no_bpjs'
                },
                {
                    data: 'nama_pasien'
                },
                {
                    data: 'jenis_kelamin'
                },
                {
                    data: 'tanggal_lahir'
                },
                {
                    data: 'alamat'
                },
                {
                    data: 'created_at'
                },
                {
                    data: 'aksi',
                    orderable: false,
                    searchable: false
                }
            ],
            drawCallback: function() {
                // Memanggil feather.replace() setelah DataTable selesai dimuat icon
                feather.replace();
            }
        });
    });
</script>


<!-- script import form -->
<script>
    $(document).ready(function() {
        $('#importForm').submit(function(e) {
            e.preventDefault();

            let formData = new FormData(this);

            $.ajax({
                url: '<?= base_url('pasien/importData') ?>',
                type: 'POST',
                data: formData,
                processData: false,
                contentType: false,
                success: function(response) {
                    // Jika berhasil import
                    if (response.status === 'success') {
                        Swal.fire({
                            title: 'Berhasil!',
                            text: response.message,
                            icon: 'success',
                            confirmButtonText: 'OK'
                        }).then((result) => {
                            if (result.isConfirmed) {
                                // Menutup modal dan reset form
                                $('#importModal').modal('hide');
                                $('#formImportData')[0].reset();
                                // Lakukan refresh atau tindakan lain yang diperlukan
                            }
                        });
                    } else {
                        // Jika gagal import atau ada duplikasi
                        Swal.fire({
                            title: 'Gagal!',
                            text: response.message,
                            icon: 'error',
                            confirmButtonText: 'Tutup'
                        });
                    }
                },
                error: function() {
                    // Menangani error saat AJAX gagal
                    Swal.fire({
                        title: 'Terjadi Kesalahan!',
                        text: 'Silakan coba lagi.',
                        icon: 'error',
                        confirmButtonText: 'Tutup'
                    });
                }
            });
        });
    });
</script>

<!-- untuk form tambah data -->
<script>
    $(document).ready(function() {
        // Ketika form tambah data disubmit
        $('#formTambahData').submit(function(e) {
            e.preventDefault(); // Mencegah form untuk submit biasa

            var formData = $(this).serialize(); // Mengambil data form

            $.ajax({
                url: "<?= base_url('pasien/tambahData') ?>", // Ganti dengan URL controller untuk tambah data
                type: "POST",
                data: formData,
                dataType: "json", // Menyatakan bahwa response yang diharapkan adalah JSON
                success: function(response) {
                    // Jika berhasil menambahkan data
                    if (response.status === 'success') {
                        Swal.fire({
                            title: 'Berhasil!',
                            text: response.message,
                            icon: 'success',
                            confirmButtonText: 'OK'
                        }).then((result) => {
                            if (result.isConfirmed) {
                                // Menutup modal form
                                $('#tambahModal').modal('hide');

                                // Menyegarkan tabel data tanpa reload
                                location.reload(); // Atau panggil fungsi khusus untuk refresh tabel
                            }
                        });
                    } else if (response.status === 'error') {
                        // Jika terjadi kesalahan
                        Swal.fire({
                            title: 'Gagal!',
                            text: response.message,
                            icon: 'error',
                            confirmButtonText: 'Tutup'
                        });
                    }
                },
                error: function(xhr, status, error) {
                    // Jika terjadi error pada request
                    Swal.fire({
                        title: 'Kesalahan!',
                        text: 'Terjadi kesalahan dalam proses. Silakan coba lagi.',
                        icon: 'error',
                        confirmButtonText: 'Tutup'
                    });
                }
            });
        });
    });
</script>

<!-- Ambil Data untuk nilai Update -->
<script>
    // Fungsi untuk memuat data ke modal edit
    function updateData(id_pasien) {
        $.ajax({
            url: "<?= base_url('pasien/getData') ?>/" + id_pasien, // URL untuk mendapatkan data berdasarkan ID
            type: "GET",
            dataType: "json",
            success: function(response) {
                if (response) {
                    $('#id_pasien').val(response.id_pasien);
                    $('#edit_nik').val(response.nik);
                    $('#edit_no_bpjs').val(response.no_bpjs);
                    $('#edit_nama_lengkap').val(response.nama_lengkap);
                    $('#edit_tempat_lahir').val(response.tempat_lahir);
                    $('#edit_tanggallahir').val(response.tanggal_lahir);
                    $('#edit_jenis_kelamin').val(response.jenis_kelamin).change;
                    $('#edit_agama').val(response.agama).change;
                    $('#edit_status_perkawinan').val(response.status_perkawinan).change;
                    $('#edit_pekerjaan').val(response.pekerjaan);
                    $('#edit_provinsi').val(response.provinsi).change;
                    $('#edit_kab_kota').val(response.kab_kota).change;
                    $('#edit_alamat').val(response.alamat);
                    $('#edit_no_hp').val(response.no_hp);
                    $('#edit_email').val(response.email);

                    $('#editModal').modal('show'); // Tampilkan modal
                } else {
                    alert('Data tidak ditemukan!');
                }
            },
            error: function(xhr, status, error) {
                alert('Terjadi kesalahan. Silakan coba lagi.');
            }
        });
    }
</script>


<!-- // Fungsi untuk submit form update data -->
<script>
    $('#formEditData').submit(function(e) {
        e.preventDefault(); // Mencegah submit biasa

        var formData = $(this).serialize(); // Ambil data form

        $.ajax({
            url: "<?= base_url('pasien/updateData') ?>", // URL untuk update data
            type: "POST",
            data: formData,
            dataType: "json",
            success: function(response) {
                // Jika berhasil menambahkan data
                if (response.status === 'success') {
                    Swal.fire({
                        title: 'Berhasil!',
                        text: response.message,
                        icon: 'success',
                        confirmButtonText: 'OK'
                    }).then((result) => {
                        if (result.isConfirmed) {
                            // Menutup modal form
                            $('#tambahModal').modal('hide');

                            // Menyegarkan tabel data tanpa reload
                            location.reload(); // Atau panggil fungsi khusus untuk refresh tabel
                        }
                    });
                } else if (response.status === 'error') {
                    // Jika terjadi kesalahan
                    Swal.fire({
                        title: 'Gagal!',
                        text: response.message,
                        icon: 'error',
                        confirmButtonText: 'Tutup'
                    });
                }
            },
            error: function(xhr, status, error) {
                // Jika terjadi error pada request
                Swal.fire({
                    title: 'Kesalahan!',
                    text: 'Terjadi kesalahan dalam proses. Silakan coba lagi.',
                    icon: 'error',
                    confirmButtonText: 'Tutup'
                });
            }
        });
    });
</script>

<!-- Untuk delete -->
<script>
    function deleteData(id_pasien) {
        // Konfirmasi untuk menghapus data
        Swal.fire({
            title: 'Apakah Anda yakin ingin menghapus data ini?',
            text: "Data yang dihapus tidak dapat dikembalikan.",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonText: 'Iya, Hapus!',
            cancelButtonText: 'Batal',
            reverseButtons: true
        }).then((result) => {
            if (result.isConfirmed) {
                $.ajax({
                    url: "<?= base_url('pasien/deleteData') ?>", // Ganti dengan URL endpoint controller Anda
                    type: "POST", // Menggunakan POST karena ini adalah penghapusan data
                    data: {
                        id_pasien: id_pasien, // Mengirimkan ID ke server
                        // Anda bisa menambahkan parameter lain jika diperlukan
                    },
                    dataType: "json", // Menentukan format data yang diterima (JSON)
                    success: function(response) {
                        // Jika berhasil menambahkan data
                        if (response.status === 'success') {
                            Swal.fire({
                                title: 'Berhasil!',
                                text: response.message,
                                icon: 'success',
                                confirmButtonText: 'OK'
                            }).then((result) => {
                                if (result.isConfirmed) {
                                    // Menutup modal form
                                    $('#tambahModal').modal('hide');

                                    // Menyegarkan tabel data tanpa reload
                                    location.reload(); // Atau panggil fungsi khusus untuk refresh tabel
                                }
                            });
                        } else if (response.status === 'error') {
                            // Jika terjadi kesalahan
                            Swal.fire({
                                title: 'Gagal!',
                                text: response.message,
                                icon: 'error',
                                confirmButtonText: 'Tutup'
                            });
                        }
                    },
                    error: function(xhr, status, error) {
                        // Jika terjadi error pada request
                        Swal.fire({
                            title: 'Kesalahan!',
                            text: 'Terjadi kesalahan dalam proses. Silakan coba lagi.',
                            icon: 'error',
                            confirmButtonText: 'Tutup'
                        });
                    }
                });
            }
        });
    }
</script>

<!-- untuk tombol status pasien -->
<script>
    function changeStatus(id_pasien, is_active) {
        Swal.fire({
            title: "Konfirmasi",
            text: "Apakah Anda yakin ingin mengubah status pasien ini?",
            icon: "warning",
            showCancelButton: true,
            confirmButtonColor: "#3085d6",
            cancelButtonColor: "#d33",
            confirmButtonText: "Ya, Ubah!",
            cancelButtonText: "Batal",
        }).then((result) => {
            if (result.isConfirmed) {
                // Kirim permintaan AJAX ke server
                $.ajax({
                    url: '<?= base_url('pasien/changeStatus') ?>', // Sesuaikan dengan route aplikasi Anda
                    type: 'POST',
                    data: {
                        id_pasien: id_pasien,
                        is_active: is_active
                    },
                    success: function(response) {
                        if (response.status === 'success') {
                            Swal.fire({
                                title: "Berhasil!",
                                text: response.message,
                                icon: "success",
                                confirmButtonText: "OK"
                            }).then(() => {
                                location.reload(); // Reload halaman setelah berhasil
                            });
                        } else if (response.status === 'error') {
                            Swal.fire({
                                title: "Gagal!",
                                text: response.message,
                                icon: "error",
                                confirmButtonText: "OK"
                            });
                        }
                    },
                    error: function() {
                        Swal.fire({
                            title: "Kesalahan!",
                            text: "Terjadi kesalahan pada server. Silakan coba lagi nanti.",
                            icon: "error",
                            confirmButtonText: "OK"
                        });
                    }
                });
            }
        });
    }
</script>


<?= $this->endSection(); ?>