fix surkon

This commit is contained in:
2024-10-11 08:48:20 +07:00
parent 75d45811d2
commit 9fbad6352c
5 changed files with 142 additions and 19 deletions

No files matched your search

@@ -0,0 +1,16 @@
package suratkontrol
import (
"bridging-rssa/config"
sk "bridging-rssa/models/bpjs/surat_kontrol"
"log"
)
func UpdateNoSEPKunjunganPasien(req sk.RequestInsertRencanaKontrol) error {
err := config.SatuDataDB.Debug().Exec(`update "data_kunjungan_pasien" set "Nomor_sep" = ? where "IDXDAFTAR" = ?`, req.NoSEP, req.IDXDaftar).Error
if err != nil {
log.Println(err)
return err
}
return nil
}
@@ -45,12 +45,13 @@ func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, er
func InsertDataSuratKontrol(reqInsert *suratkontrol.InsertDataSuratKontrol) error {
log.Println("Req Insert Database : ", reqInsert)
insertQuery := `insert into "data_surat_kontrol" ("id", "Tanggal_cetak_surat_kontrol", "Tanggal_rencana_kontrol",
insertQuery := `insert into "data_surat_kontrol" ("id", "date_created", "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 (?, ?, ?, ?, ?, ?, ?, ?, ?)`
"User_created_surat_kontrol", "Tipe_surat_kontrol")
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
err := config.SatuDataDB.Debug().Exec(insertQuery,
reqInsert.ID,
reqInsert.DateCreated,
reqInsert.TglCetakSurKon,
reqInsert.TglRencanaKontrol,
reqInsert.NomorSurKon,
@@ -59,6 +60,7 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.InsertDataSuratKontrol) erro
reqInsert.DPJPSurKon,
reqInsert.StatusSurKon,
reqInsert.UserCreatedSurKon,
reqInsert.TipeSurKon,
).Error
if err != nil {
log.Println(err)
@@ -92,7 +94,41 @@ func GetDataSuratKontrol() ([]*suratkontrol.GetDataSuratKontrol, error) {
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" <> '0'`).First(&dataSurKon).Error
where dsk."Status_surat_kontrol" = '1'`).Scan(&dataSurKon).Error
if err != nil {
log.Println(err)
return nil, err
}
log.Println("Data Surat Kontrol : ", dataSurKon)
return dataSurKon, nil
}
func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon *suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
dsk."Nomor_surat_kontrol",
(select dlr."Nama"
from data_kunjungan_pasien dkp
left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal",
dlr."Nama" as "Poli_tuju",
dkp2."Nomor_sep", dkp2."Nama_lengkap",
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" as "Nama_lengkap_dokter",
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 data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien"
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' and dkp2."IDXDAFTAR" = ?`, idxdaftar).First(&dataSurKon).Error
if err != nil {
log.Println(err)
return nil, err
@@ -102,7 +138,7 @@ func GetDataSuratKontrol() ([]*suratkontrol.GetDataSuratKontrol, error) {
}
func UpdateDataSuratKontrol(idSurKon string) error {
err := config.SatuDataDB.Debug().Exec(`update "data_surat_kontrol" set "Status_surat_kontrol" = 2 where "id" = ?`, idSurKon).Error
err := config.SatuDataDB.Debug().Exec(`update "data_surat_kontrol" set "Status_surat_kontrol" = 0 where "id" = ?`, idSurKon).Error
if err != nil {
log.Println(err)
return err
+83 -14
View File
@@ -22,6 +22,7 @@ func InsertSuratKontrol(c *gin.Context) {
param := os.Getenv("INSERT_SURAT_KONTROL")
url := baseUrl + endpoint + param
timeNow := time.Now().Format("2006-01-02 15:04:05")
dateNow := time.Now().Format("2006-01-02")
var req sk.RequestInsertRencanaKontrol
@@ -48,6 +49,39 @@ func InsertSuratKontrol(c *gin.Context) {
}
log.Println("Headers : ", headers)
tipeSurKon := "1"
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
if err != nil {
log.Println(err)
}
uuid := uuid.New().String()
if req.NoSEP == "" {
tipeSurKon = "0"
reqInsert := &sk.InsertDataSuratKontrol{
ID: uuid,
DateCreated: timeNow,
TglCetakSurKon: timeNow,
TglRencanaKontrol: dateNow,
NomorSurKon: "", //TODO How to get Nomor SurKon
KunjunganPasien: kunjunganPasien.ID,
RuanganSurKon: kunjunganPasien.Ruangan,
DPJPSurKon: kunjunganPasien.DPJP,
StatusSurKon: 1, // First Insert status always set to 1
UserCreatedSurKon: req.User,
TipeSurKon: tipeSurKon,
}
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
c.JSON(http.StatusOK, nil)
return
}
reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{
Request: &sk.ReqInsertRencanaKontrol{
NoSEP: req.NoSEP,
@@ -64,15 +98,10 @@ func InsertSuratKontrol(c *gin.Context) {
return
}
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
if err != nil {
log.Println(err)
}
uuid := uuid.New().String()
reqInsert := &sk.InsertDataSuratKontrol{
ID: uuid,
TglCetakSurKon: dateNow,
DateCreated: timeNow,
TglCetakSurKon: timeNow,
TglRencanaKontrol: res.Response.TglRencanaKontrol,
NomorSurKon: res.Response.NoSuratKontrol,
KunjunganPasien: kunjunganPasien.ID,
@@ -80,6 +109,7 @@ func InsertSuratKontrol(c *gin.Context) {
DPJPSurKon: kunjunganPasien.DPJP,
StatusSurKon: 1, // First Insert status always set to 1
UserCreatedSurKon: req.User,
TipeSurKon: tipeSurKon,
}
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
@@ -89,6 +119,13 @@ func InsertSuratKontrol(c *gin.Context) {
return
}
err = suratkontrol.UpdateNoSEPKunjunganPasien(req)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
response := &sk.ResponseInsertSuratKontrol{
MetaData: res.MetaData,
Response: sk.ResponseData{
@@ -199,7 +236,6 @@ func DeleteSuratKontrol(c *gin.Context) {
err := c.Bind(&req)
if err != nil {
log.Println("MASUK SINI")
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
@@ -234,12 +270,12 @@ func DeleteSuratKontrol(c *gin.Context) {
return
}
// err = suratkontrol.UpdateDataSuratKontrol()
// if err != nil {
// log.Println(err)
// c.JSON(http.StatusInternalServerError, err)
// return
// }
err = suratkontrol.UpdateDataSuratKontrol(req.IDDataSurKon)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
c.JSON(http.StatusOK, res)
}
@@ -337,3 +373,36 @@ func GetDataSurKon(c *gin.Context) {
}
c.JSON(http.StatusOK, resSurKon)
}
func GetDataSurKonByID(c *gin.Context) {
id := c.Param("idxdaftar")
data, err := suratkontrol.GetDataSuratKontrolByID(id)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, err)
return
}
gelarDepan := utils.ReplaceGelar(data.GelarDepan)
gelarBelakang := utils.ReplaceGelar(data.GelarBelakang)
namaLengkap := gelarDepan + " " + data.NamaLengkapDokter + " " + gelarBelakang
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
dateCetakSurkon, _ := time.Parse(time.RFC3339, data.TglCetakSurKon)
dateCetakSurkonString := dateCetakSurkon.Format("02/01/2006")
dateRencanaSurkon, _ := time.Parse(time.RFC3339, data.TglRencanaKontrol)
dateRencanaSurkonString := dateRencanaSurkon.Format("02/01/2006")
resSurKon := &sk.ResponseGetDataSuratKontrol{
IDDataSurKon: data.IDDataSurKon,
TglCetakSurKon: dateCetakSurkonString,
TglRencanaKontrol: dateRencanaSurkonString,
NomorSurKon: data.NomorSurKon,
PoliAsal: data.PoliAsal,
PoliTujuan: data.PoliTujuan,
NomorSEP: data.NomorSEP,
NamaPasien: data.NamaPasien,
NamaDokter: namaLengkap,
NomorKartu: "",
}
c.JSON(http.StatusOK, resSurKon)
}
+1
View File
@@ -50,6 +50,7 @@ func main() {
suratKontrol := v1.Group("/suratkontrol")
{
suratKontrol.GET("/", suratkontrol.GetDataSurKon)
suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID)
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
@@ -203,6 +203,7 @@ type InsertDataSuratKontrol struct {
DPJPSurKon string `gorm:"column:DPJP_surat_kontrol" json:"DPJP_surat_kontrol"`
StatusSurKon int `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"`
UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_surat_kontrol"`
TipeSurKon string `gorm:"column:Tipe_surat_kontrol" json:"Tipe_surat_kontrol"`
}
type ResponseSuratKontrolBySEP struct {