216 lines
5.4 KiB
Go
216 lines
5.4 KiB
Go
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)
|
|
}
|