penambahan dan perbaikan data

This commit is contained in:
2026-04-30 13:21:37 +07:00
parent dbf53008ea
commit 469dea5e7c
5 changed files with 185 additions and 52 deletions

No files matched your search

+4 -4
View File
@@ -12,10 +12,10 @@ SIMRS_PASSWORD=simrs.rssa
SIMRS_NAME=simrs SIMRS_NAME=simrs
SIMRS_PORT=5432 SIMRS_PORT=5432
SIMRS_STAG_HOST=10.10.123.223 SIMRS_STAG_HOST=10.10.123.238
SIMRS_STAG_USER=simtest SIMRS_STAG_USER=brawijaya
SIMRS_STAG_PASS=12345 SIMRS_STAG_PASS=ub*2025
SIMRS_STAG_NAME=simrsbackup SIMRS_STAG_NAME=simrs
SIMRS_STAG_PORT=5432 SIMRS_STAG_PORT=5432
LIS_MIKROBIOLOGI_URL=http://10.10.123.218/ LIS_MIKROBIOLOGI_URL=http://10.10.123.218/
+28 -1
View File
@@ -59,7 +59,7 @@ func (s *DatabaseService) GetDataMikroBiologiByNoMR(req *mikrobiologi.RequestPas
func (s *DatabaseService) GetDataLabMikro(noLab string) ([]*mikrobiologi.OrderLabMikro, bool, error) { func (s *DatabaseService) GetDataLabMikro(noLab string) ([]*mikrobiologi.OrderLabMikro, bool, error) {
var dataMikro []*mikrobiologi.OrderLabMikro var dataMikro []*mikrobiologi.OrderLabMikro
querySelect := `select olm."idxordermikro", olm."jenis_pemeriksaan", fl."nama_field" , fl."jenis_kelompok",fl."kode_tarif" querySelect := `select olm."idxordermikro", olm."jenis_pemeriksaan", fl."nama_field" , fl."jenis_kelompok",fl."kode_tarif",olm."tglorder"
from t_orderlabmikro olm from t_orderlabmikro olm
left join "m_form_lab" fl on olm."idxform" = fl."form_id" left join "m_form_lab" fl on olm."idxform" = fl."form_id"
where olm."nolab" = ? and fl."sub_kelompok" = 'Jenis Pemeriksaan'` where olm."nolab" = ? and fl."sub_kelompok" = 'Jenis Pemeriksaan'`
@@ -70,6 +70,33 @@ func (s *DatabaseService) GetDataLabMikro(noLab string) ([]*mikrobiologi.OrderLa
} }
return dataMikro, true, nil 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
}
return dataMikro, 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
}
return dataMikro, true, nil
}
func (s *DatabaseService) GetDataLabMikroPengambilan(noLab string) ([]*mikrobiologi.OrderLabMikropengambilan, bool, error) { func (s *DatabaseService) GetDataLabMikroPengambilan(noLab string) ([]*mikrobiologi.OrderLabMikropengambilan, bool, error) {
var dataMikro []*mikrobiologi.OrderLabMikropengambilan var dataMikro []*mikrobiologi.OrderLabMikropengambilan
+45
View File
@@ -4,6 +4,7 @@ import (
"api-lis/pkg/models/simrs/mikrobiologi" "api-lis/pkg/models/simrs/mikrobiologi"
"api-lis/pkg/models/simrs/pasien" "api-lis/pkg/models/simrs/pasien"
"log" "log"
"time"
) )
func (s *DatabaseService) GetMPasien(req *mikrobiologi.RequestPasienMikrobiologi) (*pasien.MPasien, error) { func (s *DatabaseService) GetMPasien(req *mikrobiologi.RequestPasienMikrobiologi) (*pasien.MPasien, error) {
@@ -27,3 +28,47 @@ func (s *DatabaseService) GetPasienAPS(req *mikrobiologi.RequestPasienMikrobiolo
} }
return dataPasien, nil return dataPasien, nil
} }
func (s *DatabaseService) GetTglRegPendaftaran(idxDaftar string) (string, error) {
var tglReg string
querySelect := `select tglreg from t_pendaftaran where "idxdaftar" = ?`
errSelect := s.DB.Debug().Raw(querySelect, idxDaftar).Scan(&tglReg).Error
if errSelect != nil {
log.Println(errSelect)
return "", errSelect
}
return tglReg, nil
}
func (s *DatabaseService) GetTglMasukRS(idxDaftar string) (string, error) {
var tglMasuk time.Time
querySelect := `select masukrs from t_admission where "id_admission" = ?`
errSelect := s.DB.Debug().Raw(querySelect, idxDaftar).Scan(&tglMasuk).Error
if errSelect != nil {
log.Println(errSelect)
return "", errSelect
}
return tglMasuk.Format("2006-01-02"), nil
}
func (s *DatabaseService) GetKetRujukan(noMR string) (string, string, error) {
var ketRujukan string
var isPenunjang *int
querySelect := `select ketrujuk, is_penunjang from t_pendaftaran where "nomr" = ?`
errSelect := s.DB.Debug().Raw(querySelect, noMR).Row().Scan(&ketRujukan, &isPenunjang)
if errSelect != nil {
log.Println(errSelect)
return "", "", errSelect
}
var jenisKunjungan string
if isPenunjang == nil {
jenisKunjungan = "Kunjungan Reguler"
} else if *isPenunjang == 1 {
jenisKunjungan = "Kunjungan Parsial"
} else if *isPenunjang == 0 {
jenisKunjungan = "Kunjungan Reguler"
}
return ketRujukan, jenisKunjungan, nil
}
+71 -23
View File
@@ -88,6 +88,22 @@ func SendDataLISMikro(c *gin.Context) {
}) })
return return
} }
Specimen, exist, errDiagnosa := simrsDB.GetDataLabMikroSpecimen(dataMikroMain.NoLab)
if errDiagnosa != nil {
log.Println(errDiagnosa)
c.JSON(http.StatusBadRequest, gin.H{
"message": errDiagnosa,
})
return
}
CaraPengambilan, exist, errDiagnosa := simrsDB.GetDataLabMikroJenisPemeriksaan(dataMikroMain.NoLab)
if errDiagnosa != nil {
log.Println(errDiagnosa)
c.JSON(http.StatusBadRequest, gin.H{
"message": errDiagnosa,
})
return
}
if !exist { if !exist {
log.Println("Data bukan pemeriksaan") log.Println("Data bukan pemeriksaan")
@@ -102,10 +118,6 @@ func SendDataLISMikro(c *gin.Context) {
return return
} }
log.Println(dataLabMikroPengambilan) log.Println(dataLabMikroPengambilan)
var pengambilan string
if len(dataLabMikroPengambilan) > 0 {
pengambilan = dataLabMikroPengambilan[0].NamaField
}
poli, errDokter := simrsDB.GetNamaRuang(dataMikroMain.KodePoli) poli, errDokter := simrsDB.GetNamaRuang(dataMikroMain.KodePoli)
if errDokter != nil { if errDokter != nil {
@@ -164,29 +176,64 @@ func SendDataLISMikro(c *gin.Context) {
if dokterPengirim == "" && dataMikroMain.Pengirim != "" && dataMikroMain.Pengirim != "0" { if dokterPengirim == "" && dataMikroMain.Pengirim != "" && dataMikroMain.Pengirim != "0" {
dokterPengirim = dataMikroMain.Pengirim dokterPengirim = dataMikroMain.Pengirim
} }
var tglReg string
if dataMikroMain.StatusRajal == "1" {
tglReg, err = simrsDB.GetTglRegPendaftaran(dataMikroMain.IdxDaftar)
if err != nil {
log.Println(err)
c.JSON(http.StatusBadRequest, gin.H{"message": err})
return
}
} else if dataMikroMain.StatusRajal == "0" {
tglReg, err = simrsDB.GetTglMasukRS(dataMikroMain.IdxDaftar)
if err != nil {
log.Println(err)
c.JSON(http.StatusBadRequest, gin.H{"message": err})
return
}
}
tglOrder, err := time.Parse("2006-01-02 15:04:05.000", dataLabMikro[0].TangggalOrderLab)
if err != nil {
log.Println("ERROR PARSE:", err)
}
tglOrderString := tglOrder.Format("2006-01-02")
rujukan, jenisKunjungan, errRujukan := simrsDB.GetKetRujukan(dataMikroMain.NoMR)
if errRujukan != nil {
log.Println(errRujukan)
c.JSON(http.StatusBadRequest, gin.H{"message": errRujukan})
return
}
log.Println("Akan masuk loop dataLabMikro...") log.Println("Akan masuk loop dataLabMikro...")
for _, value := range dataLabMikro { for _, value := range dataLabMikro {
log.Println("Masuk loop, value:", value) log.Println("Masuk loop, value:", value)
dataLisMikro = &mikrobiologi.RequestLISMikro{ dataLisMikro = &mikrobiologi.RequestLISMikro{
NoRM: dataMikroMain.NoMR, TanggalReg: tglReg,
Nama: dataPasien.Nama, TanggalSampel: tglOrderString,
Alamat: dataPasien.Alamat, NomorLab: dataMikroMain.NoLab,
Kota: dataPasien.Tempat, NoRM: dataMikroMain.NoMR,
TanggalLahir: tglLahirString, Nama: dataPasien.Nama,
NoHP: dataPasien.NoTelpon, Alamat: dataPasien.Alamat,
Kelamin: dataPasien.JenisKelamin, Kota: dataPasien.Tempat,
NIK: dataPasien.NoKTP, TanggalLahir: tglLahirString,
NoBPJS: dataPasien.NoKartu, NoHP: dataPasien.NoTelpon,
DokterPeminta: dokterPengirim, Kelamin: dataPasien.JenisKelamin,
AsalPasien: poli.NamaPoli, NIK: dataPasien.NoKTP,
Layanan: value.NamaPemeriksaan, NoBPJS: dataPasien.NoKartu,
StatusBayar: "", DokterPeminta: dokterPengirim,
NoTransaksi: dataMikroMain.NoLab, AsalPasien: poli.NamaPoli,
Asuransi: caraBayar, StatusBayar: "",
Klinis: diagnosa, JenisPembayaran: caraBayar,
KodeSpesimen: value.NamaField, JenisKunjungan: jenisKunjungan,
NamaSpesimen: value.JenisKelompok, Diagnosa: diagnosa,
Pengambilan: pengambilan, Rujukan: rujukan,
KodeSpesimen: value.JenisKelompok,
NamaSpesimen: Specimen.NamaField,
Pengambilan: CaraPengambilan.NamaField,
JenisPemeriksaan: value.NamaField,
} }
log.Println("Sebelum masuk LIS", dataLisMikro) log.Println("Sebelum masuk LIS", dataLisMikro)
@@ -243,6 +290,7 @@ func SendDataLISMikro(c *gin.Context) {
} }
log.Println("RESPONSE", responseMikro) log.Println("RESPONSE", responseMikro)
c.JSON(http.StatusOK, responseMikro) c.JSON(http.StatusOK, responseMikro)
return
} }
func EkstrakHasil(c *gin.Context) { func EkstrakHasil(c *gin.Context) {
+37 -24
View File
@@ -89,25 +89,29 @@ type ResponseDataPasienRajalAPS struct {
} }
type RequestLISMikro struct { type RequestLISMikro struct {
NoRM string `json:"norm"` TanggalReg string `json:"tanggalregis"`
Nama string `json:"nama"` TanggalSampel string `json:"tanggalsampel"`
Alamat string `json:"alamat"` NomorLab string `json:"nomor_lab"`
Kota string `json:"kota"` NoRM string `json:"norm"`
TanggalLahir string `json:"tgllahir"` Nama string `json:"nama"`
NoHP string `json:"nohap"` Alamat string `json:"alamat"`
Kelamin string `json:"kelamin"` Kota string `json:"kota"`
NIK string `json:"nik"` TanggalLahir string `json:"tgllahir"`
NoBPJS string `json:"nobpjs"` NoHP string `json:"nohap"`
DokterPeminta string `json:"drpeminta"` Kelamin string `json:"kelamin"`
AsalPasien string `json:"asalpasien"` NIK string `json:"nik"`
Layanan string `json:"layanan"` NoBPJS string `json:"nobpjs"`
StatusBayar string `json:"statusbayar"` DokterPeminta string `json:"drpeminta"`
NoTransaksi string `json:"notransaksi"` AsalPasien string `json:"asalpasien"`
Asuransi string `json:"asuransi"` StatusBayar string `json:"statusbayar"`
Klinis string `json:"klinis"` JenisPembayaran string `json:"jenispembayaran"`
KodeSpesimen string `json:"kode"` JenisKunjungan string `json:"jeniskunjungan"`
NamaSpesimen string `json:"spesimen"` Rujukan string `json:"keteranganrujukan"`
Pengambilan string `json:"pengambilan"` Diagnosa string `json:"diagnosa"`
KodeSpesimen string `json:"kodespesimen"`
NamaSpesimen string `json:"spesimen"`
Pengambilan string `json:"pengambilan"`
JenisPemeriksaan string `json:"jenispemeriksaan"`
} }
type OrderLabMikroMain struct { type OrderLabMikroMain struct {
@@ -130,11 +134,20 @@ type OrderLabMikroMain struct {
} }
type OrderLabMikro struct { type OrderLabMikro struct {
IdxOrderMikro string `gorm:"column:idxordermikro" json:"idxordermikro"` IdxOrderMikro string `gorm:"column:idxordermikro" json:"idxordermikro"`
NamaPemeriksaan string `gorm:"column:nama_pemeriksaan" json:"nama_pemeriksaan"` NamaPemeriksaan string `gorm:"column:nama_pemeriksaan" json:"nama_pemeriksaan"`
NamaField string `gorm:"column:nama_field" json:"nama_field"` NamaField string `gorm:"column:nama_field" json:"nama_field"`
JenisKelompok string `gorm:"column:jenis_kelompok" json:"jenis_kelompok"` JenisKelompok string `gorm:"column:jenis_kelompok" json:"jenis_kelompok"`
KodeTarif string `gorm:"column:kode_tarif" json:"kode_tarif"` KodeTarif string `gorm:"column:kode_tarif" json:"kode_tarif"`
TangggalOrderLab string `gorm:"column:tglorder" json:"tglorder"`
}
type OrderLabMikroSpecimen struct {
NamaField string `gorm:"column:nama_field" json:"nama_field"`
}
type OrderLabMikroJenisPemeriksaan struct {
NamaField string `gorm:"column:nama_field" json:"nama_field"`
} }
type OrderLabMikropengambilan struct { type OrderLabMikropengambilan struct {