93 lines
2.3 KiB
Go
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
|
|
}
|