123 lines
4.4 KiB
Go
123 lines
4.4 KiB
Go
package dokter
|
|
|
|
import (
|
|
"bridging-rssa/config"
|
|
"bridging-rssa/models/bpjs/jadwal_dokter"
|
|
"log"
|
|
"strconv"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
func GetJadwalDokterByDPJP(dpjp string) (string, error) {
|
|
var id string
|
|
errSelect := config.SatuDataDB.Raw(`select "id" from "data_pegawai" where "Code_dpjp" = ?`, dpjp).First(&id).Error
|
|
if errSelect != nil {
|
|
log.Printf("Failed get data : %v", errSelect)
|
|
return "", errSelect
|
|
}
|
|
return id, nil
|
|
}
|
|
|
|
func GetJadwalHariDokterBySpesialis(id string) ([]jadwal_dokter.JadwalDokterSatuData, error) {
|
|
var hari []jadwal_dokter.JadwalDokterSatuData
|
|
errSelect := config.SatuDataDB.Raw(`select * from "daftar_jadwal_dokter" where "Dokter" = ? order by "id"`, id).Scan(&hari).Error
|
|
if errSelect != nil {
|
|
log.Printf("Failed get data : %v", errSelect)
|
|
return nil, errSelect
|
|
}
|
|
return hari, nil
|
|
}
|
|
|
|
func GetJadwalDokterByIDDokter(hari string) ([]string, error) {
|
|
var spesialis []string
|
|
errSelect := config.SatuDataDB.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 GetJadwalDokterByDate(hari string) ([]string, error) {
|
|
var spesialis []string
|
|
errSelect := config.SatuDataDB.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 GetJadwalSubspesialisByDate(hari string) ([]int, error) {
|
|
var subspesialis []int
|
|
errSelect := config.SatuDataDB.Raw(`select distinct "Sub_spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Sub_spesialis"`, hari).Scan(&subspesialis).Error
|
|
if errSelect != nil {
|
|
log.Printf("Failed get data : %v", errSelect)
|
|
return nil, errSelect
|
|
}
|
|
return subspesialis, nil
|
|
}
|
|
|
|
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
|
|
var listDokter []string
|
|
errSelect := config.SatuDataDB.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 GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) {
|
|
var listDokter []string
|
|
errSelect := config.SatuDataDB.Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Sub_spesialis" = ? order by "Sub_spesialis"`, hari, subspesialis).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.Exec(`truncate table "daftar_jadwal_dokter"`).Error
|
|
if err != nil {
|
|
log.Printf("Failed truncate data : %v", err)
|
|
return err
|
|
}
|
|
log.Println("Success truncate data")
|
|
return nil
|
|
}
|
|
|
|
func DeleteJadwalDokterTemp() error {
|
|
err := config.SatuDataDB.Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
|
|
if err != nil {
|
|
log.Printf("Failed truncate data : %v", err)
|
|
return err
|
|
}
|
|
log.Println("Success truncate data")
|
|
return nil
|
|
}
|
|
|
|
func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
|
|
err := config.SatuDataDB.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.Printf("Failed insert data : %v", err)
|
|
return err
|
|
}
|
|
log.Println("Success insert data")
|
|
return nil
|
|
}
|
|
|
|
func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
|
|
spesialis := strconv.Itoa(reqInsert.Spesialis)
|
|
subspesialis := strconv.Itoa(reqInsert.SubSpesialis)
|
|
id := uuid.New()
|
|
err := config.SatuDataDB.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.Printf("Failed insert data : %v", err)
|
|
return err
|
|
}
|
|
log.Println("Success insert data")
|
|
return nil
|
|
}
|