penambahan cara pengambilan
This commit is contained in:
@@ -71,6 +71,19 @@ func (s *DatabaseService) GetDataLabMikro(noLab string) ([]*mikrobiologi.OrderLa
|
||||
return dataMikro, true, nil
|
||||
}
|
||||
|
||||
func (s *DatabaseService) GetDataLabMikroPengambilan(noLab string) ([]*mikrobiologi.OrderLabMikropengambilan, bool, error) {
|
||||
var dataMikro []*mikrobiologi.OrderLabMikropengambilan
|
||||
querySelect := `select olm."idxordermikro", olm."jenis_pemeriksaan", fl."nama_field" , fl."jenis_kelompok",fl."kode_tarif"
|
||||
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
|
||||
}
|
||||
return dataMikro, true, nil
|
||||
}
|
||||
func (s *DatabaseService) UpdateLabMikro(req *mikrobiologi.ReqUpdateLisMikro) error {
|
||||
queryUpdate := `update "t_orderlabmikro" set "no_lokal" = ? where "idxordermikro" = ?`
|
||||
errUpdate := s.DB.Debug().Exec(queryUpdate, req.NoLokal, req.IdxOrderMikro).Error
|
||||
|
||||
@@ -93,6 +93,19 @@ func SendDataLISMikro(c *gin.Context) {
|
||||
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)
|
||||
var pengambilan string
|
||||
if len(dataLabMikroPengambilan) > 0 {
|
||||
pengambilan = dataLabMikroPengambilan[0].NamaField
|
||||
}
|
||||
|
||||
poli, errDokter := simrsDB.GetNamaRuang(dataMikroMain.KodePoli)
|
||||
if errDokter != nil {
|
||||
@@ -119,47 +132,41 @@ func SendDataLISMikro(c *gin.Context) {
|
||||
"message": errDiagnosa,
|
||||
})
|
||||
}
|
||||
log.Println("masuk sini kah")
|
||||
|
||||
log.Printf("dataLabMikro length: %d", len(dataLabMikro))
|
||||
log.Printf("dataLabMikro content: %+v", dataLabMikro)
|
||||
var dokterPengirim string
|
||||
|
||||
if dataMikroMain.DrOrder != "0" && dataMikroMain.DrOrder != "" {
|
||||
dokterPengirim, errDokter = simrsDB.GetNamaDokter(dataMikroMain.DrOrder)
|
||||
|
||||
if errDokter != nil {
|
||||
log.Println(errDokter)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": errDokter,
|
||||
})
|
||||
return
|
||||
log.Println("Failed to get dokter from DrOrder:", errDokter)
|
||||
dokterPengirim = ""
|
||||
}
|
||||
|
||||
} else if dataMikroMain.DokterPengirim != "" && dataMikroMain.DokterPengirim != "0" {
|
||||
}
|
||||
if dokterPengirim == "" && dataMikroMain.DokterPengirim != "" && dataMikroMain.DokterPengirim != "0" {
|
||||
dokterPengirim, errDokter = simrsDB.GetNamaDokter(dataMikroMain.DokterPengirim)
|
||||
|
||||
if errDokter != nil {
|
||||
log.Println(errDokter)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": errDokter,
|
||||
})
|
||||
return
|
||||
log.Println("Failed to get dokter from DokterPengirim:", errDokter)
|
||||
dokterPengirim = ""
|
||||
}
|
||||
|
||||
} else if dataMikroMain.DokterLab1 != "0" && dataMikroMain.DokterLab1 != "" {
|
||||
dokterPengirim, errDokter = simrsDB.GetNamaDokter(dataMikroMain.DokterLab1)
|
||||
|
||||
if errDokter != nil {
|
||||
log.Println(errDokter)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": errDokter,
|
||||
})
|
||||
return
|
||||
}
|
||||
} else if dataMikroMain.Pengirim != "" && dataMikroMain.Pengirim != "0" {
|
||||
dokterPengirim = dataMikroMain.Pengirim
|
||||
} else {
|
||||
dokterPengirim = ""
|
||||
}
|
||||
|
||||
if dokterPengirim == "" && dataMikroMain.DokterLab1 != "0" && dataMikroMain.DokterLab1 != "" {
|
||||
dokterPengirim, errDokter = simrsDB.GetNamaDokter(dataMikroMain.DokterLab1)
|
||||
if errDokter != nil {
|
||||
log.Println("Failed to get dokter from DokterLab1:", errDokter)
|
||||
dokterPengirim = ""
|
||||
}
|
||||
}
|
||||
|
||||
if dokterPengirim == "" && dataMikroMain.Pengirim != "" && dataMikroMain.Pengirim != "0" {
|
||||
dokterPengirim = dataMikroMain.Pengirim
|
||||
}
|
||||
log.Println("Akan masuk loop dataLabMikro...")
|
||||
for _, value := range dataLabMikro {
|
||||
log.Println("Masuk loop, value:", value)
|
||||
dataLisMikro = &mikrobiologi.RequestLISMikro{
|
||||
NoRM: dataMikroMain.NoMR,
|
||||
Nama: dataPasien.Nama,
|
||||
@@ -179,9 +186,11 @@ func SendDataLISMikro(c *gin.Context) {
|
||||
Klinis: diagnosa,
|
||||
KodeSpesimen: value.NamaField,
|
||||
NamaSpesimen: value.JenisKelompok,
|
||||
Pengambilan: "",
|
||||
Pengambilan: pengambilan,
|
||||
}
|
||||
|
||||
log.Println("Sebelum masuk LIS", dataLisMikro)
|
||||
|
||||
resMikro, errMikro := SendLisMikro(dataLisMikro)
|
||||
if errMikro != nil {
|
||||
log.Println(errMikro)
|
||||
@@ -223,6 +232,15 @@ func SendDataLISMikro(c *gin.Context) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if len(responseMikro) == 0 {
|
||||
log.Println("Tidak ada data lab mikro yang diproses")
|
||||
c.JSON(http.StatusCreated, gin.H{
|
||||
"message": "Tidak ada data pemeriksaan mikrobiologi ditemukan",
|
||||
"data": []interface{}{},
|
||||
})
|
||||
return
|
||||
}
|
||||
log.Println("RESPONSE", responseMikro)
|
||||
c.JSON(http.StatusOK, responseMikro)
|
||||
}
|
||||
|
||||
@@ -137,6 +137,14 @@ type OrderLabMikro struct {
|
||||
KodeTarif string `gorm:"column:kode_tarif" json:"kode_tarif"`
|
||||
}
|
||||
|
||||
type OrderLabMikropengambilan struct {
|
||||
IdxOrderMikro string `gorm:"column:idxordermikro" json:"idxordermikro"`
|
||||
NamaPemeriksaan string `gorm:"column:nama_pemeriksaan" json:"nama_pemeriksaan"`
|
||||
NamaField string `gorm:"column:nama_field" json:"nama_field"`
|
||||
JenisKelompok string `gorm:"column:jenis_kelompok" json:"jenis_kelompok"`
|
||||
KodeTarif string `gorm:"column:kode_tarif" json:"kode_tarif"`
|
||||
}
|
||||
|
||||
type Response struct {
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
|
||||
Reference in New Issue
Block a user