update get jadwal dokter

This commit is contained in:
2024-10-16 08:04:28 +07:00
parent c3ac02052f
commit 1b14bf24c5
7 changed files with 162 additions and 35 deletions

No files matched your search

@@ -58,6 +58,16 @@ func GetJadwalDokterByDate(hari string) ([]string, error) {
return spesialis, nil
}
func GetJadwalSubspesialisByDate(hari string) ([]int, error) {
var subspesialis []int
errSelect := config.SatuDataDB.Debug().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.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Spesialis" = ? order by "Spesialis"`, hari, spesialis).Scan(&listDokter).Error
@@ -68,6 +78,16 @@ func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error)
return listDokter, nil
}
func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) {
var listDokter []string
errSelect := config.SatuDataDB.Debug().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.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
if err != nil {
+23 -3
View File
@@ -26,13 +26,33 @@ func GetSubspesialis() ([]dokter.DaftarSubspesialis, error) {
return daftarSubspesialis, nil
}
func GetSubspesialisByID(idSubspesialis int) ([]dokter.DaftarSubspesialis, error) {
var daftarSubspesialis []dokter.DaftarSubspesialis
func GetSubspesialisByID(idSubspesialis int) (*dokter.DaftarSubspesialis, error) {
var daftarSubspesialis *dokter.DaftarSubspesialis
result := config.SatuDataDB.Debug().Raw(`select dss.*, ds."Spesialis"
from "daftar_subspesialis" dss
left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID"
where dss.id = ?`, idSubspesialis).Find(&daftarSubspesialis)
where dss.id = ?`, idSubspesialis).First(&daftarSubspesialis)
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 daftarSubspesialis, nil
}
log.Println(daftarSubspesialis)
return daftarSubspesialis, nil
}
func GetSubspesialisByIDBatch(idSubspesialis []int) ([]dokter.DaftarSubspesialis, error) {
var daftarSubspesialis []dokter.DaftarSubspesialis
result := config.SatuDataDB.Debug().Raw(`select dss.*, ds."Spesialis"
from "daftar_subspesialis" dss
left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID"
where dss.id in ?
order by dss."id"`, idSubspesialis).Find(&daftarSubspesialis)
if result.Error != nil {
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
log.Printf("Error get data : %v", result.Error)
@@ -155,7 +155,8 @@ 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
left join "data_kunjungan_pasien" dkp on dkp."id" = dsk."Kunjungan_pasien"
where dsk."id" = ?`, idSurKon).First(&idxDaftar).Error
if err != nil {
log.Println(err)
return "", err
+90 -28
View File
@@ -175,36 +175,33 @@ func GetDokterByDPJP(c *gin.Context) {
var res *jadwal_dokter.ResponseListHari
for _, v := range listSubspesialis {
for _, k := range namaDokter {
var jadwalDokter []jadwal_dokter.ListJadwalDokter
for _, key := range listHari {
jadwalDokter = append(jadwalDokter, jadwal_dokter.ListJadwalDokter{
NamaHari: key.NamaHari,
KodeHari: key.Hari,
Waktu: key.Waktu,
})
}
gelarDepan := utils.ReplaceGelar(k.GelarDepan)
gelarBelakang := utils.ReplaceGelar(k.GelarBelakang)
namaLengkap := gelarDepan + " " + k.NamaLengkap + " " + gelarBelakang
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
hfisCode := strings.TrimSpace(k.HFISCode)
res = &jadwal_dokter.ResponseListHari{
IDSpesialis: v.IDSpesialis,
Kode: v.Kode,
Spesialis: v.Spesialis,
Subspesialis: v.Subspesialis,
IDSubspesialis: v.Kode,
NamaLengkap: namaLengkap,
HFISCode: hfisCode,
KodeDPJP: dpjp,
JadwalDokter: jadwalDokter,
}
for _, k := range namaDokter {
var jadwalDokter []jadwal_dokter.ListJadwalDokter
for _, key := range listHari {
jadwalDokter = append(jadwalDokter, jadwal_dokter.ListJadwalDokter{
NamaHari: key.NamaHari,
KodeHari: key.Hari,
Waktu: key.Waktu,
})
}
gelarDepan := utils.ReplaceGelar(k.GelarDepan)
gelarBelakang := utils.ReplaceGelar(k.GelarBelakang)
namaLengkap := gelarDepan + " " + k.NamaLengkap + " " + gelarBelakang
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
hfisCode := strings.TrimSpace(k.HFISCode)
res = &jadwal_dokter.ResponseListHari{
IDSpesialis: listSubspesialis.IDSpesialis,
Kode: listSubspesialis.Kode,
Spesialis: listSubspesialis.Spesialis,
Subspesialis: listSubspesialis.Subspesialis,
IDSubspesialis: listSubspesialis.Kode,
NamaLengkap: namaLengkap,
HFISCode: hfisCode,
KodeDPJP: dpjp,
JadwalDokter: jadwalDokter,
}
}
log.Println("Response :", res)
c.JSON(http.StatusOK, res)
}
@@ -228,6 +225,25 @@ func GetSpesialisByDate(c *gin.Context) {
c.JSON(http.StatusOK, listSpesialis)
}
func GetJadwalSubspesialisByDate(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)
idsubspesialis, err := dokter.GetJadwalSubspesialisByDate(hari)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
listSpesialis, err := dokter.GetSubspesialisByIDBatch(idsubspesialis)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
c.JSON(http.StatusOK, listSpesialis)
}
func GetDokterBySpesialis(c *gin.Context) {
spesialis := c.Param("spesialis")
tanggal := c.Param("tanggal")
@@ -266,3 +282,49 @@ func GetDokterBySpesialis(c *gin.Context) {
log.Println("Response :", resDokter)
c.JSON(http.StatusOK, resDokter)
}
func GetDokterBySubspesialis(c *gin.Context) {
subspesialis := c.Param("subspesialis")
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)
idDokter, err := dokter.GetJadwalDokterBySubpesialis(hari, subspesialis)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
namaDokter, err := dokter.GetNamaLengkapDokter(idDokter)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
var resDokter []dktr.ResponseDokterNew
idSubspesialis, err := strconv.Atoi(subspesialis)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
listSubspesialis, err := dokter.GetSubspesialisByID(idSubspesialis)
if err != nil {
c.JSON(http.StatusInternalServerError, err)
}
for _, v := range namaDokter {
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
namaLengkap := gelarDepan + " " + v.NamaLengkap + " " + gelarBelakang
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
resDokter = append(resDokter, dktr.ResponseDokterNew{
ID: v.ID,
NamaLengkap: namaLengkap,
Subspesialis: idSubspesialis,
HFISCode: v.HFISCode,
KodePoli: listSubspesialis.Kode,
})
}
log.Println("Response :", resDokter)
c.JSON(http.StatusOK, resDokter)
}
@@ -160,6 +160,8 @@ func UpdateSuratKontrol(c *gin.Context) {
return
}
log.Println("Request: ", req)
timeNow := time.Now().Format("2006-01-02 15:04:05")
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
@@ -184,6 +186,18 @@ func UpdateSuratKontrol(c *gin.Context) {
UserCreatedSurKon: req.User,
TipeSurKon: tipeSurKon,
}
reqUpdate := &sk.DataSuratKontrol{
DateUpdated: timeNow,
ID: req.IDSurKon,
StatusSurKon: 2,
}
err = suratkontrol.UpdateDataSuratKontrol(reqUpdate)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
if err != nil {
log.Println(err)
+5 -3
View File
@@ -43,8 +43,10 @@ func main() {
{
jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP)
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
// jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetJadwalSubspesialisByDate)
jadwalDokter.GET("/tanggal/:tanggal/spesialis/:spesialis", jadwal_dokter.GetDokterBySpesialis)
jadwalDokter.GET("/tanggal/:tanggal/subspesialis/:subspesialis", jadwal_dokter.GetDokterBySubspesialis)
}
suratKontrol := v1.Group("/suratkontrol")
@@ -70,8 +72,8 @@ func main() {
AllowCredentials: true,
}))
log.Println("JALAN DI PORT : 8080")
err = r.Run(":8080")
log.Println("JALAN DI PORT : 8082")
err = r.Run(":8082")
if err != nil {
log.Fatal(err)
}
+8
View File
@@ -24,3 +24,11 @@ type ResponseDokter struct {
Spesialis int `json:"spesialis"`
HFISCode string `json:"HFIS_code"`
}
type ResponseDokterNew struct {
ID string `json:"id"`
NamaLengkap string `json:"nama_lengkap"`
Subspesialis int `json:"subspesialis"`
HFISCode string `json:"HFIS_code"`
KodePoli string `json:"kode_poli"`
}