get spesialis

This commit is contained in:
2024-09-25 11:53:50 +07:00
parent 48b2615c9e
commit 8f606982fa
7 changed files with 116 additions and 7 deletions

View File

@@ -40,3 +40,18 @@ func GetDokter() ([]dokter.DaftarDokterRes, error) {
log.Println("Data Pegawai: ", res)
return res, nil
}
func GetDotkerByID(idDokter []string) ([]dokter.DaftarSpesialis, error) {
var daftarDokter []dokter.DaftarSpesialis
result := config.SatuDataDB.Debug().Raw(`select * from "data_pegawai" where "id" in ?`, idDokter).Find(&daftarDokter)
if result.Error != nil {
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
log.Printf("Error get data : %v", result.Error)
return nil, result.Error
}
log.Printf("Data kosong: %v", result.Error)
return daftarDokter, nil
}
return daftarDokter, nil
}

View File

@@ -9,10 +9,30 @@ import (
"github.com/google/uuid"
)
func GetJadwalDokterByDate(hari string) ([]string, error) {
var spesialis []string
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return spesialis, nil
}
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
var listDokter []string
errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and Spesialis = ? order by "Spesialis"`, hari, spesialis).Scan(&listDokter).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return listDokter, nil
}
func DeleteJadwalDokter() error {
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
if err != nil {
log.Fatalf("Failed truncate data : %v", err)
log.Printf("Failed truncate data : %v", err)
return err
}
log.Println("Success truncate data")
@@ -22,7 +42,7 @@ func DeleteJadwalDokter() error {
func DeleteJadwalDokterTemp() error {
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
if err != nil {
log.Fatalf("Failed truncate data : %v", err)
log.Printf("Failed truncate data : %v", err)
return err
}
log.Println("Success truncate data")
@@ -32,7 +52,7 @@ func DeleteJadwalDokterTemp() error {
func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ? ,?, ?, ?, ?, ?)`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error
if err != nil {
log.Fatalf("Failed insert data : %v", err)
log.Printf("Failed insert data : %v", err)
return err
}
log.Println("Success insert data")
@@ -45,7 +65,7 @@ func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error
id := uuid.New()
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter_temp" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ?, ?, ?, ?, ?, ?, ?)`, id, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, spesialis, subspesialis, reqInsert.Status).Error
if err != nil {
log.Fatalf("Failed insert data : %v", err)
log.Printf("Failed insert data : %v", err)
return err
}
log.Println("Success insert data")

View File

@@ -15,10 +15,25 @@ func GetSpesialis() ([]dokter.DaftarSpesialis, error) {
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis"`).Find(&daftarSpesialis)
if result.Error != nil {
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
log.Fatalf("Error get data : %v", result.Error)
log.Printf("Error get data : %v", result.Error)
return nil, result.Error
}
log.Fatalf("Data kosong: %v", result.Error)
log.Printf("Data kosong: %v", result.Error)
return daftarSpesialis, nil
}
return daftarSpesialis, nil
}
func GetSpesialisByID(idSpesialis []string) ([]dokter.DaftarSpesialis, error) {
var daftarSpesialis []dokter.DaftarSpesialis
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis" where "id" in ?`, idSpesialis).Find(&daftarSpesialis)
if result.Error != nil {
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
log.Printf("Error get data : %v", result.Error)
return nil, result.Error
}
log.Printf("Data kosong: %v", result.Error)
return daftarSpesialis, nil
}

View File

@@ -1,6 +1,9 @@
package utils
import "log"
import (
"log"
"strings"
)
// Function to convert Kode to ID
func KodeToIDConverter(kode string, kodeDokter map[string]int) int {
@@ -15,3 +18,21 @@ func HfisCodeToIDConverter(kode int, kodeDokter map[int]string) string {
id := kodeDokter[kode]
return id
}
func ConvertDay(day string) string {
dayTranslations := map[string]string{
"sunday": "MINGGU",
"monday": "SENIN",
"tuesday": "SELASA",
"wednesday": "RABU",
"thursday": "KAMIS",
"friday": "JUMAT",
"saturday": "SABTU",
}
dayLower := strings.ToLower(day)
if translatedDay, exists := dayTranslations[dayLower]; exists {
return translatedDay
}
return day
}

View File

@@ -129,3 +129,36 @@ func GetJadwalDokter(c *gin.Context) {
}
c.JSON(http.StatusOK, res)
}
func GetSpesialisByDate(c *gin.Context) {
tanggal := c.Param("tanggal")
date, err := time.Parse("2006-01-02", tanggal)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
hari := date.Local().Weekday().String()
hari = utils.ConvertDay(hari)
idSpesialis, err := dokter.GetJadwalDokterByDate(hari)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
listSpesialis, err := dokter.GetSpesialisByID(idSpesialis)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
c.JSON(http.StatusOK, listSpesialis)
}
func GetDokterBySpesialis(c *gin.Context) {
spesialis := c.Param("spesialis")
hari := c.Param("hari")
idDokter, err := dokter.GetJadwalDokterBySpesialis(hari, spesialis)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
listSpesialis, err := dokter.GetDotkerByID(idDokter)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
c.JSON(http.StatusOK, listSpesialis)
}

View File

@@ -40,6 +40,7 @@ func main() {
jadwalDokter := v1.Group("/jadwaldokter")
{
jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
}
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

View File

@@ -9,3 +9,7 @@ type DaftarDokterRes struct {
ID string `gorm:"column:id" json:"id"`
HfisCode int `gorm:"column:HFIS_code" json:"HFIS_code"`
}
type NamaLengkap struct {
}