diff --git a/database/satu_data/dokter/jadwal_dokter.go b/database/satu_data/dokter/jadwal_dokter.go index 9afe391..697fc05 100644 --- a/database/satu_data/dokter/jadwal_dokter.go +++ b/database/satu_data/dokter/jadwal_dokter.go @@ -31,7 +31,7 @@ func GetJadwalSpesialisDokterByID(id string) (string, error) { func GetJadwalHariDokterBySpesialis(id string) ([]jadwal_dokter.ListHari, error) { var hari []jadwal_dokter.ListHari - errSelect := config.SatuDataDB.Debug().Raw(`select distinct "id", "Spesialis", "Nama_hari" from "daftar_jadwal_dokter" where "Spesialis" = ? order by "id"`, id).Scan(&hari).Error + errSelect := config.SatuDataDB.Debug().Raw(`select "id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis" from "daftar_jadwal_dokter" where "Spesialis" = ? order by "id"`, id).Scan(&hari).Error if errSelect != nil { log.Printf("Failed get data : %v", errSelect) return nil, errSelect diff --git a/handlers/bpjs/jadwal_dokter/jadwal_dokter.go b/handlers/bpjs/jadwal_dokter/jadwal_dokter.go index 44a975a..cf8e322 100644 --- a/handlers/bpjs/jadwal_dokter/jadwal_dokter.go +++ b/handlers/bpjs/jadwal_dokter/jadwal_dokter.go @@ -152,6 +152,17 @@ func GetDokterByDPJP(c *gin.Context) { c.JSON(http.StatusInternalServerError, err) return } + log.Println("listHari: ", listHari) + + var listIDDokter []string + for _, v := range listHari { + listIDDokter = append(listIDDokter, v.IDDokter) + } + namaDokter, err := dokter.GetNamaLengkapDokter(listIDDokter) + if err != nil { + c.JSON(http.StatusInternalServerError, err) + return + } var idSpesialis []string idSpesialis = append(idSpesialis, spesialis) @@ -161,23 +172,42 @@ func GetDokterByDPJP(c *gin.Context) { c.JSON(http.StatusInternalServerError, err) } - var res *jadwal_dokter.ResponseListHari + var res []*jadwal_dokter.ResponseListHari - for _, v := range listSpesialis { - for _, key := range listHari { - res = &jadwal_dokter.ResponseListHari{ - IDSpesialis: v.ID, - Kode: v.Kode, - Spesialis: v.Spesialis, - NamaHari: key.NamaHari, + for _, key := range listHari { + for _, v := range listSpesialis { + for _, k := range namaDokter { + if key.IDDokter != k.ID { + log.Println("Skip Proses") + continue + } + gelarDepan := utils.ReplaceGelar(k.GelarDepan) + gelarBelakang := utils.ReplaceGelar(k.GelarBelakang) + namaLengkap := gelarDepan + " " + k.NamaLengkap + " " + gelarBelakang + namaLengkap = strings.TrimPrefix(namaLengkap, " ") + namaLengkap = strings.TrimSuffix(namaLengkap, " ") + + var jadwalDokter []jadwal_dokter.ListJadwalDokter + jadwalDokter = append(jadwalDokter, jadwal_dokter.ListJadwalDokter{ + NamaHari: key.NamaHari, + KodeHari: key.KodeHari, + Waktu: key.Waktu, + DataDokter: jadwal_dokter.DataDokter{ + NamaLengkap: namaLengkap, + HFISCode: k.HFISCode, + }, + }) + res = append(res, &jadwal_dokter.ResponseListHari{ + IDSpesialis: v.ID, + Kode: v.Kode, + Spesialis: v.Spesialis, + NamaHari: key.NamaHari, + JadwalDokter: jadwalDokter, + }) } } } - // listSpesialis, err := dokter.GetSpesialisByID(listHari) - // if err != nil { - // c.JSON(http.StatusInternalServerError, err) - // return - // } + c.JSON(http.StatusOK, res) } diff --git a/main.go b/main.go index 23d2874..c4de254 100644 --- a/main.go +++ b/main.go @@ -65,8 +65,8 @@ func main() { AllowHeaders: []string{"Origin", "Content-Type"}, AllowCredentials: true, })) - log.Println("JALAN DI PORT : 8080") - err = r.Run(":8080") + log.Println("JALAN DI PORT : 8081") + err = r.Run(":8081") if err != nil { log.Fatal(err) } diff --git a/models/bpjs/jadwal_dokter/jadwal_dokter.go b/models/bpjs/jadwal_dokter/jadwal_dokter.go index d58f174..fcf6ce9 100644 --- a/models/bpjs/jadwal_dokter/jadwal_dokter.go +++ b/models/bpjs/jadwal_dokter/jadwal_dokter.go @@ -53,14 +53,30 @@ type JadwalDokterTempSatuData struct { } type ResponseListHari struct { - IDSpesialis int `json:"id_spesialis"` - Kode string `json:"Kode"` - Spesialis string `json:"Spesialis"` - NamaHari string `json:"Nama_hari"` + IDSpesialis int `json:"id_spesialis"` + Kode string `json:"Kode"` + Spesialis string `json:"Spesialis"` + NamaHari string `json:"Nama_hari"` + JadwalDokter []ListJadwalDokter `json:"Jadwal_dokter"` +} + +type ListJadwalDokter struct { + NamaHari string `json:"Nama_hari"` + KodeHari int `json:"Kode_hari"` + Waktu string `json:"Waktu"` + DataDokter DataDokter `json:"Data_dokter"` +} + +type DataDokter struct { + NamaLengkap string `json:"nama_lengkap"` + HFISCode string `json:"HFIS_code"` } type ListHari struct { ID int `gorm:"column:id" json:"id"` Spesialis int `gorm:"column:Spesialis" json:"Spesialis"` + KodeHari int `gorm:"column:Hari" json:"Kode_hari"` NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"` + Waktu string `gorm:"column:Waktu" json:"Waktu"` + IDDokter string `gorm:"column:Dokter" json:"Dokter"` }