Files
api-antrian-operasi/internal/domain/antrian_operasi/requestValidation.go
T
2026-02-19 11:42:57 +07:00

93 lines
2.3 KiB
Go

package antrianoperasi
import (
"log"
"context"
)
func (req CreatePasienOperasiRequest) DataValidation(c context.Context, handler AntrianOperasiHandler) (bool, []string) {
isValid := false
var errValidation []string
// validasi kategori
_, err := handler.repoKategori.GetKategoriById(c, req.RencanaOperasiData.KategoriOperasi)
if err != nil {
log.Println(err)
errValidation = append(errValidation, err.Error())
}
// validasi spesialis
_, err = handler.repoSpesialis.GetSpesialisById(c, req.RencanaOperasiData.Spesialis)
if err != nil {
log.Println(err)
errValidation = append(errValidation, err.Error())
}
// validasi subspesialis
_, err = handler.repoSpesialis.GetSubSpesialisById(c, req.RencanaOperasiData.SubSpesialis)
if err != nil {
log.Println(err)
errValidation = append(errValidation, err.Error())
}
// validasi dokter pelaksana
for _, dp := range req.DokterPelaksanaItems {
_, err := handler.repoDokter.GetDokterById(c, dp.Id)
if err != nil {
log.Println(err)
errValidation = append(errValidation, err.Error())
continue
}
}
// validasi kode diagnosa
for _, dd := range req.DiagnosisItem {
_, err := handler.repoDiagnosa.GetDiagnosaByKode(c, dd.KodeDiagnosa)
if err != nil {
log.Println(err)
errValidation = append(errValidation, err.Error())
continue
}
}
// validasi kode tindakan
for _, dt := range req.TindakanItems {
_, err := handler.repoTindakan.GetTindakanByKode(c, *dt.KodeTindakan)
if err != nil {
log.Println(err)
errValidation = append(errValidation, err.Error())
continue
}
}
// validasi no rekam medis
_, err = handler.repoPasien.GetPasienByNoMr(c, req.FormData.NoRekamMedis)
if err != nil {
log.Println(err)
errValidation = append(errValidation, err.Error())
}
if len(errValidation) == 0 {
isValid = true
}
return isValid, errValidation
}
func (req StatusPasienRequest) UpdateStatusValidation() (bool, []string) {
isValid := false
var errValidation []string
if req.StatusOperasi != "2" && req.TglSelesai != nil {
errValidation = append(errValidation, "Tanggal selesai terisi ketika status belum selesai")
}
if req.StatusOperasi == "2" && req.TglSelesai == nil {
errValidation = append(errValidation, "Tanggal selesai harus diisi ketika status selesai")
}
if len(errValidation) == 0 {
isValid = true
}
return isValid, errValidation
}