package suratkontrol import ( cfg "bridging-rssa/config" suratkontrol "bridging-rssa/database/satu_data/surat_kontrol" sk "bridging-rssa/models/bpjs/surat_kontrol" "bridging-rssa/models/config" "log" "net/http" "os" "time" "github.com/gin-gonic/gin" ) func InsertSuratKontrol(c *gin.Context) { baseUrl := os.Getenv("BASEURL_BPJS_DEV") endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") param := os.Getenv("INSERT_SURAT_KONTROL") url := baseUrl + endpoint + param dateNow := time.Now().Format("2006-01-02") var req sk.RequestInsertRencanaKontrol err := c.Bind(&req) if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, err) return } log.Println("Request: ", req) conf := config.ConfigBpjs{} header := cfg.SetHeader(conf) headers := map[string]string{ "X-cons-id": header.ConsID, "X-timestamp": header.TimeStamp, "X-signature": header.XSignature, "user_key": header.UserKey, "Content-Type": "Application/x-www-form-urlencoded", } log.Println("Headers : ", headers) kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, err) } reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{ Request: &sk.RequestRencanaKontrol{ NoSEP: req.NoSEP, KodeDokter: req.KodeDokter, PoliKontrol: req.PoliKontrol, TglRencanaKontrol: req.TglRencanaKontrol, User: req.User, }, } res, err := PostData(url, header, headers, reqSuratKontrol) if err != nil { c.JSON(http.StatusInternalServerError, res) return } reqInsert := &sk.InsertDataSuratKontrol{ Status: "1", // First Insert status always set to 1 UserCreated: req.User, TglCetakSurKon: dateNow, TglRencanaKontrol: res.Response.TglRencanaKontrol, NomorSurKon: res.Response.NoSuratKontrol, KunjunganPasien: kunjunganPasien.IDKlinikSimgos, RuanganSurKon: kunjunganPasien.Ruangan, DPJPSurKon: kunjunganPasien.DPJP, StatusSurKon: 0, // TODO CARI DARIMANA UserCreatedSurKon: req.User, } err = suratkontrol.InsertDataSuratKontrol(reqInsert) if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, err) return } c.JSON(http.StatusOK, res) } func UpdateSuratKontrol(c *gin.Context) { baseUrl := os.Getenv("BASEURL_BPJS_DEV") endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") param := os.Getenv("UPDATE_SURAT_KONTROL") url := baseUrl + endpoint + param var req sk.RequestInsertRencanaKontrol err := c.Bind(req) if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, err) return } conf := config.ConfigBpjs{} header := cfg.SetHeader(conf) headers := map[string]string{ "X-cons-id": header.ConsID, "X-timestamp": header.TimeStamp, "X-signature": header.XSignature, "user_key": header.UserKey, "Content-Type": "Application/x-www-form-urlencoded", } log.Println("Headers : ", headers) kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, err) return } reqSuratKontrol := &sk.RequestRencanaKontrol{ NoSEP: kunjunganPasien.NomorSEP, KodeDokter: kunjunganPasien.KodeHfisDokter, PoliKontrol: req.PoliKontrol, TglRencanaKontrol: req.TglRencanaKontrol, User: req.User, } res, err := ResponseUpdateSuratKontrol(url, header, headers, reqSuratKontrol) if err != nil { log.Printf("Error making external API request: %v", err) c.JSON(http.StatusInternalServerError, err) return } c.JSON(http.StatusOK, res) } func DeleteSuratKontrol(c *gin.Context) { baseUrl := os.Getenv("BASEURL_BPJS_DEV") endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") param := os.Getenv("UPDATE_SURAT_KONTROL") url := baseUrl + endpoint + param var req sk.RequestInsertRencanaKontrol err := c.Bind(req) if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, err) return } conf := config.ConfigBpjs{} header := cfg.SetHeader(conf) headers := map[string]string{ "X-cons-id": header.ConsID, "X-timestamp": header.TimeStamp, "X-signature": header.XSignature, "user_key": header.UserKey, "Content-Type": "Application/x-www-form-urlencoded", } log.Println("Headers : ", headers) request := &sk.RequestHeaderRencanaKontrol{ Request: &sk.RequestDeleteRencanaKontrol{ NoSuratKontrol: "", User: "", }, } res, err := ResponseDeleteSuratKontrol(url, header, headers, request) if err != nil { log.Printf("Error making external API request: %v", err) c.JSON(http.StatusInternalServerError, err) return } c.JSON(http.StatusOK, res) } func GetNomorSuratKontrol(c *gin.Context) { baseUrl := os.Getenv("BASEURL_BPJS_DEV") endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") param := os.Getenv("GET_NOMOR_SURAT_KONTROL") noSurat := c.Param("noSuratKontrol") url := baseUrl + endpoint + param + noSurat conf := config.ConfigBpjs{} header := cfg.SetHeader(conf) headers := map[string]string{ "X-cons-id": header.ConsID, "X-timestamp": header.TimeStamp, "X-signature": header.XSignature, "user_key": header.UserKey, } log.Println("Headers : ", headers) res, err := ResponseGetNomorSuratKontrol(url, header, headers) if err != nil { log.Fatalf("Error making external API request: %v", err) c.JSON(http.StatusInternalServerError, err) return } c.JSON(http.StatusOK, res) }