62 lines
2.2 KiB
Go
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
|
|
}
|