make query cari dynamic

This commit is contained in:
2024-10-17 10:44:35 +07:00
parent cf5c47f9bb
commit 87d5a964ef
3 changed files with 95 additions and 81 deletions

No files matched your search

@@ -174,9 +174,10 @@ func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, er
return dataSurKon, nil
}
func GetDataSurKonByNoRM(req suratkontrol.RequestCariPasien) ([]*suratkontrol.GetDataSuratKontrol, error) {
func GetDataSurKonByNoRM(req suratkontrol.RequestCariPasien, query string, condition string) ([]*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon []*suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?`
querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
dsk."Nomor_surat_kontrol",
(select dlr."Nama"
from data_kunjungan_pasien dkp
@@ -203,7 +204,9 @@ func GetDataSurKonByNoRM(req suratkontrol.RequestCariPasien) ([]*suratkontrol.Ge
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 dkp2."NOMR" = ? and date(dsk."Tanggal_rencana_kontrol") between ? and ?`, req.NoRM, req.TanggalAwal, req.TanggalAkhir).Find(&dataSurKon).Error
where dsk."Status_surat_kontrol" = '1' `
querySelect += query
err := config.SatuDataDB.Debug().Raw(querySelect, condition, req.TanggalAwal, req.TanggalAkhir).Find(&dataSurKon).Error
if err != nil {
log.Println(err)
return nil, err
@@ -212,78 +215,78 @@ func GetDataSurKonByNoRM(req suratkontrol.RequestCariPasien) ([]*suratkontrol.Ge
return dataSurKon, nil
}
func GetDataSurKonByNoSEP(req suratkontrol.RequestCariPasien) ([]*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon []*suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Debug().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",
dp."HFIS_code" as "Kode_dokter"
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 dkp2."Nomor_sep" = ? and date(dsk."Tanggal_rencana_kontrol") between ? and ?`, req.NoSEP, req.TanggalAwal, req.TanggalAkhir).Find(&dataSurKon).Error
if err != nil {
log.Println(err)
return nil, err
}
log.Println("Data Surat Kontrol : ", dataSurKon)
return dataSurKon, nil
}
// func GetDataSurKonByNoSEP(req suratkontrol.RequestCariPasien) ([]*suratkontrol.GetDataSuratKontrol, error) {
// var dataSurKon []*suratkontrol.GetDataSuratKontrol
// err := config.SatuDataDB.Debug().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",
// dp."HFIS_code" as "Kode_dokter"
// 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 dkp2."Nomor_sep" = ? and date(dsk."Tanggal_rencana_kontrol") between ? and ?`, req.NoSEP, req.TanggalAwal, req.TanggalAkhir).Find(&dataSurKon).Error
// if err != nil {
// log.Println(err)
// return nil, err
// }
// log.Println("Data Surat Kontrol : ", dataSurKon)
// return dataSurKon, nil
// }
func GetDataSurKonByPoliklinik(req suratkontrol.RequestCariPasien) ([]*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon []*suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Debug().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",
dp."HFIS_code" as "Kode_dokter"
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 ds."id" = ? and date(dsk."Tanggal_rencana_kontrol") between ? and ?`, req.PoliKlinik, req.TanggalAwal, req.TanggalAkhir).Find(&dataSurKon).Error
if err != nil {
log.Println(err)
return nil, err
}
log.Println("Data Surat Kontrol : ", dataSurKon)
return dataSurKon, nil
}
// func GetDataSurKonByPoliklinik(req suratkontrol.RequestCariPasien) ([]*suratkontrol.GetDataSuratKontrol, error) {
// var dataSurKon []*suratkontrol.GetDataSuratKontrol
// err := config.SatuDataDB.Debug().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",
// dp."HFIS_code" as "Kode_dokter"
// 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 ds."id" = ? and date(dsk."Tanggal_rencana_kontrol") between ? and ?`, req.PoliKlinik, req.TanggalAwal, req.TanggalAkhir).Find(&dataSurKon).Error
// if err != nil {
// log.Println(err)
// return nil, err
// }
// log.Println("Data Surat Kontrol : ", dataSurKon)
// return dataSurKon, nil
// }
+1 -1
View File
@@ -124,7 +124,7 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s
responses := &suratkontrol.Response{}
response, err := client.Do(req)
if err != nil {
if strings.Contains(strings.ToLower(err.Error()), "deadline-exceeded") {
if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") {
errMsg := errors.New("context deadline exceeded")
log.Printf("error : %v", errMsg)
responses.MetaData.Message = errMsg.Error()
+14 -3
View File
@@ -550,23 +550,34 @@ func CariPasienTPP(c *gin.Context) {
log.Println("request :", req)
query := ``
var data []*sk.GetDataSuratKontrol
if req.NoRM != "" {
data, err = suratkontrol.GetDataSurKonByNoRM(req)
query += `and dkp2."NOMR" = ?`
data, err = suratkontrol.GetDataSurKonByNoRM(req, query, req.NoRM)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
} else if req.NoSEP != "" {
data, err = suratkontrol.GetDataSurKonByNoSEP(req)
query += `and dkp2."Nomor_sep" = ?`
data, err = suratkontrol.GetDataSurKonByNoRM(req, query, req.NoSEP)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
} else if req.PoliKlinik != "" {
data, err = suratkontrol.GetDataSurKonByPoliklinik(req)
query += `and ds."id" = ?`
data, err = suratkontrol.GetDataSurKonByNoRM(req, query, req.PoliKlinik)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
} else {
data, err = suratkontrol.GetDataSurKonByNoRM(req, query, req.PoliKlinik)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)