Files
api-lis/pkg/database/simrs/pasien.go
T
2026-08-10 11:28:36 +07:00

80 lines
2.6 KiB
Go

package simrs
import (
"api-lis/pkg/models/simrs/mikrobiologi"
"api-lis/pkg/models/simrs/pasien"
"errors"
"log"
"time"
)
func (s *DatabaseService) GetMPasien(req *mikrobiologi.RequestPasienMikrobiologi) (*pasien.MPasien, error) {
var dataPasien *pasien.MPasien
querySelect := `select * from m_pasien where "nomr" = ?`
errSelect := s.DB.Debug().Raw(querySelect, req.NOMR).First(&dataPasien).Error
if errSelect != nil {
log.Println(errSelect)
return nil, errSelect
}
return dataPasien, nil
}
func (s *DatabaseService) GetPasienAPS(req *mikrobiologi.RequestPasienMikrobiologi) (*pasien.MPasien, error) {
var dataPasien *pasien.MPasien
querySelect := `select * from m_pasien_aps where "nomr" = ?`
errSelect := s.DB.Debug().Raw(querySelect, req.NOMR).First(&dataPasien).Error
if errSelect != nil {
log.Println(errSelect)
return nil, errSelect
}
return dataPasien, nil
}
func (s *DatabaseService) GetTglRegPendaftaran(idxDaftar string) (string, error) {
var tglReg string
querySelect := `select tglreg from t_pendaftaran where "idxdaftar" = ?`
errSelect := s.DB.Debug().Raw(querySelect, idxDaftar).Scan(&tglReg).Error
if errSelect != nil {
log.Println(errSelect)
return "", errSelect
}
return tglReg, nil
}
func (s *DatabaseService) GetTglMasukRS(idxDaftar string) (string, error) {
var tglMasuk time.Time
querySelect := `select masukrs from t_admission where "id_admission" = ?`
errSelect := s.DB.Debug().Raw(querySelect, idxDaftar).Scan(&tglMasuk).Error
if errSelect != nil {
log.Println(errSelect)
return "", errSelect
}
return tglMasuk.Format("2006-01-02"), nil
}
func (s *DatabaseService) GetKetRujukan(idxDaftar string) (string, string, error) {
var ketRujukan string
var isPenunjang *int
querySelect := `select ketrujuk, is_penunjang from t_pendaftaran where "idxdaftar" = ?`
errSelect := s.DB.Debug().Raw(querySelect, idxDaftar).Row().Scan(&ketRujukan, &isPenunjang)
if errSelect != nil {
querySelectAps := `select ketrujuk, is_penunjang from t_pendaftaran_aps where "idxdaftar" = ?`
errSelectAps := s.DB.Debug().Raw(querySelectAps, idxDaftar).Row().Scan(&ketRujukan, &isPenunjang)
if errSelectAps != nil {
log.Println("Error fetching data dari t_pendaftaran dan t_pendaftaran_aps:", errSelect, errSelectAps)
return "", "", errors.New("Data rujukan tidak ditemukan pada t_pendaftaran maupun t_pendaftaran_aps")
}
}
var jenisKunjungan string
if isPenunjang == nil {
jenisKunjungan = "Kunjungan Reguler"
} else if *isPenunjang == 1 {
jenisKunjungan = "Kunjungan Parsial"
} else if *isPenunjang == 0 {
jenisKunjungan = "Kunjungan Reguler"
}
return ketRujukan, jenisKunjungan, nil
}