FHM09062601IBL - buat tabel m_screening_template dan m_screening_form, isi data template VAKSINASI dan KHITAN

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sas.fajri
2026-06-10 16:41:57 +07:00
parent 270f71f5ea
commit f39b28361e

View File

@@ -0,0 +1,160 @@
-- Buat m_screening_template: master template screening klinik
CREATE TABLE IF NOT EXISTS one_klinik.m_screening_template (
M_ScreeningTemplateID INT(11) NOT NULL AUTO_INCREMENT,
M_ScreeningTemplateCode VARCHAR(30) NOT NULL DEFAULT '',
M_ScreeningTemplateName VARCHAR(100) NOT NULL DEFAULT '',
M_ScreeningTemplateDescription VARCHAR(255) NULL DEFAULT NULL,
M_ScreeningTemplateIsActive CHAR(1) NOT NULL DEFAULT 'Y',
M_ScreeningTemplateUserID INT(11) NULL DEFAULT NULL,
M_ScreeningTemplateCreated DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
M_ScreeningTemplateLastUpdated DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (M_ScreeningTemplateID),
UNIQUE KEY uk_M_ScreeningTemplateCode (M_ScreeningTemplateCode),
KEY idx_M_ScreeningTemplateIsActive (M_ScreeningTemplateIsActive)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Master template form screening klinik';
-- Buat m_screening_form: daftar pertanyaan per template
-- M_ScreeningFormOptions: JSON array pilihan jawaban, contoh: ["Ya","Tidak"]
-- M_ScreeningFormAnswerType: single=pilih satu, multi=pilih banyak, text=isian bebas
CREATE TABLE IF NOT EXISTS one_klinik.m_screening_form (
M_ScreeningFormID INT(11) NOT NULL AUTO_INCREMENT,
M_ScreeningFormM_ScreeningTemplateID INT(11) NOT NULL,
M_ScreeningFormQuestion TEXT NOT NULL,
M_ScreeningFormAnswerType ENUM('single','multi','text') NOT NULL DEFAULT 'single',
M_ScreeningFormOptions TEXT NULL DEFAULT NULL,
M_ScreeningFormSortOrder TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
M_ScreeningFormIsRequired CHAR(1) NOT NULL DEFAULT 'Y',
M_ScreeningFormIsActive CHAR(1) NOT NULL DEFAULT 'Y',
M_ScreeningFormUserID INT(11) NULL DEFAULT NULL,
M_ScreeningFormCreated DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
M_ScreeningFormLastUpdated DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (M_ScreeningFormID),
KEY idx_M_ScreeningFormTemplateID (M_ScreeningFormM_ScreeningTemplateID),
KEY idx_M_ScreeningFormIsActive (M_ScreeningFormIsActive),
CONSTRAINT fk_sf_template
FOREIGN KEY (M_ScreeningFormM_ScreeningTemplateID)
REFERENCES m_screening_template (M_ScreeningTemplateID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Pertanyaan form screening per template';
-- ---------------------------------------------------------------------------
-- Data master template
-- ---------------------------------------------------------------------------
INSERT INTO one_klinik.m_screening_template
(M_ScreeningTemplateCode, M_ScreeningTemplateName, M_ScreeningTemplateDescription, M_ScreeningTemplateIsActive)
VALUES
('VAKSINASI', 'Screening Vaksinasi',
'Form screening pra-vaksinasi untuk menilai kelayakan pemberian vaksin', 'Y'),
('KHITAN', 'Screening Khitan',
'Form screening pra-tindakan khitan untuk menilai kelayakan pasien', 'Y');
-- ---------------------------------------------------------------------------
-- Pertanyaan template VAKSINASI
-- ---------------------------------------------------------------------------
SET @vaksin_id = (
SELECT M_ScreeningTemplateID
FROM one_klinik.m_screening_template
WHERE M_ScreeningTemplateCode = 'VAKSINASI'
);
INSERT INTO one_klinik.m_screening_form
(M_ScreeningFormM_ScreeningTemplateID, M_ScreeningFormQuestion,
M_ScreeningFormAnswerType, M_ScreeningFormOptions,
M_ScreeningFormSortOrder, M_ScreeningFormIsRequired)
VALUES
(@vaksin_id,
'Apakah saat ini sedang demam (suhu ≥ 38°C)?',
'single', '["Ya","Tidak"]', 1, 'Y'),
(@vaksin_id,
'Apakah sedang dalam kondisi sakit akut?',
'single', '["Ya","Tidak"]', 2, 'Y'),
(@vaksin_id,
'Apakah memiliki riwayat anafilaksis atau reaksi alergi berat?',
'single', '["Ya","Tidak","Tidak Tahu"]', 3, 'Y'),
(@vaksin_id,
'Apakah pernah mengalami reaksi alergi terhadap vaksin sebelumnya?',
'single', '["Ya","Tidak","Belum Pernah Divaksin"]', 4, 'Y'),
(@vaksin_id,
'Apakah sedang mengonsumsi obat imunosupresan atau menjalani kemoterapi?',
'single', '["Ya","Tidak"]', 5, 'Y'),
(@vaksin_id,
'Apakah sedang hamil atau menyusui?',
'single', '["Ya","Tidak","Tidak Berlaku"]', 6, 'Y'),
(@vaksin_id,
'Apakah memiliki riwayat penyakit kronis yang relevan? (sebutkan jika ada)',
'text', NULL, 7, 'N'),
(@vaksin_id,
'Kesimpulan: kelayakan pemberian vaksin',
'single', '["Layak","Tidak Layak","Tunda"]', 8, 'Y'),
(@vaksin_id,
'Catatan petugas screening',
'text', NULL, 9, 'N');
-- ---------------------------------------------------------------------------
-- Pertanyaan template KHITAN
-- ---------------------------------------------------------------------------
SET @khitan_id = (
SELECT M_ScreeningTemplateID
FROM one_klinik.m_screening_template
WHERE M_ScreeningTemplateCode = 'KHITAN'
);
INSERT INTO one_klinik.m_screening_form
(M_ScreeningFormM_ScreeningTemplateID, M_ScreeningFormQuestion,
M_ScreeningFormAnswerType, M_ScreeningFormOptions,
M_ScreeningFormSortOrder, M_ScreeningFormIsRequired)
VALUES
(@khitan_id,
'Apakah ada riwayat gangguan pembekuan darah atau hemofilia?',
'single', '["Ya","Tidak","Tidak Tahu"]', 1, 'Y'),
(@khitan_id,
'Apakah ada riwayat alergi terhadap obat anestesi lokal (lidokain, prokain, dll)?',
'single', '["Ya","Tidak","Tidak Tahu"]', 2, 'Y'),
(@khitan_id,
'Apakah menderita atau dicurigai Diabetes Mellitus?',
'single', '["Ya","Tidak","Dicurigai"]', 3, 'Y'),
(@khitan_id,
'Apakah saat ini sedang sakit akut atau demam (suhu ≥ 38°C)?',
'single', '["Ya","Tidak"]', 4, 'Y'),
(@khitan_id,
'Apakah sedang dalam pengobatan antikoagulan (pengencer darah)?',
'single', '["Ya","Tidak"]', 5, 'Y'),
(@khitan_id,
'Apakah ada kelainan anatomi pada area genitalia?',
'single', '["Ya","Tidak"]', 6, 'Y'),
(@khitan_id,
'Apakah pasien kooperatif untuk menjalani tindakan?',
'single', '["Kooperatif","Cukup Kooperatif","Tidak Kooperatif"]', 7, 'Y'),
(@khitan_id,
'Berat badan pasien (kg)',
'text', NULL, 8, 'Y'),
(@khitan_id,
'Tinggi badan pasien (cm)',
'text', NULL, 9, 'Y'),
(@khitan_id,
'Apakah ada riwayat tindakan bedah sebelumnya pada area genitalia?',
'single', '["Ya","Tidak"]', 10, 'N'),
(@khitan_id,
'Kesimpulan: kelayakan tindakan khitan',
'single', '["Layak","Tidak Layak","Tunda"]', 11, 'Y'),
(@khitan_id,
'Catatan petugas screening',
'text', NULL, 12, 'N');