-- phpMyAdmin SQL Dump
-- version 5.2.2
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Waktu pembuatan: 23 Jun 2026 pada 19.46
-- Versi server: 10.6.27-MariaDB
-- Versi PHP: 8.4.21

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `kithadev_e_rm`
--

-- --------------------------------------------------------

--
-- Struktur dari tabel `reg_desa`
--

CREATE TABLE `reg_desa` (
  `desa_id` char(10) NOT NULL,
  `id_kecamatan` char(6) NOT NULL,
  `nama_desa` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `reg_kecamatan`
--

CREATE TABLE `reg_kecamatan` (
  `kecamatan_id` char(6) NOT NULL,
  `id_kota` char(4) NOT NULL,
  `nama_kecamatan` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `reg_kota`
--

CREATE TABLE `reg_kota` (
  `kota_id` char(4) NOT NULL,
  `id_provinsi` char(2) NOT NULL,
  `kota_nama` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `reg_provinsi`
--

CREATE TABLE `reg_provinsi` (
  `provinsi_id` char(2) NOT NULL,
  `nama_provinsi` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_anamnesis`
--

CREATE TABLE `tb_anamnesis` (
  `anamnesis_id` varchar(36) NOT NULL,
  `pelayanan_id` varchar(36) NOT NULL,
  `keluhan_utama` text DEFAULT NULL,
  `riwayat_penyakit_sekarang` text DEFAULT NULL,
  `riwayat_penyakit_dahulu` text DEFAULT NULL,
  `riwayat_alergi` text DEFAULT NULL,
  `riwayat_pengobatan` text DEFAULT NULL,
  `riwayat_keluarga` text DEFAULT NULL,
  `riwayat_sosial` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_antrian`
--

CREATE TABLE `tb_antrian` (
  `antrian_id` varchar(36) NOT NULL,
  `id_registrasi` varchar(36) NOT NULL,
  `nomor_antrian` int(11) NOT NULL,
  `loket` varchar(50) DEFAULT NULL,
  `status_antrian` enum('MENUNGGU','DIPANGGIL','SELESAI','BATAL') DEFAULT 'MENUNGGU',
  `waktu_panggil` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `jenis_antrian` enum('LOKET','POLI') DEFAULT 'LOKET',
  `id_poli` varchar(36) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_cppt`
--

CREATE TABLE `tb_cppt` (
  `cppt_id` varchar(36) NOT NULL,
  `pelayanan_id` varchar(36) NOT NULL,
  `subjektif` text DEFAULT NULL,
  `objektif` text DEFAULT NULL,
  `asesmen` text DEFAULT NULL,
  `plan` text DEFAULT NULL,
  `instruksi` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_diagnosis`
--

CREATE TABLE `tb_diagnosis` (
  `diagnosis_id` varchar(36) NOT NULL,
  `pelayanan_id` varchar(36) NOT NULL,
  `kode_icd10` varchar(20) DEFAULT NULL,
  `nama_diagnosis` varchar(255) DEFAULT NULL,
  `tipe` enum('UTAMA','SEKUNDER') DEFAULT 'UTAMA',
  `catatan` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_dokter`
--

CREATE TABLE `tb_dokter` (
  `dokter_id` varchar(36) NOT NULL,
  `id_petugas` varchar(36) DEFAULT NULL,
  `id_poli` varchar(36) NOT NULL,
  `sip` varchar(50) DEFAULT NULL,
  `spesialisasi` varchar(100) DEFAULT NULL,
  `no_telp` varchar(15) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_hak_akses`
--

CREATE TABLE `tb_hak_akses` (
  `hak_akses_id` varchar(36) NOT NULL,
  `nama_hak_akses` varchar(50) NOT NULL,
  `deskripsi` text DEFAULT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_icd9cm`
--

CREATE TABLE `tb_icd9cm` (
  `kode` varchar(20) NOT NULL,
  `nama` varchar(255) NOT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_icd10`
--

CREATE TABLE `tb_icd10` (
  `kode` varchar(20) NOT NULL,
  `nama` varchar(255) NOT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_jabatan`
--

CREATE TABLE `tb_jabatan` (
  `jabatan_id` varchar(36) NOT NULL,
  `kode_jabatan` varchar(10) NOT NULL,
  `nama_jabatan` varchar(100) NOT NULL,
  `deskripsi` text DEFAULT NULL,
  `level_jabatan` int(11) DEFAULT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_jadwal_dokter`
--

CREATE TABLE `tb_jadwal_dokter` (
  `jadwal_dokter_id` varchar(36) NOT NULL,
  `id_dokter` varchar(36) NOT NULL,
  `id_poli` varchar(36) NOT NULL,
  `hari` varchar(10) NOT NULL,
  `jam_mulai` time NOT NULL,
  `jam_selesai` time NOT NULL,
  `kuota` int(11) DEFAULT 0,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_jadwal_poli`
--

CREATE TABLE `tb_jadwal_poli` (
  `jadwal_id` varchar(36) NOT NULL,
  `id_poli` varchar(36) NOT NULL,
  `hari` varchar(10) NOT NULL,
  `jam_mulai` time NOT NULL,
  `jam_selesai` time NOT NULL,
  `kuota` int(11) DEFAULT 0,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_pasien`
--

CREATE TABLE `tb_pasien` (
  `pasien_id` varchar(36) NOT NULL,
  `rme_no` varchar(20) NOT NULL,
  `nik` varchar(16) NOT NULL,
  `no_kk` varchar(16) DEFAULT NULL,
  `nama_lengkap` varchar(100) NOT NULL,
  `gelar_depan` varchar(20) DEFAULT NULL,
  `gelar_belakang` varchar(20) DEFAULT NULL,
  `tempat_lahir` varchar(50) DEFAULT NULL,
  `tanggal_lahir` date DEFAULT NULL,
  `jenis_kelamin` char(1) NOT NULL,
  `golongan_darah` char(2) DEFAULT NULL,
  `agama` varchar(20) DEFAULT NULL,
  `status_perkawinan` varchar(20) DEFAULT NULL,
  `pendidikan` varchar(50) DEFAULT NULL,
  `pekerjaan` varchar(100) DEFAULT NULL,
  `kewarganegaraan` varchar(50) DEFAULT 'WNI',
  `alamat` text DEFAULT NULL,
  `rt` varchar(3) DEFAULT NULL,
  `rw` varchar(3) DEFAULT NULL,
  `kodepos` varchar(10) DEFAULT NULL,
  `id_provinsi` varchar(36) DEFAULT NULL,
  `id_kota` varchar(36) DEFAULT NULL,
  `id_kecamatan` varchar(36) DEFAULT NULL,
  `id_desa` varchar(36) DEFAULT NULL,
  `no_telp` varchar(15) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  `penanggung_jawab` varchar(100) DEFAULT NULL,
  `hubungan_pj` varchar(50) DEFAULT NULL,
  `no_telp_pj` varchar(15) DEFAULT NULL,
  `alamat_pj` text DEFAULT NULL,
  `jenis_asuransi` varchar(50) DEFAULT NULL,
  `no_asuransi` varchar(30) DEFAULT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_pelayanan`
--

CREATE TABLE `tb_pelayanan` (
  `pelayanan_id` varchar(36) NOT NULL,
  `id_registrasi` varchar(36) NOT NULL,
  `id_pasien` varchar(36) NOT NULL,
  `id_poli` varchar(36) NOT NULL,
  `id_dokter` varchar(36) DEFAULT NULL,
  `tanggal_pelayanan` date NOT NULL,
  `status_pelayanan` enum('DRAFT','SELESAI') DEFAULT 'DRAFT',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_petugas`
--

CREATE TABLE `tb_petugas` (
  `petugas_id` varchar(36) NOT NULL,
  `nip` varchar(50) DEFAULT NULL,
  `nama_lengkap` varchar(100) NOT NULL,
  `tempat_lahir` varchar(50) DEFAULT NULL,
  `tanggal_lahir` date DEFAULT NULL,
  `jenis_kelamin` char(1) DEFAULT NULL,
  `alamat` text DEFAULT NULL,
  `no_telp` varchar(15) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  `id_user` varchar(36) DEFAULT NULL,
  `id_jabatan` varchar(36) DEFAULT NULL,
  `id_unit` varchar(36) DEFAULT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `id_poli` varchar(225) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_poli`
--

CREATE TABLE `tb_poli` (
  `poli_id` varchar(36) NOT NULL,
  `kode_poli` varchar(10) NOT NULL,
  `nama_poli` varchar(100) NOT NULL,
  `deskripsi` text DEFAULT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_registrasi`
--

CREATE TABLE `tb_registrasi` (
  `registrasi_id` varchar(36) NOT NULL,
  `nomor_reservasi` varchar(20) DEFAULT NULL,
  `kode_verifikasi` varchar(10) DEFAULT NULL,
  `status_verifikasi` enum('BELUM','SUDAH','KADALUARSA') DEFAULT 'BELUM',
  `id_pasien` varchar(36) NOT NULL,
  `id_poli` varchar(36) NOT NULL,
  `id_dokter` varchar(36) DEFAULT NULL,
  `id_petugas` varchar(36) DEFAULT NULL,
  `id_petugas_pj` varchar(36) DEFAULT NULL,
  `tipe_pembayaran` varchar(50) DEFAULT NULL,
  `no_asuransi` varchar(50) DEFAULT NULL,
  `tanggal_registrasi` date NOT NULL,
  `jam_registrasi` time DEFAULT NULL,
  `cara_masuk` varchar(50) DEFAULT NULL,
  `jenis_kunjungan` enum('SAKIT','SEHAT') DEFAULT 'SAKIT',
  `jenis_perawatan` enum('RAWAT JALAN','RAWAT INAP','PROMOTIF') DEFAULT 'RAWAT JALAN',
  `registrasi_mandiri` tinyint(1) DEFAULT 0,
  `sumber_registrasi` enum('LOKET','ONLINE') DEFAULT 'LOKET',
  `status_registrasi` varchar(20) DEFAULT 'TERDAFTAR',
  `status_kehadiran` varchar(20) DEFAULT 'TERDAFTAR',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `waktu_mulai_loket` timestamp NULL DEFAULT NULL,
  `waktu_selesai_loket` timestamp NULL DEFAULT NULL,
  `waktu_mulai_poli` timestamp NULL DEFAULT NULL,
  `waktu_selesai_poli` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_terapi`
--

CREATE TABLE `tb_terapi` (
  `terapi_id` varchar(36) NOT NULL,
  `pelayanan_id` varchar(36) NOT NULL,
  `nama_obat` varchar(255) DEFAULT NULL,
  `dosis` varchar(100) DEFAULT NULL,
  `frekuensi` varchar(100) DEFAULT NULL,
  `rute` varchar(100) DEFAULT NULL,
  `durasi` varchar(100) DEFAULT NULL,
  `jumlah` varchar(50) DEFAULT NULL,
  `catatan` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_tindakan`
--

CREATE TABLE `tb_tindakan` (
  `tindakan_id` varchar(36) NOT NULL,
  `pelayanan_id` varchar(36) NOT NULL,
  `kode_icd9` varchar(20) DEFAULT NULL,
  `nama_tindakan` varchar(255) DEFAULT NULL,
  `catatan` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_unit`
--

CREATE TABLE `tb_unit` (
  `unit_id` varchar(36) NOT NULL,
  `nama_unit` varchar(100) NOT NULL,
  `deskripsi` text DEFAULT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_user`
--

CREATE TABLE `tb_user` (
  `user_id` varchar(36) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(255) NOT NULL,
  `nama_lengkap` varchar(100) NOT NULL,
  `email` varchar(100) DEFAULT NULL,
  `no_telp` varchar(15) DEFAULT NULL,
  `id_hak_akses` varchar(36) NOT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_vital_sign`
--

CREATE TABLE `tb_vital_sign` (
  `vital_sign_id` varchar(36) NOT NULL,
  `pelayanan_id` varchar(36) NOT NULL,
  `tekanan_darah` varchar(20) DEFAULT NULL,
  `nadi` int(11) DEFAULT NULL,
  `respirasi` int(11) DEFAULT NULL,
  `suhu` decimal(4,1) DEFAULT NULL,
  `tinggi` decimal(5,2) DEFAULT NULL,
  `berat` decimal(5,2) DEFAULT NULL,
  `lingkar_perut` decimal(5,2) DEFAULT NULL,
  `spo2` int(11) DEFAULT NULL,
  `imt` decimal(5,2) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Indexes for dumped tables
--

--
-- Indeks untuk tabel `reg_desa`
--
ALTER TABLE `reg_desa`
  ADD PRIMARY KEY (`desa_id`),
  ADD KEY `fk_id_kecamatan` (`id_kecamatan`);

--
-- Indeks untuk tabel `reg_kecamatan`
--
ALTER TABLE `reg_kecamatan`
  ADD PRIMARY KEY (`kecamatan_id`),
  ADD KEY `fk_id_kota` (`id_kota`);

--
-- Indeks untuk tabel `reg_kota`
--
ALTER TABLE `reg_kota`
  ADD PRIMARY KEY (`kota_id`),
  ADD KEY `fk_Id_provinsi` (`id_provinsi`);

--
-- Indeks untuk tabel `reg_provinsi`
--
ALTER TABLE `reg_provinsi`
  ADD PRIMARY KEY (`provinsi_id`);

--
-- Indeks untuk tabel `tb_anamnesis`
--
ALTER TABLE `tb_anamnesis`
  ADD PRIMARY KEY (`anamnesis_id`),
  ADD KEY `idx_anamnesis_pelayanan` (`pelayanan_id`);

--
-- Indeks untuk tabel `tb_antrian`
--
ALTER TABLE `tb_antrian`
  ADD PRIMARY KEY (`antrian_id`);

--
-- Indeks untuk tabel `tb_cppt`
--
ALTER TABLE `tb_cppt`
  ADD PRIMARY KEY (`cppt_id`),
  ADD KEY `idx_cppt_pelayanan` (`pelayanan_id`);

--
-- Indeks untuk tabel `tb_diagnosis`
--
ALTER TABLE `tb_diagnosis`
  ADD PRIMARY KEY (`diagnosis_id`),
  ADD KEY `idx_diagnosis_pelayanan` (`pelayanan_id`),
  ADD KEY `idx_diagnosis_icd10` (`kode_icd10`);

--
-- Indeks untuk tabel `tb_dokter`
--
ALTER TABLE `tb_dokter`
  ADD PRIMARY KEY (`dokter_id`),
  ADD UNIQUE KEY `unique_id_petugas` (`id_petugas`),
  ADD KEY `fk_dokter_poli` (`id_poli`);

--
-- Indeks untuk tabel `tb_hak_akses`
--
ALTER TABLE `tb_hak_akses`
  ADD PRIMARY KEY (`hak_akses_id`),
  ADD UNIQUE KEY `nama_hak_akses` (`nama_hak_akses`);

--
-- Indeks untuk tabel `tb_icd9cm`
--
ALTER TABLE `tb_icd9cm`
  ADD PRIMARY KEY (`kode`);

--
-- Indeks untuk tabel `tb_icd10`
--
ALTER TABLE `tb_icd10`
  ADD PRIMARY KEY (`kode`);

--
-- Indeks untuk tabel `tb_jabatan`
--
ALTER TABLE `tb_jabatan`
  ADD PRIMARY KEY (`jabatan_id`),
  ADD UNIQUE KEY `kode_jabatan` (`kode_jabatan`);

--
-- Indeks untuk tabel `tb_jadwal_dokter`
--
ALTER TABLE `tb_jadwal_dokter`
  ADD PRIMARY KEY (`jadwal_dokter_id`),
  ADD KEY `fk_jadwal_dokter` (`id_dokter`),
  ADD KEY `fk_jadwal_dokter_poli` (`id_poli`);

--
-- Indeks untuk tabel `tb_jadwal_poli`
--
ALTER TABLE `tb_jadwal_poli`
  ADD PRIMARY KEY (`jadwal_id`),
  ADD KEY `fk_jadwal_poli` (`id_poli`);

--
-- Indeks untuk tabel `tb_pasien`
--
ALTER TABLE `tb_pasien`
  ADD PRIMARY KEY (`pasien_id`),
  ADD UNIQUE KEY `rme_no` (`rme_no`),
  ADD UNIQUE KEY `unique_nik` (`nik`);

--
-- Indeks untuk tabel `tb_pelayanan`
--
ALTER TABLE `tb_pelayanan`
  ADD PRIMARY KEY (`pelayanan_id`),
  ADD KEY `idx_pelayanan_registrasi` (`id_registrasi`),
  ADD KEY `idx_pelayanan_pasien` (`id_pasien`),
  ADD KEY `idx_pelayanan_poli` (`id_poli`),
  ADD KEY `idx_pelayanan_dokter` (`id_dokter`);

--
-- Indeks untuk tabel `tb_petugas`
--
ALTER TABLE `tb_petugas`
  ADD PRIMARY KEY (`petugas_id`),
  ADD UNIQUE KEY `id_user` (`id_user`);

--
-- Indeks untuk tabel `tb_poli`
--
ALTER TABLE `tb_poli`
  ADD PRIMARY KEY (`poli_id`),
  ADD UNIQUE KEY `kode_poli` (`kode_poli`);

--
-- Indeks untuk tabel `tb_registrasi`
--
ALTER TABLE `tb_registrasi`
  ADD PRIMARY KEY (`registrasi_id`),
  ADD UNIQUE KEY `unique_nomor_reservasi` (`nomor_reservasi`),
  ADD KEY `fk_reg_pasien` (`id_pasien`),
  ADD KEY `fk_reg_poli` (`id_poli`),
  ADD KEY `fk_reg_dokter` (`id_dokter`);

--
-- Indeks untuk tabel `tb_terapi`
--
ALTER TABLE `tb_terapi`
  ADD PRIMARY KEY (`terapi_id`),
  ADD KEY `idx_terapi_pelayanan` (`pelayanan_id`),
  ADD KEY `idx_terapi_obat` (`nama_obat`);

--
-- Indeks untuk tabel `tb_tindakan`
--
ALTER TABLE `tb_tindakan`
  ADD PRIMARY KEY (`tindakan_id`),
  ADD KEY `idx_tindakan_pelayanan` (`pelayanan_id`),
  ADD KEY `idx_tindakan_icd9` (`kode_icd9`);

--
-- Indeks untuk tabel `tb_unit`
--
ALTER TABLE `tb_unit`
  ADD PRIMARY KEY (`unit_id`);

--
-- Indeks untuk tabel `tb_user`
--
ALTER TABLE `tb_user`
  ADD PRIMARY KEY (`user_id`),
  ADD UNIQUE KEY `username` (`username`),
  ADD KEY `fk_user_hak_akses` (`id_hak_akses`);

--
-- Indeks untuk tabel `tb_vital_sign`
--
ALTER TABLE `tb_vital_sign`
  ADD PRIMARY KEY (`vital_sign_id`),
  ADD KEY `idx_vital_pelayanan` (`pelayanan_id`);

--
-- Ketidakleluasaan untuk tabel pelimpahan (Dumped Tables)
--

--
-- Ketidakleluasaan untuk tabel `reg_desa`
--
ALTER TABLE `reg_desa`
  ADD CONSTRAINT `fk_district` FOREIGN KEY (`id_kecamatan`) REFERENCES `reg_kecamatan` (`kecamatan_id`),
  ADD CONSTRAINT `fk_id_kecamatan` FOREIGN KEY (`id_kecamatan`) REFERENCES `reg_kecamatan` (`kecamatan_id`);

--
-- Ketidakleluasaan untuk tabel `reg_kecamatan`
--
ALTER TABLE `reg_kecamatan`
  ADD CONSTRAINT `fk_id_kota` FOREIGN KEY (`id_kota`) REFERENCES `reg_kota` (`kota_id`),
  ADD CONSTRAINT `fk_regency` FOREIGN KEY (`id_kota`) REFERENCES `reg_kota` (`kota_id`);

--
-- Ketidakleluasaan untuk tabel `reg_kota`
--
ALTER TABLE `reg_kota`
  ADD CONSTRAINT `fk_Id_provinsi` FOREIGN KEY (`id_provinsi`) REFERENCES `reg_provinsi` (`provinsi_id`),
  ADD CONSTRAINT `fk_province` FOREIGN KEY (`id_provinsi`) REFERENCES `reg_provinsi` (`provinsi_id`);

--
-- Ketidakleluasaan untuk tabel `tb_anamnesis`
--
ALTER TABLE `tb_anamnesis`
  ADD CONSTRAINT `fk_anamnesis_pelayanan` FOREIGN KEY (`pelayanan_id`) REFERENCES `tb_pelayanan` (`pelayanan_id`);

--
-- Ketidakleluasaan untuk tabel `tb_cppt`
--
ALTER TABLE `tb_cppt`
  ADD CONSTRAINT `fk_cppt_pelayanan` FOREIGN KEY (`pelayanan_id`) REFERENCES `tb_pelayanan` (`pelayanan_id`);

--
-- Ketidakleluasaan untuk tabel `tb_diagnosis`
--
ALTER TABLE `tb_diagnosis`
  ADD CONSTRAINT `fk_diagnosis_pelayanan` FOREIGN KEY (`pelayanan_id`) REFERENCES `tb_pelayanan` (`pelayanan_id`);

--
-- Ketidakleluasaan untuk tabel `tb_dokter`
--
ALTER TABLE `tb_dokter`
  ADD CONSTRAINT `fk_dokter_petugas` FOREIGN KEY (`id_petugas`) REFERENCES `tb_petugas` (`petugas_id`),
  ADD CONSTRAINT `fk_dokter_poli` FOREIGN KEY (`id_poli`) REFERENCES `tb_poli` (`poli_id`);

--
-- Ketidakleluasaan untuk tabel `tb_jadwal_dokter`
--
ALTER TABLE `tb_jadwal_dokter`
  ADD CONSTRAINT `fk_jadwal_dokter` FOREIGN KEY (`id_dokter`) REFERENCES `tb_dokter` (`dokter_id`),
  ADD CONSTRAINT `fk_jadwal_dokter_poli` FOREIGN KEY (`id_poli`) REFERENCES `tb_poli` (`poli_id`);

--
-- Ketidakleluasaan untuk tabel `tb_jadwal_poli`
--
ALTER TABLE `tb_jadwal_poli`
  ADD CONSTRAINT `fk_jadwal_poli` FOREIGN KEY (`id_poli`) REFERENCES `tb_poli` (`poli_id`);

--
-- Ketidakleluasaan untuk tabel `tb_pelayanan`
--
ALTER TABLE `tb_pelayanan`
  ADD CONSTRAINT `fk_pelayanan_dokter` FOREIGN KEY (`id_dokter`) REFERENCES `tb_dokter` (`dokter_id`),
  ADD CONSTRAINT `fk_pelayanan_pasien` FOREIGN KEY (`id_pasien`) REFERENCES `tb_pasien` (`pasien_id`),
  ADD CONSTRAINT `fk_pelayanan_poli` FOREIGN KEY (`id_poli`) REFERENCES `tb_poli` (`poli_id`),
  ADD CONSTRAINT `fk_pelayanan_registrasi` FOREIGN KEY (`id_registrasi`) REFERENCES `tb_registrasi` (`registrasi_id`);

--
-- Ketidakleluasaan untuk tabel `tb_petugas`
--
ALTER TABLE `tb_petugas`
  ADD CONSTRAINT `fk_petugas_user` FOREIGN KEY (`id_user`) REFERENCES `tb_user` (`user_id`);

--
-- Ketidakleluasaan untuk tabel `tb_registrasi`
--
ALTER TABLE `tb_registrasi`
  ADD CONSTRAINT `fk_reg_dokter` FOREIGN KEY (`id_dokter`) REFERENCES `tb_dokter` (`dokter_id`),
  ADD CONSTRAINT `fk_reg_pasien` FOREIGN KEY (`id_pasien`) REFERENCES `tb_pasien` (`pasien_id`),
  ADD CONSTRAINT `fk_reg_poli` FOREIGN KEY (`id_poli`) REFERENCES `tb_poli` (`poli_id`);

--
-- Ketidakleluasaan untuk tabel `tb_terapi`
--
ALTER TABLE `tb_terapi`
  ADD CONSTRAINT `fk_terapi_pelayanan` FOREIGN KEY (`pelayanan_id`) REFERENCES `tb_pelayanan` (`pelayanan_id`);

--
-- Ketidakleluasaan untuk tabel `tb_tindakan`
--
ALTER TABLE `tb_tindakan`
  ADD CONSTRAINT `fk_tindakan_pelayanan` FOREIGN KEY (`pelayanan_id`) REFERENCES `tb_pelayanan` (`pelayanan_id`);

--
-- Ketidakleluasaan untuk tabel `tb_user`
--
ALTER TABLE `tb_user`
  ADD CONSTRAINT `fk_user_hak_akses` FOREIGN KEY (`id_hak_akses`) REFERENCES `tb_hak_akses` (`hak_akses_id`);

--
-- Ketidakleluasaan untuk tabel `tb_vital_sign`
--
ALTER TABLE `tb_vital_sign`
  ADD CONSTRAINT `fk_vital_pelayanan` FOREIGN KEY (`pelayanan_id`) REFERENCES `tb_pelayanan` (`pelayanan_id`);

-- --------------------------------------------------------

--
-- Sinkronisasi modul farmasi dan logistik
--

CREATE TABLE `tb_bentuk_sediaan` (
  `bentuk_sediaan_id` varchar(36) NOT NULL,
  `nama_bentuk` varchar(100) NOT NULL,
  `deskripsi` text DEFAULT NULL,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `tb_master_obat` (
  `obat_id` varchar(36) NOT NULL,
  `kode_obat` varchar(30) NOT NULL,
  `nama_obat` varchar(255) NOT NULL,
  `bentuk_sediaan_id` varchar(36) DEFAULT NULL,
  `satuan_kecil` varchar(50) NOT NULL,
  `kategori` varchar(100) DEFAULT NULL,
  `harga_beli` decimal(15,2) DEFAULT 0.00,
  `harga_jual` decimal(15,2) DEFAULT 0.00,
  `stok_minimum` decimal(15,2) DEFAULT 0.00,
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `tb_lokasi_stok` (
  `lokasi_id` varchar(36) NOT NULL,
  `kode_lokasi` varchar(30) NOT NULL,
  `nama_lokasi` varchar(100) NOT NULL,
  `jenis_lokasi` enum('GUDANG','FARMASI','POLI') NOT NULL DEFAULT 'GUDANG',
  `status_aktif` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `tb_stok_obat` (
  `stok_id` varchar(36) NOT NULL,
  `obat_id` varchar(36) NOT NULL,
  `lokasi_id` varchar(36) NOT NULL,
  `qty` decimal(15,2) DEFAULT 0.00,
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `tb_resep` (
  `resep_id` varchar(36) NOT NULL,
  `pelayanan_id` varchar(36) NOT NULL,
  `registrasi_id` varchar(36) NOT NULL,
  `pasien_id` varchar(36) NOT NULL,
  `dokter_id` varchar(36) DEFAULT NULL,
  `id_poli` varchar(36) DEFAULT NULL,
  `tanggal_resep` datetime NOT NULL,
  `status_resep` enum('MENUNGGU','DIPROSES','SELESAI','BATAL') DEFAULT 'MENUNGGU',
  `catatan` text DEFAULT NULL,
  `processed_by` varchar(36) DEFAULT NULL,
  `processed_at` datetime DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `tb_resep_detail` (
  `resep_detail_id` varchar(36) NOT NULL,
  `resep_id` varchar(36) NOT NULL,
  `obat_id` varchar(36) DEFAULT NULL,
  `nama_obat_snapshot` varchar(255) NOT NULL,
  `dosis` varchar(100) DEFAULT NULL,
  `frekuensi` varchar(100) DEFAULT NULL,
  `rute` varchar(100) DEFAULT NULL,
  `durasi` varchar(100) DEFAULT NULL,
  `jumlah_resep` decimal(15,2) DEFAULT 0.00,
  `jumlah_serah` decimal(15,2) DEFAULT 0.00,
  `satuan_snapshot` varchar(50) DEFAULT NULL,
  `catatan` text DEFAULT NULL,
  `status_detail` enum('MENUNGGU','SEBAGIAN','SELESAI','BATAL') DEFAULT 'MENUNGGU',
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `tb_mutasi_stok` (
  `mutasi_id` varchar(36) NOT NULL,
  `obat_id` varchar(36) NOT NULL,
  `lokasi_id` varchar(36) NOT NULL,
  `resep_id` varchar(36) DEFAULT NULL,
  `referensi_tipe` enum('PEMBELIAN','PENYESUAIAN','RESEP','RETUR') NOT NULL,
  `referensi_id` varchar(36) DEFAULT NULL,
  `jenis_mutasi` enum('MASUK','KELUAR','ADJUSTMENT') NOT NULL,
  `qty` decimal(15,2) NOT NULL,
  `saldo_sebelum` decimal(15,2) NOT NULL,
  `saldo_sesudah` decimal(15,2) NOT NULL,
  `keterangan` text DEFAULT NULL,
  `created_by` varchar(36) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

ALTER TABLE `tb_bentuk_sediaan`
  ADD PRIMARY KEY (`bentuk_sediaan_id`),
  ADD UNIQUE KEY `uk_bentuk_sediaan_nama` (`nama_bentuk`);

ALTER TABLE `tb_master_obat`
  ADD PRIMARY KEY (`obat_id`),
  ADD UNIQUE KEY `uk_master_obat_kode` (`kode_obat`),
  ADD KEY `idx_master_obat_nama` (`nama_obat`);

ALTER TABLE `tb_lokasi_stok`
  ADD PRIMARY KEY (`lokasi_id`),
  ADD UNIQUE KEY `uk_lokasi_kode` (`kode_lokasi`);

ALTER TABLE `tb_stok_obat`
  ADD PRIMARY KEY (`stok_id`),
  ADD UNIQUE KEY `uk_stok_obat_lokasi` (`obat_id`,`lokasi_id`),
  ADD KEY `idx_stok_lokasi` (`lokasi_id`);

ALTER TABLE `tb_resep`
  ADD PRIMARY KEY (`resep_id`),
  ADD UNIQUE KEY `uk_resep_pelayanan` (`pelayanan_id`),
  ADD KEY `idx_resep_registrasi` (`registrasi_id`),
  ADD KEY `idx_resep_pasien` (`pasien_id`),
  ADD KEY `idx_resep_status` (`status_resep`),
  ADD KEY `idx_resep_dokter` (`dokter_id`),
  ADD KEY `idx_resep_poli` (`id_poli`),
  ADD KEY `idx_resep_processed_by` (`processed_by`);

ALTER TABLE `tb_resep_detail`
  ADD PRIMARY KEY (`resep_detail_id`),
  ADD KEY `idx_resep_detail_resep` (`resep_id`),
  ADD KEY `idx_resep_detail_obat` (`obat_id`);

ALTER TABLE `tb_mutasi_stok`
  ADD PRIMARY KEY (`mutasi_id`),
  ADD KEY `idx_mutasi_obat` (`obat_id`),
  ADD KEY `idx_mutasi_lokasi` (`lokasi_id`),
  ADD KEY `idx_mutasi_resep` (`resep_id`),
  ADD KEY `idx_mutasi_created_by` (`created_by`),
  ADD KEY `idx_mutasi_created_at` (`created_at`);

ALTER TABLE `tb_terapi`
  ADD COLUMN `obat_id` varchar(36) DEFAULT NULL AFTER `pelayanan_id`,
  ADD COLUMN `satuan` varchar(50) DEFAULT NULL AFTER `jumlah`,
  ADD KEY `idx_terapi_obat_id` (`obat_id`);

INSERT INTO `tb_lokasi_stok` (`lokasi_id`, `kode_lokasi`, `nama_lokasi`, `jenis_lokasi`, `status_aktif`) VALUES
('LOC-GUDANG-UTAMA', 'GUDANG-UTAMA', 'Gudang Utama', 'GUDANG', 1),
('LOC-FARMASI-UTAMA', 'FARMASI-UTAMA', 'Farmasi Utama', 'FARMASI', 1);

INSERT INTO `tb_bentuk_sediaan` (`bentuk_sediaan_id`, `nama_bentuk`, `deskripsi`, `status_aktif`) VALUES
('BSD-TABLET', 'Tablet', 'Sediaan padat berbentuk tablet', 1),
('BSD-KAPSUL', 'Kapsul', 'Sediaan padat berbentuk kapsul', 1),
('BSD-SIRUP', 'Sirup', 'Sediaan cair oral', 1),
('BSD-INJEKSI', 'Injeksi', 'Sediaan injeksi', 1);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
