Files
careit-1.0/backendcareit_v4/services/tarif_service.go
T
2026-02-06 14:22:35 +07:00

134 lines
3.1 KiB
Go

package services
import (
"backendcareit/database"
"backendcareit/models"
"gorm.io/gorm"
)
// Ambil tarif BPJS untuk rawat inap yaa
func GetTarifBPJSRawatInap() ([]models.TarifBPJSRawatInap, error) {
var data []models.TarifBPJSRawatInap
if err := database.DB.Model(&models.TarifBPJSRawatInap{}).Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}
func GetTarifBPJSRawatInapByKode(kode string) (*models.TarifBPJSRawatInap, error) {
var data models.TarifBPJSRawatInap
if err := database.DB.Model(&models.TarifBPJSRawatInap{}).Where("ID_INACBG_RI = ?", kode).First(&data).Error; err != nil {
return nil, err
}
return &data, nil
}
// Ngambil tarif untuk pasien rawat jalan
func GetTarifBPJSRawatJalan() ([]models.TarifBPJSRawatJalan, error) {
var data []models.TarifBPJSRawatJalan
if err := database.DB.Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}
func GetTarifBPJSRawatJalanByKode(kode string) (*models.TarifBPJSRawatJalan, error) {
var data models.TarifBPJSRawatJalan
if err := database.DB.Where("ID_INACBG_RJ = ?", kode).First(&data).Error; err != nil {
return nil, err
}
return &data, nil
}
// Ambil tarif rumah sakit aja bro
func GetTarifRS() ([]models.TarifRS, error) {
var data []models.TarifRS
if err := database.DB.Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}
func GetTarifRSByKode(kode string) (*models.TarifRS, error) {
var data models.TarifRS
if err := database.DB.Where("ID_Tarif_RS = ?", kode).First(&data).Error; err != nil {
return nil, err
}
return &data, nil
}
func GetTarifRSByKategori(kategori string) ([]models.TarifRS, error) {
var data []models.TarifRS
if err := database.DB.Where("Kategori_RS = ?", kategori).Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}
func IsNotFound(err error) bool {
return err == gorm.ErrRecordNotFound
}
// Ambil data ICD9 - kode diagnosa versi lama
func GetICD9() ([]models.ICD9, error) {
var data []models.ICD9
if err := database.DB.Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}
// Ambil data ICD10 - kode diagnosa versi baru
func GetICD10() ([]models.ICD10, error) {
var data []models.ICD10
if err := database.DB.Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}
// Ambil daftar semua ruangan di RS
func GetRuangan() ([]models.Ruangan, error) {
var data []models.Ruangan
if err := database.DB.Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}
// GetRuanganWithPasien - Get ruangan yang memiliki minimal 1 pasien
func GetRuanganWithPasien(db *gorm.DB) ([]models.Ruangan, error) {
var data []models.Ruangan
// JOIN dengan pasien table dan filter yang punya pasien
if err := db.
Distinct("ruangan.*").
Table("ruangan").
Joins("INNER JOIN pasien ON ruangan.\"Nama_Ruangan\" = pasien.\"Ruangan\"").
Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}
// Ambil list semua dokter yang ada
func GetDokter() ([]models.Dokter, error) {
var data []models.Dokter
if err := database.DB.Find(&data).Error; err != nil {
return nil, err
}
return data, nil
}