diff --git a/pkg/database/simrs/mikrobiologi.go b/pkg/database/simrs/mikrobiologi.go index 0137794..af2822e 100644 --- a/pkg/database/simrs/mikrobiologi.go +++ b/pkg/database/simrs/mikrobiologi.go @@ -71,31 +71,53 @@ func (s *DatabaseService) GetDataLabMikro(noLab string) ([]*mikrobiologi.OrderLa return dataMikro, true, nil } func (s *DatabaseService) GetDataLabMikroSpecimen(noLab string) (*mikrobiologi.OrderLabMikroSpecimen, bool, error) { - var dataMikro *mikrobiologi.OrderLabMikroSpecimen - querySelect := `select fl."nama_field" - from t_orderlabmikro olm - left join "m_form_lab" fl on olm."idxform" = fl."form_id" - where olm."nolab" = ? and fl."sub_kelompok" = 'Jenis Spesimen'` - errSelect := s.DB.Debug().Raw(querySelect, noLab).Scan(&dataMikro).Error - if errSelect != nil { - log.Println(errSelect) - return nil, false, errSelect + var dataMikro mikrobiologi.OrderLabMikroSpecimen + + querySelect := ` + select fl."nama_field" + from t_orderlabmikro olm + left join "m_form_lab" fl on olm."idxform" = fl."form_id" + where olm."nolab" = ? and fl."sub_kelompok" = 'Jenis Spesimen' + ` + + // Cek apakah ada row yang dikembalikan + result := s.DB.Raw(querySelect, noLab).Scan(&dataMikro) + if result.Error != nil { + log.Println(result.Error) + return nil, false, result.Error } - return dataMikro, true, nil + + if dataMikro.NamaField == "" { + return nil, false, nil + } + + dataPtr := &dataMikro + return dataPtr, true, nil } func (s *DatabaseService) GetDataLabMikroJenisPemeriksaan(noLab string) (*mikrobiologi.OrderLabMikroJenisPemeriksaan, bool, error) { - var dataMikro *mikrobiologi.OrderLabMikroJenisPemeriksaan - querySelect := `select fl."nama_field" - from t_orderlabmikro olm - left join "m_form_lab" fl on olm."idxform" = fl."form_id" - where olm."nolab" = ? and fl."sub_kelompok" = 'Cara Pengambilan Sampel'` - errSelect := s.DB.Debug().Raw(querySelect, noLab).Scan(&dataMikro).Error - if errSelect != nil { - log.Println(errSelect) - return nil, false, errSelect + var dataMikro mikrobiologi.OrderLabMikroJenisPemeriksaan + + querySelect := ` + select fl."nama_field" + from t_orderlabmikro olm + left join "m_form_lab" fl on olm."idxform" = fl."form_id" + where olm."nolab" = ? + and fl."sub_kelompok" = 'Cara Pengambilan Sampel' + ` + + result := s.DB.Raw(querySelect, noLab).Scan(&dataMikro) + if result.Error != nil { + log.Println(result.Error) + return nil, false, result.Error } - return dataMikro, true, nil + + if dataMikro.NamaField == "" { + return nil, false, nil + } + + dataPtr := &dataMikro + return dataPtr, true, nil } func (s *DatabaseService) GetDataLabMikroPengambilan(noLab string) ([]*mikrobiologi.OrderLabMikropengambilan, bool, error) { diff --git a/pkg/handlers/mikrobiologi/mikrobiologi.go b/pkg/handlers/mikrobiologi/mikrobiologi.go index 0d1445f..3bff89d 100644 --- a/pkg/handlers/mikrobiologi/mikrobiologi.go +++ b/pkg/handlers/mikrobiologi/mikrobiologi.go @@ -211,10 +211,21 @@ func SendDataLISMikro(c *gin.Context) { } tglString := t.Format("2006-01-02") - pengambilan := CaraPengambilan.NamaField - if pengambilan == "" { + + var namaSpecimen string + if Specimen != nil && Specimen.NamaField != "" { + namaSpecimen = Specimen.NamaField + } else { + namaSpecimen = "-" + } + + var pengambilan string + if CaraPengambilan != nil && CaraPengambilan.NamaField != "" { + pengambilan = CaraPengambilan.NamaField + } else { pengambilan = "lain-lain" } + log.Println("Masuk loop, value:", value) dataLisMikro = &mikrobiologi.RequestLISMikro{ TanggalReg: tglReg, @@ -237,7 +248,7 @@ func SendDataLISMikro(c *gin.Context) { Diagnosa: diagnosa, Rujukan: rujukan, KodeSpesimen: value.JenisKelompok, - NamaSpesimen: Specimen.NamaField, + NamaSpesimen: namaSpecimen, Pengambilan: pengambilan, JenisPemeriksaan: value.NamaField, }