353 lines
10 KiB
Go
353 lines
10 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
// Tarif Models - Data struktur buat tarif dari berbagai sumber
|
|
|
|
type TarifBPJSRawatInap struct {
|
|
KodeINA string `gorm:"column:ID_INACBG_RI"`
|
|
Deskripsi string `gorm:"column:Tindakan_RI"`
|
|
Kelas1 float64 `gorm:"column:Tarif_Kelas_1"`
|
|
Kelas2 float64 `gorm:"column:Tarif_Kelas_2"`
|
|
Kelas3 float64 `gorm:"column:Tarif_Kelas_3"`
|
|
}
|
|
|
|
type TarifBPJSRawatJalan struct {
|
|
KodeINA string `gorm:"column:ID_INACBG_RJ"`
|
|
Deskripsi string `gorm:"column:Tindakan_RJ"`
|
|
TarifINACBG float64 `gorm:"column:Tarif_RJ" json:"tarif_inacbg"`
|
|
}
|
|
|
|
type TarifRS struct {
|
|
KodeRS string `gorm:"column:ID_Tarif_RS"`
|
|
Deskripsi string `gorm:"column:Tindakan_RS"`
|
|
Harga int `gorm:"column:Tarif_RS"`
|
|
Kategori string `gorm:"column:Kategori_RS"`
|
|
}
|
|
|
|
func (TarifBPJSRawatJalan) TableName() string {
|
|
return "ina_cbg_rawatjalan"
|
|
}
|
|
|
|
func (TarifBPJSRawatInap) TableName() string {
|
|
return "ina_cbg_rawatinap"
|
|
}
|
|
|
|
func (TarifRS) TableName() string {
|
|
return "tarif_rs"
|
|
}
|
|
|
|
// billing_inacbg_RI
|
|
type Billing_INACBG_RI struct {
|
|
ID_Billing int `gorm:"column:ID_Billing"`
|
|
Kode_INACBG string `gorm:"column:ID_INACBG_RI"`
|
|
}
|
|
|
|
func (Billing_INACBG_RI) TableName() string {
|
|
return "billing_inacbg_ri"
|
|
}
|
|
|
|
// billing_inacbg_RJ
|
|
type Billing_INACBG_RJ struct {
|
|
ID_Billing int `gorm:"column:ID_Billing"`
|
|
Kode_INACBG string `gorm:"column:ID_INACBG_RJ"`
|
|
}
|
|
|
|
func (Billing_INACBG_RJ) TableName() string {
|
|
return "billing_inacbg_rj"
|
|
}
|
|
|
|
type Billing_DPJP struct {
|
|
ID_Billing int `gorm:"column:ID_Billing;primaryKey"`
|
|
ID_DPJP int `gorm:"column:ID_DPJP;primaryKey"`
|
|
}
|
|
|
|
func (Billing_DPJP) TableName() string {
|
|
return "billing_dpjp"
|
|
}
|
|
|
|
// ICD9
|
|
|
|
type ICD9 struct {
|
|
Kode_ICD9 string `gorm:"column:ID_ICD9"`
|
|
Prosedur string `gorm:"column:Prosedur"`
|
|
Versi string `gorm:"column:Versi_ICD9"`
|
|
}
|
|
|
|
func (ICD9) TableName() string {
|
|
return "icd9"
|
|
}
|
|
|
|
// ICD10
|
|
type ICD10 struct {
|
|
Kode_ICD10 string `gorm:"column:ID_ICD10"`
|
|
Diagnosa string `gorm:"column:Diagnosa"`
|
|
Versi string `gorm:"column:Versi_ICD10"`
|
|
}
|
|
|
|
func (ICD10) TableName() string {
|
|
return "icd10"
|
|
}
|
|
|
|
// ruangan
|
|
type Ruangan struct {
|
|
ID_Ruangan string `gorm:"column:ID_Ruangan"`
|
|
Jenis_Ruangan string `gorm:"column:Jenis_Ruangan"`
|
|
Nama_Ruangan string `gorm:"column:Nama_Ruangan"`
|
|
Keterangan string `gorm:"column:keterangan"`
|
|
Kategori_ruangan string `gorm:"column:kategori_ruangan"`
|
|
}
|
|
|
|
func (Ruangan) TableName() string {
|
|
return "ruangan"
|
|
}
|
|
|
|
// dokter
|
|
type Dokter struct {
|
|
ID_Dokter int `gorm:"column:ID_Dokter;primaryKey"`
|
|
Nama_Dokter string `gorm:"column:Nama_Dokter"`
|
|
Password string `gorm:"column:Password"`
|
|
Status string `gorm:"column:Status"`
|
|
KSM string `gorm:"column:KSM"`
|
|
Email_UB string `gorm:"column:Email_UB"`
|
|
Email_Pribadi string `gorm:"column:Email_Pribadi"`
|
|
}
|
|
|
|
func (Dokter) TableName() string {
|
|
return "dokter"
|
|
}
|
|
|
|
// PASIEN
|
|
type Pasien struct {
|
|
ID_Pasien int `gorm:"column:ID_Pasien;primaryKey;autoIncrement"`
|
|
Nama_Pasien string `gorm:"column:Nama_Pasien"`
|
|
Jenis_Kelamin string `gorm:"column:Jenis_Kelamin"`
|
|
Usia int `gorm:"column:Usia"`
|
|
Ruangan string `gorm:"column:Ruangan"`
|
|
Kelas string `gorm:"column:Kelas"`
|
|
}
|
|
|
|
type Kelas string
|
|
|
|
const (
|
|
Kelas_1 Kelas = "1"
|
|
Kelas_2 Kelas = "2"
|
|
Kelas_3 Kelas = "3"
|
|
)
|
|
|
|
type Jenis_kelamin string
|
|
|
|
const (
|
|
Jenis_Kelamin_Laki_laki Jenis_kelamin = "Laki-laki"
|
|
Jenis_Kelamin_Perempuan Jenis_kelamin = "Perempuan"
|
|
)
|
|
|
|
func (Pasien) TableName() string {
|
|
return "pasien"
|
|
}
|
|
|
|
// login dokter
|
|
type LoginRequest struct {
|
|
Email string `json:"email" binding:"required,email"`
|
|
Password string `json:"password" binding:"required"`
|
|
}
|
|
|
|
//edit inacbg admin
|
|
|
|
type Edit_INACBG_Request struct {
|
|
ID_Billing int `json:"id_billing"`
|
|
Tipe_inacbg string `json:"tipe_inacbg"`
|
|
Kode_inacbg []string `json:"kode_inacbg"`
|
|
Kode_Delete []string `json:"kode_delete"`
|
|
Total_Klaim float64 `json:"total_klaim"`
|
|
Billing_Sign string `json:"billing_sign"`
|
|
}
|
|
|
|
//close billing
|
|
|
|
type Close_billing struct {
|
|
ID_Billing int `json:"id_billing"`
|
|
Tanggal_Keluar string `json:"tanggal_keluar"`
|
|
}
|
|
|
|
//riwayat billing pasien
|
|
|
|
type Riwayat_Pasien_all struct {
|
|
ID_Billing int `json:"id_billing"`
|
|
ID_Pasien int `json:"id_pasien"`
|
|
Nama_Pasien string `json:"nama_pasien"`
|
|
Jenis_Kelamin string `json:"jenis_kelamin"`
|
|
Usia int `json:"usia"`
|
|
Ruangan string `json:"ruangan"`
|
|
Nama_Ruangan string `json:"nama_ruangan"` // ← Added: Ruangan name for display
|
|
Kelas string `json:"kelas"`
|
|
ID_DPJP int `json:"id_dpjp"` // ← Added: Doctor in charge
|
|
Nama_DPJP string `json:"nama_dpjp"`
|
|
Tanggal_Keluar string `json:"tanggal_keluar"`
|
|
Tanggal_Masuk string `json:"tanggal_masuk"` // Tanggal_Masuk *time.Time `json:"tanggal_masuk"`
|
|
Tanggal_Tindakan *time.Time `json:"tanggal_tindakan"`
|
|
Tindakan_RS []string `json:"tindakan_rs"`
|
|
ICD9 []string `json:"icd9"`
|
|
ICD10 []string `json:"icd10"`
|
|
Kode_INACBG string `json:"kode_inacbg"`
|
|
Total_Tarif_RS float64 `json:"total_tarif_rs"` // ← Added: Hospital tariff
|
|
Total_Klaim float64 `json:"total_klaim"` // ← Added: BPJS claim
|
|
}
|
|
|
|
//billing pasien
|
|
|
|
type BillingPasien struct {
|
|
ID_Billing int `gorm:"column:ID_Billing;primaryKey;autoIncrement" json:"id_billing"`
|
|
ID_Pasien int `gorm:"column:ID_Pasien" json:"id_pasien"`
|
|
Cara_Bayar string `gorm:"column:Cara_Bayar" json:"cara_bayar"`
|
|
Tanggal_masuk *time.Time `gorm:"column:Tanggal_Masuk" json:"tanggal_masuk"`
|
|
Tanggal_keluar *time.Time `gorm:"column:Tanggal_Keluar" json:"tanggal_keluar"`
|
|
Total_Tarif_RS float64 `gorm:"column:Total_Tarif_RS" json:"total_tarif_rs"`
|
|
Total_Klaim float64 `gorm:"column:Total_Klaim" json:"total_klaim"`
|
|
Billing_sign string `gorm:"column:Billing_Sign" json:"billing_sign"`
|
|
}
|
|
|
|
type Cara_bayar string
|
|
|
|
const (
|
|
Cara_Bayar_BPJS Cara_bayar = "BPJS"
|
|
Cara_Bayar_UMUM Cara_bayar = "UMUM"
|
|
)
|
|
|
|
func (BillingPasien) TableName() string {
|
|
return "billing_pasien"
|
|
}
|
|
|
|
// BillingRequest untuk menerima data dari frontend
|
|
type BillingRequest struct {
|
|
Nama_Dokter []string `json:"nama_dokter" binding:"required"` // Array untuk multiple doctors
|
|
Nama_Pasien string `json:"nama_pasien" binding:"required"`
|
|
Jenis_Kelamin string `json:"jenis_kelamin" binding:"required"`
|
|
Usia int `json:"usia" binding:"required"`
|
|
ID_DPJP int `json:"id_dpjp"`
|
|
Ruangan string `json:"ruangan" binding:"required"`
|
|
Kelas string `json:"kelas" binding:"required"`
|
|
Tindakan_RS []string `json:"tindakan_rs" binding:"required"`
|
|
Tanggal_Keluar string `json:"tanggal_keluar"`
|
|
Billing_sign string `json:"billing_sign"`
|
|
ICD9 []string `json:"icd9"`
|
|
ICD10 []string `json:"icd10" binding:"required"`
|
|
Cara_Bayar string `json:"cara_bayar" binding:"required"`
|
|
Total_Tarif_RS float64 `json:"total_tarif_rs"`
|
|
Total_Klaim_BPJS float64 `json:"total_klaim_bpjs"` // ← Added: Baseline BPJS claim from FE
|
|
}
|
|
|
|
// admin ruangan //Admin_Ruangan
|
|
|
|
type Admin_Ruangan struct {
|
|
ID_Admin int `gorm:"column:ID_Admin"`
|
|
Nama_Admin string `gorm:"column:Nama_Admin"`
|
|
Password string `gorm:"column:Password"`
|
|
ID_Ruangan string `gorm:"column:ID_Ruangan"`
|
|
}
|
|
|
|
func (Admin_Ruangan) TableName() string {
|
|
return "admin_ruangan"
|
|
}
|
|
|
|
// billing_Tidakan
|
|
|
|
type Billing_Tindakan struct {
|
|
ID_Billing int `gorm:"column:ID_Billing;primaryKey;not null"`
|
|
ID_Tarif_RS string `gorm:"column:ID_Tarif_RS;primaryKey;not null"`
|
|
Tanggal_Tindakan *time.Time `gorm:"column:tanggal_tindakan"`
|
|
}
|
|
|
|
func (Billing_Tindakan) TableName() string {
|
|
return "billing_tindakan"
|
|
}
|
|
|
|
// billing_ICD9 dan ICD10
|
|
|
|
type Billing_ICD9 struct {
|
|
ID_Billing int `gorm:"column:ID_Billing;primaryKey;not null"`
|
|
ID_ICD9 string `gorm:"column:ID_ICD9;primaryKey;not null"`
|
|
}
|
|
|
|
type Billing_ICD10 struct {
|
|
ID_Billing int `gorm:"column:ID_Billing;primaryKey;not null"`
|
|
ID_ICD10 string `gorm:"column:ID_ICD10;primaryKey;not null"`
|
|
}
|
|
|
|
func (Billing_ICD9) TableName() string {
|
|
return "billing_icd9"
|
|
}
|
|
func (Billing_ICD10) TableName() string {
|
|
return "billing_icd10"
|
|
}
|
|
|
|
// billing_Dokter - relasi many-to-many antara billing dan dokter dengan tracking tanggal
|
|
type Billing_Dokter struct {
|
|
ID_Billing int `gorm:"column:ID_Billing"`
|
|
ID_Dokter int `gorm:"column:ID_Dokter"`
|
|
Tanggal *time.Time `gorm:"column:tanggal"` // Tanggal kapan dokter menangani pasien
|
|
}
|
|
|
|
func (Billing_Dokter) TableName() string {
|
|
return "billing_dokter"
|
|
}
|
|
|
|
// riwayat pasien
|
|
type Riwayat_Pasien struct {
|
|
ID_Billing int `json:"id_billing"`
|
|
Nama_pasien string `json:"nama_pasien"`
|
|
ID_Pasien int `json:"id_pasien"`
|
|
Kelas string `json:"Kelas"`
|
|
Ruangan string `json:"ruangan"`
|
|
Total_Tarif_RS float64 `json:"total_tarif_rs"`
|
|
Total_Klaim float64 `json:"total_klaim"`
|
|
Tindakan_RS []string `json:"tindakan_rs"`
|
|
ICD9 []string `json:"icd9"`
|
|
ICD10 []string `json:"icd10"`
|
|
INACBG_RI []string `json:"inacbg_ri"`
|
|
INACBG_RJ []string `json:"inacbg_rj"`
|
|
Billing_sign string `json:"billing_sign"`
|
|
Nama_Dokter []string `json:"nama_dokter"`
|
|
}
|
|
|
|
// Request untuk tampilan data Admin ( pengisian inacbg)
|
|
type Request_Admin_Inacbg struct {
|
|
ID_Billing int `json:"id_billing"`
|
|
Nama_pasien string `json:"nama_pasien"`
|
|
ID_Pasien int `json:"id_pasien"`
|
|
Kelas string `json:"Kelas"`
|
|
Ruangan string `json:"ruangan"`
|
|
Total_Tarif_RS float64 `json:"total_tarif_rs"`
|
|
Total_Klaim float64 `json:"total_klaim"`
|
|
ID_DPJP int `json:"id_dpjp"`
|
|
Tindakan_RS []string `json:"tindakan_rs"`
|
|
ICD9 []string `json:"icd9"`
|
|
ICD10 []string `json:"icd10"`
|
|
INACBG_RI []string `json:"inacbg_ri"`
|
|
INACBG_RJ []string `json:"inacbg_rj"`
|
|
Billing_sign string `json:"billing_sign"`
|
|
Nama_Dokter []string `json:"nama_dokter"`
|
|
}
|
|
|
|
// post ke data base
|
|
type Post_INACBG_Admin struct {
|
|
ID_Billing int `json:"id_billing"`
|
|
Tipe_inacbg string `json:"tipe_inacbg"`
|
|
Kode_INACBG []string `json:"kode_inacbg"`
|
|
Total_klaim float64 `json:"total_klaim"`
|
|
Billing_sign string `json:"billing_sign"`
|
|
Tanggal_keluar string `json:"tanggal_keluar"` // Diisi oleh admin billing
|
|
}
|
|
|
|
// login dokter
|
|
type loginRequest struct {
|
|
Email string `json:"email" binding:"required,email"`
|
|
Password string `json:"password" binding:"required"`
|
|
}
|
|
|
|
func (loginRequest) TableName() string {
|
|
return "dokter"
|
|
}
|
|
|
|
// getpasienwithallicd9andicd10,andtindakanrs
|