diff --git a/database/satu_data/surat_kontrol/surat_kontrol.go b/database/satu_data/surat_kontrol/surat_kontrol.go index 658cc77..fdcf633 100644 --- a/database/satu_data/surat_kontrol/surat_kontrol.go +++ b/database/satu_data/surat_kontrol/surat_kontrol.go @@ -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."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, @@ -25,7 +25,9 @@ func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, er 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 + ) AS gelarbelakang, + dkp."Ruangan" as ruangan, + dkp."DPJP" 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 @@ -35,11 +37,33 @@ func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, er where dkp."IDXDAFTAR" = ?`, idxdaftar).First(&kunjunganPasien).Error if err != nil { log.Println(err) + return nil, err } log.Println("Data Kunjungan Pasien : ", kunjunganPasien) return kunjunganPasien, err } -func InsertDataSuratKontrol(reqInsert suratkontrol.InsertDataSuratKontrol) error { +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", + "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, + reqInsert.KunjunganPasien, + reqInsert.RuanganSurKon, + reqInsert.DPJPSurKon, + reqInsert.StatusSurKon, + reqInsert.UserCreatedSurKon, + ).Error + if err != nil { + log.Println(err) + return err + } return nil } diff --git a/handlers/bpjs/surat_kontrol/surat_kontrol.go b/handlers/bpjs/surat_kontrol/surat_kontrol.go index 1ae0c8b..6346d10 100644 --- a/handlers/bpjs/surat_kontrol/surat_kontrol.go +++ b/handlers/bpjs/surat_kontrol/surat_kontrol.go @@ -8,6 +8,7 @@ import ( "log" "net/http" "os" + "time" "github.com/gin-gonic/gin" ) @@ -18,6 +19,8 @@ func InsertSuratKontrol(c *gin.Context) { 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) @@ -46,20 +49,38 @@ func InsertSuratKontrol(c *gin.Context) { reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{ Request: &sk.RequestRencanaKontrol{ - NoSEP: kunjunganPasien.NomorSEP, - KodeDokter: kunjunganPasien.KodeHfisDokter, - PoliKontrol: req.KodePoli, - TglRencanaKontrol: req.Tanggal, + 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 { log.Printf("Error making external API request: %v", err) c.JSON(http.StatusInternalServerError, err) } + reqInsert := &sk.InsertDataSuratKontrol{ + Status: "1", // First Insert status always set to 1 + UserCreated: req.User, + TglCetakSurKon: dateNow, + TglRencanaKontrol: res.TglRencanaKontrol, + NomorSurKon: res.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) + } + c.JSON(http.StatusOK, res) } @@ -98,8 +119,8 @@ func UpdateSuratKontrol(c *gin.Context) { reqSuratKontrol := &sk.RequestRencanaKontrol{ NoSEP: kunjunganPasien.NomorSEP, KodeDokter: kunjunganPasien.KodeHfisDokter, - PoliKontrol: req.KodePoli, - TglRencanaKontrol: req.Tanggal, + PoliKontrol: req.PoliKontrol, + TglRencanaKontrol: req.TglRencanaKontrol, User: req.User, } @@ -109,24 +130,6 @@ func UpdateSuratKontrol(c *gin.Context) { c.JSON(http.StatusInternalServerError, err) } - // reqInsert := &sk.InsertDataSuratKontrol{ - // ID: "", - // Status: "", - // Sort: 0, - // UserCreated: "", - // DateCreated: "", - // UserUpdated: "", - // DateUpdated: "", - // TglCetakSurKon: "", - // TglRencanaKontrol: "", - // NomorSurKon: "", - // KunjunganPasien: "", - // RuanganSurKon: 0, - // DPJPSurKon: "", - // StatusSurKon: 0, - // UserCreatedSurKon: "", - // } - c.JSON(http.StatusOK, res) } diff --git a/models/bpjs/surat_kontrol/kunjugan_pasien.go b/models/bpjs/surat_kontrol/kunjugan_pasien.go index 9478c76..e8ba479 100644 --- a/models/bpjs/surat_kontrol/kunjugan_pasien.go +++ b/models/bpjs/surat_kontrol/kunjugan_pasien.go @@ -14,4 +14,6 @@ type KunjunganPasien struct { Spesialis string `gorm:"column:spesialis" json:"spesialis"` GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` + Ruangan int `gorm:"column:ruangan" json:"ruangan"` + DPJP string `gorm:"column:DPJP" json:"DPJP"` } diff --git a/models/bpjs/surat_kontrol/surat_kontrol.go b/models/bpjs/surat_kontrol/surat_kontrol.go index 2fa2474..891a9da 100644 --- a/models/bpjs/surat_kontrol/surat_kontrol.go +++ b/models/bpjs/surat_kontrol/surat_kontrol.go @@ -40,11 +40,12 @@ type ResponseInsertSuratKontrol struct { } type RequestInsertRencanaKontrol struct { - NoSEP string `json:"noSEP"` - IDXDaftar string `json:"idxdaftar"` - Tanggal string `json:"tanggal"` - KodePoli string `json:"kodePoli"` - User string `json:"user"` + IDXDaftar string `json:"idxdaftar"` + NoSEP string `json:"noSEP"` + KodeDokter string `json:"kodeDokter"` + PoliKontrol string `json:"poliKontrol"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + User string `json:"user"` } type ResponseNomorSuratKontrol struct {