fix insert surkon

This commit is contained in:
2024-10-08 13:29:56 +07:00
parent 82d518a5a1
commit 6ee0400ba5
6 changed files with 199 additions and 82 deletions

No files matched your search

@@ -8,7 +8,7 @@ import (
func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, error) {
var kunjunganPasien *suratkontrol.KunjunganPasien
err := config.SatuDataDB.Debug().Raw(`select dkp."IDXDAFTAR" as idxdaftar, dkp."Nomor_sep" as nomorsep,
err := config.SatuDataDB.Debug().Raw(`select dkp."id", dkp."IDXDAFTAR" as idxdaftar, dkp."Nomor_sep" as nomorsep,
dlr."Nama" as namaklinik, dlr."Id_location_simgos" as idkliniksimgos, dlr."Kode_hfis_bpjs" as kodehfisklinik,
dk."Nama_lengkap" as namadokter,
dp."KDDOKTER" as kodedokter, dp."HFIS_code" as kodehfisdokter,
@@ -27,7 +27,7 @@ func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, er
where dpdgb.data_pegawai_id = dp.id
) AS gelarbelakang,
dkp."Ruangan" as ruangan,
dkp."DPJP"
dkp."DPJP" as id_dokter
from data_kunjungan_pasien dkp
left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id
left join data_pegawai dp on dkp."DPJP" = dp.id
@@ -40,18 +40,16 @@ func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, er
return nil, err
}
log.Println("Data Kunjungan Pasien : ", kunjunganPasien)
return kunjunganPasien, err
return kunjunganPasien, nil
}
func InsertDataSuratKontrol(reqInsert *suratkontrol.InsertDataSuratKontrol) error {
log.Println("Req Insert Database : ", reqInsert)
insertQuery := `insert into data_surat_kontrol ("status", "user_created", "Tanggal_cetak_surat_kontrol", "Tanggal_rencana_kontrol",
insertQuery := `insert into data_surat_kontrol ("Tanggal_cetak_surat_kontrol", "Tanggal_rencana_kontrol",
"Nomor_surat_kontrol", "Kunjungan_pasien", "Ruangan_surat_kontrol", "DPJP_surat_kontrol", "Status_surat_kontrol",
"User_created_surat_kontrol")
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
err := config.SatuDataDB.Debug().Exec(insertQuery,
reqInsert.Status,
reqInsert.UserCreated,
reqInsert.TglCetakSurKon,
reqInsert.TglRencanaKontrol,
reqInsert.NomorSurKon,
@@ -67,3 +65,35 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.InsertDataSuratKontrol) erro
}
return nil
}
func GetDataSuratKontrol() ([]*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon []*suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Debug().Raw(`select dsk."status", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
dsk."Nomor_surat_kontrol", dlr."Nama" as "Lokasi_ruang",
array(
select dgd. "Gelar_depan"
from data_pegawai_daftar_gelar_depan dpdgd
left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id
) AS gelardepan ,
dk."Nama_lengkap" ,
array(
select dgb. "Gelar_belakang"
from data_pegawai_daftar_gelar_belakang dpdgb
left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id
) AS gelarbelakang
from data_surat_kontrol dsk
left join daftar_lokasi_ruang dlr on dsk."Ruangan_surat_kontrol" = dlr."id"
left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id"
left join data_ktp dk on dp."KTP" = dk. id
where dsk."Status_surat_kontrol" = '1'`).First(&dataSurKon).Error
if err != nil {
log.Println(err)
return nil, err
}
log.Println("Data Surat Kontrol : ", dataSurKon)
return dataSurKon, nil
}
func UpdateDataSuratKontrol(reqUpdate *suratkontrol.UpdateDataSuratKontrol) error {
return nil
}
+1 -1
View File
@@ -62,7 +62,7 @@ func PostData(url string, header *config.Header, headers map[string]string, requ
log.Println("metadata : ", resSuratKontrolRaw.MetaData.Code)
if resSuratKontrolRaw.MetaData.Code == "201" {
if resSuratKontrolRaw.MetaData.Code != "200" {
errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
log.Printf("error : %v", errMsg)
responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code
+103 -55
View File
@@ -3,11 +3,13 @@ package suratkontrol
import (
cfg "bridging-rssa/config"
suratkontrol "bridging-rssa/database/satu_data/surat_kontrol"
"bridging-rssa/docs/utils"
sk "bridging-rssa/models/bpjs/surat_kontrol"
"bridging-rssa/models/config"
"log"
"net/http"
"os"
"strings"
"time"
"github.com/gin-gonic/gin"
@@ -51,10 +53,10 @@ func InsertSuratKontrol(c *gin.Context) {
}
reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{
Request: &sk.RequestInsertRencanaKontrol{
Request: &sk.ReqInsertRencanaKontrol{
NoSEP: req.NoSEP,
KodeHFIS: req.KodeHFIS,
KodePoli: req.KodePoli,
KodeDokter: req.KodeHFIS,
PoliKontrol: req.KodePoli,
TglRencanaKontrol: req.TglRencanaKontrol,
User: req.User,
},
@@ -66,15 +68,13 @@ func InsertSuratKontrol(c *gin.Context) {
}
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,
KunjunganPasien: kunjunganPasien.ID,
RuanganSurKon: kunjunganPasien.Ruangan,
DPJPSurKon: kunjunganPasien.DPJP,
StatusSurKon: 0, // TODO CARI DARIMANA
StatusSurKon: 1, // First Insert status always set to 1
UserCreatedSurKon: req.User,
}
@@ -88,59 +88,77 @@ func InsertSuratKontrol(c *gin.Context) {
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
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
var req sk.RequestUpdateRencanaKontrol
// err := c.Bind(req)
// if err != nil {
// log.Println(err)
// c.JSON(http.StatusInternalServerError, err)
// return
// }
err := c.Bind(req)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
// conf := config.ConfigBpjs{}
// dateNow := time.Now().Format("2006-01-02")
// header := cfg.SetHeaderDev(conf)
conf := config.ConfigBpjs{}
// 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
// // }
header := cfg.SetHeaderDev(conf)
// reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{
// Request: &sk.RequestUpdateRencanaKontrol{
// NoSuratKontrol: req.NoSuratKo ntrol,
// NoSEP: req.NoSEP,
// KodeDokter: req.KodeHFIS,
// PoliKontrol: req.KodeHFIS,
// 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
// }
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
// }
// c.JSON(http.StatusOK, res)
// }
reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{
Request: &sk.ReqUpdateRencanaKontrol{
NoSuratKontrol: req.NoSuratKontrol,
NoSEP: req.NoSEP,
KodeDokter: req.KodeHFIS,
PoliKontrol: req.KodeHFIS,
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
}
// reqUpdate := &sk.UpdateDataSuratKontrol{
// UserUpdated: req.User,
// DateUpdated: dateNow,
// TglCetakSurKon: dateNow,
// TglRencanaKontrol: res.Response.TglRencanaKontrol,
// NomorSurKon: res.Response.NoSuratKontrol,
// StatusSurKon: 1, // TODO CARI DARIMANA
// }
// err = suratkontrol.UpdateDataSuratKontrol(reqUpdate)
// if err != nil {
// log.Println(err)
// c.JSON(http.StatusInternalServerError, err)
// return
// }
c.JSON(http.StatusOK, res)
}
// func DeleteSuratKontrol(c *gin.Context) {
// baseUrl := os.Getenv("BASEURL_BPJS_DEV")
@@ -208,7 +226,7 @@ func GetNomorSuratKontrol(c *gin.Context) {
res, err := ResponseGetNomorSuratKontrol(url, header, headers)
if err != nil {
log.Fatalf("Error making external API request: %v", err)
log.Printf("Error making external API request: %v", err)
c.JSON(http.StatusInternalServerError, err)
return
}
@@ -237,10 +255,40 @@ func GetSuratKontrolBySEP(c *gin.Context) {
res, err := ResponseGetSuratKontrolBySEP(url, header, headers)
if err != nil {
log.Fatalf("Error making external API request: %v", err)
log.Printf("Error making external API request: %v", err)
c.JSON(http.StatusInternalServerError, err)
return
}
c.JSON(http.StatusOK, res)
}
func GetDataSurKon(c *gin.Context) {
data, err := suratkontrol.GetDataSuratKontrol()
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
var resSurKon []*sk.ResponseGetDataSuratKontrol
for _, v := range data {
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
namaLengkap := gelarDepan + " " + v.NamaLengkap + " " + gelarBelakang
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TglCetakSurKon)
dateCetakSurkonString := dateCetakSurkon.Format("02/01/2006")
dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol)
dateRencanaSurkonString := dateRencanaSurkon.Format("02/01/2006")
resSurKon = append(resSurKon, &sk.ResponseGetDataSuratKontrol{
Status: v.Status,
TglCetakSurKon: dateCetakSurkonString,
TglRencanaKontrol: dateRencanaSurkonString,
NomorSurKon: v.NomorSurKon,
LokasiRuang: v.LokasiRuang,
NamaLengkap: namaLengkap,
})
}
c.JSON(http.StatusOK, resSurKon)
}
+5 -4
View File
@@ -49,11 +49,12 @@ func main() {
suratKontrol := v1.Group("/suratkontrol")
{
suratKontrol.GET("/", suratkontrol.GetDataSurKon)
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
// suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
// suratKontrol.DELETE("/delete", suratkontrol.UpdateSuratKontrol)
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
}
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
@@ -66,8 +67,8 @@ func main() {
AllowHeaders: []string{"Origin", "Content-Type"},
AllowCredentials: true,
}))
log.Println("JALAN DI PORT : 8081")
err = r.Run(":8081")
log.Println("JALAN DI PORT : 8080")
err = r.Run(":8080")
if err != nil {
log.Fatal(err)
}
@@ -1,6 +1,7 @@
package suratkontrol
type KunjunganPasien struct {
ID string `gorm:"column:id" json:"id"`
IDXDaftar int `gorm:"column:idxdaftar" json:"idxdaftar"`
NomorSEP string `gorm:"column:nomorsep" json:"nomorsep"`
NamaKlinik string `gorm:"column:namaklinik" json:"namaklinik"`
+53 -16
View File
@@ -4,7 +4,7 @@ type RequestHeaderRencanaKontrol struct {
Request interface{} `json:"request"`
}
type RequestInsertDBRencanaKontrol struct {
type ReqInsertRencanaKontrol struct {
NoSEP string `json:"noSEP"`
KodeDokter string `json:"kodeDokter"`
PoliKontrol string `json:"poliKontrol"`
@@ -12,7 +12,8 @@ type RequestInsertDBRencanaKontrol struct {
User string `json:"user"`
}
type RequestUpdateDBRencanaKontrol struct {
type ReqUpdateRencanaKontrol struct {
NoSuratKontrol string `json:"noSuratKontrol"`
NoSEP string `json:"noSEP"`
KodeDokter string `json:"kodeDokter"`
PoliKontrol string `json:"poliKontrol"`
@@ -20,11 +21,20 @@ type RequestUpdateDBRencanaKontrol struct {
User string `json:"user"`
}
type RequestInsertRencanaKontrol struct {
IDXDaftar string `json:"idxdaftar"`
NoSEP string `json:"noSEP"`
KodeHFIS string `json:"kodeHFIS"`
KodePoli string `json:"kodePoli"`
TglRencanaKontrol string `json:"tglRencanaKontrol"`
User string `json:"user"`
}
type RequestUpdateRencanaKontrol struct {
NoSuratKontrol string `json:"noSuratKontrol"`
NoSEP string `json:"noSEP"`
KodeDokter string `json:"kodeDokter"`
PoliKontrol string `json:"poliKontrol"`
KodeHFIS string `json:"kodeHFIS"`
KodePoli string `json:"kodePoli"`
TglRencanaKontrol string `json:"tglRencanaKontrol"`
User string `json:"user"`
}
@@ -75,20 +85,11 @@ type ResponseInsertSuratKontrol struct {
TglLahir string `json:"tglLahir"`
}
type RequestInsertRencanaKontrol struct {
type RequestRencanaKontrol struct {
IDXDaftar string `json:"idxdaftar"`
NoSEP string `json:"noSEP"`
KodeHFIS string `json:"kodeHFIS"`
KodePoli string `json:"kodePoli"`
TglRencanaKontrol string `json:"tglRencanaKontrol"`
User string `json:"user"`
}
type ReqUpdateRencanaKontrol struct {
IDXDaftar string `json:"idxdaftar"`
NoSEP string `json:"noSEP"`
KodeHFIS string `json:"kodeHFIS"`
KodePoli string `json:"kodePoli"`
KodeHFIS string `json:"kodeHFIS"`
KodePoli string `json:"kodePoli"`
TglRencanaKontrol string `json:"tglRencanaKontrol"`
User string `json:"user"`
}
@@ -159,6 +160,21 @@ type InsertDataSuratKontrol struct {
UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_surat_kontrol"`
}
type UpdateDataSuratKontrol struct {
ID string `gorm:"column:id" json:"id"`
Status string `gorm:"column:status" json:"status"`
Sort int `gorm:"column:sort" json:"sort"`
UserUpdated string `gorm:"column:user_updated" json:"user_updated"`
DateUpdated string `gorm:"column:date_updated" json:"date_updated"`
TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"`
TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"`
NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"`
KunjunganPasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"`
RuanganSurKon int `gorm:"column:Ruangan_surat_kontrol" json:"Ruangan_surat_kontrol"`
DPJPSurKon string `gorm:"column:DPJP_surat_kontrol" json:"DPJP_surat_kontrol"`
StatusSurKon int `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"`
}
type ResponseSuratKontrolBySEP struct {
NoSEP string `json:"noSep"`
TglSEP string `json:"tglSep"`
@@ -169,3 +185,24 @@ type ResponseSuratKontrolBySEP struct {
ProvUmum ProvUmum `json:"provUmum"`
ProvPerujuk ProvPerujuk `json:"provPerujuk"`
}
type GetDataSuratKontrol struct {
Status string `gorm:"column:status" json:"status"`
TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"`
TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"`
NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"`
KunjunganPasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"`
LokasiRuang string `gorm:"column:Lokasi_ruang" json:"Lokasi_ruang"`
GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"`
NamaLengkap string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"`
GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"`
}
type ResponseGetDataSuratKontrol struct {
Status string `gorm:"column:status" json:"status"`
TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"`
TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"`
NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"`
LokasiRuang string `gorm:"column:Lokasi_ruang" json:"Lokasi_ruang"`
NamaLengkap string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"`
}