CREATE TABLE ims_assessments (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    participant_id UUID NOT NULL REFERENCES patients(id) ON DELETE CASCADE,
    visit_id UUID NOT NULL REFERENCES visits(id) ON DELETE CASCADE,
    tenaga_medis TEXT,
    asisten TEXT,
    status_kunjungan TEXT,
    status_rujukan TEXT,
    kelompok_risiko TEXT,
    kunjungan_ke INTEGER,
    alasan_kunjungan TEXT,
    keluhan_ims JSONB,
    status_kehamilan BOOLEAN,
    hubungan_seks_terakhir INTEGER,
    kondom_hubungan_seks_terakhir BOOLEAN,
    jumlah_pasangan_seks_1_mg_terakhir INTEGER,
    kondom_hubungan_seks_1_mg_terakhir TEXT,
    kondom_hubungan_dengan_pacar_1_mg_terakhir TEXT,
    cuci_vagina BOOLEAN,
    hasil_anamnesa_lainnya TEXT,
    tanda_klinis JSONB,
    diagnosis_periksa_fisik JSONB,
    rujuk_laboratorium BOOLEAN,
    pnm_uretra_serviks TEXT,
    diplokokus_intrasel_uretra_serviks TEXT,
    pnm_anus TEXT,
    diplokokus_intrasel_anus TEXT,
    t_vaginalis TEXT,
    kandida TEXT,
    ph TEXT,
    nilai_ph NUMERIC,
    sniff_test TEXT,
    rpr_vdrl TEXT,
    tpha_tppa TEXT,
    rpr_vdrl_titer TEXT,
    hasil_pemeriksaan_laboratorium_lainnya TEXT,
    ditest_sifilis BOOLEAN,
    diagnosis_akhir JSONB,
    diagnosa_lainnya TEXT,
    pengobatan JSONB,
    jumlah_kondom_diberikan INTEGER,
    jumlah_materi_kie_diberikan INTEGER,
    catatan TEXT,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

CREATE UNIQUE INDEX idx_ims_assessments_visit_id ON ims_assessments(visit_id);
