From 5c32ab9928e471c505bdb5e83514119cbb0a555f9b8fcdfe31d5fbc875d05df2 Mon Sep 17 00:00:00 2001 From: mirza Date: Tue, 8 Oct 2024 15:15:35 +0700 Subject: [PATCH] fix get data surkon --- .../satu_data/surat_kontrol/surat_kontrol.go | 18 ++++--- handlers/bpjs/surat_kontrol/response.go | 49 +++++++++++-------- handlers/bpjs/surat_kontrol/surat_kontrol.go | 46 ++++++++--------- models/bpjs/surat_kontrol/surat_kontrol.go | 43 +++++++++------- 4 files changed, 87 insertions(+), 69 deletions(-) diff --git a/database/satu_data/surat_kontrol/surat_kontrol.go b/database/satu_data/surat_kontrol/surat_kontrol.go index 0006066..f3f5219 100644 --- a/database/satu_data/surat_kontrol/surat_kontrol.go +++ b/database/satu_data/surat_kontrol/surat_kontrol.go @@ -68,24 +68,30 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.InsertDataSuratKontrol) erro func GetDataSuratKontrol() ([]*suratkontrol.GetDataSuratKontrol, error) { var dataSurKon []*suratkontrol.GetDataSuratKontrol - err := config.SatuDataDB.Debug().Raw(`select dsk."status", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", - dsk."Nomor_surat_kontrol", dlr."Nama" as "Lokasi_ruang", + err := config.SatuDataDB.Debug().Raw(`select 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", 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" , + 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 + ) AS gelarbelakang 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 - where dsk."Status_surat_kontrol" = '1'`).First(&dataSurKon).Error + left join data_ktp dk on dp."KTP" = dk. "id" + where dsk."Status_surat_kontrol" <> '0'`).First(&dataSurKon).Error if err != nil { log.Println(err) return nil, err diff --git a/handlers/bpjs/surat_kontrol/response.go b/handlers/bpjs/surat_kontrol/response.go index f1ca4e9..e53269c 100644 --- a/handlers/bpjs/surat_kontrol/response.go +++ b/handlers/bpjs/surat_kontrol/response.go @@ -21,8 +21,6 @@ func PostData(url string, header *config.Header, headers map[string]string, requ log.Printf("Error json marshal: %v", err) } - responses := &suratkontrol.ResponseInsert{} - log.Println("REQUEST: ", string(reqMarshall)) req, err := http.NewRequest("POST", url, bytes.NewReader(reqMarshall)) @@ -62,6 +60,7 @@ func PostData(url string, header *config.Header, headers map[string]string, requ log.Println("metadata : ", resSuratKontrolRaw.MetaData.Code) + responses := &suratkontrol.ResponseInsert{} if resSuratKontrolRaw.MetaData.Code != "200" { errMsg := errors.New(resSuratKontrolRaw.MetaData.Message) log.Printf("error : %v", errMsg) @@ -78,7 +77,7 @@ func PostData(url string, header *config.Header, headers map[string]string, requ return nil, err } - var resSuratKontrol *suratkontrol.ResponseInsertSuratKontrol + var resSuratKontrol *suratkontrol.ResponseSuratKontrol log.Println("dataresp: ", dataResp) @@ -96,7 +95,7 @@ func PostData(url string, header *config.Header, headers map[string]string, requ return responses, nil } -func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (interface{}, error) { +func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (*suratkontrol.ResponseInsert, error) { log.Println("URL", url) requestBody := &suratkontrol.RequestHeaderRencanaKontrol{ @@ -134,13 +133,23 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s return nil, err } - var resSuratKontrolRaw suratkontrol.ResponseRaw + var resSuratKontrolRaw suratkontrol.ResponseRawUpper err = json.Unmarshal([]byte(res), &resSuratKontrolRaw) if err != nil { log.Printf("Error Unmarshaling: %v", err) return nil, err } + responses := &suratkontrol.ResponseInsert{} + if resSuratKontrolRaw.MetaData.Code != "200" { + errMsg := errors.New(resSuratKontrolRaw.MetaData.Message) + log.Printf("error : %v", errMsg) + responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code + responses.MetaData.Message = resSuratKontrolRaw.MetaData.Message + log.Println("responses: ", responses) + return responses, errMsg + } + dataResp, err := docs.StringDecrypt(key, resSuratKontrolRaw.Response) if err != nil { log.Printf("Error Decrypt: %v", err) @@ -148,7 +157,7 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s return nil, err } - var resSuratKontrol []suratkontrol.ResponseInsertSuratKontrol + var resSuratKontrol *suratkontrol.ResponseSuratKontrol log.Println("dataresp: ", dataResp) @@ -158,9 +167,12 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s return nil, err } - log.Println("res: ", resSuratKontrol) + responses = &suratkontrol.ResponseInsert{ + MetaData: resSuratKontrolRaw.MetaData, + Response: *resSuratKontrol, + } - return resSuratKontrol, nil + return responses, nil } func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (interface{}, error) { @@ -171,7 +183,7 @@ func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[s log.Printf("Error json marshal: %v", err) } - req, err := http.NewRequest("PUT", url, bytes.NewReader(reqMarshall)) + req, err := http.NewRequest("DELETE", url, bytes.NewReader(reqMarshall)) if err != nil { log.Printf("Error creating request: %v", err) return nil, err @@ -197,7 +209,7 @@ func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[s return nil, err } - var resSuratKontrolRaw suratkontrol.ResponseRaw + var resSuratKontrolRaw suratkontrol.ResponseRawUpper err = json.Unmarshal([]byte(res), &resSuratKontrolRaw) if err != nil { log.Printf("Error Unmarshaling: %v", err) @@ -211,19 +223,14 @@ func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[s return nil, err } - var resSuratKontrol []suratkontrol.ResponseInsertSuratKontrol - - log.Println("dataresp: ", dataResp) - - err = json.Unmarshal([]byte(dataResp), &resSuratKontrol) - if err != nil { - log.Printf("Error Decode: %v", err) - return nil, err + responses := &suratkontrol.ResponseUpper{ + MetaData: resSuratKontrolRaw.MetaData, + Response: suratkontrol.ResponseSuratKontrol{}, } - log.Println("res: ", resSuratKontrol) + log.Println("res: ", responses) - return resSuratKontrol, nil + return responses, nil } func ResponseGetNomorSuratKontrol(url string, header *config.Header, headers map[string]string) (*suratkontrol.ResponseNomorSuratKontrol, error) { @@ -305,7 +312,7 @@ func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map log.Println(err) } - var resSurKonSEP suratkontrol.ResponseRawSEP + var resSurKonSEP suratkontrol.ResponseRawUpper err = json.Unmarshal([]byte(res), &resSurKonSEP) if err != nil { log.Printf("Error Unmarshaling: %v", err) diff --git a/handlers/bpjs/surat_kontrol/surat_kontrol.go b/handlers/bpjs/surat_kontrol/surat_kontrol.go index 55ab85c..9370e40 100644 --- a/handlers/bpjs/surat_kontrol/surat_kontrol.go +++ b/handlers/bpjs/surat_kontrol/surat_kontrol.go @@ -103,7 +103,7 @@ func UpdateSuratKontrol(c *gin.Context) { return } - // dateNow := time.Now().Format("2006-01-02") + dateNow := time.Now().Format("2006-01-02") conf := config.ConfigBpjs{} @@ -117,12 +117,6 @@ func UpdateSuratKontrol(c *gin.Context) { "Content-Type": "Application/x-www-form-urlencoded", } log.Println("Headers : ", headers) - // kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) - // if err != nil { - // log.Println(err) - // c.JSON(http.StatusInternalServerError, err) - // return - // } reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{ Request: &sk.ReqUpdateRencanaKontrol{ @@ -141,21 +135,21 @@ func UpdateSuratKontrol(c *gin.Context) { return } - // reqUpdate := &sk.UpdateDataSuratKontrol{ - // UserUpdated: req.User, - // DateUpdated: dateNow, - // TglCetakSurKon: dateNow, - // TglRencanaKontrol: res.Response.TglRencanaKontrol, - // NomorSurKon: res.Response.NoSuratKontrol, - // StatusSurKon: 1, // TODO CARI DARIMANA - // } + reqUpdate := &sk.UpdateDataSuratKontrol{ + UserUpdated: req.User, + DateUpdated: dateNow, + TglCetakSurKon: dateNow, + TglRencanaKontrol: res.Response.TglRencanaKontrol, + NomorSurKon: res.Response.NoSuratKontrol, + StatusSurKon: 2, // Edit always 2 + } - // err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) - // if err != nil { - // log.Println(err) - // c.JSON(http.StatusInternalServerError, err) - // return - // } + err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } c.JSON(http.StatusOK, res) } @@ -274,7 +268,7 @@ func GetDataSurKon(c *gin.Context) { for _, v := range data { gelarDepan := utils.ReplaceGelar(v.GelarDepan) gelarBelakang := utils.ReplaceGelar(v.GelarBelakang) - namaLengkap := gelarDepan + " " + v.NamaLengkap + " " + gelarBelakang + namaLengkap := gelarDepan + " " + v.NamaLengkapDokter + " " + gelarBelakang namaLengkap = strings.TrimPrefix(namaLengkap, " ") namaLengkap = strings.TrimSuffix(namaLengkap, " ") dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TglCetakSurKon) @@ -282,12 +276,14 @@ func GetDataSurKon(c *gin.Context) { dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol) dateRencanaSurkonString := dateRencanaSurkon.Format("02/01/2006") resSurKon = append(resSurKon, &sk.ResponseGetDataSuratKontrol{ - Status: v.Status, TglCetakSurKon: dateCetakSurkonString, TglRencanaKontrol: dateRencanaSurkonString, NomorSurKon: v.NomorSurKon, - LokasiRuang: v.LokasiRuang, - NamaLengkap: namaLengkap, + PoliAsal: v.PoliAsal, + PoliTujuan: v.PoliTujuan, + NomorSEP: v.NomorSEP, + NamaPasien: v.NamaPasien, + NamaDokter: namaLengkap, }) } c.JSON(http.StatusOK, resSurKon) diff --git a/models/bpjs/surat_kontrol/surat_kontrol.go b/models/bpjs/surat_kontrol/surat_kontrol.go index 3120f30..7e36a51 100644 --- a/models/bpjs/surat_kontrol/surat_kontrol.go +++ b/models/bpjs/surat_kontrol/surat_kontrol.go @@ -50,9 +50,9 @@ type ResponseRaw struct { MetaData Metadata `json:"metadata"` } -type ResponseRawSEP struct { - Response string `json:"response"` - MetaData Metadata `json:"metaData"` +type ResponseRawUpper struct { + Response string `json:"response"` + MetaData MetadataString `json:"metaData"` } type Metadata struct { @@ -71,11 +71,16 @@ type MetadataString struct { } type ResponseInsert struct { - MetaData MetadataString `json:"metadata"` - Response ResponseInsertSuratKontrol `json:"response"` + MetaData MetadataString `json:"metadata"` + Response ResponseSuratKontrol `json:"response"` } -type ResponseInsertSuratKontrol struct { +type ResponseUpper struct { + MetaData MetadataString `json:"metaData"` + Response ResponseSuratKontrol `json:"response"` +} + +type ResponseSuratKontrol struct { NoSuratKontrol string `json:"noSuratKontrol"` TglRencanaKontrol string `json:"tglRencanaKontrol"` NamaDokter string `json:"namaDokter"` @@ -83,6 +88,7 @@ type ResponseInsertSuratKontrol struct { Nama string `json:"nama"` Kelamin string `json:"kelamin"` TglLahir string `json:"tglLahir"` + NamaDiagnosa string `json:"namaDiagnosa"` } type RequestRencanaKontrol struct { @@ -187,22 +193,25 @@ type ResponseSuratKontrolBySEP struct { } type GetDataSuratKontrol struct { - Status string `gorm:"column:status" json:"status"` TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` - KunjunganPasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"` - LokasiRuang string `gorm:"column:Lokasi_ruang" json:"Lokasi_ruang"` + PoliAsal string `gorm:"column:Poli_asal" json:"Poli_asal"` + PoliTujuan string `gorm:"column:Poli_tuju" json:"Poli_tuju"` + NomorSEP string `gorm:"column:Nomor_sep" json:"Nomor_sep"` + NamaPasien string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"` GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` - NamaLengkap string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"` + NamaLengkapDokter string `gorm:"column:Nama_lengkap_dokter" json:"Nama_lengkap_dokter"` GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` } type ResponseGetDataSuratKontrol struct { - Status string `gorm:"column:status" json:"status"` - TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` - TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` - NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` - LokasiRuang string `gorm:"column:Lokasi_ruang" json:"Lokasi_ruang"` - NamaLengkap string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"` -} \ No newline at end of file + TglCetakSurKon string `json:"Tanggal_cetak_surat_kontrol"` + TglRencanaKontrol string `json:"Tanggal_rencana_kontrol"` + NomorSurKon string `json:"Nomor_surat_kontrol"` + PoliAsal string `json:"Poli_asal"` + PoliTujuan string `json:"Poli_tuju"` + NomorSEP string `json:"Nomor_sep"` + NamaPasien string `json:"Nama_pasien"` + NamaDokter string `json:"NamaDokter"` +}