From 8b0bf7f3f3d0377fb862f7322b0bfa48847b3ab4bf61202561c2da6b7242a807 Mon Sep 17 00:00:00 2001 From: ahdan15 Date: Thu, 3 Jul 2025 14:24:15 +0700 Subject: [PATCH] penambahan function --- .../satu_data/surat_kontrol/surat_kontrol.go | 47 +++++++++++++++++++ handlers/bpjs/surat_kontrol/surat_kontrol.go | 7 +-- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/database/satu_data/surat_kontrol/surat_kontrol.go b/database/satu_data/surat_kontrol/surat_kontrol.go index feb7426..5f29e1b 100644 --- a/database/satu_data/surat_kontrol/surat_kontrol.go +++ b/database/satu_data/surat_kontrol/surat_kontrol.go @@ -222,6 +222,53 @@ func GetDataSuratKontrolByIDnomor(idxdaftar string, nomor string) (*suratkontrol return dataSurKon, nil } +func GetDataSuratKontrolnomor(nomor string) (*suratkontrol.GetDataSuratKontrol, error) { + var dataSurKon *suratkontrol.GetDataSuratKontrol + err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",dsk."Nomor_surat_kontrol", + (select dlr."Nama" + from data_kunjungan_pasien dkp + left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", + dlr."Nama" as "Poli_tuju", + dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", + array( + select dgd. "Gelar_depan" + from data_pegawai_daftar_gelar_depan dpdgd + left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id + ) AS gelardepan , + dk."Nama_lengkap" as "Nama_lengkap_dokter", + array( + select dgb. "Gelar_belakang" + from data_pegawai_daftar_gelar_belakang dpdgb + left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id + ) AS gelarbelakang, + ds."Subspesialis", + ds."Kode" as "Kode_poli", + ds."id" as "ID_poli", + dp."HFIS_code" as "Kode_dokter", + dp."id" as "id_dokter", + dp."Code_dpjp" as "Kode_dpjp", + dkp2."NOMR" as "No_rm", + dkp2."Diagnosis_primer_utama" as "Kode_diagnosa", + dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa", + dsk."Tipe_surat_kontrol" as "Tipe_SurKon", + dsk."User_created_surat_kontrol" as "User" + from data_surat_kontrol dsk + left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien" + left join daftar_lokasi_ruang dlr on dsk."Ruangan_surat_kontrol" = dlr."id" + left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" + left join data_ktp dk on dp."KTP" = dk. "id" + left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" + where dsk."Status_surat_kontrol" = '1' and dsk."Nomor_surat_kontrol" = ?`, nomor).First(&dataSurKon).Error + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + errMsg := errors.New("Data tidak ada") + log.Println(errMsg) + return nil, errMsg + } + } + return dataSurKon, nil +} + func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontrol, error) { var dataSurKon *suratkontrol.GetDataSuratKontrol err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", diff --git a/handlers/bpjs/surat_kontrol/surat_kontrol.go b/handlers/bpjs/surat_kontrol/surat_kontrol.go index 0cc651c..55e3765 100644 --- a/handlers/bpjs/surat_kontrol/surat_kontrol.go +++ b/handlers/bpjs/surat_kontrol/surat_kontrol.go @@ -1012,12 +1012,13 @@ func GetDataSurKonByID(c *gin.Context) { func GetDataSurKonByNoSurkon(c *gin.Context) { id := c.Param("idxdaftar") - tipe := c.Param("nomorsurkon") + nomor := c.Param("nomorsurkon") var dataSurKon *sk.GetDataSuratKontrol - dataSurKon, err := suratkontrol.GetDataSuratKontrolByIDnomor(id, tipe) + dataSurKon, err := suratkontrol.GetDataSuratKontrolByIDnomor(id, nomor) if err != nil { if err.Error() == "Data tidak ada" { - dataSurKon, err = suratkontrol.GetDataSuratKontrolByID(id) + dataSurKon, err = suratkontrol.GetDataSuratKontrolnomor(nomor) + if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, &sk.MetadataString{