diff --git a/.env b/.env index b5d92d6..713dd2f 100644 --- a/.env +++ b/.env @@ -15,10 +15,13 @@ USER_KEY_DEV=467a2817fde5070f66c9a41fbeb8dc2c SECRET_KEY_DEV=8pP3D5431E BASEURL_BPJS_DEV=https://apijkn-dev.bpjs-kesehatan.go.id/ -SURAT_KONTROL_RS_DEV=vclaim-rest-dev +VCLAIM_RS_DEV=vclaim-rest-dev INSERT_SURAT_KONTROL=/RencanaKontrol/insert UPDATE_SURAT_KONTROL=/RencanaKontrol/Update DELETE_SURAT_KONTROL=/RencanaKontrol/Delete GET_NOMOR_SURAT_KONTROL=/RencanaKontrol/noSuratKontrol/ GET_SURAT_KONTROL_SEP=/RencanaKontrol/nosep/ +GET_NOMOR_RUJUKAN=/Rujukan/ +GET_NOMOR_RUJUKAN_BATCH=/Rujukan/List/Peserta/ + diff --git a/database/satu_data/dokter/jadwal_dokter.go b/database/satu_data/dokter/jadwal_dokter.go index a8d2fd3..3b9ee4d 100644 --- a/database/satu_data/dokter/jadwal_dokter.go +++ b/database/satu_data/dokter/jadwal_dokter.go @@ -19,16 +19,6 @@ func GetJadwalDokterByDPJP(dpjp string) (string, error) { return id, nil } -// func GetJadwalSpesialisDokterByID(id string) (string, error) { -// var spesialis string -// errSelect := config.SatuDataDB.Debug().Raw(`select "Spesialis" from "daftar_jadwal_dokter" where "Dokter" = ? order by "Spesialis"`, id).First(&spesialis).Error -// if errSelect != nil { -// log.Printf("Failed get data : %v", errSelect) -// return "", errSelect -// } -// return spesialis, nil -// } - func GetJadwalHariDokterBySpesialis(id string) ([]jadwal_dokter.JadwalDokterSatuData, error) { var hari []jadwal_dokter.JadwalDokterSatuData errSelect := config.SatuDataDB.Debug().Raw(`select * from "daftar_jadwal_dokter" where "Dokter" = ? order by "id"`, id).Scan(&hari).Error diff --git a/database/satu_data/log_api/log_api.go b/database/satu_data/log_api/log_api.go new file mode 100644 index 0000000..455de60 --- /dev/null +++ b/database/satu_data/log_api/log_api.go @@ -0,0 +1,33 @@ +package logapi + +import ( + "bridging-rssa/config" + logapi "bridging-rssa/models/log_api" + "log" +) + +func InsertLogAPI(reqInsert logapi.DataLogAPI) error { + query := `insert into "data_log_api" ( + "ID", "User_agent", "IP", "Parameter", "Header", "Method", "Url", "Request", "Respon", "Respon_code", "Respontime_start", "Respontime_end", "Comment" + ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` + err := config.SatuDataDB.Debug().Exec(query, + reqInsert.ID, + reqInsert.UserAgent, + reqInsert.IP, + reqInsert.Parameter, + reqInsert.Header, + reqInsert.Method, + reqInsert.Url, + reqInsert.Request, + reqInsert.Respon, + reqInsert.ResponCode, + reqInsert.ResponTimeStart, + reqInsert.ResponTimeEnd, + reqInsert.Comment, + ).Error + if err != nil { + log.Println(err) + return err + } + return nil +} diff --git a/database/satu_data/surat_kontrol/kunjungan_pasien.go b/database/satu_data/surat_kontrol/kunjungan_pasien.go index 5422b13..c614370 100644 --- a/database/satu_data/surat_kontrol/kunjungan_pasien.go +++ b/database/satu_data/surat_kontrol/kunjungan_pasien.go @@ -6,8 +6,8 @@ import ( "log" ) -func UpdateNoSEPKunjunganPasien(req sk.RequestInsertRencanaKontrol) error { - err := config.SatuDataDB.Debug().Exec(`update "data_kunjungan_pasien" set "Nomor_sep" = ? where "IDXDAFTAR" = ?`, req.NoSEP, req.IDXDaftar).Error +func UpdateKunjunganPasien(req sk.RequestInsertRencanaKontrol) error { + err := config.SatuDataDB.Debug().Exec(`update "data_kunjungan_pasien" set "Nomor_sep" = ?, "Diagnosis_akhir_keluar" = ?, "Display_diagnosis_akhir_keluar" = ?, "Diagnosis_primer_utama" = ?, "Display_diagnosis_primer_utama" = ? where "IDXDAFTAR" = ?`, req.NoSEP, req.KodeDiagnosa, req.NamaDiagnosa, req.KodeDiagnosa, req.NamaDiagnosa, req.IDXDaftar).Error if err != nil { log.Println(err) return err diff --git a/database/satu_data/surat_kontrol/surat_kontrol.go b/database/satu_data/surat_kontrol/surat_kontrol.go index 46b750a..d25e5ad 100644 --- a/database/satu_data/surat_kontrol/surat_kontrol.go +++ b/database/satu_data/surat_kontrol/surat_kontrol.go @@ -1,296 +1,246 @@ -package suratkontrol - -import ( - "bridging-rssa/config" - suratkontrol "bridging-rssa/models/bpjs/surat_kontrol" - "log" -) - -func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, error) { - var kunjunganPasien *suratkontrol.KunjunganPasien - err := config.SatuDataDB.Debug().Raw(`select dkp."id", dkp."IDXDAFTAR" as idxdaftar, dkp."Nomor_sep" as nomorsep, - dlr."Nama" as namaklinik, dlr."Id_location_simgos" as idkliniksimgos, dlr."Kode_hfis_bpjs" as kodehfisklinik, - dk."Nama_lengkap" as namadokter, - dp."KDDOKTER" as kodedokter, dp."HFIS_code" as kodehfisdokter, - dsu."Kode" as kodesubspesialis, dsu."Subspesialis" as subspesialis, - ds."Spesialis" as spesialis, - array( - select dgd."Gelar_depan" - from data_pegawai_daftar_gelar_depan dpdgd - left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id - where dpdgd.data_pegawai_id = dp.id - ) AS gelardepan, - array( - select dgb."Gelar_belakang" - from data_pegawai_daftar_gelar_belakang dpdgb - left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id - where dpdgb.data_pegawai_id = dp.id - ) AS gelarbelakang, - dkp."Ruangan" as ruangan, - dkp."DPJP" as id_dokter - from data_kunjungan_pasien dkp - left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id - left join data_pegawai dp on dkp."DPJP" = dp.id - left join data_ktp dk on dp."KTP" = dk.id - left join daftar_subspesialis dsu on dp."Subspesialis" = dsu.id - left join daftar_spesialis ds on dsu."FK_daftar_spesialis_ID" = ds.id - where dkp."IDXDAFTAR" = ?`, idxdaftar).First(&kunjunganPasien).Error - if err != nil { - log.Println(err) - return nil, err - } - log.Println("Data Kunjungan Pasien : ", kunjunganPasien) - return kunjunganPasien, nil -} - -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") - values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` - err := config.SatuDataDB.Debug().Exec(insertQuery, - reqInsert.ID, - reqInsert.DateCreated, - reqInsert.TglCetakSurKon, - reqInsert.TglRencanaKontrol, - reqInsert.NomorSurKon, - reqInsert.KunjunganPasien, - reqInsert.RuanganSurKon, - reqInsert.DPJPSurKon, - reqInsert.StatusSurKon, - reqInsert.UserCreatedSurKon, - reqInsert.TipeSurKon, - ).Error - if err != nil { - log.Println(err) - return err - } - return nil -} - -func GetDataSuratKontrol() ([]*suratkontrol.GetDataSuratKontrol, error) { - var dataSurKon []*suratkontrol.GetDataSuratKontrol - err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", - dsk."Nomor_surat_kontrol", - (select dlr."Nama" - from data_kunjungan_pasien dkp - left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", - dlr."Nama" as "Poli_tuju", - dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", - array( - select dgd. "Gelar_depan" - from data_pegawai_daftar_gelar_depan dpdgd - left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id - ) AS gelardepan , - dk."Nama_lengkap" as "Nama_lengkap_dokter", - array( - select dgb. "Gelar_belakang" - from data_pegawai_daftar_gelar_belakang dpdgb - left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id - ) AS gelarbelakang, - ds."Subspesialis", - ds."Kode" as "Kode_poli", - dp."HFIS_code" as "Kode_dokter" - 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" - left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" - left join data_ktp dk on dp."KTP" = dk. "id" - left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" - where dsk."Status_surat_kontrol" = '1'`).Scan(&dataSurKon).Error - if err != nil { - log.Println(err) - return nil, err - } - log.Println("Data Surat Kontrol : ", dataSurKon) - return dataSurKon, nil -} - -func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontrol, error) { - var dataSurKon *suratkontrol.GetDataSuratKontrol - err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", - dsk."Nomor_surat_kontrol", - (select dlr."Nama" - from data_kunjungan_pasien dkp - left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", - dlr."Nama" as "Poli_tuju", - dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", - array( - select dgd. "Gelar_depan" - from data_pegawai_daftar_gelar_depan dpdgd - left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id - ) AS gelardepan , - dk."Nama_lengkap" as "Nama_lengkap_dokter", - array( - select dgb. "Gelar_belakang" - from data_pegawai_daftar_gelar_belakang dpdgb - left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id - ) AS gelarbelakang, - ds."Subspesialis", - ds."Kode" as "Kode_poli", - ds."id" as "ID_poli", - dp."HFIS_code" as "Kode_dokter", - dp."id" as "id_dokter" - 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" - left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" - left join data_ktp dk on dp."KTP" = dk. "id" - left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" - where dsk."Status_surat_kontrol" = '1' and dkp2."IDXDAFTAR" = ?`, idxdaftar).First(&dataSurKon).Error - if err != nil { - log.Println(err) - return nil, err - } - log.Println("Data Surat Kontrol : ", dataSurKon) - return dataSurKon, nil -} - -func UpdateDataSuratKontrol(reqUpdate *suratkontrol.DataSuratKontrol) error { - err := config.SatuDataDB.Debug().Exec(`update "data_surat_kontrol" set "date_updated" = ?,"Status_surat_kontrol" = ? where "id" = ?`, reqUpdate.DateUpdated, reqUpdate.StatusSurKon, reqUpdate.ID).Error - if err != nil { - log.Println(err) - return err - } - return nil -} -func GetIDXDaftarBySurKon(idSurKon string) (string, error) { - var idxDaftar string - err := config.SatuDataDB.Debug().Raw(`select dkp."IDXDAFTAR" - from "data_surat_kontrol" dsk - left join "data_kunjungan_pasien" dkp on dkp."id" = dsk."Kunjungan_pasien" - where dsk."id" = ?`, idSurKon).First(&idxDaftar).Error - if err != nil { - log.Println(err) - return "", err - } - return idxDaftar, err -} - -func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, error) { - var dataSurKon *suratkontrol.DataSuratKontrol - err := config.SatuDataDB.Debug().Raw(`select * from "data_surat_kontrol" where "id" = ?`, idSurKon).First(&dataSurKon).Error - if err != nil { - log.Println(err) - return nil, err - } - return dataSurKon, nil -} - -func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) ([]*suratkontrol.GetDataSuratKontrol, error) { - var dataSurKon []*suratkontrol.GetDataSuratKontrol - query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?` - querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", - dsk."Nomor_surat_kontrol", - (select dlr."Nama" - from data_kunjungan_pasien dkp - left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", - dlr."Nama" as "Poli_tuju", - dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", - array( - select dgd. "Gelar_depan" - from data_pegawai_daftar_gelar_depan dpdgd - left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id - ) AS gelardepan , - dk."Nama_lengkap" as "Nama_lengkap_dokter", - array( - select dgb. "Gelar_belakang" - from data_pegawai_daftar_gelar_belakang dpdgb - left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id - ) AS gelarbelakang, - ds."Subspesialis", - ds."Kode" as "Kode_poli", - dp."HFIS_code" as "Kode_dokter" - 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" - left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" - left join data_ktp dk on dp."KTP" = dk. "id" - left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" - where dsk."Status_surat_kontrol" = '1' ` - querySelect += query - err := config.SatuDataDB.Debug().Raw(querySelect, args...).Find(&dataSurKon).Error - if err != nil { - log.Println(err) - return nil, err - } - log.Println("Data Surat Kontrol : ", dataSurKon) - return dataSurKon, nil -} - -// func GetDataSurKonByNoSEP(req suratkontrol.RequestCariPasien) ([]*suratkontrol.GetDataSuratKontrol, error) { -// var dataSurKon []*suratkontrol.GetDataSuratKontrol -// err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", -// dsk."Nomor_surat_kontrol", -// (select dlr."Nama" -// from data_kunjungan_pasien dkp -// left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", -// dlr."Nama" as "Poli_tuju", -// dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", -// array( -// select dgd. "Gelar_depan" -// from data_pegawai_daftar_gelar_depan dpdgd -// left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id -// ) AS gelardepan , -// dk."Nama_lengkap" as "Nama_lengkap_dokter", -// array( -// select dgb. "Gelar_belakang" -// from data_pegawai_daftar_gelar_belakang dpdgb -// left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id -// ) AS gelarbelakang, -// ds."Subspesialis", -// ds."Kode" as "Kode_poli", -// dp."HFIS_code" as "Kode_dokter" -// 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" -// left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" -// left join data_ktp dk on dp."KTP" = dk. "id" -// left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" -// where dsk."Status_surat_kontrol" = '1' and dkp2."Nomor_sep" = ? and date(dsk."Tanggal_rencana_kontrol") between ? and ?`, req.NoSEP, req.TanggalAwal, req.TanggalAkhir).Find(&dataSurKon).Error -// if err != nil { -// log.Println(err) -// return nil, err -// } -// log.Println("Data Surat Kontrol : ", dataSurKon) -// return dataSurKon, nil -// } - -// func GetDataSurKonByPoliklinik(req suratkontrol.RequestCariPasien) ([]*suratkontrol.GetDataSuratKontrol, error) { -// var dataSurKon []*suratkontrol.GetDataSuratKontrol -// err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", -// dsk."Nomor_surat_kontrol", -// (select dlr."Nama" -// from data_kunjungan_pasien dkp -// left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", -// dlr."Nama" as "Poli_tuju", -// dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", -// array( -// select dgd. "Gelar_depan" -// from data_pegawai_daftar_gelar_depan dpdgd -// left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id -// ) AS gelardepan , -// dk."Nama_lengkap" as "Nama_lengkap_dokter", -// array( -// select dgb. "Gelar_belakang" -// from data_pegawai_daftar_gelar_belakang dpdgb -// left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id -// ) AS gelarbelakang, -// ds."Subspesialis", -// ds."Kode" as "Kode_poli", -// dp."HFIS_code" as "Kode_dokter" -// 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" -// left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" -// left join data_ktp dk on dp."KTP" = dk. "id" -// left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" -// where dsk."Status_surat_kontrol" = '1' and ds."id" = ? and date(dsk."Tanggal_rencana_kontrol") between ? and ?`, req.PoliKlinik, req.TanggalAwal, req.TanggalAkhir).Find(&dataSurKon).Error -// if err != nil { -// log.Println(err) -// return nil, err -// } -// log.Println("Data Surat Kontrol : ", dataSurKon) -// return dataSurKon, nil -// } +package suratkontrol + +import ( + "bridging-rssa/config" + suratkontrol "bridging-rssa/models/bpjs/surat_kontrol" + "errors" + "log" + + "gorm.io/gorm" +) + +func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, error) { + var kunjunganPasien *suratkontrol.KunjunganPasien + err := config.SatuDataDB.Debug().Raw(`select dkp."id", dkp."IDXDAFTAR" as idxdaftar, dkp."Nomor_sep" as nomorsep, + dlr."Nama" as namaklinik, dlr."Id_location_simgos" as idkliniksimgos, dlr."Kode_hfis_bpjs" as kodehfisklinik, + dk."Nama_lengkap" as namadokter, + dp."KDDOKTER" as kodedokter, dp."HFIS_code" as kodehfisdokter, + dsu."Kode" as kodesubspesialis, dsu."Subspesialis" as subspesialis, + ds."Spesialis" as spesialis, + array( + select dgd."Gelar_depan" + from data_pegawai_daftar_gelar_depan dpdgd + left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id + where dpdgd.data_pegawai_id = dp.id + ) AS gelardepan, + array( + select dgb."Gelar_belakang" + from data_pegawai_daftar_gelar_belakang dpdgb + left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id + where dpdgb.data_pegawai_id = dp.id + ) AS gelarbelakang, + dkp."Ruangan" as ruangan, + dkp."DPJP" as id_dokter + from data_kunjungan_pasien dkp + left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id + left join data_pegawai dp on dkp."DPJP" = dp.id + left join data_ktp dk on dp."KTP" = dk.id + left join daftar_subspesialis dsu on dp."Subspesialis" = dsu.id + left join daftar_spesialis ds on dsu."FK_daftar_spesialis_ID" = ds.id + where dkp."IDXDAFTAR" = ?`, idxdaftar).First(&kunjunganPasien).Error + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + errMsg := errors.New("Data Tidak Ditemukan") + log.Println(errMsg) + return nil, errMsg + } + log.Println(err) + return nil, err + } + log.Println("Data Kunjungan Pasien : ", kunjunganPasien) + return kunjunganPasien, nil +} + +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") + values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` + err := config.SatuDataDB.Debug().Exec(insertQuery, + reqInsert.ID, + reqInsert.DateCreated, + reqInsert.TglCetakSurKon, + reqInsert.TglRencanaKontrol, + reqInsert.NomorSurKon, + reqInsert.KunjunganPasien, + reqInsert.RuanganSurKon, + reqInsert.DPJPSurKon, + reqInsert.StatusSurKon, + reqInsert.UserCreatedSurKon, + reqInsert.TipeSurKon, + reqInsert.UserUpdatedSurKon, + ).Error + if err != nil { + log.Println(err) + return err + } + return nil +} + +func GetDataSuratKontrol(offset, limit string) ([]*suratkontrol.GetDataSuratKontrol, error) { + var dataSurKon []*suratkontrol.GetDataSuratKontrol + err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", + dsk."Nomor_surat_kontrol", + (select dlr."Nama" + from data_kunjungan_pasien dkp + left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", + dlr."Nama" as "Poli_tuju", + dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", + array( + select dgd. "Gelar_depan" + from data_pegawai_daftar_gelar_depan dpdgd + left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id + ) AS gelardepan , + dk."Nama_lengkap" as "Nama_lengkap_dokter", + array( + select dgb. "Gelar_belakang" + from data_pegawai_daftar_gelar_belakang dpdgb + left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id + ) AS gelarbelakang, + ds."Subspesialis", + ds."Kode" as "Kode_poli", + ds."id" as "ID_poli", + dp."HFIS_code" as "Kode_dokter", + dp."id" as "id_dokter", + dkp2."NOMR" as "No_rm", + dkp2."Diagnosis_primer_utama" as "Kode_diagnosa", + dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa", + dsk."Tipe_surat_kontrol" as "Tipe_SurKon" + 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" + left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" + left join data_ktp dk on dp."KTP" = dk. "id" + left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" + where dsk."Status_surat_kontrol" = '1' offset ? limit ?`, offset, limit).Scan(&dataSurKon).Error + if err != nil { + log.Println(err) + return nil, err + } + log.Println("Data Surat Kontrol : ", dataSurKon) + return dataSurKon, nil +} + +func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontrol, error) { + var dataSurKon *suratkontrol.GetDataSuratKontrol + err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", + dsk."Nomor_surat_kontrol", + (select dlr."Nama" + from data_kunjungan_pasien dkp + left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", + dlr."Nama" as "Poli_tuju", + dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", + array( + select dgd. "Gelar_depan" + from data_pegawai_daftar_gelar_depan dpdgd + left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id + ) AS gelardepan , + dk."Nama_lengkap" as "Nama_lengkap_dokter", + array( + select dgb. "Gelar_belakang" + from data_pegawai_daftar_gelar_belakang dpdgb + left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id + ) AS gelarbelakang, + ds."Subspesialis", + ds."Kode" as "Kode_poli", + ds."id" as "ID_poli", + dp."HFIS_code" as "Kode_dokter", + dp."id" as "id_dokter", + dkp2."NOMR" as "No_rm", + dkp2."Diagnosis_primer_utama" as "Kode_diagnosa", + dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa", + dsk."Tipe_surat_kontrol" as "Tipe_SurKon" + 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" + left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" + left join data_ktp dk on dp."KTP" = dk. "id" + left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" + where dsk."Status_surat_kontrol" = '1' and dkp2."IDXDAFTAR" = ?`, idxdaftar).First(&dataSurKon).Error + if err != nil { + log.Println(err) + return nil, err + } + log.Println("Data Surat Kontrol : ", dataSurKon) + return dataSurKon, nil +} + +func UpdateDataSuratKontrol(reqUpdate *suratkontrol.DataSuratKontrol) error { + err := config.SatuDataDB.Debug().Exec(`update "data_surat_kontrol" set "date_updated" = ?, "Status_surat_kontrol" = ?, "User_updated_surat_kontrol" = ? where "id" = ?`, reqUpdate.DateUpdated, reqUpdate.StatusSurKon, reqUpdate.UserUpdatedSurKon, reqUpdate.ID).Error + if err != nil { + log.Println(err) + return err + } + return nil +} + +func GetIDXDaftarBySurKon(idSurKon string) (string, error) { + var idxDaftar string + err := config.SatuDataDB.Debug().Raw(`select dkp."IDXDAFTAR" + from "data_surat_kontrol" dsk + left join "data_kunjungan_pasien" dkp on dkp."id" = dsk."Kunjungan_pasien" + where dsk."id" = ?`, idSurKon).First(&idxDaftar).Error + if err != nil { + log.Println(err) + return "", err + } + return idxDaftar, err +} + +func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, error) { + var dataSurKon *suratkontrol.DataSuratKontrol + err := config.SatuDataDB.Debug().Raw(`select * from "data_surat_kontrol" where "id" = ?`, idSurKon).First(&dataSurKon).Error + if err != nil { + log.Println(err) + return nil, err + } + return dataSurKon, nil +} + +func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) ([]*suratkontrol.GetDataSuratKontrol, error) { + var dataSurKon []*suratkontrol.GetDataSuratKontrol + query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ? offset ? limit ?` + querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", + dsk."Nomor_surat_kontrol", + (select dlr."Nama" + from data_kunjungan_pasien dkp + left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal", + dlr."Nama" as "Poli_tuju", + dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", + array( + select dgd. "Gelar_depan" + from data_pegawai_daftar_gelar_depan dpdgd + left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id + ) AS gelardepan , + dk."Nama_lengkap" as "Nama_lengkap_dokter", + array( + select dgb. "Gelar_belakang" + from data_pegawai_daftar_gelar_belakang dpdgb + left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id + ) AS gelarbelakang, + ds."Subspesialis", + ds."Kode" as "Kode_poli", + ds."id" as "ID_poli", + dp."HFIS_code" as "Kode_dokter", + dp."id" as "id_dokter", + dkp2."NOMR" as "No_rm", + dkp2."Diagnosis_primer_utama" as "Kode_diagnosa", + dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa", + dsk."Tipe_surat_kontrol" as "Tipe_SurKon" + 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" + left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" + left join data_ktp dk on dp."KTP" = dk. "id" + left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" + where dsk."Status_surat_kontrol" = '1' ` + querySelect += query + err := config.SatuDataDB.Debug().Raw(querySelect, args...).Find(&dataSurKon).Error + if err != nil { + log.Println(err) + return nil, err + } + log.Println("Data Surat Kontrol : ", dataSurKon) + return dataSurKon, nil +} diff --git a/handlers/bpjs/jadwal_dokter/jadwal_dokter.go b/handlers/bpjs/jadwal_dokter/jadwal_dokter.go index 8b5a030..ec82326 100644 --- a/handlers/bpjs/jadwal_dokter/jadwal_dokter.go +++ b/handlers/bpjs/jadwal_dokter/jadwal_dokter.go @@ -141,12 +141,6 @@ func GetDokterByDPJP(c *gin.Context) { return } - // spesialis, err := dokter.GetJadwalSpesialisDokterByID(idDokter) - // if err != nil { - // c.JSON(http.StatusInternalServerError, err) - // return - // } - listHari, err := dokter.GetJadwalHariDokterBySpesialis(idDokter) if err != nil { c.JSON(http.StatusInternalServerError, err) @@ -200,6 +194,7 @@ func GetDokterByDPJP(c *gin.Context) { HFISCode: hfisCode, KodeDPJP: dpjp, JadwalDokter: jadwalDokter, + IDDokter: k.ID, } } log.Println("Response :", res) diff --git a/handlers/bpjs/rujukan/response.go b/handlers/bpjs/rujukan/response.go new file mode 100644 index 0000000..c64606c --- /dev/null +++ b/handlers/bpjs/rujukan/response.go @@ -0,0 +1,148 @@ +package rujukan + +import ( + "bridging-rssa/docs" + "bridging-rssa/models/bpjs/rujukan" + "bridging-rssa/models/config" + "encoding/json" + "errors" + "io" + "log" + "net/http" +) + +func ResponseGetRujukan(url string, header *config.Header, headers map[string]string) (*rujukan.ResponseGetRujukan, error) { + log.Println("URL", url) + + req, err := http.NewRequest("GET", url, nil) + if err != nil { + log.Printf("Error creating request: %v", err) + } + + for key, value := range headers { + req.Header.Set(key, value) + } + + log.Println("REQ", req.Header) + client := http.Client{} + response, err := client.Do(req) + if err != nil { + log.Printf("Error making external API request: %v", err) + } + log.Println("RESPONSE: ", response) + + key := header.ConsID + header.SecretKey + header.TimeStamp + res, err := io.ReadAll(response.Body) + if err != nil { + log.Println(err) + } + log.Println("res: ", string(res)) + + var resRujukanRaw rujukan.ResponseRaw + err = json.Unmarshal([]byte(string(res)), &resRujukanRaw) + if err != nil { + log.Printf("Error Unmarshaling: %v", err) + return nil, err + } + + responses := &rujukan.ResponseGetRujukan{} + if resRujukanRaw.MetaData.Code != "200" { + errMsg := errors.New(resRujukanRaw.MetaData.Message) + log.Printf("error : %v", errMsg) + responses.MetaData.Code = resRujukanRaw.MetaData.Code + responses.MetaData.Message = resRujukanRaw.MetaData.Message + log.Println("responses: ", responses) + return responses, errMsg + } + + dataResp, err := docs.StringDecrypt(key, resRujukanRaw.Response) + if err != nil { + log.Printf("Error Decrypt: %v", err) + return nil, err + } + + log.Println("dataresp: ", dataResp) + + var responseRujukan rujukan.ResponseRujukan + err = json.Unmarshal([]byte(dataResp), &responseRujukan) + if err != nil { + log.Printf("Error Decode: %v", err) + return nil, err + } + + responses = &rujukan.ResponseGetRujukan{ + MetaData: resRujukanRaw.MetaData, + Response: responseRujukan, + } + log.Println("res: ", responses) + + return responses, nil +} + +func ResponseGetRujukanBatch(url string, header *config.Header, headers map[string]string) (*rujukan.ResponseGetRujukanBatch, error) { + log.Println("URL", url) + + req, err := http.NewRequest("GET", url, nil) + if err != nil { + log.Printf("Error creating request: %v", err) + } + + for key, value := range headers { + req.Header.Set(key, value) + } + + log.Println("REQ", req.Header) + client := http.Client{} + response, err := client.Do(req) + if err != nil { + log.Printf("Error making external API request: %v", err) + } + log.Println("RESPONSE: ", response) + + key := header.ConsID + header.SecretKey + header.TimeStamp + res, err := io.ReadAll(response.Body) + if err != nil { + log.Println(err) + } + log.Println("res: ", string(res)) + + var resRujukanRaw rujukan.ResponseRaw + err = json.Unmarshal([]byte(string(res)), &resRujukanRaw) + if err != nil { + log.Printf("Error Unmarshaling: %v", err) + return nil, err + } + + responses := &rujukan.ResponseGetRujukanBatch{} + if resRujukanRaw.MetaData.Code != "200" { + errMsg := errors.New(resRujukanRaw.MetaData.Message) + log.Printf("error : %v", errMsg) + responses.MetaData.Code = resRujukanRaw.MetaData.Code + responses.MetaData.Message = resRujukanRaw.MetaData.Message + log.Println("responses: ", responses) + return responses, errMsg + } + + dataResp, err := docs.StringDecrypt(key, resRujukanRaw.Response) + if err != nil { + log.Printf("Error Decrypt: %v", err) + return nil, err + } + + log.Println("dataresp: ", dataResp) + + var responseRujukan rujukan.ResponseRujukanBatch + err = json.Unmarshal([]byte(dataResp), &responseRujukan) + if err != nil { + log.Printf("Error Decode: %v", err) + return nil, err + } + + responses = &rujukan.ResponseGetRujukanBatch{ + MetaData: resRujukanRaw.MetaData, + Response: responseRujukan, + } + log.Println("res: ", responses) + + return responses, nil +} diff --git a/handlers/bpjs/rujukan/rujukan.go b/handlers/bpjs/rujukan/rujukan.go new file mode 100644 index 0000000..5190e65 --- /dev/null +++ b/handlers/bpjs/rujukan/rujukan.go @@ -0,0 +1,71 @@ +package rujukan + +import ( + cfg "bridging-rssa/config" + "bridging-rssa/models/config" + "log" + "net/http" + "os" + + "github.com/gin-gonic/gin" +) + +func GetSuratRujukan(c *gin.Context) { + baseUrl := os.Getenv("BASEURL_BPJS_DEV") + endpoint := os.Getenv("VCLAIM_RS_DEV") + param := os.Getenv("GET_NOMOR_RUJUKAN") + noRujukan := c.Param("noRujukan") + url := baseUrl + endpoint + param + noRujukan + + conf := config.ConfigBpjs{} + + header := cfg.SetHeaderDev(conf) + + headers := map[string]string{ + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "application/json; charset=utf-8", + } + log.Println("Headers : ", headers) + + res, err := ResponseGetRujukan(url, header, headers) + if err != nil { + log.Printf("Error making external API request: %v", err) + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + c.JSON(http.StatusOK, res) +} + +func GetSuratRujukanBatch(c *gin.Context) { + baseUrl := os.Getenv("BASEURL_BPJS_DEV") + endpoint := os.Getenv("VCLAIM_RS_DEV") + param := os.Getenv("GET_NOMOR_RUJUKAN") + noKartu := c.Param("noKartu") + url := baseUrl + endpoint + param + noKartu + + conf := config.ConfigBpjs{} + + header := cfg.SetHeaderDev(conf) + + headers := map[string]string{ + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "application/json; charset=utf-8", + } + log.Println("Headers : ", headers) + + res, err := ResponseGetRujukan(url, header, headers) + if err != nil { + log.Printf("Error making external API request: %v", err) + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + c.JSON(http.StatusOK, res) +} diff --git a/handlers/bpjs/surat_kontrol/response.go b/handlers/bpjs/surat_kontrol/response.go index e3bec90..a0bb00c 100644 --- a/handlers/bpjs/surat_kontrol/response.go +++ b/handlers/bpjs/surat_kontrol/response.go @@ -63,7 +63,28 @@ func PostData(url string, header *config.Header, headers map[string]string, requ log.Println("ResponseRaw : ", resSuratKontrolRaw) responses := &suratkontrol.Response{} + // uuid := uuid.New().String() if resSuratKontrolRaw.MetaData.Code != "200" { + // reqInsertLog := &logapi.DataLogAPI{ + // ID: uuid, + // UserAgent: "", + // IP: "", + // Parameter: "", + // Header: "", + // Method: "", + // Url: url, + // Request: "", + // Respon: "", + // ResponCode: "", + // ResponTimeStart: "", + // ResponTimeEnd: "", + // Comment: "", + // } + // err = log_api.InsertLogAPI(*reqInsertLog) + // if err != nil { + // log.Println(err) + // return nil, err + // } errMsg := errors.New(resSuratKontrolRaw.MetaData.Message) log.Printf("error : %v", errMsg) responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code @@ -125,7 +146,7 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s response, err := client.Do(req) if err != nil { if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") { - errMsg := errors.New("context deadline exceeded") + errMsg := errors.New("Gagal Proses Selama 10 Detik, Silahkan Coba Lagi") log.Printf("error : %v", errMsg) responses.MetaData.Message = errMsg.Error() log.Println("responses: ", responses) @@ -137,7 +158,7 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s log.Println("RESPONSE: ", response) if response.StatusCode == http.StatusGatewayTimeout { // 504 - errMsg := errors.New("504 Gateway Time-out") + errMsg := errors.New("Gagal Proses Selama 10 Detik, Silahkan Coba Lagi") log.Printf("error : %v", errMsg) responses.MetaData.Code = "504" responses.MetaData.Message = errMsg.Error() diff --git a/handlers/bpjs/surat_kontrol/surat_kontrol.go b/handlers/bpjs/surat_kontrol/surat_kontrol.go index 2659ee0..ff81897 100644 --- a/handlers/bpjs/surat_kontrol/surat_kontrol.go +++ b/handlers/bpjs/surat_kontrol/surat_kontrol.go @@ -1,618 +1,654 @@ -package suratkontrol - -import ( - cfg "bridging-rssa/config" - suratkontrol "bridging-rssa/database/satu_data/surat_kontrol" - "bridging-rssa/docs/utils" - sk "bridging-rssa/models/bpjs/surat_kontrol" - "bridging-rssa/models/config" - "log" - "net/http" - "os" - "strings" - "time" - - "github.com/gin-gonic/gin" - "github.com/google/uuid" -) - -func InsertSuratKontrol(c *gin.Context) { - baseUrl := os.Getenv("BASEURL_BPJS_DEV") - endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") - param := os.Getenv("INSERT_SURAT_KONTROL") - url := baseUrl + endpoint + param - - timeNow := time.Now().Format("2006-01-02 15:04:05") - - var req sk.RequestInsertRencanaKontrol - - err := c.Bind(&req) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - log.Println("Request: ", req) - - conf := config.ConfigBpjs{} - - header := cfg.SetHeaderDev(conf) - - headers := map[string]string{ - "X-cons-id": header.ConsID, - "X-timestamp": header.TimeStamp, - "X-signature": header.XSignature, - "user_key": header.UserKey, - "Content-Type": "Application/x-www-form-urlencoded", - } - log.Println("Headers : ", headers) - - tipeSurKon := "1" - - kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) - if err != nil { - log.Println(err) - } - - uuid := uuid.New().String() - if req.NoSEP == "" { - tipeSurKon = "0" - reqInsert := &sk.DataSuratKontrol{ - ID: uuid, - DateCreated: timeNow, - TglCetakSurKon: timeNow, - TglRencanaKontrol: req.TglRencanaKontrol, - NomorSurKon: "", //TODO How to get Nomor SurKon - KunjunganPasien: kunjunganPasien.ID, - RuanganSurKon: kunjunganPasien.Ruangan, - DPJPSurKon: kunjunganPasien.DPJP, - StatusSurKon: 1, // First Insert status always set to 1 - UserCreatedSurKon: req.User, - TipeSurKon: tipeSurKon, - } - err = suratkontrol.InsertDataSuratKontrol(reqInsert) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - c.JSON(http.StatusOK, nil) - return - } - - reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{ - Request: &sk.ReqInsertRencanaKontrol{ - NoSEP: req.NoSEP, - KodeDokter: req.KodeHFIS, - PoliKontrol: req.KodePoli, - TglRencanaKontrol: req.TglRencanaKontrol, - User: req.User, - }, - } - res, err := PostData(url, header, headers, reqSuratKontrol) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, res.MetaData) - return - } - - reqInsert := &sk.DataSuratKontrol{ - ID: uuid, - DateCreated: timeNow, - TglCetakSurKon: timeNow, - TglRencanaKontrol: res.Response.TglRencanaKontrol, - NomorSurKon: res.Response.NoSuratKontrol, - KunjunganPasien: kunjunganPasien.ID, - RuanganSurKon: kunjunganPasien.Ruangan, - DPJPSurKon: kunjunganPasien.DPJP, - StatusSurKon: 1, // First Insert status always set to 1 - UserCreatedSurKon: req.User, - TipeSurKon: tipeSurKon, - } - - err = suratkontrol.InsertDataSuratKontrol(reqInsert) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - err = suratkontrol.UpdateNoSEPKunjunganPasien(req) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - response := &sk.ResponseInsertSuratKontrol{ - MetaData: res.MetaData, - Response: sk.ResponseData{ - NoSuratKontrol: res.Response.NoSuratKontrol, - TglRencanaKontrol: res.Response.TglRencanaKontrol, - NamaDokter: res.Response.NamaDokter, - NoKartu: res.Response.NoKartu, - Nama: res.Response.Nama, - Kelamin: res.Response.Kelamin, - TglLahir: res.Response.TglLahir, - NamaDiagnosa: res.Response.NamaDiagnosa, - SubSpesialis: req.Subspesialis, - }, - } - - log.Println("Response: ", response) - - c.JSON(http.StatusOK, response) -} - -func UpdateSuratKontrol(c *gin.Context) { - baseUrl := os.Getenv("BASEURL_BPJS_DEV") - endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") - param := os.Getenv("UPDATE_SURAT_KONTROL") - url := baseUrl + endpoint + param - - var req sk.RequestUpdateRencanaKontrol - - err := c.Bind(&req) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - log.Println("Request: ", req) - - timeNow := time.Now().Format("2006-01-02 15:04:05") - - kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) - if err != nil { - log.Println(err) - } - uuid := uuid.New().String() - tipeSurKon := "1" - - if req.NoSEP == "" { - tipeSurKon = "0" - reqInsert := &sk.DataSuratKontrol{ - ID: uuid, - DateCreated: timeNow, - TglCetakSurKon: timeNow, - TglRencanaKontrol: req.TglRencanaKontrol, - NomorSurKon: "", //TODO How to get Nomor SurKon - KunjunganPasien: kunjunganPasien.ID, - RuanganSurKon: kunjunganPasien.Ruangan, - DPJPSurKon: kunjunganPasien.DPJP, - StatusSurKon: 1, // First Insert status always set to 1 - UserCreatedSurKon: req.User, - TipeSurKon: tipeSurKon, - } - reqUpdate := &sk.DataSuratKontrol{ - DateUpdated: timeNow, - ID: req.IDSurKon, - StatusSurKon: 2, - } - - err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - err = suratkontrol.InsertDataSuratKontrol(reqInsert) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - c.JSON(http.StatusOK, nil) - return - } - conf := config.ConfigBpjs{} - - header := cfg.SetHeaderDev(conf) - - headers := map[string]string{ - "X-cons-id": header.ConsID, - "X-timestamp": header.TimeStamp, - "X-signature": header.XSignature, - "user_key": header.UserKey, - "Content-Type": "Application/x-www-form-urlencoded", - } - log.Println("Headers : ", headers) - - reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{ - Request: &sk.ReqUpdateRencanaKontrol{ - NoSuratKontrol: req.NoSuratKontrol, - NoSEP: req.NoSEP, - KodeDokter: req.KodeHFIS, - PoliKontrol: req.KodePoli, - TglRencanaKontrol: req.TglRencanaKontrol, - User: req.User, - }, - } - res, err := ResponseUpdateSuratKontrol(url, header, headers, reqSuratKontrol) - if err != nil { - if res.MetaData.Code == "504" { - log.Println(err) - c.JSON(http.StatusGatewayTimeout, res.MetaData) - return - } - log.Println(err) - c.JSON(http.StatusInternalServerError, res.MetaData) - return - } - reqUpdate := &sk.DataSuratKontrol{ - DateUpdated: timeNow, - ID: req.IDSurKon, - StatusSurKon: 2, - } - - err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - reqInsert := &sk.DataSuratKontrol{ - ID: uuid, - DateCreated: timeNow, - TglCetakSurKon: timeNow, - TglRencanaKontrol: res.Response.TglRencanaKontrol, - NomorSurKon: res.Response.NoSuratKontrol, - KunjunganPasien: kunjunganPasien.ID, - RuanganSurKon: kunjunganPasien.Ruangan, - DPJPSurKon: req.IDDokter, - StatusSurKon: 1, // Insert status always set to 1 - UserCreatedSurKon: req.User, - TipeSurKon: tipeSurKon, - } - - err = suratkontrol.InsertDataSuratKontrol(reqInsert) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - c.JSON(http.StatusOK, res) -} - -func DeleteSuratKontrol(c *gin.Context) { - baseUrl := os.Getenv("BASEURL_BPJS_DEV") - endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") - param := os.Getenv("DELETE_SURAT_KONTROL") - url := baseUrl + endpoint + param - - var req sk.ReqDeleteRencanaKontrol - - err := c.Bind(&req) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - log.Println("REQUEST: ", req) - - timeNow := time.Now().Format("2006-01-02 15:04:05") - - if req.NomorSurKon == "" { - reqUpdate := &sk.DataSuratKontrol{ - DateUpdated: timeNow, - ID: req.IDDataSurKon, - StatusSurKon: 0, - } - - err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - res := &sk.MetadataString{ - Code: "200", - Message: "Berhasil Hapus Data", - } - c.JSON(http.StatusOK, res) - } - - conf := config.ConfigBpjs{} - - header := cfg.SetHeaderDev(conf) - - headers := map[string]string{ - "X-cons-id": header.ConsID, - "X-timestamp": header.TimeStamp, - "X-signature": header.XSignature, - "user_key": header.UserKey, - "Content-Type": "Application/x-www-form-urlencoded", - } - log.Println("Headers : ", headers) - - request := &sk.RequestHeaderRencanaKontrol{ - Request: &sk.TSuratKontrol{ - RequestDelete: sk.RequestDeleteRencanaKontrol{ - NoSuratKontrol: req.NomorSurKon, - User: req.User, - }, - }, - } - - res, err := ResponseDeleteSuratKontrol(url, header, headers, request) - if err != nil { - log.Printf("Error making external API request: %v", err) - c.JSON(http.StatusInternalServerError, err) - return - } - - reqUpdate := &sk.DataSuratKontrol{ - DateUpdated: timeNow, - ID: req.IDDataSurKon, - StatusSurKon: 0, - } - - err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - c.JSON(http.StatusOK, res) -} - -func GetNomorSuratKontrol(c *gin.Context) { - baseUrl := os.Getenv("BASEURL_BPJS_DEV") - endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") - param := os.Getenv("GET_NOMOR_SURAT_KONTROL") - noSurat := c.Param("noSuratKontrol") - url := baseUrl + endpoint + param + noSurat - - conf := config.ConfigBpjs{} - - header := cfg.SetHeaderDev(conf) - - headers := map[string]string{ - "X-cons-id": header.ConsID, - "X-timestamp": header.TimeStamp, - "X-signature": header.XSignature, - "user_key": header.UserKey, - "Content-Type": "Application/x-www-form-urlencoded", - } - log.Println("Headers : ", headers) - - res, err := ResponseGetNomorSuratKontrol(url, header, headers) - if err != nil { - log.Printf("Error making external API request: %v", err) - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) - return - } - - c.JSON(http.StatusOK, res) -} - -func GetSuratKontrolBySEP(c *gin.Context) { - baseUrl := os.Getenv("BASEURL_BPJS_DEV") - endpoint := os.Getenv("SURAT_KONTROL_RS_DEV") - param := os.Getenv("GET_SURAT_KONTROL_SEP") - noSEP := c.Param("noSEP") - url := baseUrl + endpoint + param + noSEP - - conf := config.ConfigBpjs{} - - header := cfg.SetHeaderDev(conf) - - headers := map[string]string{ - "X-cons-id": header.ConsID, - "X-timestamp": header.TimeStamp, - "X-signature": header.XSignature, - "user_key": header.UserKey, - "Content-Type": "Application/x-www-form-urlencoded", - } - log.Println("Headers : ", headers) - - res, err := ResponseGetSuratKontrolBySEP(url, header, headers) - if err != nil { - log.Printf("Error making external API request: %v", err) - c.JSON(http.StatusInternalServerError, err) - return - } - - c.JSON(http.StatusOK, res) -} - -func GetDataSurKon(c *gin.Context) { - data, err := suratkontrol.GetDataSuratKontrol() - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - var resSurKon []*sk.ResponseGetDataSuratKontrol - for _, v := range data { - gelarDepan := utils.ReplaceGelar(v.GelarDepan) - gelarBelakang := utils.ReplaceGelar(v.GelarBelakang) - namaLengkap := gelarDepan + " " + v.NamaLengkapDokter + " " + gelarBelakang - namaLengkap = strings.TrimPrefix(namaLengkap, " ") - namaLengkap = strings.TrimSuffix(namaLengkap, " ") - dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TglCetakSurKon) - dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") - dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol) - dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") - resSurKon = append(resSurKon, &sk.ResponseGetDataSuratKontrol{ - IDDataSurKon: v.IDDataSurKon, - IDXDaftar: v.IDXDaftar, - TglCetakSurKon: dateCetakSurkonString, - TglRencanaKontrol: dateRencanaSurkonString, - NomorSurKon: v.NomorSurKon, - PoliAsal: v.PoliAsal, - PoliTujuan: v.PoliTujuan, - NomorSEP: v.NomorSEP, - NamaPasien: v.NamaPasien, - NamaDokter: namaLengkap, - NomorKartu: "", - Subspesialis: v.Subspesialis, - KodePoli: v.KodePoli, - KodeDokter: v.KodeDokter, - }) - } - c.JSON(http.StatusOK, resSurKon) -} - -func GetDataSurKonByID(c *gin.Context) { - id := c.Param("idxdaftar") - data, err := suratkontrol.GetDataSuratKontrolByID(id) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - gelarDepan := utils.ReplaceGelar(data.GelarDepan) - gelarBelakang := utils.ReplaceGelar(data.GelarBelakang) - namaLengkap := gelarDepan + " " + data.NamaLengkapDokter + " " + gelarBelakang - namaLengkap = strings.TrimPrefix(namaLengkap, " ") - namaLengkap = strings.TrimSuffix(namaLengkap, " ") - dateCetakSurkon, _ := time.Parse(time.RFC3339, data.TglCetakSurKon) - dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") - dateRencanaSurkon, _ := time.Parse(time.RFC3339, data.TglRencanaKontrol) - dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") - resSurKon := &sk.ResponseGetDataSuratKontrol{ - IDDataSurKon: data.IDDataSurKon, - IDXDaftar: data.IDXDaftar, - TglCetakSurKon: dateCetakSurkonString, - TglRencanaKontrol: dateRencanaSurkonString, - NomorSurKon: data.NomorSurKon, - PoliAsal: data.PoliAsal, - PoliTujuan: data.PoliTujuan, - NomorSEP: data.NomorSEP, - NamaPasien: data.NamaPasien, - NamaDokter: namaLengkap, - NomorKartu: "", - Subspesialis: data.Subspesialis, - KodePoli: data.KodePoli, - KodeDokter: data.KodeDokter, - IDPoli: data.IDPoli, - IDDokter: data.IDDokter, - } - c.JSON(http.StatusOK, resSurKon) -} - -func PrintSurKon(c *gin.Context) { - id := c.Param("idxdaftar") - data, err := suratkontrol.GetDataSuratKontrolByID(id) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - gelarDepan := utils.ReplaceGelar(data.GelarDepan) - gelarBelakang := utils.ReplaceGelar(data.GelarBelakang) - namaLengkap := gelarDepan + " " + data.NamaLengkapDokter + " " + gelarBelakang - namaLengkap = strings.TrimPrefix(namaLengkap, " ") - namaLengkap = strings.TrimSuffix(namaLengkap, " ") - dateCetakSurkon, _ := time.Parse(time.RFC3339, data.TglCetakSurKon) - dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") - dateRencanaSurkon, _ := time.Parse(time.RFC3339, data.TglRencanaKontrol) - dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") - resSurKon := &sk.ResponseGetDataSuratKontrol{ - IDDataSurKon: data.IDDataSurKon, - IDXDaftar: data.IDXDaftar, - TglCetakSurKon: dateCetakSurkonString, - TglRencanaKontrol: dateRencanaSurkonString, - NomorSurKon: data.NomorSurKon, - PoliAsal: data.PoliAsal, - PoliTujuan: data.PoliTujuan, - NomorSEP: data.NomorSEP, - NamaPasien: data.NamaPasien, - NamaDokter: namaLengkap, - NomorKartu: "", - Subspesialis: data.Subspesialis, - } - log.Println("Data surkon", resSurKon) - c.JSON(http.StatusOK, resSurKon) -} - -func CariPasienTPP(c *gin.Context) { - var req sk.RequestCariPasien - - err := c.ShouldBindJSON(&req) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - - log.Println("request :", req) - - query := `` - var args []interface{} - var data []*sk.GetDataSuratKontrol - if req.NoRM != "" { - query += `and dkp2."NOMR" = ?` - args = append(args, req.NoRM, req.TanggalAwal, req.TanggalAkhir) - data, err = suratkontrol.SearchDataSurKon(req, query, args) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - } else if req.NoSEP != "" { - query += `and dkp2."Nomor_sep" = ?` - args = append(args, req.NoSEP, req.TanggalAwal, req.TanggalAkhir) - data, err = suratkontrol.SearchDataSurKon(req, query, args) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - } else if req.PoliKlinik != "" { - query += `and ds."id" = ?` - args = append(args, req.PoliKlinik, req.TanggalAwal, req.TanggalAkhir) - data, err = suratkontrol.SearchDataSurKon(req, query, args) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - } else { - args = append(args, req.TanggalAwal, req.TanggalAkhir) - data, err = suratkontrol.SearchDataSurKon(req, query, args) - if err != nil { - log.Println(err) - c.JSON(http.StatusInternalServerError, err) - return - } - } - - var resSurKon []*sk.ResponseGetDataSuratKontrol - for _, v := range data { - gelarDepan := utils.ReplaceGelar(v.GelarDepan) - gelarBelakang := utils.ReplaceGelar(v.GelarBelakang) - namaLengkap := gelarDepan + " " + v.NamaLengkapDokter + " " + gelarBelakang - namaLengkap = strings.TrimPrefix(namaLengkap, " ") - namaLengkap = strings.TrimSuffix(namaLengkap, " ") - dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TglCetakSurKon) - dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") - dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol) - dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") - resSurKon = append(resSurKon, &sk.ResponseGetDataSuratKontrol{ - IDDataSurKon: v.IDDataSurKon, - IDXDaftar: v.IDXDaftar, - TglCetakSurKon: dateCetakSurkonString, - TglRencanaKontrol: dateRencanaSurkonString, - NomorSurKon: v.NomorSurKon, - PoliAsal: v.PoliAsal, - PoliTujuan: v.PoliTujuan, - NomorSEP: v.NomorSEP, - NamaPasien: v.NamaPasien, - NamaDokter: namaLengkap, - NomorKartu: "", - Subspesialis: v.Subspesialis, - KodePoli: v.KodePoli, - KodeDokter: v.KodeDokter, - }) - } - c.JSON(http.StatusOK, resSurKon) -} +package suratkontrol + +import ( + cfg "bridging-rssa/config" + suratkontrol "bridging-rssa/database/satu_data/surat_kontrol" + "bridging-rssa/docs/utils" + sk "bridging-rssa/models/bpjs/surat_kontrol" + "bridging-rssa/models/config" + "log" + "net/http" + "os" + "strings" + "time" + + "github.com/gin-gonic/gin" + "github.com/google/uuid" +) + +func InsertSuratKontrol(c *gin.Context) { + baseUrl := os.Getenv("BASEURL_BPJS_DEV") + endpoint := os.Getenv("VCLAIM_RS_DEV") + param := os.Getenv("INSERT_SURAT_KONTROL") + url := baseUrl + endpoint + param + + timeNow := time.Now().Format("2006-01-02 15:04:05") + + var req sk.RequestInsertRencanaKontrol + + err := c.Bind(&req) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + log.Println("Request: ", req) + + conf := config.ConfigBpjs{} + + header := cfg.SetHeaderDev(conf) + + headers := map[string]string{ + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "Application/x-www-form-urlencoded", + } + log.Println("Headers : ", headers) + + tipeSurKon := "1" + + kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, &sk.MetadataString{ + Code: "", + Message: err.Error(), + }) + return + } + + uuid := uuid.New().String() + if req.NoSEP == "" { + tipeSurKon = "0" + reqInsert := &sk.DataSuratKontrol{ + ID: uuid, + DateCreated: timeNow, + TglCetakSurKon: timeNow, + TglRencanaKontrol: req.TglRencanaKontrol, + NomorSurKon: "", //TODO How to get Nomor SurKon + KunjunganPasien: kunjunganPasien.ID, + RuanganSurKon: kunjunganPasien.Ruangan, + DPJPSurKon: req.IDDokter, + StatusSurKon: 1, // First Insert status always set to 1 + UserCreatedSurKon: req.User, + TipeSurKon: tipeSurKon, + } + err = suratkontrol.InsertDataSuratKontrol(reqInsert) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + c.JSON(http.StatusOK, nil) + return + } + + reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{ + Request: &sk.ReqInsertRencanaKontrol{ + NoSEP: req.NoSEP, + KodeDokter: req.KodeHFIS, + PoliKontrol: req.KodePoli, + TglRencanaKontrol: req.TglRencanaKontrol, + User: req.User, + }, + } + res, err := PostData(url, header, headers, reqSuratKontrol) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, res.MetaData) + return + } + + reqInsert := &sk.DataSuratKontrol{ + ID: uuid, + DateCreated: timeNow, + TglCetakSurKon: timeNow, + TglRencanaKontrol: res.Response.TglRencanaKontrol, + NomorSurKon: res.Response.NoSuratKontrol, + KunjunganPasien: kunjunganPasien.ID, + RuanganSurKon: kunjunganPasien.Ruangan, + DPJPSurKon: req.IDDokter, + StatusSurKon: 1, // First Insert status always set to 1 + UserCreatedSurKon: req.User, + TipeSurKon: tipeSurKon, + } + + err = suratkontrol.InsertDataSuratKontrol(reqInsert) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + if req.KodeDiagnosa == "" || req.NamaDiagnosa == "" { + diagnosa := strings.Split(res.Response.NamaDiagnosa, " - ") + req.KodeDiagnosa = diagnosa[0] + req.NamaDiagnosa = diagnosa[1] + } + + err = suratkontrol.UpdateKunjunganPasien(req) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + response := &sk.ResponseInsertSuratKontrol{ + MetaData: res.MetaData, + Response: sk.ResponseData{ + NoSuratKontrol: res.Response.NoSuratKontrol, + TglRencanaKontrol: res.Response.TglRencanaKontrol, + NamaDokter: res.Response.NamaDokter, + NoKartu: res.Response.NoKartu, + Nama: res.Response.Nama, + Kelamin: res.Response.Kelamin, + TglLahir: res.Response.TglLahir, + NamaDiagnosa: res.Response.NamaDiagnosa, + SubSpesialis: req.Subspesialis, + }, + } + + log.Println("Response: ", response) + + c.JSON(http.StatusOK, response) +} + +func UpdateSuratKontrol(c *gin.Context) { + baseUrl := os.Getenv("BASEURL_BPJS_DEV") + endpoint := os.Getenv("VCLAIM_RS_DEV") + param := os.Getenv("UPDATE_SURAT_KONTROL") + url := baseUrl + endpoint + param + + var req sk.RequestUpdateRencanaKontrol + + err := c.Bind(&req) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + log.Println("Request: ", req) + + timeNow := time.Now().Format("2006-01-02 15:04:05") + + kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, &sk.MetadataString{ + Code: "", + Message: err.Error(), + }) + return + } + uuid := uuid.New().String() + tipeSurKon := "1" + + if req.NoSEP == "" { + tipeSurKon = "0" + reqInsert := &sk.DataSuratKontrol{ + ID: uuid, + DateCreated: timeNow, + TglCetakSurKon: timeNow, + TglRencanaKontrol: req.TglRencanaKontrol, + NomorSurKon: "", //TODO How to get Nomor SurKon + KunjunganPasien: kunjunganPasien.ID, + RuanganSurKon: kunjunganPasien.Ruangan, + DPJPSurKon: req.IDDokter, + StatusSurKon: 1, // First Insert status always set to 1 + TipeSurKon: tipeSurKon, + UserUpdatedSurKon: req.User, + } + reqUpdate := &sk.DataSuratKontrol{ + DateUpdated: timeNow, + ID: req.IDSurKon, + StatusSurKon: 2, + } + + err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + err = suratkontrol.InsertDataSuratKontrol(reqInsert) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + c.JSON(http.StatusOK, nil) + return + } + conf := config.ConfigBpjs{} + + header := cfg.SetHeaderDev(conf) + + headers := map[string]string{ + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "Application/x-www-form-urlencoded", + } + log.Println("Headers : ", headers) + + reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{ + Request: &sk.ReqUpdateRencanaKontrol{ + NoSuratKontrol: req.NoSuratKontrol, + NoSEP: req.NoSEP, + KodeDokter: req.KodeHFIS, + PoliKontrol: req.KodePoli, + TglRencanaKontrol: req.TglRencanaKontrol, + User: req.User, + }, + } + res, err := ResponseUpdateSuratKontrol(url, header, headers, reqSuratKontrol) + if err != nil { + if res.MetaData.Code == "504" { + log.Println(err) + c.JSON(http.StatusGatewayTimeout, res.MetaData) + return + } + log.Println(err) + c.JSON(http.StatusInternalServerError, res.MetaData) + return + } + reqUpdate := &sk.DataSuratKontrol{ + DateUpdated: timeNow, + ID: req.IDSurKon, + StatusSurKon: 2, + } + + err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + reqInsert := &sk.DataSuratKontrol{ + ID: uuid, + DateCreated: timeNow, + TglCetakSurKon: timeNow, + TglRencanaKontrol: res.Response.TglRencanaKontrol, + NomorSurKon: res.Response.NoSuratKontrol, + KunjunganPasien: kunjunganPasien.ID, + RuanganSurKon: kunjunganPasien.Ruangan, + DPJPSurKon: req.IDDokter, + StatusSurKon: 1, // Insert status always set to 1 + TipeSurKon: tipeSurKon, + UserUpdatedSurKon: req.User, + } + + if reqInsert.DPJPSurKon == "" { + reqInsert.DPJPSurKon = kunjunganPasien.DPJP + } + + err = suratkontrol.InsertDataSuratKontrol(reqInsert) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + c.JSON(http.StatusOK, res) +} + +func DeleteSuratKontrol(c *gin.Context) { + baseUrl := os.Getenv("BASEURL_BPJS_DEV") + endpoint := os.Getenv("VCLAIM_RS_DEV") + param := os.Getenv("DELETE_SURAT_KONTROL") + url := baseUrl + endpoint + param + + var req sk.ReqDeleteRencanaKontrol + + err := c.Bind(&req) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + log.Println("REQUEST: ", req) + + timeNow := time.Now().Format("2006-01-02 15:04:05") + + if req.NomorSurKon == "" { + reqUpdate := &sk.DataSuratKontrol{ + DateUpdated: timeNow, + ID: req.IDDataSurKon, + StatusSurKon: 0, + UserUpdatedSurKon: req.User, + } + + err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + res := &sk.MetadataString{ + Code: "200", + Message: "Berhasil Hapus Data", + } + c.JSON(http.StatusOK, res) + } + + conf := config.ConfigBpjs{} + + header := cfg.SetHeaderDev(conf) + + headers := map[string]string{ + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "Application/x-www-form-urlencoded", + } + log.Println("Headers : ", headers) + + request := &sk.RequestHeaderRencanaKontrol{ + Request: &sk.TSuratKontrol{ + RequestDelete: sk.RequestDeleteRencanaKontrol{ + NoSuratKontrol: req.NomorSurKon, + User: req.User, + }, + }, + } + + res, err := ResponseDeleteSuratKontrol(url, header, headers, request) + if err != nil { + log.Printf("Error making external API request: %v", err) + c.JSON(http.StatusInternalServerError, err) + return + } + + reqUpdate := &sk.DataSuratKontrol{ + DateUpdated: timeNow, + ID: req.IDDataSurKon, + StatusSurKon: 0, + UserUpdatedSurKon: req.User, + } + + err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + c.JSON(http.StatusOK, res) +} + +func GetNomorSuratKontrol(c *gin.Context) { + baseUrl := os.Getenv("BASEURL_BPJS_DEV") + endpoint := os.Getenv("VCLAIM_RS_DEV") + param := os.Getenv("GET_NOMOR_SURAT_KONTROL") + noSurat := c.Param("noSuratKontrol") + url := baseUrl + endpoint + param + noSurat + + conf := config.ConfigBpjs{} + + header := cfg.SetHeaderDev(conf) + + headers := map[string]string{ + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "Application/x-www-form-urlencoded", + } + log.Println("Headers : ", headers) + + res, err := ResponseGetNomorSuratKontrol(url, header, headers) + if err != nil { + log.Printf("Error making external API request: %v", err) + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + c.JSON(http.StatusOK, res) +} + +func GetSuratKontrolBySEP(c *gin.Context) { + baseUrl := os.Getenv("BASEURL_BPJS_DEV") + endpoint := os.Getenv("VCLAIM_RS_DEV") + param := os.Getenv("GET_SURAT_KONTROL_SEP") + noSEP := c.Param("noSEP") + url := baseUrl + endpoint + param + noSEP + + conf := config.ConfigBpjs{} + + header := cfg.SetHeaderDev(conf) + + headers := map[string]string{ + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "Application/x-www-form-urlencoded", + } + log.Println("Headers : ", headers) + + res, err := ResponseGetSuratKontrolBySEP(url, header, headers) + if err != nil { + log.Printf("Error making external API request: %v", err) + c.JSON(http.StatusInternalServerError, err) + return + } + + c.JSON(http.StatusOK, res) +} + +func GetDataSurKon(c *gin.Context) { + offset := c.Param("offset") + limit := c.Param("limit") + data, err := suratkontrol.GetDataSuratKontrol(offset, limit) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + var resSurKon []*sk.ResponseGetDataSuratKontrol + for _, v := range data { + gelarDepan := utils.ReplaceGelar(v.GelarDepan) + gelarBelakang := utils.ReplaceGelar(v.GelarBelakang) + namaLengkap := gelarDepan + " " + v.NamaLengkapDokter + " " + gelarBelakang + namaLengkap = strings.TrimPrefix(namaLengkap, " ") + namaLengkap = strings.TrimSuffix(namaLengkap, " ") + dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TglCetakSurKon) + dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") + dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol) + dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") + resSurKon = append(resSurKon, &sk.ResponseGetDataSuratKontrol{ + IDDataSurKon: v.IDDataSurKon, + IDXDaftar: v.IDXDaftar, + TglCetakSurKon: dateCetakSurkonString, + TglRencanaKontrol: dateRencanaSurkonString, + NomorSurKon: v.NomorSurKon, + PoliAsal: v.PoliAsal, + PoliTujuan: v.PoliTujuan, + NomorSEP: v.NomorSEP, + NamaPasien: v.NamaPasien, + NamaDokter: namaLengkap, + NomorKartu: "", + Subspesialis: v.Subspesialis, + KodePoli: v.KodePoli, + KodeDokter: v.KodeDokter, + NoRM: v.NoRM, + KodeDiagnosa: v.KodeDiagnosa, + NamaDiagnosa: v.NamaDiagnosa, + TipeSurKon: v.TipeSurKon, + }) + } + c.JSON(http.StatusOK, resSurKon) +} + +func GetDataSurKonByID(c *gin.Context) { + id := c.Param("idxdaftar") + data, err := suratkontrol.GetDataSuratKontrolByID(id) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + gelarDepan := utils.ReplaceGelar(data.GelarDepan) + gelarBelakang := utils.ReplaceGelar(data.GelarBelakang) + namaLengkap := gelarDepan + " " + data.NamaLengkapDokter + " " + gelarBelakang + namaLengkap = strings.TrimPrefix(namaLengkap, " ") + namaLengkap = strings.TrimSuffix(namaLengkap, " ") + dateCetakSurkon, _ := time.Parse(time.RFC3339, data.TglCetakSurKon) + dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") + dateRencanaSurkon, _ := time.Parse(time.RFC3339, data.TglRencanaKontrol) + dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") + resSurKon := &sk.ResponseGetDataSuratKontrol{ + IDDataSurKon: data.IDDataSurKon, + IDXDaftar: data.IDXDaftar, + TglCetakSurKon: dateCetakSurkonString, + TglRencanaKontrol: dateRencanaSurkonString, + NomorSurKon: data.NomorSurKon, + PoliAsal: data.PoliAsal, + PoliTujuan: data.PoliTujuan, + NomorSEP: data.NomorSEP, + NamaPasien: data.NamaPasien, + NamaDokter: namaLengkap, + NomorKartu: "", + Subspesialis: data.Subspesialis, + KodePoli: data.KodePoli, + KodeDokter: data.KodeDokter, + IDPoli: data.IDPoli, + IDDokter: data.IDDokter, + NoRM: data.NoRM, + KodeDiagnosa: data.KodeDiagnosa, + NamaDiagnosa: data.NamaDiagnosa, + TipeSurKon: data.TipeSurKon, + } + c.JSON(http.StatusOK, resSurKon) +} + +func PrintSurKon(c *gin.Context) { + id := c.Param("idxdaftar") + data, err := suratkontrol.GetDataSuratKontrolByID(id) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + gelarDepan := utils.ReplaceGelar(data.GelarDepan) + gelarBelakang := utils.ReplaceGelar(data.GelarBelakang) + namaLengkap := gelarDepan + " " + data.NamaLengkapDokter + " " + gelarBelakang + namaLengkap = strings.TrimPrefix(namaLengkap, " ") + namaLengkap = strings.TrimSuffix(namaLengkap, " ") + dateCetakSurkon, _ := time.Parse(time.RFC3339, data.TglCetakSurKon) + dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") + dateRencanaSurkon, _ := time.Parse(time.RFC3339, data.TglRencanaKontrol) + dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") + resSurKon := &sk.ResponseGetDataSuratKontrol{ + IDDataSurKon: data.IDDataSurKon, + IDXDaftar: data.IDXDaftar, + TglCetakSurKon: dateCetakSurkonString, + TglRencanaKontrol: dateRencanaSurkonString, + NomorSurKon: data.NomorSurKon, + PoliAsal: data.PoliAsal, + PoliTujuan: data.PoliTujuan, + NomorSEP: data.NomorSEP, + NamaPasien: data.NamaPasien, + NamaDokter: namaLengkap, + NomorKartu: "", + Subspesialis: data.Subspesialis, + } + log.Println("Data surkon", resSurKon) + c.JSON(http.StatusOK, resSurKon) +} + +func CariPasienTPP(c *gin.Context) { + var req sk.RequestCariPasien + + err := c.ShouldBindJSON(&req) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + log.Println("request :", req) + + query := `` + var args []interface{} + var data []*sk.GetDataSuratKontrol + if req.NoRM != "" { + query += `and dkp2."NOMR" = ?` + args = append(args, req.NoRM, req.TanggalAwal, req.TanggalAkhir, req.Offset, req.Limit) + data, err = suratkontrol.SearchDataSurKon(req, query, args) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + } else if req.NoSEP != "" { + query += `and dkp2."Nomor_sep" = ?` + args = append(args, req.NoSEP, req.TanggalAwal, req.TanggalAkhir, req.Offset, req.Limit) + data, err = suratkontrol.SearchDataSurKon(req, query, args) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + } else if req.PoliKlinik != "" { + query += `and ds."id" = ?` + args = append(args, req.PoliKlinik, req.TanggalAwal, req.TanggalAkhir, req.Offset, req.Limit) + data, err = suratkontrol.SearchDataSurKon(req, query, args) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + } else { + args = append(args, req.TanggalAwal, req.TanggalAkhir, req.Offset, req.Limit) + data, err = suratkontrol.SearchDataSurKon(req, query, args) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + } + + var resSurKon []*sk.ResponseGetDataSuratKontrol + for _, v := range data { + gelarDepan := utils.ReplaceGelar(v.GelarDepan) + gelarBelakang := utils.ReplaceGelar(v.GelarBelakang) + namaLengkap := gelarDepan + " " + v.NamaLengkapDokter + " " + gelarBelakang + namaLengkap = strings.TrimPrefix(namaLengkap, " ") + namaLengkap = strings.TrimSuffix(namaLengkap, " ") + dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TglCetakSurKon) + dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02") + dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol) + dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02") + resSurKon = append(resSurKon, &sk.ResponseGetDataSuratKontrol{ + IDDataSurKon: v.IDDataSurKon, + IDXDaftar: v.IDXDaftar, + TglCetakSurKon: dateCetakSurkonString, + TglRencanaKontrol: dateRencanaSurkonString, + NomorSurKon: v.NomorSurKon, + PoliAsal: v.PoliAsal, + PoliTujuan: v.PoliTujuan, + NomorSEP: v.NomorSEP, + NamaPasien: v.NamaPasien, + NamaDokter: namaLengkap, + NomorKartu: "", + Subspesialis: v.Subspesialis, + KodePoli: v.KodePoli, + KodeDokter: v.KodeDokter, + NoRM: v.NoRM, + KodeDiagnosa: v.KodeDiagnosa, + NamaDiagnosa: v.NamaDiagnosa, + TipeSurKon: v.TipeSurKon, + }) + } + c.JSON(http.StatusOK, resSurKon) +} diff --git a/main.go b/main.go index b6aec77..2460d28 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( "bridging-rssa/config" "bridging-rssa/handlers/bpjs" "bridging-rssa/handlers/bpjs/jadwal_dokter" + "bridging-rssa/handlers/bpjs/rujukan" suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol" "log" @@ -51,7 +52,7 @@ func main() { suratKontrol := v1.Group("/suratkontrol") { - suratKontrol.GET("/", suratkontrol.GetDataSurKon) + suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon) suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID) suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol) suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP) @@ -62,6 +63,12 @@ func main() { suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol) } + suratRujukan := v1.Group("/rujukan") + { + suratRujukan.GET("/noRujukan/:noRujukan", rujukan.GetSuratRujukan) + suratRujukan.GET("/list/peserta/:noKartu", rujukan.GetSuratRujukanBatch) + } + r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) diff --git a/models/bpjs/jadwal_dokter/jadwal_dokter.go b/models/bpjs/jadwal_dokter/jadwal_dokter.go index 2e70c67..cbbe6b0 100644 --- a/models/bpjs/jadwal_dokter/jadwal_dokter.go +++ b/models/bpjs/jadwal_dokter/jadwal_dokter.go @@ -61,6 +61,7 @@ type ResponseListHari struct { NamaLengkap string `json:"nama_lengkap"` HFISCode string `json:"HFIS_code"` KodeDPJP string `json:"DPJP_code"` + IDDokter string `json:"id_dokter"` JadwalDokter []ListJadwalDokter `json:"Jadwal_dokter"` } diff --git a/models/bpjs/rujukan/rujukan.go b/models/bpjs/rujukan/rujukan.go new file mode 100644 index 0000000..3d2c633 --- /dev/null +++ b/models/bpjs/rujukan/rujukan.go @@ -0,0 +1,131 @@ +package rujukan + +type ResponseGetRujukan struct { + Response ResponseRujukan `json:"response"` + MetaData Metadata `json:"metaData"` +} + +type ResponseGetRujukanBatch struct { + Response ResponseRujukanBatch `json:"response"` + MetaData Metadata `json:"metaData"` +} + +type ResponseRaw struct { + Response string `json:"response"` + MetaData Metadata `json:"metaData"` +} +type Metadata struct { + Code string `json:"code"` + Message string `json:"message"` +} + +type ResponseRujukan struct { + Rujukan Rujukan `json:"rujukan"` +} + +type ResponseRujukanBatch struct { + Rujukan []Rujukan `json:"rujukan"` +} + +type Response struct { + MetaData Metadata `json:"metaData"` + Response ResponseRujukan `json:"response"` +} + +type ResponseBatch struct { + MetaData Metadata `json:"metaData"` + Response ResponseRujukanBatch `json:"response"` +} + +type Rujukan struct { + Diagnosa Diagnosa `json:"diagnosa"` + Keluhan string `json:"keluhan"` + NoKunjungan string `json:"noKunjungan"` + Pelayanan Pelayanan `json:"pelayanan"` + Peserta Peserta `json:"peserta"` + PoliRujukan PoliRujukan `json:"poliRujukan"` + ProvPerujuk ProvPerujuk `json:"provPerujuk"` + TglKunjungan string `json:"tglKunjungan"` +} + +type Diagnosa struct { + Kode string `json:"kode"` + Nama string `json:"nama"` +} + +type Pelayanan struct { + Kode string `json:"kode"` + Nama string `json:"nama"` +} + +type Peserta struct { + Cob COB `json:"cob"` + HakKelas HakKelas `json:"hakKelas"` + Informasi Informasi `json:"informasi"` + Mr MR `json:"mr"` + Nama string `json:"nama"` + NIK *string `json:"nik"` + NoKartu string `json:"noKartu"` + Pisa string `json:"pisa"` + ProvUmum ProvUmum `json:"provUmum"` + Sex string `json:"sex"` + StatusPeserta StatusPeserta `json:"statusPeserta"` + TglCetakKartu string `json:"tglCetakKartu"` + TglLahir string `json:"tglLahir"` + TglTAT string `json:"tglTAT"` + TglTMT string `json:"tglTMT"` + Umur Umur `json:"umur"` +} + +type COB struct { + NamaAsuransi *string `json:"nmAsuransi"` + NoAsuransi *string `json:"noAsuransi"` + TglTAT *string `json:"tglTAT"` + TglTMT *string `json:"tglTMT"` +} + +type HakKelas struct { + Keterangan string `json:"keterangan"` + Kode string `json:"kode"` +} + +type Informasi struct { + Dinsos *string `json:"dinsos"` + NoSKTM *string `json:"noSKTM"` + ProlanisPRB *string `json:"prolanisPRB"` +} + +type JenisPeserta struct { + Keterangan string `json:"keterangan"` + Kode string `json:"kode"` +} + +type MR struct { + NoMR string `json:"noMR"` + NoTelepon *string `json:"noTelepon"` +} + +type ProvUmum struct { + KodeProvider string `json:"kdProvider"` + NamaProvider string `json:"nmProvider"` +} + +type StatusPeserta struct { + Keterangan string `json:"keterangan"` + Kode string `json:"kode"` +} + +type Umur struct { + UmurSaatPelayanan string `json:"umurSaatPelayanan"` + UmurSekarang string `json:"umurSekarang"` +} + +type PoliRujukan struct { + Kode string `json:"kode"` + Nama string `json:"nama"` +} + +type ProvPerujuk struct { + Kode string `json:"kode"` + Nama string `json:"nama"` +} diff --git a/models/bpjs/surat_kontrol/kunjugan_pasien.go b/models/bpjs/surat_kontrol/kunjugan_pasien.go index 0d2437e..3410c6f 100644 --- a/models/bpjs/surat_kontrol/kunjugan_pasien.go +++ b/models/bpjs/surat_kontrol/kunjugan_pasien.go @@ -1,20 +1,24 @@ package suratkontrol type KunjunganPasien struct { - ID string `gorm:"column:id" json:"id"` - IDXDaftar int `gorm:"column:idxdaftar" json:"idxdaftar"` - NomorSEP string `gorm:"column:nomorsep" json:"nomorsep"` - NamaKlinik string `gorm:"column:namaklinik" json:"namaklinik"` - IDKlinikSimgos string `gorm:"column:idkliniksimgos" json:"idkliniksimgos"` - KodeHfisKlinik string `gorm:"column:kodehfisklinik" json:"kodehfisklinik"` - NamaDokter string `gorm:"column:namadokter" json:"namadokter"` - KodeDokter string `gorm:"column:kodedokter" json:"kodedokter"` - KodeHfisDokter string `gorm:"column:kodehfisdokter" json:"kodehfisdokter"` - KodeSubspesialis string `gorm:"column:kodesubspesialis" json:"kodesubspesialis"` - Subspesialis string `gorm:"column:subspesialis" json:"subspesialis"` - Spesialis string `gorm:"column:spesialis" json:"spesialis"` - GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` - GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` - Ruangan int `gorm:"column:ruangan" json:"ruangan"` - DPJP string `gorm:"column:id_dokter" json:"id_dokter"` + ID string `gorm:"column:id" json:"id"` + IDXDaftar int `gorm:"column:idxdaftar" json:"idxdaftar"` + NomorSEP string `gorm:"column:nomorsep" json:"nomorsep"` + NamaKlinik string `gorm:"column:namaklinik" json:"namaklinik"` + IDKlinikSimgos string `gorm:"column:idkliniksimgos" json:"idkliniksimgos"` + KodeHfisKlinik string `gorm:"column:kodehfisklinik" json:"kodehfisklinik"` + NamaDokter string `gorm:"column:namadokter" json:"namadokter"` + KodeDokter string `gorm:"column:kodedokter" json:"kodedokter"` + KodeHfisDokter string `gorm:"column:kodehfisdokter" json:"kodehfisdokter"` + KodeSubspesialis string `gorm:"column:kodesubspesialis" json:"kodesubspesialis"` + Subspesialis string `gorm:"column:subspesialis" json:"subspesialis"` + Spesialis string `gorm:"column:spesialis" json:"spesialis"` + GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` + GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` + Ruangan int `gorm:"column:ruangan" json:"ruangan"` + DPJP string `gorm:"column:id_dokter" json:"id_dokter"` + DiagnosisAkhirKeluar string `gorm:"column:Diagnosis_akhir_keluar" json:"Diagnosis_akhir_keluar"` + DisplayDiagnosisAkhirKeluar string `gorm:"column:Display_diagnosis_akhir_keluar" json:"Display_diagnosis_akhir_keluar"` + DiagnosisPrimerUtama string `gorm:"column:Diagnosis_primer_utama" json:"Diagnosis_primer_utama"` + DisplayDiagnosisPrimerUtama string `gorm:"column:Display_diagnosis_primer_utama" json:"Display_diagnosis_primer_utama"` } diff --git a/models/bpjs/surat_kontrol/surat_kontrol.go b/models/bpjs/surat_kontrol/surat_kontrol.go index b681ec9..4dd9681 100644 --- a/models/bpjs/surat_kontrol/surat_kontrol.go +++ b/models/bpjs/surat_kontrol/surat_kontrol.go @@ -1,267 +1,283 @@ -package suratkontrol - -type RequestHeaderRencanaKontrol struct { - Request interface{} `json:"request"` -} - -type ReqInsertRencanaKontrol struct { - NoSEP string `json:"noSEP"` - KodeDokter string `json:"kodeDokter"` - PoliKontrol string `json:"poliKontrol"` - TglRencanaKontrol string `json:"tglRencanaKontrol"` - User string `json:"user"` -} - -type ReqUpdateRencanaKontrol struct { - NoSuratKontrol string `json:"noSuratKontrol"` - NoSEP string `json:"noSEP"` - KodeDokter string `json:"kodeDokter"` - PoliKontrol string `json:"poliKontrol"` - TglRencanaKontrol string `json:"tglRencanaKontrol"` - User string `json:"user"` -} - -type RequestInsertRencanaKontrol struct { - IDXDaftar string `json:"idxdaftar"` - NoSEP string `json:"noSEP"` - KodeHFIS string `json:"kodeHFIS"` - KodePoli string `json:"kodePoli"` - Subspesialis string `json:"subspesialis"` - TglRencanaKontrol string `json:"tglRencanaKontrol"` - User string `json:"user"` -} - -type ReqDeleteRencanaKontrol struct { - IDDataSurKon string `json:"id_surat_kontrol"` - NomorSurKon string `json:"Nomor_surat_kontrol"` - User string `json:"user"` -} - -type RequestUpdateRencanaKontrol struct { - IDXDaftar string `json:"idxdaftar"` - IDSurKon string `json:"idSurKon"` - IDDokter string `json:"id_dokter"` - NoSuratKontrol string `json:"noSuratKontrol"` - NoSEP string `json:"noSEP"` - KodeHFIS string `json:"kodeHFIS"` - KodePoli string `json:"kodePoli"` - TglRencanaKontrol string `json:"tglRencanaKontrol"` - User string `json:"user"` -} - -type TSuratKontrol struct { - RequestDelete RequestDeleteRencanaKontrol `json:"t_suratkontrol"` -} - -type RequestDeleteRencanaKontrol struct { - NoSuratKontrol string `json:"noSuratKontrol"` - User string `json:"user"` -} - -type ResponseRaw struct { - Response string `json:"response"` - MetaData MetadataString `json:"metadata"` -} - -type ResponseRawUpper struct { - Response string `json:"response"` - MetaData MetadataString `json:"metaData"` -} - -type Metadata struct { - Code int `json:"code"` - Message string `json:"message"` -} - -type ResponseInsertRaw struct { - Response string `json:"response"` - MetaData MetadataString `json:"metaData"` -} - -type MetadataString struct { - Code string `json:"code"` - Message string `json:"message"` -} - -type ResponseGetSuratKontrol struct { - MetaData MetadataString `json:"metaData"` - Response ResponseNomorSuratKontrol `json:"response"` -} - -type ResponseGetSuratKontrolBySEP struct { - MetaData MetadataString `json:"metaData"` - Response ResponseSuratKontrolBySEP `json:"response"` -} - -type Response struct { - MetaData MetadataString `json:"metadata"` - Response ResponseSuratKontrol `json:"response"` -} - -type ResponseUpper struct { - MetaData MetadataString `json:"metaData"` - Response ResponseSuratKontrol `json:"response"` -} - -type ResponseInsertSuratKontrol struct { - MetaData MetadataString `json:"metaData"` - Response ResponseData `json:"response"` -} - -type ResponseData struct { - NoSuratKontrol string `json:"noSuratKontrol"` - TglRencanaKontrol string `json:"tglRencanaKontrol"` - NamaDokter string `json:"namaDokter"` - NoKartu string `json:"noKartu"` - Nama string `json:"nama"` - Kelamin string `json:"kelamin"` - TglLahir string `json:"tglLahir"` - NamaDiagnosa string `json:"namaDiagnosa"` - SubSpesialis string `json:"subspesialis"` -} - -type ResponseSuratKontrol struct { - NoSuratKontrol string `json:"noSuratKontrol"` - TglRencanaKontrol string `json:"tglRencanaKontrol"` - NamaDokter string `json:"namaDokter"` - NoKartu string `json:"noKartu"` - Nama string `json:"nama"` - Kelamin string `json:"kelamin"` - TglLahir string `json:"tglLahir"` - NamaDiagnosa string `json:"namaDiagnosa"` -} - -type RequestRencanaKontrol struct { - IDXDaftar string `json:"idxdaftar"` - NoSEP string `json:"noSEP"` - KodeHFIS string `json:"kodeHFIS"` - KodePoli string `json:"kodePoli"` - TglRencanaKontrol string `json:"tglRencanaKontrol"` - User string `json:"user"` -} - -type ResponseNomorSuratKontrol struct { - NoSuratKontrol string `json:"noSuratKontrol"` - TglRencanaKontrol string `json:"tglRencanaKontrol"` - TglTerbit string `json:"tglTerbit"` - JnsKontrol string `json:"jnsKontrol"` - PoliTujuan string `json:"poliTujuan"` - NamaPoliTujuan string `json:"namaPoliTujuan"` - KodeDokter string `json:"kodeDokter"` - NamaDokter string `json:"namaDokter"` - FlagKontrol string `json:"flagKontrol"` - KodeDokterPembuat string `json:"kodeDokterPembuat"` - NamaDokterPembuat string `json:"namaDokterPembuat"` - NamaJnsKontrol string `json:"namaJnsKontrol"` - Sep Sep `json:"sep"` -} - -type Sep struct { - NoSep string `json:"noSep"` - TglSep string `json:"tglSep"` - JnsPelayanan string `json:"jnsPelayanan"` - Poli string `json:"poli"` - Diagnosa string `json:"diagnosa"` - Peserta Peserta `json:"peserta"` - ProvUmum ProvUmum `json:"provUmum"` - ProvPerujuk ProvPerujuk `json:"provPerujuk"` -} - -type Peserta struct { - NoKartu string `json:"noKartu"` - Nama string `json:"nama"` - TglLahir string `json:"tglLahir"` - Kelamin string `json:"kelamin"` - HakKelas string `json:"hakKelas"` -} - -type ProvUmum struct { - KodedProvider string `json:"kdProvider"` - NamaProvider string `json:"nmProvider"` -} - -type ProvPerujuk struct { - KodeProviderPerujuk string `json:"kdProviderPerujuk"` - NamaProviderPerujuk string `json:"nmProviderPerujuk"` - AsalRujukan string `json:"asalRujukan"` - NoRujukan string `json:"noRujukan"` - TglRujukan string `json:"tglRujukan"` -} - -type DataSuratKontrol struct { - ID string `gorm:"column:id" json:"id"` - Status string `gorm:"column:status" json:"status"` - Sort int `gorm:"column:sort" json:"sort"` - UserCreated string `gorm:"column:user_created" json:"user_created"` - DateCreated string `gorm:"column:date_created" json:"date_created"` - UserUpdated string `gorm:"column:user_updated" json:"user_updated"` - DateUpdated string `gorm:"column:date_updated" json:"date_updated"` - TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` - TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` - NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` - KunjunganPasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"` - RuanganSurKon int `gorm:"column:Ruangan_surat_kontrol" json:"Ruangan_surat_kontrol"` - DPJPSurKon string `gorm:"column:DPJP_surat_kontrol" json:"DPJP_surat_kontrol"` - StatusSurKon int `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"` - UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_surat_kontrol"` - TipeSurKon string `gorm:"column:Tipe_surat_kontrol" json:"Tipe_surat_kontrol"` -} - -type ResponseSuratKontrolBySEP struct { - NoSEP string `json:"noSep"` - TglSEP string `json:"tglSep"` - JenisPelayanan string `json:"jnsPelayanan"` - Poli string `json:"poli"` - Diagnosa string `json:"diagnosa"` - Peserta Peserta `json:"peserta"` - ProvUmum ProvUmum `json:"provUmum"` - ProvPerujuk ProvPerujuk `json:"provPerujuk"` -} - -type GetDataSuratKontrol struct { - IDDataSurKon string `gorm:"column:id" json:"id"` - IDXDaftar string `gorm:"column:IDXDAFTAR" json:"IDXDAFTAR"` - TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` - TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` - NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` - PoliAsal string `gorm:"column:Poli_asal" json:"Poli_asal"` - PoliTujuan string `gorm:"column:Poli_tuju" json:"Poli_tuju"` - NomorSEP string `gorm:"column:Nomor_sep" json:"Nomor_sep"` - NamaPasien string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"` - GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` - NamaLengkapDokter string `gorm:"column:Nama_lengkap_dokter" json:"Nama_lengkap_dokter"` - GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` - Subspesialis string `gorm:"column:Subspesialis" json:"Subspesialis"` - KodePoli string `gorm:"column:Kode_poli" json:"Kode_poli"` - KodeDokter string `gorm:"column:Kode_dokter" json:"Kode_dokter"` - NomorKartu string `gorm:"column:No_kartu" json:"No_kartu"` - IDPoli string `gorm:"column:ID_poli" json:"id_poli"` - IDDokter string `gorm:"column:id_dokter" json:"id_dokter"` -} - -type ResponseGetDataSuratKontrol struct { - IDDataSurKon string `json:"id"` - IDXDaftar string `json:"Idx_daftar"` - TglCetakSurKon string `json:"Tanggal_cetak_surat_kontrol"` - TglRencanaKontrol string `json:"Tanggal_rencana_kontrol"` - NomorSurKon string `json:"Nomor_surat_kontrol"` - PoliAsal string `json:"Poli_asal"` - PoliTujuan string `json:"Poli_tuju"` - NomorSEP string `json:"Nomor_sep"` - NamaPasien string `json:"Nama_pasien"` - NamaDokter string `json:"NamaDokter"` - NomorKartu string `json:"Nomor_kartu"` - Subspesialis string `json:"Subspesialis"` - KodePoli string `json:"Kode_poli"` - KodeDokter string `json:"Kode_dokter"` - IDPoli string `json:"id_poli"` - IDDokter string `json:"id_dokter"` -} - -type RequestCariPasien struct { - NoRM string `json:"no_rm"` - NoSEP string `json:"no_sep"` - PoliKlinik string `json:"poliklinik"` - TanggalAwal string `json:"tanggal_awal"` - TanggalAkhir string `json:"tanggal_akhir"` -} +package suratkontrol + +type RequestHeaderRencanaKontrol struct { + Request interface{} `json:"request"` +} + +type ReqInsertRencanaKontrol struct { + NoSEP string `json:"noSEP"` + KodeDokter string `json:"kodeDokter"` + PoliKontrol string `json:"poliKontrol"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + User string `json:"user"` +} + +type ReqUpdateRencanaKontrol struct { + NoSuratKontrol string `json:"noSuratKontrol"` + NoSEP string `json:"noSEP"` + KodeDokter string `json:"kodeDokter"` + PoliKontrol string `json:"poliKontrol"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + User string `json:"user"` +} + +type RequestInsertRencanaKontrol struct { + IDXDaftar string `json:"idxdaftar"` + NoSEP string `json:"noSEP"` + KodeHFIS string `json:"kodeHFIS"` + KodePoli string `json:"kodePoli"` + Subspesialis string `json:"subspesialis"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + User string `json:"user"` + IDDokter string `json:"id_dokter"` + KodeDiagnosa string `json:"kode_diagnosa"` + NamaDiagnosa string `json:"nama_diagnosa"` +} + +type ReqDeleteRencanaKontrol struct { + IDDataSurKon string `json:"id_surat_kontrol"` + NomorSurKon string `json:"Nomor_surat_kontrol"` + User string `json:"user"` +} + +type RequestUpdateRencanaKontrol struct { + IDXDaftar string `json:"idxdaftar"` + IDSurKon string `json:"idSurKon"` + IDDokter string `json:"id_dokter"` + NoSuratKontrol string `json:"noSuratKontrol"` + NoSEP string `json:"noSEP"` + KodeHFIS string `json:"kodeHFIS"` + KodePoli string `json:"kodePoli"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + User string `json:"user"` + KodeDiagnosa string `json:"Kode_diagnosa"` + NamaDiagnosa string `json:"Nama_diagnosa"` +} + +type TSuratKontrol struct { + RequestDelete RequestDeleteRencanaKontrol `json:"t_suratkontrol"` +} + +type RequestDeleteRencanaKontrol struct { + NoSuratKontrol string `json:"noSuratKontrol"` + User string `json:"user"` +} + +type ResponseRaw struct { + Response string `json:"response"` + MetaData MetadataString `json:"metadata"` +} + +type ResponseRawUpper struct { + Response string `json:"response"` + MetaData MetadataString `json:"metaData"` +} + +type Metadata struct { + Code int `json:"code"` + Message string `json:"message"` +} + +type ResponseInsertRaw struct { + Response string `json:"response"` + MetaData MetadataString `json:"metaData"` +} + +type MetadataString struct { + Code string `json:"code"` + Message string `json:"message"` +} + +type ResponseGetSuratKontrol struct { + MetaData MetadataString `json:"metaData"` + Response ResponseNomorSuratKontrol `json:"response"` +} + +type ResponseGetSuratKontrolBySEP struct { + MetaData MetadataString `json:"metaData"` + Response ResponseSuratKontrolBySEP `json:"response"` +} + +type Response struct { + MetaData MetadataString `json:"metadata"` + Response ResponseSuratKontrol `json:"response"` +} + +type ResponseUpper struct { + MetaData MetadataString `json:"metaData"` + Response ResponseSuratKontrol `json:"response"` +} + +type ResponseInsertSuratKontrol struct { + MetaData MetadataString `json:"metaData"` + Response ResponseData `json:"response"` +} + +type ResponseData struct { + NoSuratKontrol string `json:"noSuratKontrol"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + NamaDokter string `json:"namaDokter"` + NoKartu string `json:"noKartu"` + Nama string `json:"nama"` + Kelamin string `json:"kelamin"` + TglLahir string `json:"tglLahir"` + NamaDiagnosa string `json:"namaDiagnosa"` + SubSpesialis string `json:"subspesialis"` +} + +type ResponseSuratKontrol struct { + NoSuratKontrol string `json:"noSuratKontrol"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + NamaDokter string `json:"namaDokter"` + NoKartu string `json:"noKartu"` + Nama string `json:"nama"` + Kelamin string `json:"kelamin"` + TglLahir string `json:"tglLahir"` + NamaDiagnosa string `json:"namaDiagnosa"` +} + +type RequestRencanaKontrol struct { + IDXDaftar string `json:"idxdaftar"` + NoSEP string `json:"noSEP"` + KodeHFIS string `json:"kodeHFIS"` + KodePoli string `json:"kodePoli"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + User string `json:"user"` +} + +type ResponseNomorSuratKontrol struct { + NoSuratKontrol string `json:"noSuratKontrol"` + TglRencanaKontrol string `json:"tglRencanaKontrol"` + TglTerbit string `json:"tglTerbit"` + JnsKontrol string `json:"jnsKontrol"` + PoliTujuan string `json:"poliTujuan"` + NamaPoliTujuan string `json:"namaPoliTujuan"` + KodeDokter string `json:"kodeDokter"` + NamaDokter string `json:"namaDokter"` + FlagKontrol string `json:"flagKontrol"` + KodeDokterPembuat string `json:"kodeDokterPembuat"` + NamaDokterPembuat string `json:"namaDokterPembuat"` + NamaJnsKontrol string `json:"namaJnsKontrol"` + Sep Sep `json:"sep"` +} + +type Sep struct { + NoSep string `json:"noSep"` + TglSep string `json:"tglSep"` + JnsPelayanan string `json:"jnsPelayanan"` + Poli string `json:"poli"` + Diagnosa string `json:"diagnosa"` + Peserta Peserta `json:"peserta"` + ProvUmum ProvUmum `json:"provUmum"` + ProvPerujuk ProvPerujuk `json:"provPerujuk"` +} + +type Peserta struct { + NoKartu string `json:"noKartu"` + Nama string `json:"nama"` + TglLahir string `json:"tglLahir"` + Kelamin string `json:"kelamin"` + HakKelas string `json:"hakKelas"` +} + +type ProvUmum struct { + KodeProvider string `json:"kdProvider"` + NamaProvider string `json:"nmProvider"` +} + +type ProvPerujuk struct { + KodeProviderPerujuk string `json:"kdProviderPerujuk"` + NamaProviderPerujuk string `json:"nmProviderPerujuk"` + AsalRujukan string `json:"asalRujukan"` + NoRujukan string `json:"noRujukan"` + TglRujukan string `json:"tglRujukan"` +} + +type DataSuratKontrol struct { + ID string `gorm:"column:id" json:"id"` + Status string `gorm:"column:status" json:"status"` + Sort int `gorm:"column:sort" json:"sort"` + UserCreated string `gorm:"column:user_created" json:"user_created"` + DateCreated string `gorm:"column:date_created" json:"date_created"` + UserUpdated string `gorm:"column:user_updated" json:"user_updated"` + DateUpdated string `gorm:"column:date_updated" json:"date_updated"` + TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` + TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` + NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` + KunjunganPasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"` + RuanganSurKon int `gorm:"column:Ruangan_surat_kontrol" json:"Ruangan_surat_kontrol"` + DPJPSurKon string `gorm:"column:DPJP_surat_kontrol" json:"DPJP_surat_kontrol"` + StatusSurKon int `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"` + UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_surat_kontrol"` + TipeSurKon string `gorm:"column:Tipe_surat_kontrol" json:"Tipe_surat_kontrol"` + UserUpdatedSurKon string `gorm:"column:User_updated_surat_kontrol" json:"User_updated_surat_kontrol"` +} + +type ResponseSuratKontrolBySEP struct { + NoSEP string `json:"noSep"` + TglSEP string `json:"tglSep"` + JenisPelayanan string `json:"jnsPelayanan"` + Poli string `json:"poli"` + Diagnosa string `json:"diagnosa"` + Peserta Peserta `json:"peserta"` + ProvUmum ProvUmum `json:"provUmum"` + ProvPerujuk ProvPerujuk `json:"provPerujuk"` +} + +type GetDataSuratKontrol struct { + IDDataSurKon string `gorm:"column:id" json:"id"` + IDXDaftar string `gorm:"column:IDXDAFTAR" json:"IDXDAFTAR"` + TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` + TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` + NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` + PoliAsal string `gorm:"column:Poli_asal" json:"Poli_asal"` + PoliTujuan string `gorm:"column:Poli_tuju" json:"Poli_tuju"` + NomorSEP string `gorm:"column:Nomor_sep" json:"Nomor_sep"` + NamaPasien string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"` + GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` + NamaLengkapDokter string `gorm:"column:Nama_lengkap_dokter" json:"Nama_lengkap_dokter"` + GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` + Subspesialis string `gorm:"column:Subspesialis" json:"Subspesialis"` + KodePoli string `gorm:"column:Kode_poli" json:"Kode_poli"` + KodeDokter string `gorm:"column:Kode_dokter" json:"Kode_dokter"` + NomorKartu string `gorm:"column:No_kartu" json:"No_kartu"` + IDPoli string `gorm:"column:ID_poli" json:"id_poli"` + IDDokter string `gorm:"column:id_dokter" json:"id_dokter"` + NoRM string `gorm:"column:No_rm" json:"No_rm"` + KodeDiagnosa string `gorm:"column:Kode_diagnosa" json:"Kode_diagnosa"` + NamaDiagnosa string `gorm:"column:Nama_diagnosa" json:"Nama_diagnosa"` + TipeSurKon string `gorm:"column:Tipe_SurKon" json:"Tipe_SurKon"` +} + +type ResponseGetDataSuratKontrol struct { + IDDataSurKon string `json:"id"` + IDXDaftar string `json:"Idx_daftar"` + TglCetakSurKon string `json:"Tanggal_cetak_surat_kontrol"` + TglRencanaKontrol string `json:"Tanggal_rencana_kontrol"` + NomorSurKon string `json:"Nomor_surat_kontrol"` + PoliAsal string `json:"Poli_asal"` + PoliTujuan string `json:"Poli_tuju"` + NomorSEP string `json:"Nomor_sep"` + NamaPasien string `json:"Nama_pasien"` + NamaDokter string `json:"NamaDokter"` + NomorKartu string `json:"Nomor_kartu"` + Subspesialis string `json:"Subspesialis"` + KodePoli string `json:"Kode_poli"` + KodeDokter string `json:"Kode_dokter"` + IDPoli string `json:"id_poli"` + IDDokter string `json:"id_dokter"` + NoRM string `json:"No_rm"` + KodeDiagnosa string `json:"Kode_diagnosa"` + NamaDiagnosa string `json:"Nama_diagnosa"` + TipeSurKon string `json:"Tipe_SurKon"` +} + +type RequestCariPasien struct { + NoRM string `json:"no_rm"` + NoSEP string `json:"no_sep"` + PoliKlinik string `json:"poliklinik"` + TanggalAwal string `json:"tanggal_awal"` + TanggalAkhir string `json:"tanggal_akhir"` + Offset string `json:"offset"` + Limit string `json:"limit"` +} diff --git a/models/dokter/dokter.go b/models/dokter/dokter.go index fb228b8..3139fe0 100644 --- a/models/dokter/dokter.go +++ b/models/dokter/dokter.go @@ -19,14 +19,14 @@ type NamaLengkap struct { } type ResponseDokter struct { - ID string `json:"id"` + ID string `json:"id_dokter"` NamaLengkap string `json:"nama_lengkap"` Spesialis int `json:"spesialis"` HFISCode string `json:"HFIS_code"` } type ResponseDokterNew struct { - ID string `json:"id"` + ID string `json:"id_dokter"` NamaLengkap string `json:"nama_lengkap"` Subspesialis int `json:"subspesialis"` HFISCode string `json:"HFIS_code"` diff --git a/models/log_api/log_api.go b/models/log_api/log_api.go new file mode 100644 index 0000000..fb1087f --- /dev/null +++ b/models/log_api/log_api.go @@ -0,0 +1,17 @@ +package logapi + +type DataLogAPI struct { + ID string `gorm:"column:ID" json:"ID"` + UserAgent string `gorm:"column:User_agent" json:"User_agent"` + IP string `gorm:"column:IP" json:"IP"` + Parameter string `gorm:"column:Parameter" json:"Parameter"` + Header string `gorm:"column:Header" json:"Header"` + Method string `gorm:"column:Method" json:"Method"` + Url string `gorm:"column:Url" json:"Url"` + Request string `gorm:"column:Request" json:"Request"` + Respon string `gorm:"column:Respon" json:"Respon"` + ResponCode string `gorm:"column:Respon_code" json:"Respon_code"` + ResponTimeStart string `gorm:"column:Respontime_start" json:"Respontime_start"` + ResponTimeEnd string `gorm:"column:Respontime_end" json:"Respontime_end"` + Comment string `gorm:"column:Comment" json:"Comment"` +}