Merge branch 'master' of https://git.rssa.top/mirza.millahsyafiq.0912/api-bpjs-surkon
This commit is contained in:
No files matched your search
@@ -0,0 +1,24 @@
|
||||
package lokasiruang
|
||||
|
||||
import (
|
||||
"bridging-rssa/config"
|
||||
"errors"
|
||||
"log"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func GetDaftarLokasiRuang(idSimgos string) (int, error) {
|
||||
var idRuangan int
|
||||
query := `select dlr."id" from "daftar_lokasi_ruang" dlr where dlr."Id_location_simgos" = ?`
|
||||
err := config.SatuDataDB.Debug().Raw(query, idSimgos).First(&idRuangan).Error
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
log.Println(err)
|
||||
return 128, nil
|
||||
}
|
||||
log.Println(err)
|
||||
return 0, err
|
||||
}
|
||||
return idRuangan, nil
|
||||
}
|
||||
@@ -323,6 +323,7 @@ func GetDokterBySubspesialis(c *gin.Context) {
|
||||
Subspesialis: idSubspesialis,
|
||||
HFISCode: v.HFISCode,
|
||||
KodePoli: listSubspesialis.Kode,
|
||||
DPJPCode: v.DPJPCode,
|
||||
})
|
||||
}
|
||||
log.Println("Response :", resDokter)
|
||||
|
||||
@@ -12,7 +12,6 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func PostData(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (*suratkontrol.Response, error) {
|
||||
@@ -36,21 +35,15 @@ func PostData(url string, header *config.Header, headers map[string]string, requ
|
||||
}
|
||||
|
||||
log.Println("REQ", req.Header)
|
||||
client := http.Client{
|
||||
Timeout: 10 * time.Second,
|
||||
}
|
||||
client := http.Client{}
|
||||
|
||||
responses := &suratkontrol.Response{}
|
||||
response, err := client.Do(req)
|
||||
if err != nil {
|
||||
if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") {
|
||||
errMsg := errors.New("Koneksi BPJS Terputus, Silahkan Coba Lagi")
|
||||
log.Printf("error : %v", errMsg)
|
||||
responses.MetaData.Message = errMsg.Error()
|
||||
log.Println("responses: ", responses)
|
||||
return responses, err
|
||||
}
|
||||
responses.MetaData.Code = "203"
|
||||
responses.MetaData.Message = err.Error()
|
||||
log.Printf("Error making external API request: %v", err)
|
||||
log.Println("responses: ", responses)
|
||||
return responses, err
|
||||
}
|
||||
log.Println("RESPONSE: ", response)
|
||||
@@ -61,7 +54,7 @@ func PostData(url string, header *config.Header, headers map[string]string, requ
|
||||
responses.MetaData.Code = "504"
|
||||
responses.MetaData.Message = errMsg.Error()
|
||||
log.Println("responses: ", responses)
|
||||
return responses, err
|
||||
return responses, errMsg
|
||||
}
|
||||
|
||||
key := header.ConsID + header.SecretKey + header.TimeStamp
|
||||
@@ -87,7 +80,7 @@ func PostData(url string, header *config.Header, headers map[string]string, requ
|
||||
message := "Gagal simpan! Nomor SEP pernah diterbitkan Surat Kontrol!."
|
||||
resSuratKontrolRaw.MetaData.Message = message
|
||||
log.Println("masuk sini kan")
|
||||
} else if strings.Contains(strings.ToLower(resSuratKontrolRaw.MetaData.Message), "gagal simpan") {
|
||||
} else if resSuratKontrolRaw.MetaData.Message == "Gagal simpan! Poli Tujuan Kontrol tidak sama dengan Poli Asal Rujukan Awal." {
|
||||
message := "Surat kontrol gagal diterbitkan, pastikan klinik tujuan sama dengan klinik asal pada rujukan awal"
|
||||
resSuratKontrolRaw.MetaData.Message = message
|
||||
}
|
||||
@@ -145,19 +138,13 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s
|
||||
}
|
||||
|
||||
log.Println("REQ", req.Header)
|
||||
client := http.Client{
|
||||
Timeout: 10 * time.Second,
|
||||
}
|
||||
client := http.Client{}
|
||||
responses := &suratkontrol.Response{}
|
||||
response, err := client.Do(req)
|
||||
if err != nil {
|
||||
if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") {
|
||||
errMsg := errors.New("Koneksi BPJS Terputus, Silahkan Coba Lagi")
|
||||
log.Printf("error : %v", errMsg)
|
||||
responses.MetaData.Message = errMsg.Error()
|
||||
log.Println("responses: ", responses)
|
||||
return responses, err
|
||||
}
|
||||
responses.MetaData.Code = "504"
|
||||
responses.MetaData.Message = err.Error()
|
||||
log.Println("responses: ", responses)
|
||||
log.Printf("Error making external API request: %v", err)
|
||||
return responses, err
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package suratkontrol
|
||||
import (
|
||||
cfg "bridging-rssa/config"
|
||||
log_api "bridging-rssa/database/satu_data/log_api"
|
||||
lokasiruang "bridging-rssa/database/satu_data/lokasi_ruang"
|
||||
suratkontrol "bridging-rssa/database/satu_data/surat_kontrol"
|
||||
"bridging-rssa/docs/utils"
|
||||
sk "bridging-rssa/models/bpjs/surat_kontrol"
|
||||
@@ -33,9 +34,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
err := c.Bind(&req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -43,9 +46,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
reqJson, err := json.Marshal(req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -74,21 +79,42 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
var idRuangan int
|
||||
if kunjunganPasien.Ruangan != 0 {
|
||||
idRuangan = kunjunganPasien.Ruangan
|
||||
} else {
|
||||
idRuangan, err = lokasiruang.GetDaftarLokasiRuang(req.Ruangan)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
uuid := uuid.New().String()
|
||||
if req.TipeSurKon != "1" {
|
||||
dataSurkon, err := suratkontrol.GetNomorSurKon(kunjunganPasien.ID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -98,9 +124,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
noUrut, err = utils.GetNoUrut(dataSurkon)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -114,7 +142,7 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
TglRencanaKontrol: req.TglRencanaKontrol,
|
||||
NomorSurKon: noSurKon,
|
||||
KunjunganPasien: kunjunganPasien.ID,
|
||||
RuanganSurKon: kunjunganPasien.Ruangan,
|
||||
RuanganSurKon: idRuangan,
|
||||
DPJPSurKon: req.IDDokter,
|
||||
StatusSurKon: 1, // First Insert status always set to 1
|
||||
UserCreatedSurKon: req.User,
|
||||
@@ -123,9 +151,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -133,15 +163,19 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
err = suratkontrol.UpdateKunjunganPasien(req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, &sk.MetadataString{
|
||||
Code: "200",
|
||||
Message: "Berhasil Insert Surat Kontrol",
|
||||
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "200",
|
||||
Message: "Berhasil Insert Surat Kontrol",
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -161,9 +195,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
responJson, err := json.Marshal(res)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -188,23 +224,29 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
err = log_api.InsertLogAPI(reqInsertLog)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, res.MetaData)
|
||||
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: res.MetaData,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
responJson, err := json.Marshal(res)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -216,7 +258,7 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
TglRencanaKontrol: res.Response.TglRencanaKontrol,
|
||||
NomorSurKon: res.Response.NoSuratKontrol,
|
||||
KunjunganPasien: kunjunganPasien.ID,
|
||||
RuanganSurKon: kunjunganPasien.Ruangan,
|
||||
RuanganSurKon: idRuangan,
|
||||
DPJPSurKon: req.IDDokter,
|
||||
StatusSurKon: 1, // First Insert status always set to 1
|
||||
UserCreatedSurKon: req.User,
|
||||
@@ -226,9 +268,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -242,9 +286,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
err = suratkontrol.UpdateKunjunganPasien(req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -269,9 +315,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
err = log_api.InsertLogAPI(reqInsertLog)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -292,7 +340,6 @@ func InsertSuratKontrol(c *gin.Context) {
|
||||
}
|
||||
|
||||
log.Println("Response: ", response)
|
||||
|
||||
c.JSON(http.StatusOK, response)
|
||||
}
|
||||
|
||||
@@ -577,6 +624,15 @@ func DeleteSuratKontrol(c *gin.Context) {
|
||||
})
|
||||
return
|
||||
}
|
||||
reqJson, err := json.Marshal(req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
log.Println("REQUEST: ", req)
|
||||
|
||||
@@ -620,6 +676,12 @@ func DeleteSuratKontrol(c *gin.Context) {
|
||||
}
|
||||
log.Println("Headers : ", headers)
|
||||
|
||||
var headerStringBuilder strings.Builder
|
||||
for key, value := range headers {
|
||||
headerStringBuilder.WriteString(fmt.Sprintf("%s: %s; ", key, value))
|
||||
}
|
||||
|
||||
headerString := strings.TrimSuffix(headerStringBuilder.String(), "; ")
|
||||
request := &sk.RequestHeaderRencanaKontrol{
|
||||
Request: &sk.TSuratKontrol{
|
||||
RequestDelete: sk.RequestDeleteRencanaKontrol{
|
||||
@@ -629,12 +691,91 @@ func DeleteSuratKontrol(c *gin.Context) {
|
||||
},
|
||||
}
|
||||
|
||||
logTimeStart := time.Now().Format("2006-01-02 15:04:05")
|
||||
res, err := ResponseDeleteSuratKontrol(url, header, headers, request)
|
||||
if err != nil {
|
||||
responJson, err := json.Marshal(res)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
|
||||
uuid := uuid.New().String()
|
||||
reqInsertLog := &logapi.DataLogAPI{
|
||||
ID: uuid,
|
||||
DateCreated: logTimeEnd,
|
||||
UserAgent: req.User,
|
||||
IP: c.ClientIP(),
|
||||
Parameter: "BPJS-VClaim-RencanaKontrol",
|
||||
Header: headerString,
|
||||
Method: "DELETE",
|
||||
Url: url,
|
||||
Request: reqJson,
|
||||
Respon: responJson,
|
||||
ResponCode: res.MetaData.Code,
|
||||
ResponTimeStart: logTimeStart,
|
||||
ResponTimeEnd: logTimeEnd,
|
||||
Comment: res.MetaData.Message,
|
||||
}
|
||||
|
||||
err = log_api.InsertLogAPI(reqInsertLog)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
log.Printf("Error making external API request: %v", err)
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
return
|
||||
}
|
||||
responJson, err := json.Marshal(res)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||
MetaData: sk.MetadataString{
|
||||
Code: "203",
|
||||
Message: err.Error(),
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
|
||||
uuid := uuid.New().String()
|
||||
reqInsertLog := &logapi.DataLogAPI{
|
||||
ID: uuid,
|
||||
DateCreated: logTimeEnd,
|
||||
UserAgent: req.User,
|
||||
IP: c.ClientIP(),
|
||||
Parameter: "BPJS-VClaim-RencanaKontrol",
|
||||
Header: headerString,
|
||||
Method: "DELETE",
|
||||
Url: url,
|
||||
Request: reqJson,
|
||||
Respon: responJson,
|
||||
ResponCode: res.MetaData.Code,
|
||||
ResponTimeStart: logTimeStart,
|
||||
ResponTimeEnd: logTimeEnd,
|
||||
Comment: res.MetaData.Message,
|
||||
}
|
||||
|
||||
err = log_api.InsertLogAPI(reqInsertLog)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||
Code: "",
|
||||
Message: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
reqUpdate := &sk.DataSuratKontrol{
|
||||
DateUpdated: timeNow,
|
||||
|
||||
@@ -34,6 +34,7 @@ type RequestInsertRencanaKontrol struct {
|
||||
NamaDiagnosa string `json:"Nama_diagnosa"`
|
||||
TipeSurKon string `json:"tipe_surkon"`
|
||||
TipeRawat string `json:"tipe_rawat"`
|
||||
Ruangan string `json:"ruangan"`
|
||||
}
|
||||
|
||||
type ReqDeleteRencanaKontrol struct {
|
||||
|
||||
Reference in New Issue
Block a user