penambahan dan perbaikan data
This commit is contained in:
@@ -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/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user