add condition and cari
This commit is contained in:
No files matched your search
@@ -173,3 +173,117 @@ func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, er
|
||||
}
|
||||
return dataSurKon, nil
|
||||
}
|
||||
|
||||
func GetDataSurKonByNoRM(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."NOMR" = ? and date(dsk."Tanggal_rencana_kontrol") between ? and ?`, req.NoRM, 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
|
||||
}
|
||||
@@ -11,6 +11,8 @@ import (
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func PostData(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (*suratkontrol.Response, error) {
|
||||
@@ -116,14 +118,35 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s
|
||||
}
|
||||
|
||||
log.Println("REQ", req.Header)
|
||||
client := http.Client{}
|
||||
client := http.Client{
|
||||
Timeout: 10 * time.Second,
|
||||
}
|
||||
responses := &suratkontrol.Response{}
|
||||
response, err := client.Do(req)
|
||||
if err != nil {
|
||||
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()
|
||||
log.Println("responses: ", responses)
|
||||
return responses, err
|
||||
}
|
||||
log.Printf("Error making external API request: %v", err)
|
||||
return nil, err
|
||||
return responses, err
|
||||
}
|
||||
log.Println("RESPONSE: ", response)
|
||||
|
||||
if response.StatusCode == http.StatusGatewayTimeout { // 504
|
||||
errMsg := errors.New("504 Gateway Time-out")
|
||||
log.Printf("error : %v", errMsg)
|
||||
responses.MetaData.Code = "504"
|
||||
responses.MetaData.Message = errMsg.Error()
|
||||
log.Println("responses: ", responses)
|
||||
return responses, err
|
||||
}
|
||||
|
||||
log.Println("RESPONSE: ", response)
|
||||
|
||||
key := header.ConsID + header.SecretKey + header.TimeStamp
|
||||
res, err := io.ReadAll(response.Body)
|
||||
if err != nil {
|
||||
@@ -138,7 +161,6 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s
|
||||
return nil, err
|
||||
}
|
||||
|
||||
responses := &suratkontrol.Response{}
|
||||
if resSuratKontrolRaw.MetaData.Code != "200" {
|
||||
errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
|
||||
log.Printf("error : %v", errMsg)
|
||||
|
||||
@@ -232,6 +232,11 @@ func UpdateSuratKontrol(c *gin.Context) {
|
||||
}
|
||||
res, err := ResponseUpdateSuratKontrol(url, header, headers, reqSuratKontrol)
|
||||
if err != nil {
|
||||
if res.MetaData.Code == "504" {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusGatewayTimeout, res.MetaData)
|
||||
return
|
||||
}
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, res.MetaData)
|
||||
return
|
||||
@@ -532,3 +537,70 @@ func PrintSurKon(c *gin.Context) {
|
||||
log.Println("Data surkon", resSurKon)
|
||||
c.JSON(http.StatusOK, resSurKon)
|
||||
}
|
||||
|
||||
func CariPasienTPP(c *gin.Context) {
|
||||
var req sk.RequestCariPasien
|
||||
|
||||
err := c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
return
|
||||
}
|
||||
|
||||
log.Println("request :", req)
|
||||
|
||||
var data []*sk.GetDataSuratKontrol
|
||||
if req.NoRM != "" {
|
||||
data, err = suratkontrol.GetDataSurKonByNoRM(req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
return
|
||||
}
|
||||
} else if req.NoSEP != "" {
|
||||
data, err = suratkontrol.GetDataSurKonByNoSEP(req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
return
|
||||
}
|
||||
} else if req.PoliKlinik != "" {
|
||||
data, err = suratkontrol.GetDataSurKonByPoliklinik(req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
var resSurKon []*sk.ResponseGetDataSuratKontrol
|
||||
for _, v := range data {
|
||||
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
|
||||
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
|
||||
namaLengkap := gelarDepan + " " + v.NamaLengkapDokter + " " + gelarBelakang
|
||||
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
|
||||
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
|
||||
dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TglCetakSurKon)
|
||||
dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02")
|
||||
dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol)
|
||||
dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02")
|
||||
resSurKon = append(resSurKon, &sk.ResponseGetDataSuratKontrol{
|
||||
IDDataSurKon: v.IDDataSurKon,
|
||||
IDXDaftar: v.IDXDaftar,
|
||||
TglCetakSurKon: dateCetakSurkonString,
|
||||
TglRencanaKontrol: dateRencanaSurkonString,
|
||||
NomorSurKon: v.NomorSurKon,
|
||||
PoliAsal: v.PoliAsal,
|
||||
PoliTujuan: v.PoliTujuan,
|
||||
NomorSEP: v.NomorSEP,
|
||||
NamaPasien: v.NamaPasien,
|
||||
NamaDokter: namaLengkap,
|
||||
NomorKartu: "",
|
||||
Subspesialis: v.Subspesialis,
|
||||
KodePoli: v.KodePoli,
|
||||
KodeDokter: v.KodeDokter,
|
||||
})
|
||||
}
|
||||
c.JSON(http.StatusOK, resSurKon)
|
||||
}
|
||||
@@ -56,6 +56,7 @@ func main() {
|
||||
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
|
||||
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
|
||||
suratKontrol.GET("/printSurKon/:idSurKon", suratkontrol.PrintSurKon)
|
||||
suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
|
||||
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
|
||||
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
|
||||
suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
|
||||
|
||||
@@ -233,6 +233,7 @@ type GetDataSuratKontrol struct {
|
||||
Subspesialis string `gorm:"column:Subspesialis" json:"Subspesialis"`
|
||||
KodePoli string `gorm:"column:Kode_poli" json:"Kode_poli"`
|
||||
KodeDokter string `gorm:"column:Kode_dokter" json:"Kode_dokter"`
|
||||
NomorKartu string `gorm:"column:No_kartu" json:"No_kartu"`
|
||||
}
|
||||
|
||||
type ResponseGetDataSuratKontrol struct {
|
||||
@@ -251,3 +252,11 @@ type ResponseGetDataSuratKontrol struct {
|
||||
KodePoli string `json:"Kode_poli"`
|
||||
KodeDokter string `json:"Kode_dokter"`
|
||||
}
|
||||
|
||||
type RequestCariPasien struct {
|
||||
NoRM string `json:"no_rm"`
|
||||
NoSEP string `json:"no_sep"`
|
||||
PoliKlinik string `json:"poliklinik"`
|
||||
TanggalAwal string `json:"tanggal_awal"`
|
||||
TanggalAkhir string `json:"tanggal_akhir"`
|
||||
}
|
||||
Reference in New Issue
Block a user