Files
api-bpjs-surkon/database/satu_data/pasien/kunjungan_pasien.go
2024-12-20 08:57:06 +07:00

62 lines
2.2 KiB
Go

package pasien
import (
"bridging-rssa/config"
"bridging-rssa/models/pasien"
"errors"
"log"
"gorm.io/gorm"
)
func GetDataKunjunganPasien(idxdaftar string) (*pasien.KunjunganPasien, error) {
var kunjunganPasien *pasien.KunjunganPasien
query := `select dks."id", dks."Ruangan" from "data_kunjungan_pasien" dks where dks."IDXDAFTAR" = ?`
err := config.SatuDataDB.Debug().Raw(query, idxdaftar).First(&kunjunganPasien).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan")
log.Println(errMsg)
return nil, errMsg
}
log.Println(err)
return nil, err
}
log.Println("Data Kunjungan Pasien : ", kunjunganPasien)
return kunjunganPasien, nil
}
func GetListKunjunganPasien(req *pasien.RequestListKunjunganPasien) ([]*pasien.ListKunjunganPasien, error) {
var dataKunjunganPasien []*pasien.ListKunjunganPasien
query := `select
dkp. "NOMR" as nomr, dkp. "Nama_lengkap" as namalengkap, dkp. "Tanggal_lahir" as tanggallahir,
dkp. "Jenis_kelamin" as jeniskelamin, dkp. "Tanggal_masuk" as tanggalmasukkunjungan,
dkp."Jam_masuk" as jammasukkunjungan, dkp. "Diagnosis_awal_masuk" as dxawalmasuk,
dkp. "Display_diagnosis_awal_masuk" as displaydxawalmasuk, dlr. "Nama" as namaruang,
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,
dkt. "Nama_lengkap" as namalengkapdokter,
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_kunjungan_pasien dkp
join daftar_lokasi_ruang dlr on dlr.id = dkp. "Ruangan"
join data_pegawai dp on dp.id = dkp. "DPJP"
join data_ktp dkt on dkt.id = dp. "KTP"
where dkp."Tanggal_masuk" between ? and ?
order by dkp. "Tanggal_masuk" desc, dkp. "Jam_masuk" desc`
q := config.SatuDataDB.Debug().Raw(query, req.TanggalAwal, req.TanggalAkhir).Scan(&dataKunjunganPasien)
if q.Error != nil {
log.Println(q.Error)
return nil, q.Error
}
return dataKunjunganPasien, nil
}