diff --git a/database/satu_data/surat_kontrol/surat_kontrol.go b/database/satu_data/surat_kontrol/surat_kontrol.go index beedba3..b10a036 100644 --- a/database/satu_data/surat_kontrol/surat_kontrol.go +++ b/database/satu_data/surat_kontrol/surat_kontrol.go @@ -88,12 +88,14 @@ func GetDataSuratKontrol() ([]*suratkontrol.GetDataSuratKontrol, error) { 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, + ds."Subspesialis" 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'`).Scan(&dataSurKon).Error if err != nil { log.Println(err) @@ -122,12 +124,14 @@ func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontro 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, + ds."Subspesialis" 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."IDXDAFTAR" = ?`, idxdaftar).First(&dataSurKon).Error if err != nil { log.Println(err) @@ -145,3 +149,14 @@ func UpdateDataSuratKontrol(idSurKon string) error { } return nil } +func GetIDXDaftarBySurKon(idSurKon string) (string, error) { + var idxDaftar string + err := config.SatuDataDB.Debug().Raw(`select dkp."IDXDAFTAR" + from "data_surat_kontrol" dsk + left join "data_kunjungan_pasien" dkp on dkp."id" = dsk."Kunjungan_pasien"`).First(&idxDaftar).Error + if err != nil { + log.Println(err) + return "", err + } + return idxDaftar, err +} diff --git a/handlers/bpjs/surat_kontrol/surat_kontrol.go b/handlers/bpjs/surat_kontrol/surat_kontrol.go index 789d6c5..ae5437d 100644 --- a/handlers/bpjs/surat_kontrol/surat_kontrol.go +++ b/handlers/bpjs/surat_kontrol/surat_kontrol.go @@ -23,7 +23,6 @@ func InsertSuratKontrol(c *gin.Context) { url := baseUrl + endpoint + param timeNow := time.Now().Format("2006-01-02 15:04:05") - dateNow := time.Now().Format("2006-01-02") var req sk.RequestInsertRencanaKontrol @@ -63,7 +62,7 @@ func InsertSuratKontrol(c *gin.Context) { ID: uuid, DateCreated: timeNow, TglCetakSurKon: timeNow, - TglRencanaKontrol: dateNow, + TglRencanaKontrol: req.TglRencanaKontrol, NomorSurKon: "", //TODO How to get Nomor SurKon KunjunganPasien: kunjunganPasien.ID, RuanganSurKon: kunjunganPasien.Ruangan, @@ -369,6 +368,7 @@ func GetDataSurKon(c *gin.Context) { NamaPasien: v.NamaPasien, NamaDokter: namaLengkap, NomorKartu: "", + Subspesialis: v.Subspesialis, }) } c.JSON(http.StatusOK, resSurKon) @@ -403,6 +403,50 @@ func GetDataSurKonByID(c *gin.Context) { NamaPasien: data.NamaPasien, NamaDokter: namaLengkap, NomorKartu: "", + Subspesialis: data.Subspesialis, } c.JSON(http.StatusOK, resSurKon) } + +func PrintSurKon(c *gin.Context) { + id := c.Param("idSurKon") + + idxDaftar, err := suratkontrol.GetIDXDaftarBySurKon(id) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + data, err := suratkontrol.GetDataSuratKontrolByID(idxDaftar) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + gelarDepan := utils.ReplaceGelar(data.GelarDepan) + gelarBelakang := utils.ReplaceGelar(data.GelarBelakang) + namaLengkap := gelarDepan + " " + data.NamaLengkapDokter + " " + gelarBelakang + namaLengkap = strings.TrimPrefix(namaLengkap, " ") + namaLengkap = strings.TrimSuffix(namaLengkap, " ") + dateCetakSurkon, _ := time.Parse(time.RFC3339, data.TglCetakSurKon) + dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") + dateRencanaSurkon, _ := time.Parse(time.RFC3339, data.TglRencanaKontrol) + dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") + resSurKon := &sk.ResponseGetDataSuratKontrol{ + IDDataSurKon: data.IDDataSurKon, + TglCetakSurKon: dateCetakSurkonString, + TglRencanaKontrol: dateRencanaSurkonString, + NomorSurKon: data.NomorSurKon, + PoliAsal: data.PoliAsal, + PoliTujuan: data.PoliTujuan, + NomorSEP: data.NomorSEP, + NamaPasien: data.NamaPasien, + NamaDokter: namaLengkap, + NomorKartu: "", + Subspesialis: data.Subspesialis, + } + log.Println("Data surkon", resSurKon) + c.JSON(http.StatusOK, resSurKon) +} diff --git a/main.go b/main.go index 85b1bcc..bee039b 100644 --- a/main.go +++ b/main.go @@ -53,6 +53,7 @@ func main() { suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID) suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol) suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP) + suratKontrol.GET("/printSurKon/:idSurKon", suratkontrol.PrintSurKon) suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol) suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol) suratKontrol.DELETE("/delete", suratkontrol.DeleteSuratKontrol) diff --git a/models/bpjs/surat_kontrol/surat_kontrol.go b/models/bpjs/surat_kontrol/surat_kontrol.go index 8621bde..9ccf4fa 100644 --- a/models/bpjs/surat_kontrol/surat_kontrol.go +++ b/models/bpjs/surat_kontrol/surat_kontrol.go @@ -203,7 +203,7 @@ type InsertDataSuratKontrol struct { DPJPSurKon string `gorm:"column:DPJP_surat_kontrol" json:"DPJP_surat_kontrol"` StatusSurKon int `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"` UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_surat_kontrol"` - TipeSurKon string `gorm:"column:Tipe_surat_kontrol" json:"Tipe_surat_kontrol"` + TipeSurKon string `gorm:"column:Tipe_surat_kontrol" json:"Tipe_surat_kontrol"` } type ResponseSuratKontrolBySEP struct { @@ -229,6 +229,7 @@ type GetDataSuratKontrol struct { GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` NamaLengkapDokter string `gorm:"column:Nama_lengkap_dokter" json:"Nama_lengkap_dokter"` GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` + Subspesialis string `gorm:"column:Subspesialis" json:"Subspesialis"` } type ResponseGetDataSuratKontrol struct { @@ -242,4 +243,5 @@ type ResponseGetDataSuratKontrol struct { NamaPasien string `json:"Nama_pasien"` NamaDokter string `json:"NamaDokter"` NomorKartu string `json:"Nomor_kartu"` + Subspesialis string `json:"Subspesialis"` }