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
+4 -4
View File
@@ -12,10 +12,10 @@ SIMRS_PASSWORD=simrs.rssa
SIMRS_NAME=simrs
SIMRS_PORT=5432
SIMRS_STAG_HOST=10.10.123.223
SIMRS_STAG_USER=simtest
SIMRS_STAG_PASS=12345
SIMRS_STAG_NAME=simrsbackup
SIMRS_STAG_HOST=10.10.123.238
SIMRS_STAG_USER=brawijaya
SIMRS_STAG_PASS=ub*2025
SIMRS_STAG_NAME=simrs
SIMRS_STAG_PORT=5432
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) {
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
left join "m_form_lab" fl on olm."idxform" = fl."form_id"
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
}
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) {
var dataMikro []*mikrobiologi.OrderLabMikropengambilan
+45
View File
@@ -4,6 +4,7 @@ import (
"api-lis/pkg/models/simrs/mikrobiologi"
"api-lis/pkg/models/simrs/pasien"
"log"
"time"
)
func (s *DatabaseService) GetMPasien(req *mikrobiologi.RequestPasienMikrobiologi) (*pasien.MPasien, error) {
@@ -27,3 +28,47 @@ func (s *DatabaseService) GetPasienAPS(req *mikrobiologi.RequestPasienMikrobiolo
}
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
}
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 {
log.Println("Data bukan pemeriksaan")
@@ -102,10 +118,6 @@ func SendDataLISMikro(c *gin.Context) {
return
}
log.Println(dataLabMikroPengambilan)
var pengambilan string
if len(dataLabMikroPengambilan) > 0 {
pengambilan = dataLabMikroPengambilan[0].NamaField
}
poli, errDokter := simrsDB.GetNamaRuang(dataMikroMain.KodePoli)
if errDokter != nil {
@@ -164,29 +176,64 @@ func SendDataLISMikro(c *gin.Context) {
if dokterPengirim == "" && dataMikroMain.Pengirim != "" && dataMikroMain.Pengirim != "0" {
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...")
for _, value := range dataLabMikro {
log.Println("Masuk loop, value:", value)
dataLisMikro = &mikrobiologi.RequestLISMikro{
NoRM: dataMikroMain.NoMR,
Nama: dataPasien.Nama,
Alamat: dataPasien.Alamat,
Kota: dataPasien.Tempat,
TanggalLahir: tglLahirString,
NoHP: dataPasien.NoTelpon,
Kelamin: dataPasien.JenisKelamin,
NIK: dataPasien.NoKTP,
NoBPJS: dataPasien.NoKartu,
DokterPeminta: dokterPengirim,
AsalPasien: poli.NamaPoli,
Layanan: value.NamaPemeriksaan,
StatusBayar: "",
NoTransaksi: dataMikroMain.NoLab,
Asuransi: caraBayar,
Klinis: diagnosa,
KodeSpesimen: value.NamaField,
NamaSpesimen: value.JenisKelompok,
Pengambilan: pengambilan,
TanggalReg: tglReg,
TanggalSampel: tglOrderString,
NomorLab: dataMikroMain.NoLab,
NoRM: dataMikroMain.NoMR,
Nama: dataPasien.Nama,
Alamat: dataPasien.Alamat,
Kota: dataPasien.Tempat,
TanggalLahir: tglLahirString,
NoHP: dataPasien.NoTelpon,
Kelamin: dataPasien.JenisKelamin,
NIK: dataPasien.NoKTP,
NoBPJS: dataPasien.NoKartu,
DokterPeminta: dokterPengirim,
AsalPasien: poli.NamaPoli,
StatusBayar: "",
JenisPembayaran: caraBayar,
JenisKunjungan: jenisKunjungan,
Diagnosa: diagnosa,
Rujukan: rujukan,
KodeSpesimen: value.JenisKelompok,
NamaSpesimen: Specimen.NamaField,
Pengambilan: CaraPengambilan.NamaField,
JenisPemeriksaan: value.NamaField,
}
log.Println("Sebelum masuk LIS", dataLisMikro)
@@ -243,6 +290,7 @@ func SendDataLISMikro(c *gin.Context) {
}
log.Println("RESPONSE", responseMikro)
c.JSON(http.StatusOK, responseMikro)
return
}
func EkstrakHasil(c *gin.Context) {
+37 -24
View File
@@ -89,25 +89,29 @@ type ResponseDataPasienRajalAPS struct {
}
type RequestLISMikro struct {
NoRM string `json:"norm"`
Nama string `json:"nama"`
Alamat string `json:"alamat"`
Kota string `json:"kota"`
TanggalLahir string `json:"tgllahir"`
NoHP string `json:"nohap"`
Kelamin string `json:"kelamin"`
NIK string `json:"nik"`
NoBPJS string `json:"nobpjs"`
DokterPeminta string `json:"drpeminta"`
AsalPasien string `json:"asalpasien"`
Layanan string `json:"layanan"`
StatusBayar string `json:"statusbayar"`
NoTransaksi string `json:"notransaksi"`
Asuransi string `json:"asuransi"`
Klinis string `json:"klinis"`
KodeSpesimen string `json:"kode"`
NamaSpesimen string `json:"spesimen"`
Pengambilan string `json:"pengambilan"`
TanggalReg string `json:"tanggalregis"`
TanggalSampel string `json:"tanggalsampel"`
NomorLab string `json:"nomor_lab"`
NoRM string `json:"norm"`
Nama string `json:"nama"`
Alamat string `json:"alamat"`
Kota string `json:"kota"`
TanggalLahir string `json:"tgllahir"`
NoHP string `json:"nohap"`
Kelamin string `json:"kelamin"`
NIK string `json:"nik"`
NoBPJS string `json:"nobpjs"`
DokterPeminta string `json:"drpeminta"`
AsalPasien string `json:"asalpasien"`
StatusBayar string `json:"statusbayar"`
JenisPembayaran string `json:"jenispembayaran"`
JenisKunjungan string `json:"jeniskunjungan"`
Rujukan string `json:"keteranganrujukan"`
Diagnosa string `json:"diagnosa"`
KodeSpesimen string `json:"kodespesimen"`
NamaSpesimen string `json:"spesimen"`
Pengambilan string `json:"pengambilan"`
JenisPemeriksaan string `json:"jenispemeriksaan"`
}
type OrderLabMikroMain struct {
@@ -130,11 +134,20 @@ type OrderLabMikroMain struct {
}
type OrderLabMikro 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"`
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"`
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 {