penambahan validasi kunjungan RJ
This commit is contained in:
No files matched your search
@@ -4,22 +4,42 @@ import (
|
||||
"bridging-rssa/config"
|
||||
suratkontrol "bridging-rssa/models/bpjs/surat_kontrol"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func GetAdmission(idxdaftar string) (*suratkontrol.Addmission, error) {
|
||||
var dataAdmission suratkontrol.Addmission
|
||||
err := config.DB.Raw(`select "dokterpengirim","id_admission","dokter_penanggungjawab","nosep",mp."nama",mp."noktp",mp."jeniskelamin",
|
||||
"masukrs", mp.noktp,ta."nomr"
|
||||
from t_admission ta
|
||||
join m_pasien mp on ta."nomr" = mp."nomr"
|
||||
where id_admission = ?`, idxdaftar).Scan(&dataAdmission).Error
|
||||
func GetPendaftaran(idxdaftar string) (*suratkontrol.Pendaftaran, error) {
|
||||
var dataPendaftaran suratkontrol.Pendaftaran
|
||||
err := config.DB.Raw(`select tp."kddokter",mp."nama",mp."noktp",mp."jeniskelamin",
|
||||
mp.noktp,tp."nosep" ,tp."idxdaftar",tp."nomr" ,tp."jamreg"
|
||||
from t_pendaftaran tp
|
||||
join m_pasien mp on tp.nomr = mp.nomr
|
||||
where tp.idxdaftar = ?`, idxdaftar).Scan(&dataPendaftaran).Error
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return nil, nil
|
||||
}
|
||||
log.Println(dataPendaftaran)
|
||||
return &dataPendaftaran, nil
|
||||
}
|
||||
|
||||
func GetAdmission(idxdaftar string) (*suratkontrol.Addmission, error) {
|
||||
var dataAdmission suratkontrol.Addmission
|
||||
result := config.DB.Raw(`select "dokterpengirim","id_admission","dokter_penanggungjawab","nosep",mp."nama",mp."noktp",mp."jeniskelamin",
|
||||
"masukrs", mp.noktp,ta."nomr"
|
||||
from t_admission ta
|
||||
join m_pasien mp on ta."nomr" = mp."nomr"
|
||||
where id_admission = ?`, idxdaftar).Scan(&dataAdmission)
|
||||
if result.Error != nil {
|
||||
log.Println(result.Error)
|
||||
return nil, result.Error
|
||||
}
|
||||
if result.RowsAffected == 0 {
|
||||
// Data tidak ditemukan, kembalikan error khusus
|
||||
return nil, fmt.Errorf("Data Tidak Ditemukan")
|
||||
}
|
||||
log.Println(dataAdmission)
|
||||
return &dataAdmission, nil
|
||||
}
|
||||
|
||||
@@ -139,58 +139,104 @@ func InsertSuratkontrolNew(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
uuid := uuid.New().String()
|
||||
|
||||
var kunjunganPasien *sk.KunjunganPasien
|
||||
kunjunganPasien, err = suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
if err.Error() == "Data Tidak Ditemukan" {
|
||||
dataAdmission, erradmission := suratkontrol.GetAdmission(req.IDXDaftar)
|
||||
dataAdmission, errAdmission := suratkontrol.GetAdmission(req.IDXDaftar)
|
||||
log.Println("kesini kagh", dataAdmission)
|
||||
if erradmission != nil {
|
||||
log.Println("masuk sini")
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Pasien Tidak Ada Kunjungan",
|
||||
})
|
||||
return
|
||||
}
|
||||
IdDokter, err := suratkontrol.Getdokter(dataAdmission.DokterPengirim)
|
||||
log.Println("ID E DOKTER", IdDokter)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Dokter tidak Ditemukan di satudata",
|
||||
})
|
||||
return
|
||||
}
|
||||
layout := "2006-01-02 15:04:05" // sesuaikan format string input
|
||||
log.Println("kesini kag error nya", errAdmission)
|
||||
if errAdmission != nil {
|
||||
log.Println("Admission error, coba ambil pendaftaran")
|
||||
// Penambahan: fallback ke GetPendaftaran
|
||||
dataPendaftaran, errPendaftaran := suratkontrol.GetPendaftaran(req.IDXDaftar)
|
||||
if errPendaftaran != nil {
|
||||
log.Println("masuk sini, pendaftaran juga error")
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Pasien Tidak Ada Kunjungan dan Tidak Ada Data Admission maupun Pendaftaran",
|
||||
})
|
||||
return
|
||||
}
|
||||
log.Println("INI DATA PENDAFTARAN :", dataPendaftaran)
|
||||
// Ambil dokter dari data pendaftaran
|
||||
IdDokter, err := suratkontrol.Getdokter(dataPendaftaran.DokterPengirim)
|
||||
log.Println("ID E DOKTER dari pendaftaran", IdDokter)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Dokter tidak Ditemukan di satudata",
|
||||
})
|
||||
return
|
||||
}
|
||||
layout := "2006-01-02 15:04:05" // sesuaikan format string input
|
||||
|
||||
masukrsTime, err := time.Parse(layout, dataAdmission.MasukRS)
|
||||
Tanggalmasuk := masukrsTime.Format("2006-01-02")
|
||||
Jammasuk := masukrsTime.Format("15:04:05")
|
||||
insertKunjungan := &sk.InsertKunjunganPasien{
|
||||
ID: uuid,
|
||||
IdxDaftar: dataAdmission.ID,
|
||||
Nomr: dataAdmission.Nomr,
|
||||
NamaLengkap: dataAdmission.NamaLengkap,
|
||||
NIK: dataAdmission.NoKTP,
|
||||
DPJP: IdDokter,
|
||||
TanggalMasuk: Tanggalmasuk,
|
||||
JamMasuk: Jammasuk,
|
||||
DateCreated: timeNow,
|
||||
}
|
||||
log.Println("Insert Kunjungan:", insertKunjungan)
|
||||
err = suratkontrol.InsertKunjunganPasien(insertKunjungan)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Server Pasien Sedang Down",
|
||||
})
|
||||
return
|
||||
masukrsTime, err := time.Parse(layout, dataPendaftaran.MasukRS)
|
||||
Tanggalmasuk := masukrsTime.Format("2006-01-02")
|
||||
Jammasuk := masukrsTime.Format("15:04:05")
|
||||
insertKunjungan := &sk.InsertKunjunganPasien{
|
||||
ID: uuid,
|
||||
IdxDaftar: dataPendaftaran.ID,
|
||||
Nomr: dataPendaftaran.Nomr,
|
||||
NamaLengkap: dataPendaftaran.NamaLengkap,
|
||||
NIK: dataPendaftaran.NoKTP,
|
||||
DPJP: IdDokter,
|
||||
TanggalMasuk: Tanggalmasuk,
|
||||
JamMasuk: Jammasuk,
|
||||
DateCreated: timeNow,
|
||||
}
|
||||
log.Println("Insert Kunjungan dari Pendaftaran:", insertKunjungan)
|
||||
err = suratkontrol.InsertKunjunganPasien(insertKunjungan)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Server Pasien Sedang Down",
|
||||
})
|
||||
return
|
||||
}
|
||||
} else {
|
||||
// Mapping data admission ke insert kunjungan (kode asli)
|
||||
IdDokter, err := suratkontrol.Getdokter(dataAdmission.DokterPengirim)
|
||||
log.Println("ID E DOKTER", IdDokter)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Dokter tidak Ditemukan di satudata",
|
||||
})
|
||||
return
|
||||
}
|
||||
layout := "2006-01-02 15:04:05" // sesuaikan format string input
|
||||
|
||||
masukrsTime, err := time.Parse(layout, dataAdmission.MasukRS)
|
||||
Tanggalmasuk := masukrsTime.Format("2006-01-02")
|
||||
Jammasuk := masukrsTime.Format("15:04:05")
|
||||
insertKunjungan := &sk.InsertKunjunganPasien{
|
||||
ID: uuid,
|
||||
IdxDaftar: dataAdmission.ID,
|
||||
Nomr: dataAdmission.Nomr,
|
||||
NamaLengkap: dataAdmission.NamaLengkap,
|
||||
NIK: dataAdmission.NoKTP,
|
||||
DPJP: IdDokter,
|
||||
TanggalMasuk: Tanggalmasuk,
|
||||
JamMasuk: Jammasuk,
|
||||
DateCreated: timeNow,
|
||||
}
|
||||
log.Println("Insert Kunjungan:", insertKunjungan)
|
||||
err = suratkontrol.InsertKunjunganPasien(insertKunjungan)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Server Pasien Sedang Down",
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
// Cek ulang kunjungan pasien setelah insert
|
||||
kunjunganPasien, err = suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
|
||||
log.Println("Kunjungan Pasien ke 2:", kunjunganPasien)
|
||||
if err != nil {
|
||||
|
||||
@@ -34,6 +34,16 @@ type Addmission struct {
|
||||
MasukRS string `gorm:"column:masukrs" json:"masukrs"`
|
||||
}
|
||||
|
||||
type Pendaftaran struct {
|
||||
ID int `gorm:"column:idxdaftar" json:"idxdaftar"`
|
||||
Nomr string `gorm:"column:nomr" json:"nomr"`
|
||||
DokterPengirim int `gorm:"column:kddokter" json:"kddokter"`
|
||||
NoSEP string `gorm:"column:nosep" json:"nosep"`
|
||||
NamaLengkap string `gorm:"column:nama" json:"namalengkap"`
|
||||
NoKTP string `gorm:"column:noktp" json:"noktp"`
|
||||
MasukRS string `gorm:"column:jamreg" json:"jamreg"`
|
||||
}
|
||||
|
||||
type InsertKunjunganPasien struct {
|
||||
ID string `gorm:"column:id" json:"id"`
|
||||
IdxDaftar int `gorm:"column:IDXDAFTAR" json:"idxdaftar"`
|
||||
|
||||
Reference in New Issue
Block a user