update surkon terbaru

This commit is contained in:
2025-07-16 07:35:04 +07:00
parent c580e1962d
commit 11abb0f49a
3 changed files with 120 additions and 35 deletions

No files matched your search

@@ -56,8 +56,8 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
log.Println("Req Insert Database : ", reqInsert)
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", "Tipe_surat_kontrol", "User_updated_surat_kontrol", "Tipe_rawat","Nomor_kartu")
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)`
"User_created_surat_kontrol", "Tipe_surat_kontrol", "User_updated_surat_kontrol", "Tipe_rawat","Nomor_kartu","Kode_icd","Diagnosa")
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?)`
err := config.SatuDataDB.Exec(insertQuery,
reqInsert.ID,
reqInsert.DateCreated,
@@ -73,6 +73,8 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
reqInsert.UserUpdatedSurKon,
reqInsert.TipeRawat,
reqInsert.NomorKartu,
reqInsert.KodeIcd,
reqInsert.Diagnosa,
).Error
if err != nil {
log.Println(err)
@@ -178,7 +180,7 @@ func GetDataSuratKontrolByIDTipe(idxdaftar string, tipe string) (*suratkontrol.G
func GetDataSuratKontrolByIDnomor(idxdaftar string, nomor string) (*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon *suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",dsk."Nomor_surat_kontrol",
err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",dsk."Nomor_surat_kontrol",dsk."Kode_icd",dsk."Diagnosa",
(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",
@@ -205,7 +207,8 @@ func GetDataSuratKontrolByIDnomor(idxdaftar string, nomor string) (*suratkontrol
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
dsk."Tipe_surat_kontrol" as "Tipe_SurKon",
dsk."User_created_surat_kontrol" as "User"
dsk."User_created_surat_kontrol" as "User",
dsk."Nomor_kartu"
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"
@@ -225,7 +228,7 @@ func GetDataSuratKontrolByIDnomor(idxdaftar string, nomor string) (*suratkontrol
func GetDataSuratKontrolnomor(nomor string) (*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon *suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",dsk."Nomor_surat_kontrol",
err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",dsk."Nomor_surat_kontrol",dsk."Kode_icd",dsk."Diagnosa",
(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",
@@ -252,7 +255,8 @@ func GetDataSuratKontrolnomor(nomor string) (*suratkontrol.GetDataSuratKontrol,
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
dsk."Tipe_surat_kontrol" as "Tipe_SurKon",
dsk."User_created_surat_kontrol" as "User"
dsk."User_created_surat_kontrol" as "User",
dsk."Nomor_kartu"
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"
@@ -299,7 +303,10 @@ func GetDataSuratKontrolByIDsrukon(idxdaftar string, id string) (*suratkontrol.G
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
dsk."Tipe_surat_kontrol" as "Tipe_SurKon",
dsk."User_created_surat_kontrol" as "User"
dsk."User_created_surat_kontrol" as "User",
dsk."Nomor_kartu",
dsk."Kode_icd",
dsk."Diagnosa"
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"
@@ -345,7 +352,10 @@ func GetDataSuratKontrolidsurkon(id string) (*suratkontrol.GetDataSuratKontrol,
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
dsk."Tipe_surat_kontrol" as "Tipe_SurKon",
dsk."User_created_surat_kontrol" as "User"
dsk."User_created_surat_kontrol" as "User",
dsk."Nomor_kartu",
dsk."Kode_icd",
dsk."Diagnosa"
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"
@@ -429,11 +439,11 @@ func GetIdDokterByHFIS(KodeHFIS string) (string, error) {
return idDokter, err
}
func GetUserCreated(user string) (string, error) {
var UserCreated string
err := config.SatuDataDB.Raw(`select "User_created_surat_kontrol" from data_surat_kontrol where "id" = ? `, user).Scan(&UserCreated).Error
func GetUserCreated(user string) (*suratkontrol.Created, error) {
var UserCreated *suratkontrol.Created
err := config.SatuDataDB.Raw(`select "User_created_surat_kontrol","date_created" from data_surat_kontrol where "id" = ? `, user).Scan(&UserCreated).Error
if err != nil {
return "", err
return nil, err
}
return UserCreated, err
}
+87 -23
View File
@@ -34,7 +34,7 @@ func InsertSuratkontrolNew(c *gin.Context) {
timeNow := time.Now().Format("2006-01-02 15:04:05")
conf := config.ConfigBpjs{}
header := cfg.SetHeaderDev(false, conf)
header := cfg.SetHeader(false, conf)
headers := map[string]string{
"X-cons-id": header.ConsID,
@@ -63,6 +63,24 @@ func InsertSuratkontrolNew(c *gin.Context) {
})
return
}
jadwalLibur, isLibur, errLibur := jadwal.GetJadwalLibur(req.TglRencanaKontrol)
if errLibur != nil {
log.Println(errLibur)
c.JSON(http.StatusCreated, &sk.MetadataString{
Code: "201",
Message: err.Error(),
})
return
} else if isLibur {
log.Println(jadwalLibur.KeteranganLiburPelayanan)
c.JSON(http.StatusCreated, &sk.MetadataString{
Code: "201",
Message: "Hari Libur " + jadwalLibur.NamaLiburPelayanan,
})
return
}
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
if err != nil {
log.Println(err)
@@ -181,6 +199,16 @@ func InsertSuratkontrolNew(c *gin.Context) {
return
}
parts := strings.SplitN(res.Response.NamaDiagnosa, " - ", 2)
var kodeICD, diagnosa string
if len(parts) == 2 {
kodeICD = parts[0]
diagnosa = parts[1]
} else {
kodeICD = res.Response.NamaDiagnosa
diagnosa = ""
}
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
reqInsert := &sk.DataSuratKontrol{
ID: uuid,
@@ -196,6 +224,8 @@ func InsertSuratkontrolNew(c *gin.Context) {
UserCreatedSurKon: req.User,
TipeSurKon: req.TipeSurKon,
TipeRawat: req.TipeRawat,
KodeIcd: kodeICD,
Diagnosa: diagnosa,
}
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
@@ -980,7 +1010,7 @@ func UpdateSuratKontrolnew(c *gin.Context) {
conf := config.ConfigBpjs{}
header := cfg.SetHeaderDev(false, conf)
header := cfg.SetHeader(false, conf)
headers := map[string]string{
"X-cons-id": header.ConsID,
@@ -1009,6 +1039,22 @@ func UpdateSuratKontrolnew(c *gin.Context) {
return
}
jadwalLibur, isLibur, errLibur := jadwal.GetJadwalLibur(req.TglRencanaKontrol)
if errLibur != nil {
log.Println(errLibur)
c.JSON(http.StatusCreated, &sk.MetadataString{
Code: "201",
Message: err.Error(),
})
return
} else if isLibur {
log.Println(jadwalLibur.KeteranganLiburPelayanan)
c.JSON(http.StatusCreated, &sk.MetadataString{
Code: "201",
Message: "Hari Libur " + jadwalLibur.NamaLiburPelayanan,
})
return
}
timeNow := time.Now().Format("2006-01-02 15:04:05")
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
@@ -1020,6 +1066,16 @@ func UpdateSuratKontrolnew(c *gin.Context) {
})
return
}
UserCreated, err := suratkontrol.GetUserCreated(req.IDSurKon)
if err != nil {
log.Println(err)
c.JSON(http.StatusCreated, &sk.MetadataString{
Code: "201",
Message: err.Error(),
})
}
dateCetakSurkon, _ := time.Parse(time.RFC3339, UserCreated.DataCreate)
dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02")
uuid := uuid.New().String()
if req.TipeSurKon == "2" {
@@ -1126,14 +1182,7 @@ func UpdateSuratKontrolnew(c *gin.Context) {
})
return
}
UserCreated, err := suratkontrol.GetUserCreated(req.IDSurKon)
if err != nil {
log.Println(err)
c.JSON(http.StatusCreated, &sk.MetadataString{
Code: "201",
Message: err.Error(),
})
}
idDokter, err := suratkontrol.GetIdDokterByHFIS(req.KodeHFIS)
if err != nil {
log.Println(err)
@@ -1143,9 +1192,20 @@ func UpdateSuratKontrolnew(c *gin.Context) {
})
}
parts := strings.SplitN(res.Response.NamaDiagnosa, " - ", 2)
var kodeICD, diagnosa string
if len(parts) == 2 {
kodeICD = parts[0]
diagnosa = parts[1]
} else {
kodeICD = res.Response.NamaDiagnosa
diagnosa = ""
}
reqInsert := &sk.DataSuratKontrol{
ID: uuid,
DateCreated: timeNow,
DateUpdated: timeNow,
DateCreated: dateCetakSurkonString,
TglCetakSurKon: timeNow,
TglRencanaKontrol: res.Response.TglRencanaKontrol,
NomorSurKon: res.Response.NoSuratKontrol,
@@ -1155,8 +1215,10 @@ func UpdateSuratKontrolnew(c *gin.Context) {
StatusSurKon: 1, // Insert status always set to 1
TipeSurKon: req.TipeSurKon,
TipeRawat: req.TipeRawat,
UserCreatedSurKon: UserCreated,
UserCreatedSurKon: UserCreated.UserCreate,
UserUpdatedSurKon: req.User,
KodeIcd: kodeICD,
Diagnosa: diagnosa,
}
if reqInsert.DPJPSurKon == "" {
@@ -1249,7 +1311,8 @@ func UpdateSuratKontrolnew(c *gin.Context) {
}
reqInsert := &sk.DataSuratKontrol{
ID: uuid,
DateCreated: timeNow,
DateCreated: dateCetakSurkonString,
DateUpdated: timeNow,
TglCetakSurKon: timeNow,
TglRencanaKontrol: req.TglRencanaKontrol,
NomorSurKon: dataSurkon, //TODO How to get Nomor SurKon
@@ -1258,7 +1321,7 @@ func UpdateSuratKontrolnew(c *gin.Context) {
DPJPSurKon: idDokter,
StatusSurKon: 1, // First Insert status always set to 1
TipeSurKon: req.TipeSurKon,
UserCreatedSurKon: UserCreated,
UserCreatedSurKon: UserCreated.UserCreate,
UserUpdatedSurKon: req.User,
TipeRawat: req.TipeRawat,
}
@@ -1292,7 +1355,7 @@ func DeleteSuratKontrolNew(c *gin.Context) {
conf := config.ConfigBpjs{}
header := cfg.SetHeaderDev(false, conf)
header := cfg.SetHeader(false, conf)
headers := map[string]string{
"X-cons-id": header.ConsID,
@@ -1884,7 +1947,7 @@ func GetDataSurKonByNoSurkon(c *gin.Context) {
NomorSEP: dataSurKon.NomorSEP,
NamaPasien: dataSurKon.NamaPasien,
NamaDokter: namaLengkap,
NomorKartu: "",
NomorKartu: dataSurKon.NomorKartu,
Subspesialis: dataSurKon.Subspesialis,
KodePoli: dataSurKon.KodePoli,
KodeDokter: dataSurKon.KodeDokter,
@@ -1892,8 +1955,8 @@ func GetDataSurKonByNoSurkon(c *gin.Context) {
IDDokter: dataSurKon.IDDokter,
KodeDPJP: dataSurKon.KodeDPJP,
NoRM: dataSurKon.NoRM,
KodeDiagnosa: dataSurKon.KodeDiagnosa,
NamaDiagnosa: dataSurKon.NamaDiagnosa,
KodeDiagnosa: dataSurKon.KodeIcd,
NamaDiagnosa: dataSurKon.Diagnosa,
TipeSurKon: dataSurKon.TipeSurKon,
User: dataSurKon.User,
}
@@ -1946,7 +2009,7 @@ func GetDataSurKonByIDSurkon(c *gin.Context) {
NomorSEP: dataSurKon.NomorSEP,
NamaPasien: dataSurKon.NamaPasien,
NamaDokter: namaLengkap,
NomorKartu: "",
NomorKartu: dataSurKon.NomorKartu,
Subspesialis: dataSurKon.Subspesialis,
KodePoli: dataSurKon.KodePoli,
KodeDokter: dataSurKon.KodeDokter,
@@ -1954,8 +2017,8 @@ func GetDataSurKonByIDSurkon(c *gin.Context) {
IDDokter: dataSurKon.IDDokter,
KodeDPJP: dataSurKon.KodeDPJP,
NoRM: dataSurKon.NoRM,
KodeDiagnosa: dataSurKon.KodeDiagnosa,
NamaDiagnosa: dataSurKon.NamaDiagnosa,
KodeDiagnosa: dataSurKon.KodeIcd,
NamaDiagnosa: dataSurKon.Diagnosa,
TipeSurKon: dataSurKon.TipeSurKon,
User: dataSurKon.User,
}
@@ -2606,7 +2669,8 @@ func UpdateSpri(c *gin.Context) {
reqInsert := &sk.DataSuratKontrol{
ID: uuid,
DateCreated: timeNow,
DateCreated: UserCreated.DataCreate,
DateUpdated: timeNow,
TglCetakSurKon: timeNow,
TglRencanaKontrol: res.Response.TglRencanaKontrol,
NomorSurKon: res.Response.NoSPRI,
@@ -2617,7 +2681,7 @@ func UpdateSpri(c *gin.Context) {
StatusSurKon: 1, // Insert status always set to 1
TipeSurKon: req.TipeSurKon,
TipeRawat: req.TipeRawat,
UserCreatedSurKon: UserCreated,
UserCreatedSurKon: UserCreated.UserCreate,
UserUpdatedSurKon: req.User,
}
@@ -263,6 +263,8 @@ type DataSuratKontrol struct {
TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"`
NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"`
NomorKartu string `gorm:"column:Nomor_kartu" json:"Nomor_kartu"`
KodeIcd string `gorm:"column:kode_icd" json:"kode_icd"`
Diagnosa string `gorm:"column:Diagnosa" json:"Diagnosa"`
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"`
@@ -307,6 +309,8 @@ type GetDataSuratKontrol struct {
NoRM string `gorm:"column:No_rm" json:"No_rm"`
KodeDiagnosa string `gorm:"column:Kode_diagnosa" json:"Kode_diagnosa"`
NamaDiagnosa string `gorm:"column:Nama_diagnosa" json:"Nama_diagnosa"`
KodeIcd string `gorm:"column:Kode_icd" json:"Kode_icd"`
Diagnosa string `gorm:"column:Diagnosa" json:"Diagnosa"`
TipeSurKon string `gorm:"column:Tipe_SurKon" json:"Tipe_SurKon"`
TipeRawat string `gorm:"column:Tipe_rawat" json:"Tipe_rawat"`
User string `gorm:"column:User" json:"User"`
@@ -333,6 +337,8 @@ type ResponseGetDataSuratKontrol struct {
NoRM string `json:"No_rm"`
KodeDiagnosa string `json:"Kode_diagnosa"`
NamaDiagnosa string `json:"Nama_diagnosa"`
KodeIcd string `json:"Kode_icd"`
Diagnosa string `json:"Diagnosa"`
TipeSurKon string `json:"Tipe_SurKon"`
TipeRawat string `json:"Tipe_rawat"`
User string `json:"User"`
@@ -428,3 +434,8 @@ type ResponseDataSPRI struct {
TglLahir string `json:"tglLahir"`
NamaDiagnosa string `json:"namaDiagnosa"`
}
type Created struct {
UserCreate string `json:"User_created_surat_kontrol"`
DataCreate string `json:"date_created"`
}