penambahan validasi kunjungan
This commit is contained in:
No files matched your search
@@ -4,6 +4,12 @@ SATUDATA_PASSWORD=stim*RS54
|
||||
SATUDATA_NAME=satu_db
|
||||
SATUDATA_PORT=5000
|
||||
|
||||
SIMRS_HOST=10.10.123.163
|
||||
SIMRS_USERNAME=simrs
|
||||
SIMRS_PASSWORD=simrs.rssa
|
||||
SIMRS_NAME=simrs
|
||||
SIMRS_PORT=5432
|
||||
|
||||
BASEURL_BPJS=https://apijkn.bpjs-kesehatan.go.id
|
||||
ANTREAN_RS=/antreanrs
|
||||
CONS_ID=5257
|
||||
|
||||
@@ -17,6 +17,7 @@ import (
|
||||
|
||||
var DB *gorm.DB
|
||||
var SatuDataDB *gorm.DB
|
||||
var DBsimrs *gorm.DB
|
||||
var err error
|
||||
|
||||
func ConnectDB() {
|
||||
@@ -26,6 +27,12 @@ func ConnectDB() {
|
||||
dbNameSatuData := os.Getenv("SATUDATA_NAME")
|
||||
portSatuData := os.Getenv("SATUDATA_PORT")
|
||||
|
||||
hostDBsimrs := os.Getenv("SIMRS_HOST")
|
||||
userNameDBsimrs := os.Getenv("SIMRS_USERNAME")
|
||||
passwordDBsimrs := os.Getenv("SIMRS_PASSWORD")
|
||||
dbNameDBsimrs := os.Getenv("SIMRS_NAME")
|
||||
portDBsimrs := os.Getenv("SIMRS_PORT")
|
||||
|
||||
satuData := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSatuData, userNameSatuData, passwordSatuData, dbNameSatuData, portSatuData)
|
||||
|
||||
SatuDataDB, err = gorm.Open(postgres.Open(satuData), &gorm.Config{})
|
||||
@@ -34,6 +41,16 @@ func ConnectDB() {
|
||||
} else {
|
||||
log.Println("Successfully connected to the database")
|
||||
}
|
||||
|
||||
dbSimrs := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta",
|
||||
hostDBsimrs, userNameDBsimrs, passwordDBsimrs, dbNameDBsimrs, portDBsimrs)
|
||||
|
||||
DBsimrs, err = gorm.Open(postgres.Open(dbSimrs), &gorm.Config{})
|
||||
if err != nil {
|
||||
log.Fatal("Failed to connect to DBsimrs database: ", err)
|
||||
} else {
|
||||
log.Println("Successfully connected to the DBsimrs database")
|
||||
}
|
||||
}
|
||||
|
||||
func SetHeader(isIcare bool, cfg config.ConfigBpjs) *config.Header {
|
||||
|
||||
@@ -9,6 +9,46 @@ import (
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func GetAdmission(idxdaftar string) (*suratkontrol.Addmission, *suratkontrol.Addmission) {
|
||||
var dataAdmission *suratkontrol.Addmission
|
||||
err := config.DBsimrs.Raw(`select ta."dokterpengirim",ta."id_admission",ta."dokter_penanggungjawab",ta."nosep",mp."nama",mp."noktp" from t_admission ta join m_pasien mp on ta."nomr" = mp."nomr" where ta.id_admission = ? `, idxdaftar).Scan(&dataAdmission)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return nil, nil
|
||||
}
|
||||
log.Println(dataAdmission)
|
||||
return dataAdmission, nil
|
||||
}
|
||||
|
||||
func Getdokter(kddokter int) (string, error) {
|
||||
var idDokter string
|
||||
err := config.SatuDataDB.Raw(`select "id" from data_pegawai where "KDDOKTER" = ? LIMIT 1`, kddokter).Scan(&idDokter).Error
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return idDokter, err
|
||||
}
|
||||
|
||||
func InsertKunjunganPasien(reqInsert *suratkontrol.InsertKunjunganPasien) error {
|
||||
log.Println("Req Insert Database : ", reqInsert)
|
||||
insertQuery := `insert into "data_kunjungan_pasien" ("id", "IDXDAFTAR","NOMR","Nama_lengkap","NIK","DPJP","Tanggal_masuk","Jam_masuk"
|
||||
values (?, ?, ?, ?, ?, ?, ?, ?)`
|
||||
err := config.SatuDataDB.Exec(insertQuery,
|
||||
reqInsert.ID,
|
||||
reqInsert.IdxDaftar,
|
||||
reqInsert.Nomr,
|
||||
reqInsert.NamaLengkap,
|
||||
reqInsert.NIK,
|
||||
reqInsert.DPJP,
|
||||
reqInsert.TanggalMasuk,
|
||||
reqInsert.JamMasuk,
|
||||
).Error
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, error) {
|
||||
var kunjunganPasien *suratkontrol.KunjunganPasien
|
||||
err := config.SatuDataDB.Raw(`select dkp."id", dkp."IDXDAFTAR" as idxdaftar, dkp."Nomor_sep" as nomorsep,
|
||||
@@ -56,8 +96,8 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
|
||||
log.Println("Req Insert Database : ", reqInsert)
|
||||
insertQuery := `insert into "data_surat_kontrol" ("id", "date_created", "Tanggal_cetak_surat_kontrol", "Tanggal_rencana_kontrol",
|
||||
"Nomor_surat_kontrol", "Kunjungan_pasien", "Ruangan_surat_kontrol", "DPJP_surat_kontrol", "Status_surat_kontrol",
|
||||
"User_created_surat_kontrol", "Tipe_surat_kontrol", "User_updated_surat_kontrol", "Tipe_rawat","Nomor_kartu","Kode_icd","Diagnosa")
|
||||
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?)`
|
||||
"User_created_surat_kontrol", "Tipe_surat_kontrol", "User_updated_surat_kontrol", "Tipe_rawat","Nomor_kartu","Kode_icd","Diagnosa","Idxdaftar_surat_kontrol")
|
||||
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?.?)`
|
||||
err := config.SatuDataDB.Exec(insertQuery,
|
||||
reqInsert.ID,
|
||||
reqInsert.DateCreated,
|
||||
@@ -75,6 +115,7 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
|
||||
reqInsert.NomorKartu,
|
||||
reqInsert.KodeIcd,
|
||||
reqInsert.Diagnosa,
|
||||
reqInsert.IdxDaftarSurkon,
|
||||
).Error
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
@@ -355,10 +396,9 @@ func GetDataSuratKontrolidsurkon(id string) (*suratkontrol.GetDataSuratKontrol,
|
||||
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
|
||||
dsk."Tipe_surat_kontrol" as "Tipe_SurKon",
|
||||
dsk."User_created_surat_kontrol" as "User",
|
||||
dsk."Nomor_kartu",
|
||||
dsk."Nomor_kartu" as "No_kartu",
|
||||
dsk."Kode_icd",
|
||||
dsk."Diagnosa",
|
||||
dsk."Nomor_kartu" as "No_kartu"
|
||||
dsk."Diagnosa"
|
||||
from data_surat_kontrol dsk
|
||||
left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien"
|
||||
left join daftar_lokasi_ruang dlr on dsk."Ruangan_surat_kontrol" = dlr."id"
|
||||
@@ -554,6 +594,18 @@ func GetNomorSurKon(idPasien string) (string, error) {
|
||||
return noSurKon, nil
|
||||
}
|
||||
|
||||
func GetNomorSurKonnew(idxdaftar string) (string, error) {
|
||||
var noSurKon string
|
||||
querySelect := `select dsk."Nomor_surat_kontrol" from data_surat_kontrol dsk where dsk."Idxdaftar_surat_kontrol" = ? and dsk."Tipe_surat_kontrol" <> '2' order by dsk."date_created"`
|
||||
err := config.SatuDataDB.Raw(querySelect, idxdaftar).Scan(&noSurKon).Error
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return "", err
|
||||
}
|
||||
log.Println("Nomor SurKon :", noSurKon)
|
||||
return noSurKon, nil
|
||||
}
|
||||
|
||||
func Getdatahistori(norm string, offset, limit string) ([]*suratkontrol.HistoriSurkon, error) {
|
||||
var dataHistoriSurKon []*suratkontrol.HistoriSurkon
|
||||
err := config.SatuDataDB.Raw(`select dkp2."Nama_lengkap",dkp2."Nomor_sep",dsk."id",dkp2."IDXDAFTAR",dsk."Nomor_surat_kontrol",dsk."Tanggal_rencana_kontrol",dsk."Tanggal_cetak_surat_kontrol",
|
||||
|
||||
@@ -675,3 +675,45 @@ func GetJadwalDokterNew() bool {
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func GetJadwalbaru(*gin.Context) {
|
||||
baseUrl := os.Getenv("BASEURL_BPJS")
|
||||
endpoint := os.Getenv("ANTREAN_RS")
|
||||
url := baseUrl + endpoint
|
||||
log.Println(url)
|
||||
|
||||
conf := config.ConfigBpjs{}
|
||||
|
||||
header := cfg.SetHeader(false, conf)
|
||||
|
||||
headers := map[string]string{
|
||||
"X-cons-id": header.ConsID,
|
||||
"X-timestamp": header.TimeStamp,
|
||||
"X-signature": header.XSignature,
|
||||
"user_key": header.UserKey,
|
||||
}
|
||||
log.Println(headers)
|
||||
|
||||
spesialis, err := dokter.GetSpesialis()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var listIdSpesialis = make(map[string]int)
|
||||
for _, kodeDokter := range spesialis {
|
||||
listIdSpesialis[kodeDokter.Kode] = kodeDokter.ID
|
||||
break
|
||||
}
|
||||
log.Println(listIdSpesialis)
|
||||
|
||||
subspesialis, err := dokter.GetSubspesialis()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var listIdSubspesialis = make(map[string]int)
|
||||
for _, kodeDokter := range subspesialis {
|
||||
listIdSubspesialis[kodeDokter.Kode] = kodeDokter.ID
|
||||
}
|
||||
log.Println(listIdSubspesialis)
|
||||
}
|
||||
@@ -110,15 +110,66 @@ func InsertSuratkontrolNew(c *gin.Context) {
|
||||
})
|
||||
return
|
||||
}
|
||||
uuid := uuid.New().String()
|
||||
|
||||
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
|
||||
var kunjunganPasien *sk.KunjunganPasien
|
||||
kunjunganPasien, err = suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: err.Error(),
|
||||
})
|
||||
return
|
||||
if err.Error() == "Data Tidak Ditemukan" {
|
||||
dataAdmission, erradmission := suratkontrol.GetAdmission(req.IDXDaftar)
|
||||
log.Println("kesini kagh", dataAdmission)
|
||||
if erradmission != nil {
|
||||
log.Println("masuk sini")
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Pasien Tidak Ada Kunjungan",
|
||||
})
|
||||
return
|
||||
}
|
||||
IdDokter, err := suratkontrol.Getdokter(dataAdmission.DokterPengirim)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Dokter tidak Ditemukan",
|
||||
})
|
||||
}
|
||||
layout := "2006-01-02 15:04:05" // sesuaikan format string input
|
||||
|
||||
masukrsTime, err := time.Parse(layout, dataAdmission.MasukRS)
|
||||
Tanggalmasuk := masukrsTime.Format("2006-01-02")
|
||||
Jammasuk := masukrsTime.Format("15:04:05")
|
||||
insertKunjungan := &sk.InsertKunjunganPasien{
|
||||
ID: uuid,
|
||||
IdxDaftar: dataAdmission.ID,
|
||||
Nomr: dataAdmission.Nomr,
|
||||
NamaLengkap: dataAdmission.NamaLengkap,
|
||||
NIK: dataAdmission.NoKTP,
|
||||
DPJP: IdDokter,
|
||||
TanggalMasuk: Tanggalmasuk,
|
||||
JamMasuk: Jammasuk,
|
||||
}
|
||||
log.Println("insertKunjungan:", insertKunjungan)
|
||||
err = suratkontrol.InsertKunjunganPasien(insertKunjungan)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Server Pasien Sedang Down",
|
||||
})
|
||||
}
|
||||
kunjunganPasien, err = suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: "Kunjungan Pasien Kosong",
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var idRuangan int
|
||||
@@ -136,7 +187,6 @@ func InsertSuratkontrolNew(c *gin.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
uuid := uuid.New().String()
|
||||
if req.TipeSurKon == "2" {
|
||||
reqJson, err := json.Marshal(req)
|
||||
if err != nil {
|
||||
@@ -267,6 +317,7 @@ func InsertSuratkontrolNew(c *gin.Context) {
|
||||
TipeRawat: req.TipeRawat,
|
||||
KodeIcd: kodeICD,
|
||||
Diagnosa: diagnosa,
|
||||
IdxDaftarSurkon: req.IDXDaftar,
|
||||
}
|
||||
log.Println(reqInsert)
|
||||
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
|
||||
@@ -279,16 +330,6 @@ func InsertSuratkontrolNew(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
err = suratkontrol.UpdateKunjunganPasien(req)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
reqInsertLog := &logapi.DataLogAPI{
|
||||
ID: uuid,
|
||||
DateCreated: logTimeEnd,
|
||||
@@ -334,15 +375,17 @@ func InsertSuratkontrolNew(c *gin.Context) {
|
||||
log.Println("Response: ", response)
|
||||
c.JSON(http.StatusOK, response)
|
||||
} else {
|
||||
|
||||
var dataSurkon string
|
||||
logTimeStart := time.Now().Format("2006-01-02 15:04:05")
|
||||
dataSurkon, err := suratkontrol.GetNomorSurKon(kunjunganPasien.ID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusCreated, &sk.MetadataString{
|
||||
Code: "201",
|
||||
Message: err.Error(),
|
||||
})
|
||||
return
|
||||
if err.Error() == "Data tidak ada" {
|
||||
dataSurkon, err = suratkontrol.GetNomorSurKonnew(req.IDXDaftar)
|
||||
if err != nil {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
noUrut := "001"
|
||||
|
||||
@@ -81,6 +81,10 @@ func main() {
|
||||
{
|
||||
subspesialis.GET("/", bpjs.GetAllSubspesialis)
|
||||
}
|
||||
test := v1.Group("/test")
|
||||
{
|
||||
test.GET("/test", jadwal_dokter.GetJadwalbaru)
|
||||
}
|
||||
|
||||
//API UNTUK JADWAL DOKTER
|
||||
jadwalDokter := v1.Group("/jadwaldokter")
|
||||
|
||||
@@ -23,3 +23,24 @@ type KunjunganPasien struct {
|
||||
DisplayDiagnosisPrimerUtama string `gorm:"column:Display_diagnosis_primer_utama" json:"Display_diagnosis_primer_utama"`
|
||||
NomorRM string `gorm:"column:No_rm" json:"No_rm"`
|
||||
}
|
||||
|
||||
type Addmission struct {
|
||||
ID int `gorm:"column:id_admission" json:"id"`
|
||||
Nomr string `gorm:"column:nomr" json:"nomr"`
|
||||
DokterPengirim int `gorm:"column:dokterpengirim" json:"dokterpengirim"`
|
||||
NoSEP string `gorm:"column:nosep" json:"no_sep"`
|
||||
NamaLengkap string `gorm:"column:nama" json:"namalengkap"`
|
||||
NoKTP string `gorm:"column:noktp" json:"noktp"`
|
||||
MasukRS string `gorm:"column:masukrs" json:"masukrs"`
|
||||
}
|
||||
|
||||
type InsertKunjunganPasien struct {
|
||||
ID string `gorm:"column:id" json:"id"`
|
||||
IdxDaftar int `gorm:"column:IDXDAFTAR" json:"idxdaftar"`
|
||||
Nomr string `gorm:"column:NOMR" json:"nomr"`
|
||||
NamaLengkap string `gorm:"column:Nama_lengkap" json:"namalengkap"`
|
||||
NIK string `gorm:"column:NIK" json:"nik"`
|
||||
DPJP string `gorm:"column:DPJP" json:"dpjp"`
|
||||
TanggalMasuk string `gorm:"column:Tanggal_masuk" json:"tanggalmasuk"`
|
||||
JamMasuk string `gorm:"column:Jam_masuk" json:"jammasuk"`
|
||||
}
|
||||
@@ -273,6 +273,7 @@ type DataSuratKontrol struct {
|
||||
TipeSurKon string `gorm:"column:Tipe_surat_kontrol" json:"Tipe_surat_kontrol"`
|
||||
UserUpdatedSurKon string `gorm:"column:User_updated_surat_kontrol" json:"User_updated_surat_kontrol"`
|
||||
TipeRawat string `gorm:"column:Tipe_rawat" json:"Tipe_rawat"`
|
||||
IdxDaftarSurkon string `gorm:"column:Idxdaftar_surat_kontrol" json:"IdxDaftar_surkon"`
|
||||
}
|
||||
|
||||
type ResponseSuratKontrolBySEP struct {
|
||||
|
||||
Reference in New Issue
Block a user