134 lines
3.1 KiB
Go
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
|
|
}
|