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 }