Merge pull request 'update histori surkon' (#8) from ahdan_dev into master

Reviewed-on: #8
This commit was merged in pull request #8.
This commit is contained in:
2025-05-20 04:59:51 +00:00
4 changed files with 107 additions and 0 deletions
@@ -333,3 +333,38 @@ func GetNomorSurKon(idPasien string) (string, error) {
log.Println("Nomor SurKon :", noSurKon)
return noSurKon, nil
}
func Getdatahistori(norm string, offset, limit string) ([]*suratkontrol.HistoriSurkon, error) {
var dataHistoriSurKon []*suratkontrol.HistoriSurkon
err := config.SatuDataDB.Raw(`select dkp2."Nama_lengkap",dkp2."Nomor_sep", dsk."Nomor_surat_kontrol",dsk."Tanggal_rencana_kontrol",dsk."Tanggal_cetak_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_tuju",
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, dsk."User_created_surat_kontrol", dsk."User_updated_surat_kontrol",dsk."Tipe_rawat" ,
dsk."Status_surat_kontrol"
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"
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
where dkp2."NOMR" = ? order by dsk."Tanggal_rencana_kontrol" DESC offset ? limit ?`, norm, offset, limit).Scan(&dataHistoriSurKon).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("data tidak ada")
log.Println(errMsg)
return nil, errMsg
}
}
return dataHistoriSurKon, nil
}
@@ -1198,3 +1198,44 @@ func CariPasienTPP(c *gin.Context) {
}
c.JSON(http.StatusOK, resSurKon)
}
func GethistoribyNorm(c *gin.Context) {
norm := c.Param("norm")
offset := c.Param("offset")
limit := c.Param("limit")
data, err := suratkontrol.Getdatahistori(norm, offset, limit)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
Code: "",
Message: err.Error(),
})
return
}
var resHisSurKon []*sk.Dataresponse
for _, v := range data {
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
namaLengkap := gelarDepan + " " + v.NamaDokter + " " + gelarBelakang
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TanggalCetak)
dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02")
dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TanggalRencana)
dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02")
resHisSurKon = append(resHisSurKon, &sk.Dataresponse{
NamaPasien: v.NamaPasien,
NoSEP: v.NoSEP,
NomorSuratkontrol: v.NomorSuratkontrol,
TanggalRencana: dateRencanaSurkonString,
TanggalCetak: dateCetakSurkonString,
PoliTuju: v.PoliTuju,
NamaLengkap: namaLengkap,
Tiperawat: v.Tiperawat,
UserCreate: v.UserCreate,
UserUpdate: v.UserUpdate,
Status: v.Status,
})
}
c.JSON(http.StatusOK, resHisSurKon)
}
+1
View File
@@ -93,6 +93,7 @@ func main() {
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
suratKontrol.GET("/norm/:norm/limit/:limit/offset/:offset", suratkontrol.GethistoribyNorm)
}
iCare := v1.Group("/icare")
@@ -298,3 +298,33 @@ type RequestCariPasien struct {
Offset string `json:"offset"`
Limit string `json:"limit"`
}
type HistoriSurkon struct {
NamaPasien string `gorm:"column:Nama_lengkap" json:"Nama_pasien"`
NoSEP string `gorm:"column:Nomor_sep" json:"No_SEP"`
NomorSuratkontrol string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"`
TanggalRencana string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"`
TanggalCetak string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"`
PoliTuju string `gorm:"column:Poli_tuju" json:"Poli_tuju"`
GelarDepan string `gorm:"column:gelardepan" json:"Gelar_depan"`
NamaDokter string `gorm:"column:Nama_lengkap_dokter" json:"Nama_dokter"`
GelarBelakang string `gorm:"column:gelarbelakang" json:"Gelar_belakang"`
Tiperawat string `gorm:"column:Tipe_rawat" json:"Tipe_rawat"`
UserCreate string `gorm:"column:User_created_surat_kontrol" json:"User_create"`
UserUpdate string `gorm:"column:User_updated_surat_kontrol" json:"User_update"`
Status string `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"`
}
type Dataresponse struct {
NamaPasien string `json:"Nama_pasien"`
NoSEP string `json:"No_SEP"`
NomorSuratkontrol string `json:"Nomor_surat_kontrol"`
TanggalRencana string `json:"Tanggal_rencana_kontrol"`
TanggalCetak string `json:"Tanggal_cetak_surat_kontrol"`
PoliTuju string `json:"Poli_tujuan"`
NamaLengkap string `json:"Dpjp"`
Tiperawat string `json:"Tipe_rawat"`
UserCreate string `json:"User_create"`
UserUpdate string `json:"User_update"`
Status string `json:"Status_surat_kontrol"`
}