Files
api-bpjs-surkon/main.go
2025-04-25 14:47:21 +07:00

146 lines
4.8 KiB
Go

package main
import (
"bridging-rssa/config"
"bridging-rssa/handlers/bpjs"
icare "bridging-rssa/handlers/bpjs/i_care"
"bridging-rssa/handlers/bpjs/jadwal_dokter"
"bridging-rssa/handlers/bpjs/rujukan"
suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol"
vclaim "bridging-rssa/handlers/bpjs/v_claim"
kunjungan_pasien "bridging-rssa/handlers/kunjungan_pasien"
mikrobiologiHandler "bridging-rssa/handlers/mikrobiologi"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
"log"
"time"
)
// @title Crud User
// @version 1
// @Description Rest API CRUD User
// @host localhost:8080
func main() {
err := godotenv.Load()
if err != nil {
log.Fatal("Error loading .env file")
}
config.ConnectDB()
r := gin.Default()
// jakartaTime, _ := time.LoadLocation("Asia/Jakarta")
// scheduler := cron.New(cron.WithLocation(jakartaTime))
// defer scheduler.Stop()
// scheduler.AddFunc("41 09 * * *", func() {
// log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER ===")
// jadwal_dokter.GetDataJadwalDokter()
// log.Println("=== SCHEDULE GET JADWAL DOKTER DONE ===")
// })
// scheduler.AddFunc("0 12 * * *", func() {
// log.Println("=== RUNNING SCHEDULE DATA SURAT KONTROL ===")
// suratkontrol.UpdateSuratKontrolSchedule()
// log.Println("=== SCHEDULE DATA SURAT KONTROL DONE ===")
// })
// scheduler.AddFunc("59 23 * * *", func() {
// log.Println("=== RUNNING SCHEDULE DATA SURAT KONTROL ===")
// suratkontrol.UpdateSuratKontrolSchedule()
// log.Println("=== SCHEDULE DATA SURAT KONTROL DONE ===")
// })
// go scheduler.Start()
v1 := r.Group("/api")
subspesialis := v1.Group("/subspesialis")
{
subspesialis.GET("/", bpjs.GetAllSubspesialis)
}
jadwalDokter := v1.Group("/jadwaldokter")
{
jadwalDokter.POST("/getjadwal", jadwal_dokter.GetJadwalDokterApi)
jadwalDokter.GET("/getalljadwal", jadwal_dokter.GetAllJadwalDokter)
jadwalDokter.GET("/getalljadwalnew", jadwal_dokter.GetJadwalDokterNew)
jadwalDokter.GET("/getjadwaldokter", jadwal_dokter.GetDataJadwalDokter)
jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP)
// 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)
jadwalDokter.POST("/detail", jadwal_dokter.GetDetailJadwalDokter)
//jadwalDokter.PUT("/update", jadwal_dokter.UpdateDataJadwalDokter)
}
suratKontrol := v1.Group("/suratkontrol")
{
suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon)
suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID)
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
suratKontrol.GET("/printSurKon/:idxdaftar", suratkontrol.PrintSurKon)
suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
suratKontrol.POST("/datalog", suratkontrol.GetDataLogAPI)
}
kunjunganPasien := v1.Group("/kunjunganpasien")
{
kunjunganPasien.POST("/listkunjunganpasien", kunjungan_pasien.ListKunjunganPasien)
}
suratRujukan := v1.Group("/rujukan")
{
suratRujukan.GET("/noRujukan/:noRujukan", rujukan.GetSuratRujukan)
suratRujukan.GET("/list/peserta/:noKartu", rujukan.GetSuratRujukanBatch)
}
iCare := v1.Group("/icare")
{
iCare.POST("/rs/validate", icare.GetFKRTL)
iCare.POST("/pcare/validate", icare.GetFKTP)
}
referensi := v1.Group("/referensi")
{
referensi.GET("/dokter/:dpjp", vclaim.GetReferensiDokter)
}
mikrobiologi := v1.Group("/mikrobiologi")
{
mikrobiologi.POST("/datapasien", mikrobiologiHandler.GetDataPasienMikrobiologi)
mikrobiologi.POST("/sendmikro", mikrobiologiHandler.SendDataLISMikro)
}
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
r.Use(cors.New(cors.Config{
AllowOrigins: []string{"*"}, // or specific domains like "http://example.com"
AllowMethods: []string{"GET", "POST", "PUT", "DELETE"},
AllowHeaders: []string{"Origin", "Content-Type"},
AllowCredentials: true,
}))
localTime := time.Now()
log.Println("Local Time:", localTime)
log.Println("JALAN DI PORT : 8082")
err = r.Run(":8082")
if err != nil {
log.Fatal(err)
}
}