diff --git a/pkg/database/simrs/mikrobiologi.go b/pkg/database/simrs/mikrobiologi.go index af2822e..e9565ed 100644 --- a/pkg/database/simrs/mikrobiologi.go +++ b/pkg/database/simrs/mikrobiologi.go @@ -74,7 +74,7 @@ func (s *DatabaseService) GetDataLabMikroSpecimen(noLab string) (*mikrobiologi.O var dataMikro mikrobiologi.OrderLabMikroSpecimen querySelect := ` - select fl."nama_field" + select fl."nama_field",olm."idxordermikro" 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' @@ -99,7 +99,7 @@ func (s *DatabaseService) GetDataLabMikroJenisPemeriksaan(noLab string) (*mikrob var dataMikro mikrobiologi.OrderLabMikroJenisPemeriksaan querySelect := ` - select fl."nama_field" + select fl."nama_field",olm."idxordermikro" from t_orderlabmikro olm left join "m_form_lab" fl on olm."idxform" = fl."form_id" where olm."nolab" = ? diff --git a/pkg/handlers/mikrobiologi/mikrobiologi.go b/pkg/handlers/mikrobiologi/mikrobiologi.go index 3bff89d..3e9409e 100644 --- a/pkg/handlers/mikrobiologi/mikrobiologi.go +++ b/pkg/handlers/mikrobiologi/mikrobiologi.go @@ -86,38 +86,28 @@ func SendDataLISMikro(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{ "message": errDiagnosa, }) - return + continue } - Specimen, exist, errDiagnosa := simrsDB.GetDataLabMikroSpecimen(dataMikroMain.NoLab) - if errDiagnosa != nil { - log.Println(errDiagnosa) - c.JSON(http.StatusBadRequest, gin.H{ - "message": errDiagnosa, - }) - return + var specimenData *mikrobiologi.OrderLabMikroSpecimen + var errSpecimen error + specimenData, _, errSpecimen = simrsDB.GetDataLabMikroSpecimen(dataMikroMain.NoLab) + if errSpecimen != nil { + log.Println("Warning: error get Specimen:", errSpecimen) } - CaraPengambilan, exist, errDiagnosa := simrsDB.GetDataLabMikroJenisPemeriksaan(dataMikroMain.NoLab) - if errDiagnosa != nil { - log.Println(errDiagnosa) - c.JSON(http.StatusBadRequest, gin.H{ - "message": errDiagnosa, - }) - return + // tidak continue, hanya pakai default jika kosong + + // 2. CaraPengambilan (pakai fungsi yang sama untuk data m_form_lab dengan sub_kelompok yang beda) + var caraPengambilanData *mikrobiologi.OrderLabMikroJenisPemeriksaan + var errPengambilan error + caraPengambilanData, _, errPengambilan = simrsDB.GetDataLabMikroJenisPemeriksaan(dataMikroMain.NoLab) + if errPengambilan != nil { + log.Println("Warning: error get CaraPengambilan:", errPengambilan) } if !exist { log.Println("Data bukan pemeriksaan") continue } - dataLabMikroPengambilan, exist, errPengambilan := simrsDB.GetDataLabMikroPengambilan(dataMikroMain.NoLab) - if errPengambilan != nil { - log.Println(errDiagnosa) - c.JSON(http.StatusBadRequest, gin.H{ - "message": errDiagnosa, - }) - return - } - log.Println(dataLabMikroPengambilan) poli, errDokter := simrsDB.GetNamaRuang(dataMikroMain.KodePoli) if errDokter != nil { @@ -213,15 +203,15 @@ func SendDataLISMikro(c *gin.Context) { tglString := t.Format("2006-01-02") var namaSpecimen string - if Specimen != nil && Specimen.NamaField != "" { - namaSpecimen = Specimen.NamaField + if specimenData != nil && specimenData.NamaField != "" { + namaSpecimen = specimenData.NamaField } else { namaSpecimen = "-" } var pengambilan string - if CaraPengambilan != nil && CaraPengambilan.NamaField != "" { - pengambilan = CaraPengambilan.NamaField + if caraPengambilanData != nil && caraPengambilanData.NamaField != "" { + pengambilan = caraPengambilanData.NamaField } else { pengambilan = "lain-lain" } @@ -278,7 +268,7 @@ func SendDataLISMikro(c *gin.Context) { IdxOrderMikro: value.IdxOrderMikro, NoLokal: resMikro.Message, Kode: value.NamaField, - Spesimen: value.JenisKelompok, + Spesimen: namaSpecimen, } errUpdate := simrsDB.UpdateLabMikro(reqUpdate) if errUpdate != nil { diff --git a/pkg/models/simrs/mikrobiologi/mikrobiologi.go b/pkg/models/simrs/mikrobiologi/mikrobiologi.go index 9ab6dad..2254e5e 100644 --- a/pkg/models/simrs/mikrobiologi/mikrobiologi.go +++ b/pkg/models/simrs/mikrobiologi/mikrobiologi.go @@ -143,11 +143,13 @@ type OrderLabMikro struct { } type OrderLabMikroSpecimen struct { - NamaField string `gorm:"column:nama_field" json:"nama_field"` + NamaField string `gorm:"column:nama_field" json:"nama_field"` + IdxOrderMikro string `gorm:"column:idxordermikro" json:"idxordermikro"` } type OrderLabMikroJenisPemeriksaan struct { - NamaField string `gorm:"column:nama_field" json:"nama_field"` + NamaField string `gorm:"column:nama_field" json:"nama_field"` + IdxOrderMikro string `gorm:"column:idxordermikro" json:"idxordermikro"` } type OrderLabMikropengambilan struct {