Compare commits
1
Commits
| Author | SHA256 | Date | |
|---|---|---|---|
|
|
36cf47313b |
@@ -1,24 +0,0 @@
|
|||||||
SATUDATA_HOST=10.10.123.165
|
|
||||||
SATUDATA_USERNAME=stim
|
|
||||||
SATUDATA_PASSWORD=stim*RS54
|
|
||||||
SATUDATA_NAME=satu_db
|
|
||||||
SATUDATA_PORT=5000
|
|
||||||
|
|
||||||
BASEURL_BPJS=https://apijkn.bpjs-kesehatan.go.id/
|
|
||||||
ANTREAN_RS=antreanrs
|
|
||||||
CONS_ID=5257
|
|
||||||
USER_KEY=4cf1cbef8c008440bbe9ef9ba789e482
|
|
||||||
SECRET_KEY=1bV363512D
|
|
||||||
|
|
||||||
CONS_ID_DEV=16041
|
|
||||||
USER_KEY_DEV=467a2817fde5070f66c9a41fbeb8dc2c
|
|
||||||
SECRET_KEY_DEV=8pP3D5431E
|
|
||||||
|
|
||||||
BASEURL_BPJS_DEV=https://apijkn-dev.bpjs-kesehatan.go.id/
|
|
||||||
SURAT_KONTROL_RS=vclaim-rest
|
|
||||||
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/
|
|
||||||
|
|
||||||
Executable
+57
-43
@@ -16,36 +16,70 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var DB *gorm.DB
|
var DB *gorm.DB
|
||||||
|
var localDB *gorm.DB
|
||||||
var SatuDataDB *gorm.DB
|
var SatuDataDB *gorm.DB
|
||||||
|
var SimrsDataDB *gorm.DB
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
func ConnectDB() {
|
func ConnectDB() {
|
||||||
|
// POSTGRE_DB_HOST=10.10.123.223
|
||||||
|
// POSTGRE_DB_PORT=5432
|
||||||
|
// POSTGRE_DB_NAME=simrsbackup
|
||||||
|
// POSTGRE_DB_USER=simtest
|
||||||
|
// POSTGRE_DB_PASS=12345
|
||||||
|
|
||||||
|
// hostDB := os.Getenv("DB_HOST")
|
||||||
|
// usernameDB := os.Getenv("DB_USERNAME")
|
||||||
|
// passwordDB := os.Getenv("DB_PASSWORD")
|
||||||
|
// dbName := os.Getenv("DB_NAME")
|
||||||
|
// portDB := os.Getenv("DB_PORT")
|
||||||
|
|
||||||
hostSatuData := os.Getenv("SATUDATA_HOST")
|
hostSatuData := os.Getenv("SATUDATA_HOST")
|
||||||
userNameSatuData := os.Getenv("SATUDATA_USERNAME")
|
userNameSatuData := os.Getenv("SATUDATA_USERNAME")
|
||||||
passwordSatuData := os.Getenv("SATUDATA_PASSWORD")
|
passwordSatuData := os.Getenv("SATUDATA_PASSWORD")
|
||||||
dbNameSatuData := os.Getenv("SATUDATA_NAME")
|
dbNameSatuData := os.Getenv("SATUDATA_NAME")
|
||||||
portSatuData := os.Getenv("SATUDATA_PORT")
|
portSatuData := os.Getenv("SATUDATA_PORT")
|
||||||
|
|
||||||
|
hostSimrsDB := os.Getenv("SIMRS_DB_HOST")
|
||||||
|
usernameSimrsDB := os.Getenv("SIMRS_DB_USERNAME")
|
||||||
|
passwordSimrsDB := os.Getenv("SIMRS_DB_PASSWORD")
|
||||||
|
dbNameSimrsDB := os.Getenv("SIMRS_DB_NAME")
|
||||||
|
portSimrsDB := os.Getenv("SIMRS_DB_PORT")
|
||||||
|
|
||||||
|
// local := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostDB, usernameDB, passwordDB, dbName, portDB)
|
||||||
|
|
||||||
satuData := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSatuData, userNameSatuData, passwordSatuData, dbNameSatuData, portSatuData)
|
satuData := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSatuData, userNameSatuData, passwordSatuData, dbNameSatuData, portSatuData)
|
||||||
|
|
||||||
|
simrsData := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSimrsDB, usernameSimrsDB, passwordSimrsDB, dbNameSimrsDB, portSimrsDB)
|
||||||
|
|
||||||
|
// localDB, err = gorm.Open(postgres.Open(local), &gorm.Config{})
|
||||||
|
// if err != nil {
|
||||||
|
// log.Fatal("Failed to connect to Satu Data database: ", err)
|
||||||
|
// } else {
|
||||||
|
// log.Println("Successfully connected to the database")
|
||||||
|
// }
|
||||||
|
|
||||||
SatuDataDB, err = gorm.Open(postgres.Open(satuData), &gorm.Config{})
|
SatuDataDB, err = gorm.Open(postgres.Open(satuData), &gorm.Config{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Failed to connect to Satu Data database: ", err)
|
log.Fatal("Failed to connect to Satu Data database: ", err)
|
||||||
} else {
|
} else {
|
||||||
log.Println("Successfully connected to the database")
|
log.Println("Successfully connected to the database")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SimrsDataDB, err = gorm.Open(postgres.Open(simrsData), &gorm.Config{})
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("Failed to connect to Satu Data database: ", err)
|
||||||
|
} else {
|
||||||
|
log.Println("Successfully connected to the database")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetHeader(cfg config.ConfigBpjs) *config.Header {
|
func SetHeader(cfg config.ConfigBpjs) (string, string, string, string, string) {
|
||||||
|
|
||||||
timenow := time.Now().UTC()
|
timenow := time.Now().UTC()
|
||||||
time := time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC)
|
time := time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC)
|
||||||
tstamp := timenow.Unix() - time.Unix()
|
tstamp := timenow.Unix() - time.Unix()
|
||||||
|
|
||||||
// cfg.Cons_id = os.Getenv("CONS_ID_DEV")
|
|
||||||
// cfg.User_key = os.Getenv("USER_KEY_DEV")
|
|
||||||
// cfg.Secret_key = os.Getenv("SECRET_KEY_DEV")
|
|
||||||
|
|
||||||
cfg.Cons_id = os.Getenv("CONS_ID")
|
cfg.Cons_id = os.Getenv("CONS_ID")
|
||||||
cfg.User_key = os.Getenv("USER_KEY")
|
cfg.User_key = os.Getenv("USER_KEY")
|
||||||
cfg.Secret_key = os.Getenv("SECRET_KEY")
|
cfg.Secret_key = os.Getenv("SECRET_KEY")
|
||||||
@@ -59,49 +93,29 @@ func SetHeader(cfg config.ConfigBpjs) *config.Header {
|
|||||||
// to base64
|
// to base64
|
||||||
X_signature := base64.StdEncoding.EncodeToString(hash.Sum(nil))
|
X_signature := base64.StdEncoding.EncodeToString(hash.Sum(nil))
|
||||||
|
|
||||||
header := &config.Header{
|
return cfg.Cons_id, cfg.Secret_key, cfg.User_key, fmt.Sprint(tstamp), X_signature
|
||||||
ConsID: cfg.Cons_id,
|
|
||||||
SecretKey: cfg.Secret_key,
|
|
||||||
UserKey: cfg.User_key,
|
|
||||||
TimeStamp: fmt.Sprint(tstamp),
|
|
||||||
XSignature: X_signature,
|
|
||||||
}
|
|
||||||
|
|
||||||
return header
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetHeaderDev(cfg config.ConfigBpjs) *config.Header {
|
// func SetHeaderSatusehat(cfg config.ConfigSatuSehat) (string, string, string, string, string) {
|
||||||
|
|
||||||
timenow := time.Now().UTC()
|
// timenow := time.Now().UTC()
|
||||||
time := time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC)
|
// time := time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC)
|
||||||
tstamp := timenow.Unix() - time.Unix()
|
// tstamp := timenow.Unix() - time.Unix()
|
||||||
|
|
||||||
cfg.Cons_id = os.Getenv("CONS_ID_DEV")
|
// cfg.Cons_id = os.Getenv("CONS_ID")
|
||||||
cfg.User_key = os.Getenv("USER_KEY_DEV")
|
// cfg.User_key = os.Getenv("USER_KEY")
|
||||||
cfg.Secret_key = os.Getenv("SECRET_KEY_DEV")
|
// cfg.Secret_key = os.Getenv("SECRET_KEY")
|
||||||
|
|
||||||
// cfg.Cons_id = os.Getenv("CONS_ID")
|
// secret := []byte(cfg.Secret_key)
|
||||||
// cfg.User_key = os.Getenv("USER_KEY")
|
// message := []byte(cfg.Cons_id + "&" + fmt.Sprint(tstamp))
|
||||||
// cfg.Secret_key = os.Getenv("SECRET_KEY")
|
// hash := hmac.New(sha256.New, secret)
|
||||||
|
// hash.Write(message)
|
||||||
|
// // to lowercase hexits
|
||||||
|
// hex.EncodeToString(hash.Sum(nil))
|
||||||
|
// // to base64
|
||||||
|
// X_signature := base64.StdEncoding.EncodeToString(hash.Sum(nil))
|
||||||
|
|
||||||
secret := []byte(cfg.Secret_key)
|
// return cfg.Cons_id, cfg.Secret_key, cfg.User_key, fmt.Sprint(tstamp), X_signature
|
||||||
message := []byte(cfg.Cons_id + "&" + fmt.Sprint(tstamp))
|
|
||||||
hash := hmac.New(sha256.New, secret)
|
|
||||||
hash.Write(message)
|
|
||||||
// to lowercase hexits
|
|
||||||
hex.EncodeToString(hash.Sum(nil))
|
|
||||||
// to base64
|
|
||||||
X_signature := base64.StdEncoding.EncodeToString(hash.Sum(nil))
|
|
||||||
|
|
||||||
header := &config.Header{
|
// }
|
||||||
ConsID: cfg.Cons_id,
|
|
||||||
SecretKey: cfg.Secret_key,
|
|
||||||
UserKey: cfg.User_key,
|
|
||||||
TimeStamp: fmt.Sprint(tstamp),
|
|
||||||
XSignature: X_signature,
|
|
||||||
}
|
|
||||||
|
|
||||||
return header
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -40,33 +40,3 @@ func GetDokter() ([]dokter.DaftarDokterRes, error) {
|
|||||||
log.Println("Data Pegawai: ", res)
|
log.Println("Data Pegawai: ", res)
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetNamaLengkapDokter(idDokter []string) ([]dokter.NamaLengkap, error) {
|
|
||||||
var namaDokter []dokter.NamaLengkap
|
|
||||||
result := config.SatuDataDB.Debug().Raw(`select dp.id,
|
|
||||||
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" ,
|
|
||||||
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,
|
|
||||||
dp."HFIS_code"
|
|
||||||
from "data_pegawai" dp
|
|
||||||
left join data_ktp dk on dp."KTP" = dk.id
|
|
||||||
WHERE dp.id in ?`, idDokter).Find(&namaDokter)
|
|
||||||
if result.Error != nil {
|
|
||||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
|
||||||
log.Printf("Error get data : %v", result.Error)
|
|
||||||
return nil, result.Error
|
|
||||||
}
|
|
||||||
log.Printf("Data kosong: %v", result.Error)
|
|
||||||
return namaDokter, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return namaDokter, nil
|
|
||||||
}
|
|
||||||
@@ -9,79 +9,10 @@ import (
|
|||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetJadwalDokterByDPJP(dpjp string) (string, error) {
|
|
||||||
var id string
|
|
||||||
errSelect := config.SatuDataDB.Debug().Raw(`select "id" from "data_pegawai" where "Code_dpjp" = ?`, dpjp).First(&id).Error
|
|
||||||
if errSelect != nil {
|
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
|
||||||
return "", errSelect
|
|
||||||
}
|
|
||||||
return id, 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
|
|
||||||
if errSelect != nil {
|
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
|
||||||
return nil, errSelect
|
|
||||||
}
|
|
||||||
return hari, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetJadwalDokterByIDDokter(hari string) ([]string, error) {
|
|
||||||
var spesialis []string
|
|
||||||
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
|
|
||||||
if errSelect != nil {
|
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
|
||||||
return nil, errSelect
|
|
||||||
}
|
|
||||||
return spesialis, nil
|
|
||||||
}
|
|
||||||
func GetJadwalDokterByDate(hari string) ([]string, error) {
|
|
||||||
var spesialis []string
|
|
||||||
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
|
|
||||||
if errSelect != nil {
|
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
|
||||||
return nil, errSelect
|
|
||||||
}
|
|
||||||
return spesialis, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetJadwalSubspesialisByDate(hari string) ([]int, error) {
|
|
||||||
var subspesialis []int
|
|
||||||
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Sub_spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Sub_spesialis"`, hari).Scan(&subspesialis).Error
|
|
||||||
if errSelect != nil {
|
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
|
||||||
return nil, errSelect
|
|
||||||
}
|
|
||||||
return subspesialis, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
|
|
||||||
var listDokter []string
|
|
||||||
errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Spesialis" = ? order by "Spesialis"`, hari, spesialis).Scan(&listDokter).Error
|
|
||||||
if errSelect != nil {
|
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
|
||||||
return nil, errSelect
|
|
||||||
}
|
|
||||||
return listDokter, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) {
|
|
||||||
var listDokter []string
|
|
||||||
errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Sub_spesialis" = ? order by "Sub_spesialis"`, hari, subspesialis).Scan(&listDokter).Error
|
|
||||||
if errSelect != nil {
|
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
|
||||||
return nil, errSelect
|
|
||||||
}
|
|
||||||
return listDokter, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeleteJadwalDokter() error {
|
func DeleteJadwalDokter() error {
|
||||||
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
|
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed truncate data : %v", err)
|
log.Fatalf("Failed truncate data : %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println("Success truncate data")
|
log.Println("Success truncate data")
|
||||||
@@ -91,7 +22,7 @@ func DeleteJadwalDokter() error {
|
|||||||
func DeleteJadwalDokterTemp() error {
|
func DeleteJadwalDokterTemp() error {
|
||||||
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
|
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed truncate data : %v", err)
|
log.Fatalf("Failed truncate data : %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println("Success truncate data")
|
log.Println("Success truncate data")
|
||||||
@@ -101,7 +32,7 @@ func DeleteJadwalDokterTemp() error {
|
|||||||
func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
|
func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
|
||||||
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ? ,?, ?, ?, ?, ?)`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error
|
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ? ,?, ?, ?, ?, ?)`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed insert data : %v", err)
|
log.Fatalf("Failed insert data : %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println("Success insert data")
|
log.Println("Success insert data")
|
||||||
@@ -114,7 +45,7 @@ func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error
|
|||||||
id := uuid.New()
|
id := uuid.New()
|
||||||
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter_temp" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ?, ?, ?, ?, ?, ?, ?)`, id, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, spesialis, subspesialis, reqInsert.Status).Error
|
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter_temp" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ?, ?, ?, ?, ?, ?, ?)`, id, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, spesialis, subspesialis, reqInsert.Status).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed insert data : %v", err)
|
log.Fatalf("Failed insert data : %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println("Success insert data")
|
log.Println("Success insert data")
|
||||||
|
|||||||
@@ -15,25 +15,10 @@ func GetSpesialis() ([]dokter.DaftarSpesialis, error) {
|
|||||||
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis"`).Find(&daftarSpesialis)
|
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis"`).Find(&daftarSpesialis)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
||||||
log.Printf("Error get data : %v", result.Error)
|
log.Fatalf("Error get data : %v", result.Error)
|
||||||
return nil, result.Error
|
return nil, result.Error
|
||||||
}
|
}
|
||||||
log.Printf("Data kosong: %v", result.Error)
|
log.Fatalf("Data kosong: %v", result.Error)
|
||||||
return daftarSpesialis, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return daftarSpesialis, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSpesialisByID(idSpesialis []string) ([]dokter.DaftarSpesialis, error) {
|
|
||||||
var daftarSpesialis []dokter.DaftarSpesialis
|
|
||||||
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis" where "id" in ?`, idSpesialis).Find(&daftarSpesialis)
|
|
||||||
if result.Error != nil {
|
|
||||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
|
||||||
log.Printf("Error get data : %v", result.Error)
|
|
||||||
return nil, result.Error
|
|
||||||
}
|
|
||||||
log.Printf("Data kosong: %v", result.Error)
|
|
||||||
return daftarSpesialis, nil
|
return daftarSpesialis, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,50 +15,10 @@ func GetSubspesialis() ([]dokter.DaftarSubspesialis, error) {
|
|||||||
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_subspesialis"`).Find(&daftarSubspesialis)
|
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_subspesialis"`).Find(&daftarSubspesialis)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
||||||
log.Printf("Error get data : %v", result.Error)
|
log.Fatalf("Error get data : %v", result.Error)
|
||||||
return nil, result.Error
|
return nil, result.Error
|
||||||
}
|
}
|
||||||
log.Printf("Data kosong: %v", result.Error)
|
log.Fatalf("Data kosong: %v", result.Error)
|
||||||
return daftarSubspesialis, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println(daftarSubspesialis)
|
|
||||||
return daftarSubspesialis, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSubspesialisByID(idSubspesialis int) (*dokter.DaftarSubspesialis, error) {
|
|
||||||
var daftarSubspesialis *dokter.DaftarSubspesialis
|
|
||||||
|
|
||||||
result := config.SatuDataDB.Debug().Raw(`select dss.*, ds."Spesialis"
|
|
||||||
from "daftar_subspesialis" dss
|
|
||||||
left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID"
|
|
||||||
where dss.id = ?`, idSubspesialis).First(&daftarSubspesialis)
|
|
||||||
if result.Error != nil {
|
|
||||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
|
||||||
log.Printf("Error get data : %v", result.Error)
|
|
||||||
return nil, result.Error
|
|
||||||
}
|
|
||||||
log.Printf("Data kosong: %v", result.Error)
|
|
||||||
return daftarSubspesialis, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println(daftarSubspesialis)
|
|
||||||
return daftarSubspesialis, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSubspesialisByIDBatch(idSubspesialis []int) ([]dokter.DaftarSubspesialis, error) {
|
|
||||||
var daftarSubspesialis []dokter.DaftarSubspesialis
|
|
||||||
result := config.SatuDataDB.Debug().Raw(`select dss.*, ds."Spesialis"
|
|
||||||
from "daftar_subspesialis" dss
|
|
||||||
left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID"
|
|
||||||
where dss.id in ?
|
|
||||||
order by dss."id"`, idSubspesialis).Find(&daftarSubspesialis)
|
|
||||||
if result.Error != nil {
|
|
||||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
|
||||||
log.Printf("Error get data : %v", result.Error)
|
|
||||||
return nil, result.Error
|
|
||||||
}
|
|
||||||
log.Printf("Data kosong: %v", result.Error)
|
|
||||||
return daftarSubspesialis, nil
|
return daftarSubspesialis, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
package suratkontrol
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bridging-rssa/config"
|
|
||||||
sk "bridging-rssa/models/bpjs/surat_kontrol"
|
|
||||||
"log"
|
|
||||||
)
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
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() ([]*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'`).Scan(&dataSurKon).Error
|
|
||||||
if err != nil {
|
|
||||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
||||||
errMsg := errors.New("DPJP anda belum ada subspesialis")
|
|
||||||
log.Println(errMsg)
|
|
||||||
return nil, errMsg
|
|
||||||
}
|
|
||||||
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 {
|
|
||||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
||||||
errMsg := errors.New("DPJP anda belum ada subspesialis")
|
|
||||||
log.Println(errMsg)
|
|
||||||
return nil, errMsg
|
|
||||||
}
|
|
||||||
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 ?`
|
|
||||||
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
|
|
||||||
}
|
|
||||||
+9
-6
@@ -12,11 +12,11 @@ services:
|
|||||||
- .:/app
|
- .:/app
|
||||||
environment:
|
environment:
|
||||||
# DATABASE SIMRS V3.0
|
# DATABASE SIMRS V3.0
|
||||||
- POSTGRE_DB_HOST=10.10.123.223
|
- SIMRS_DB_HOST=10.10.123.223
|
||||||
- POSTGRE_DB_PORT=5432
|
- SIMRS_DB_NAME=simrsbackup
|
||||||
- POSTGRE_DB_NAME=simrsbackup
|
- SIMRS_DB_USERNAME=simtest
|
||||||
- POSTGRE_DB_USER=simtest
|
- SIMRS_DB_PASSWORD=12345
|
||||||
- POSTGRE_DB_PASS=12345
|
- SIMRS_DB_PORT=5432
|
||||||
# DATABASE SATU DATA
|
# DATABASE SATU DATA
|
||||||
- SATUDATA_HOST=10.10.123.165
|
- SATUDATA_HOST=10.10.123.165
|
||||||
- SATUDATA_USERNAME=stim
|
- SATUDATA_USERNAME=stim
|
||||||
@@ -35,4 +35,7 @@ services:
|
|||||||
# BPJS PCARE
|
# BPJS PCARE
|
||||||
- PCARE_RS=pcare-rest
|
- PCARE_RS=pcare-rest
|
||||||
# BPJS ICARE
|
# BPJS ICARE
|
||||||
- PCARE_APLICARE=ihs
|
- PCARE_APLICARE=ihs
|
||||||
|
|
||||||
|
# SATUSEHAT
|
||||||
|
- OR=10.10.123.165
|
||||||
+1
-29
@@ -1,9 +1,6 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import "log"
|
||||||
"log"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Function to convert Kode to ID
|
// Function to convert Kode to ID
|
||||||
func KodeToIDConverter(kode string, kodeDokter map[string]int) int {
|
func KodeToIDConverter(kode string, kodeDokter map[string]int) int {
|
||||||
@@ -18,28 +15,3 @@ func HfisCodeToIDConverter(kode int, kodeDokter map[int]string) string {
|
|||||||
id := kodeDokter[kode]
|
id := kodeDokter[kode]
|
||||||
return id
|
return id
|
||||||
}
|
}
|
||||||
|
|
||||||
func ConvertDay(day string) string {
|
|
||||||
dayTranslations := map[string]string{
|
|
||||||
"sunday": "MINGGU",
|
|
||||||
"monday": "SENIN",
|
|
||||||
"tuesday": "SELASA",
|
|
||||||
"wednesday": "RABU",
|
|
||||||
"thursday": "KAMIS",
|
|
||||||
"friday": "JUMAT",
|
|
||||||
"saturday": "SABTU",
|
|
||||||
}
|
|
||||||
|
|
||||||
dayLower := strings.ToLower(day)
|
|
||||||
if translatedDay, exists := dayTranslations[dayLower]; exists {
|
|
||||||
return translatedDay
|
|
||||||
}
|
|
||||||
return day
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReplaceGelar(gelar string) string {
|
|
||||||
gelar = strings.ReplaceAll(gelar, "{", "")
|
|
||||||
gelar = strings.ReplaceAll(gelar, "}", "")
|
|
||||||
gelar = strings.ReplaceAll(gelar, ",", " ")
|
|
||||||
return gelar
|
|
||||||
}
|
|
||||||
Executable
Binary file not shown.
@@ -23,7 +23,6 @@ require (
|
|||||||
github.com/cloudwego/iasm v0.2.0 // indirect
|
github.com/cloudwego/iasm v0.2.0 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||||
github.com/gabriel-vasile/mimetype v1.4.5 // indirect
|
github.com/gabriel-vasile/mimetype v1.4.5 // indirect
|
||||||
github.com/gin-contrib/cors v1.7.2 // indirect
|
|
||||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
github.com/gin-contrib/sse v0.1.0 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1
|
|||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4=
|
github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4=
|
github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4=
|
||||||
github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw=
|
|
||||||
github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E=
|
|
||||||
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
|
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
|
||||||
github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk=
|
github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk=
|
||||||
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
|
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
|
||||||
|
|||||||
@@ -6,12 +6,10 @@ import (
|
|||||||
"bridging-rssa/docs/utils"
|
"bridging-rssa/docs/utils"
|
||||||
"bridging-rssa/models/bpjs/jadwal_dokter"
|
"bridging-rssa/models/bpjs/jadwal_dokter"
|
||||||
"bridging-rssa/models/config"
|
"bridging-rssa/models/config"
|
||||||
dktr "bridging-rssa/models/dokter"
|
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
@@ -22,18 +20,6 @@ func GetJadwalDokter(c *gin.Context) {
|
|||||||
endpoint := os.Getenv("ANTREAN_RS")
|
endpoint := os.Getenv("ANTREAN_RS")
|
||||||
url := baseUrl + endpoint
|
url := baseUrl + endpoint
|
||||||
|
|
||||||
conf := config.ConfigBpjs{}
|
|
||||||
|
|
||||||
header := cfg.SetHeader(conf)
|
|
||||||
|
|
||||||
headers := map[string]string{
|
|
||||||
"X-cons-id": header.ConsID,
|
|
||||||
"X-timestamp": header.TimeStamp,
|
|
||||||
"X-signature": header.XSignature,
|
|
||||||
"user_key": header.UserKey,
|
|
||||||
}
|
|
||||||
log.Println("Headers : ", headers)
|
|
||||||
|
|
||||||
errTruncate := dokter.DeleteJadwalDokter()
|
errTruncate := dokter.DeleteJadwalDokter()
|
||||||
if errTruncate != nil {
|
if errTruncate != nil {
|
||||||
log.Fatal(errTruncate)
|
log.Fatal(errTruncate)
|
||||||
@@ -77,14 +63,26 @@ func GetJadwalDokter(c *gin.Context) {
|
|||||||
listIddokter[kodeDokter.HfisCode] = kodeDokter.ID
|
listIddokter[kodeDokter.HfisCode] = kodeDokter.ID
|
||||||
}
|
}
|
||||||
|
|
||||||
var reqInsert *jadwal_dokter.JadwalDokterSatuData
|
conf := config.ConfigBpjs{}
|
||||||
|
|
||||||
|
cons_id, secretKey, User_key, tstamp, X_signature := cfg.SetHeader(conf)
|
||||||
|
|
||||||
|
headers := map[string]string{
|
||||||
|
"X-cons-id": cons_id,
|
||||||
|
"X-timestamp": tstamp,
|
||||||
|
"X-signature": X_signature,
|
||||||
|
"user_key": User_key,
|
||||||
|
}
|
||||||
var res *[]jadwal_dokter.ListDokter
|
var res *[]jadwal_dokter.ListDokter
|
||||||
|
log.Println("Headers : ", headers)
|
||||||
|
// var reqSelect *jadwal_dokter.JadwalDokterSatuData
|
||||||
|
var reqInsert *jadwal_dokter.JadwalDokterSatuData
|
||||||
|
|
||||||
for _, value := range spesialis {
|
for _, value := range spesialis {
|
||||||
tanggal := time.Now().Format("2006-01-02")
|
tanggal := time.Now().Format("2006-01-02")
|
||||||
for i := 0; i < 7; i++ {
|
for i := 0; i < 7; i++ {
|
||||||
kdPoly := value.Kode
|
kdPoly := value.Kode
|
||||||
res, err = JadwalDokterGetResponse(url, header, kdPoly, tanggal, headers)
|
res, err = JadwalDokterGetResponse(url, secretKey, cons_id, User_key, tstamp, X_signature, kdPoly, tanggal, headers)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Error making external API request: %v", err)
|
log.Fatalf("Error making external API request: %v", err)
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
c.JSON(http.StatusInternalServerError, err)
|
||||||
@@ -124,7 +122,6 @@ func GetJadwalDokter(c *gin.Context) {
|
|||||||
date, errParse := time.Parse("2006-01-02", tanggal)
|
date, errParse := time.Parse("2006-01-02", tanggal)
|
||||||
if errParse != nil {
|
if errParse != nil {
|
||||||
c.JSON(http.StatusInternalServerError, errParse)
|
c.JSON(http.StatusInternalServerError, errParse)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
tanggal = date.AddDate(0, 0, 1).Format("2006-01-02")
|
tanggal = date.AddDate(0, 0, 1).Format("2006-01-02")
|
||||||
log.Println("Tanggal :", tanggal)
|
log.Println("Tanggal :", tanggal)
|
||||||
@@ -132,200 +129,3 @@ func GetJadwalDokter(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, res)
|
c.JSON(http.StatusOK, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDokterByDPJP(c *gin.Context) {
|
|
||||||
dpjp := c.Param("dpjp")
|
|
||||||
idDokter, err := dokter.GetJadwalDokterByDPJP(dpjp)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
listHari, err := dokter.GetJadwalHariDokterBySpesialis(idDokter)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Println("listHari: ", listHari)
|
|
||||||
|
|
||||||
var IDDokter []string
|
|
||||||
var idSubspesialis int
|
|
||||||
for _, v := range listHari {
|
|
||||||
IDDokter = append(IDDokter, v.Dokter)
|
|
||||||
idSubspesialis = v.SubSpesialis
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
namaDokter, err := dokter.GetNamaLengkapDokter(IDDokter)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
listSubspesialis, err := dokter.GetSubspesialisByID(idSubspesialis)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var res *jadwal_dokter.ResponseListHari
|
|
||||||
|
|
||||||
for _, k := range namaDokter {
|
|
||||||
var jadwalDokter []jadwal_dokter.ListJadwalDokter
|
|
||||||
for _, key := range listHari {
|
|
||||||
jadwalDokter = append(jadwalDokter, jadwal_dokter.ListJadwalDokter{
|
|
||||||
NamaHari: key.NamaHari,
|
|
||||||
KodeHari: key.Hari,
|
|
||||||
Waktu: key.Waktu,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
gelarDepan := utils.ReplaceGelar(k.GelarDepan)
|
|
||||||
gelarBelakang := utils.ReplaceGelar(k.GelarBelakang)
|
|
||||||
namaLengkap := gelarDepan + " " + k.NamaLengkap + " " + gelarBelakang
|
|
||||||
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
|
|
||||||
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
|
|
||||||
hfisCode := strings.TrimSpace(k.HFISCode)
|
|
||||||
res = &jadwal_dokter.ResponseListHari{
|
|
||||||
IDSpesialis: listSubspesialis.IDSpesialis,
|
|
||||||
Kode: listSubspesialis.Kode,
|
|
||||||
Spesialis: listSubspesialis.Spesialis,
|
|
||||||
Subspesialis: listSubspesialis.Subspesialis,
|
|
||||||
IDSubspesialis: listSubspesialis.Kode,
|
|
||||||
NamaLengkap: namaLengkap,
|
|
||||||
HFISCode: hfisCode,
|
|
||||||
KodeDPJP: dpjp,
|
|
||||||
JadwalDokter: jadwalDokter,
|
|
||||||
IDDokter: k.ID,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
log.Println("Response :", res)
|
|
||||||
c.JSON(http.StatusOK, res)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSpesialisByDate(c *gin.Context) {
|
|
||||||
tanggal := c.Param("tanggal")
|
|
||||||
date, err := time.Parse("2006-01-02", tanggal)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
hari := date.Local().Weekday().String()
|
|
||||||
hari = utils.ConvertDay(hari)
|
|
||||||
idSpesialis, err := dokter.GetJadwalDokterByDate(hari)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
listSpesialis, err := dokter.GetSpesialisByID(idSpesialis)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
c.JSON(http.StatusOK, listSpesialis)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetJadwalSubspesialisByDate(c *gin.Context) {
|
|
||||||
tanggal := c.Param("tanggal")
|
|
||||||
date, err := time.Parse("2006-01-02", tanggal)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("tanggal: ", tanggal)
|
|
||||||
hari := date.Local().Weekday().String()
|
|
||||||
hari = utils.ConvertDay(hari)
|
|
||||||
idsubspesialis, err := dokter.GetJadwalSubspesialisByDate(hari)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
listSpesialis, err := dokter.GetSubspesialisByIDBatch(idsubspesialis)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
c.JSON(http.StatusOK, listSpesialis)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetDokterBySpesialis(c *gin.Context) {
|
|
||||||
spesialis := c.Param("spesialis")
|
|
||||||
tanggal := c.Param("tanggal")
|
|
||||||
date, err := time.Parse("2006-01-02", tanggal)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
hari := date.Local().Weekday().String()
|
|
||||||
hari = utils.ConvertDay(hari)
|
|
||||||
idDokter, err := dokter.GetJadwalDokterBySpesialis(hari, spesialis)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
namaDokter, err := dokter.GetNamaLengkapDokter(idDokter)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
var resDokter []dktr.ResponseDokter
|
|
||||||
idSpesialis, err := strconv.Atoi(spesialis)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
for _, v := range namaDokter {
|
|
||||||
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
|
|
||||||
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
|
|
||||||
namaLengkap := gelarDepan + " " + v.NamaLengkap + " " + gelarBelakang
|
|
||||||
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
|
|
||||||
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
|
|
||||||
resDokter = append(resDokter, dktr.ResponseDokter{
|
|
||||||
ID: v.ID,
|
|
||||||
NamaLengkap: namaLengkap,
|
|
||||||
Spesialis: idSpesialis,
|
|
||||||
HFISCode: v.HFISCode,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
log.Println("Response :", resDokter)
|
|
||||||
c.JSON(http.StatusOK, resDokter)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetDokterBySubspesialis(c *gin.Context) {
|
|
||||||
subspesialis := c.Param("subspesialis")
|
|
||||||
tanggal := c.Param("tanggal")
|
|
||||||
date, err := time.Parse("2006-01-02", tanggal)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("subspesialis: ", subspesialis)
|
|
||||||
log.Println("tanggal: ", tanggal)
|
|
||||||
|
|
||||||
hari := date.Local().Weekday().String()
|
|
||||||
hari = utils.ConvertDay(hari)
|
|
||||||
idDokter, err := dokter.GetJadwalDokterBySubpesialis(hari, subspesialis)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
namaDokter, err := dokter.GetNamaLengkapDokter(idDokter)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
var resDokter []dktr.ResponseDokterNew
|
|
||||||
idSubspesialis, err := strconv.Atoi(subspesialis)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
listSubspesialis, err := dokter.GetSubspesialisByID(idSubspesialis)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, v := range namaDokter {
|
|
||||||
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
|
|
||||||
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
|
|
||||||
namaLengkap := gelarDepan + " " + v.NamaLengkap + " " + gelarBelakang
|
|
||||||
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
|
|
||||||
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
|
|
||||||
resDokter = append(resDokter, dktr.ResponseDokterNew{
|
|
||||||
ID: v.ID,
|
|
||||||
NamaLengkap: namaLengkap,
|
|
||||||
Subspesialis: idSubspesialis,
|
|
||||||
HFISCode: v.HFISCode,
|
|
||||||
KodePoli: listSubspesialis.Kode,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
log.Println("Response :", resDokter)
|
|
||||||
c.JSON(http.StatusOK, resDokter)
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,6 @@ package jadwal_dokter
|
|||||||
import (
|
import (
|
||||||
"bridging-rssa/docs"
|
"bridging-rssa/docs"
|
||||||
"bridging-rssa/models/bpjs/jadwal_dokter"
|
"bridging-rssa/models/bpjs/jadwal_dokter"
|
||||||
"bridging-rssa/models/config"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
@@ -11,13 +10,13 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, tanggal string, headers map[string]string) (*[]jadwal_dokter.ListDokter, error) {
|
func JadwalDokterGetResponse(url string, secretKey string, cons_id string, User_keys string, tstamp string, X_signature string, kdPoly string, tanggal string, headers map[string]string) (*[]jadwal_dokter.ListDokter, error) {
|
||||||
param := "/jadwaldokter/kodepoli/" + kdPoly + "/tanggal/" + tanggal
|
param := "/jadwaldokter/kodepoli/" + kdPoly + "/tanggal/" + tanggal
|
||||||
url += param
|
url += param
|
||||||
log.Println("URL", url)
|
log.Println("URL", url)
|
||||||
req, err := http.NewRequest("GET", url, nil)
|
req, err := http.NewRequest("GET", url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error creating request: %v", err)
|
log.Fatalf("Error creating request: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for key, value := range headers {
|
for key, value := range headers {
|
||||||
@@ -28,11 +27,11 @@ func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, t
|
|||||||
client := http.Client{}
|
client := http.Client{}
|
||||||
response, err := client.Do(req)
|
response, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error making external API request: %v", err)
|
log.Fatalf("Error making external API request: %v", err)
|
||||||
}
|
}
|
||||||
log.Println("RESPONSE: ", response)
|
log.Println("RESPONSE: ", response)
|
||||||
|
|
||||||
key := header.ConsID + header.SecretKey + header.TimeStamp
|
key := cons_id + secretKey + tstamp
|
||||||
res, err := io.ReadAll(response.Body)
|
res, err := io.ReadAll(response.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
@@ -41,7 +40,7 @@ func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, t
|
|||||||
var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw
|
var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw
|
||||||
err = json.Unmarshal([]byte(res), &jadwalDokterRaw)
|
err = json.Unmarshal([]byte(res), &jadwalDokterRaw)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error Unmarshaling: %v", err)
|
log.Fatalf("Error Unmarshaling: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if jadwalDokterRaw.MetaData.Code == 201 {
|
if jadwalDokterRaw.MetaData.Code == 201 {
|
||||||
@@ -51,16 +50,19 @@ func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, t
|
|||||||
|
|
||||||
dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response)
|
dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error Decrypt: %v", err)
|
log.Fatalf("Error Decrypt: %v", err)
|
||||||
|
log.Println("res: ", dataResp)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var listDokter []jadwal_dokter.ListDokter
|
var listDokter []jadwal_dokter.ListDokter
|
||||||
|
|
||||||
log.Println("dataresp: ", dataResp)
|
log.Println("dataresp: ", dataResp)
|
||||||
|
|
||||||
|
// err = mapstructure.Decode(dataResp, &listDokter)
|
||||||
err = json.Unmarshal([]byte(dataResp), &listDokter)
|
err = json.Unmarshal([]byte(dataResp), &listDokter)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error Decode: %v", err)
|
log.Fatalf("Error Decode: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Println("res: ", &listDokter)
|
log.Println("res: ", &listDokter)
|
||||||
|
|||||||
@@ -1,363 +0,0 @@
|
|||||||
package suratkontrol
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bridging-rssa/docs"
|
|
||||||
suratkontrol "bridging-rssa/models/bpjs/surat_kontrol"
|
|
||||||
"bridging-rssa/models/config"
|
|
||||||
"bytes"
|
|
||||||
"encoding/json"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"io"
|
|
||||||
"log"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
func PostData(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (*suratkontrol.Response, error) {
|
|
||||||
log.Println("URL", url)
|
|
||||||
|
|
||||||
reqMarshall, err := json.Marshal(request)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error json marshal: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("REQUEST: ", string(reqMarshall))
|
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", url, bytes.NewReader(reqMarshall))
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error creating request: %v", err)
|
|
||||||
return nil, 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)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
log.Println("RESPONSE: ", response)
|
|
||||||
|
|
||||||
key := header.ConsID + header.SecretKey + header.TimeStamp
|
|
||||||
res, err := io.ReadAll(response.Body)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("Res:", string(res))
|
|
||||||
|
|
||||||
var resSuratKontrolRaw suratkontrol.ResponseRaw
|
|
||||||
err = json.Unmarshal([]byte(string(res)), &resSuratKontrolRaw)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Unmarshaling: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("ResponseRaw : ", resSuratKontrolRaw)
|
|
||||||
|
|
||||||
responses := &suratkontrol.Response{}
|
|
||||||
if resSuratKontrolRaw.MetaData.Code != "200" {
|
|
||||||
errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
|
|
||||||
log.Printf("error : %v", errMsg)
|
|
||||||
responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code
|
|
||||||
responses.MetaData.Message = resSuratKontrolRaw.MetaData.Message
|
|
||||||
log.Println("responses: ", responses)
|
|
||||||
return responses, errMsg
|
|
||||||
}
|
|
||||||
|
|
||||||
dataResp, err := docs.StringDecrypt(key, resSuratKontrolRaw.Response)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Decrypt: %v", err)
|
|
||||||
log.Println("res: ", dataResp)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var resSuratKontrol suratkontrol.ResponseSuratKontrol
|
|
||||||
|
|
||||||
log.Println("dataresp: ", dataResp)
|
|
||||||
|
|
||||||
err = json.Unmarshal([]byte(dataResp), &resSuratKontrol)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Decode: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
responses = &suratkontrol.Response{
|
|
||||||
MetaData: resSuratKontrolRaw.MetaData,
|
|
||||||
Response: resSuratKontrol,
|
|
||||||
}
|
|
||||||
|
|
||||||
return responses, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (*suratkontrol.Response, error) {
|
|
||||||
log.Println("URL", url)
|
|
||||||
|
|
||||||
reqMarshall, err := json.Marshal(request)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error json marshal: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("REQUEST: ", string(reqMarshall))
|
|
||||||
|
|
||||||
req, err := http.NewRequest("PUT", url, bytes.NewReader(reqMarshall))
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error creating request: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
for key, value := range headers {
|
|
||||||
req.Header.Set(key, value)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("REQ", req.Header)
|
|
||||||
client := http.Client{
|
|
||||||
Timeout: 10 * time.Second,
|
|
||||||
}
|
|
||||||
responses := &suratkontrol.Response{}
|
|
||||||
response, err := client.Do(req)
|
|
||||||
if err != nil {
|
|
||||||
if strings.Contains(strings.ToLower(err.Error()), "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)
|
|
||||||
return responses, err
|
|
||||||
}
|
|
||||||
log.Printf("Error making external API request: %v", err)
|
|
||||||
return responses, err
|
|
||||||
}
|
|
||||||
log.Println("RESPONSE: ", response)
|
|
||||||
|
|
||||||
if response.StatusCode == http.StatusGatewayTimeout { // 504
|
|
||||||
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()
|
|
||||||
log.Println("responses: ", responses)
|
|
||||||
return responses, err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("RESPONSE: ", response)
|
|
||||||
|
|
||||||
key := header.ConsID + header.SecretKey + header.TimeStamp
|
|
||||||
res, err := io.ReadAll(response.Body)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var resSuratKontrolRaw suratkontrol.ResponseRawUpper
|
|
||||||
err = json.Unmarshal([]byte(res), &resSuratKontrolRaw)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Unmarshaling: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if resSuratKontrolRaw.MetaData.Code != "200" {
|
|
||||||
errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
|
|
||||||
log.Printf("error : %v", errMsg)
|
|
||||||
responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code
|
|
||||||
responses.MetaData.Message = resSuratKontrolRaw.MetaData.Message
|
|
||||||
log.Println("responses: ", responses)
|
|
||||||
return responses, errMsg
|
|
||||||
}
|
|
||||||
|
|
||||||
dataResp, err := docs.StringDecrypt(key, resSuratKontrolRaw.Response)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Decrypt: %v", err)
|
|
||||||
log.Println("res: ", dataResp)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var resSuratKontrol *suratkontrol.ResponseSuratKontrol
|
|
||||||
|
|
||||||
log.Println("dataresp: ", dataResp)
|
|
||||||
|
|
||||||
err = json.Unmarshal([]byte(dataResp), &resSuratKontrol)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Decode: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
responses = &suratkontrol.Response{
|
|
||||||
MetaData: resSuratKontrolRaw.MetaData,
|
|
||||||
Response: *resSuratKontrol,
|
|
||||||
}
|
|
||||||
|
|
||||||
return responses, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (*suratkontrol.Response, error) {
|
|
||||||
log.Println("URL", url)
|
|
||||||
|
|
||||||
reqMarshall, err := json.Marshal(request)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error json marshal: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("REQUEST: ", string(reqMarshall))
|
|
||||||
|
|
||||||
req, err := http.NewRequest("DELETE", url, bytes.NewReader(reqMarshall))
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error creating request: %v", err)
|
|
||||||
return nil, 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)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
log.Println("RESPONSE: ", response)
|
|
||||||
|
|
||||||
res, err := io.ReadAll(response.Body)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var resSuratKontrolRaw suratkontrol.ResponseRawUpper
|
|
||||||
err = json.Unmarshal([]byte(res), &resSuratKontrolRaw)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Unmarshaling: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
responses := &suratkontrol.Response{
|
|
||||||
MetaData: resSuratKontrolRaw.MetaData,
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("res: ", responses)
|
|
||||||
|
|
||||||
return responses, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ResponseGetNomorSuratKontrol(url string, header *config.Header, headers map[string]string) (*suratkontrol.ResponseGetSuratKontrol, 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 resNoSuratKontrolRaw suratkontrol.ResponseRawUpper
|
|
||||||
err = json.Unmarshal([]byte(string(res)), &resNoSuratKontrolRaw)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Unmarshaling: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
dataResp, err := docs.StringDecrypt(key, resNoSuratKontrolRaw.Response)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Decrypt: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("dataresp: ", dataResp)
|
|
||||||
|
|
||||||
var responseNoSuratKontrol suratkontrol.ResponseNomorSuratKontrol
|
|
||||||
err = json.Unmarshal([]byte(dataResp), &responseNoSuratKontrol)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Decode: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
responses := &suratkontrol.ResponseGetSuratKontrol{
|
|
||||||
MetaData: resNoSuratKontrolRaw.MetaData,
|
|
||||||
Response: responseNoSuratKontrol,
|
|
||||||
}
|
|
||||||
log.Println("res: ", responses)
|
|
||||||
|
|
||||||
return responses, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map[string]string) (*suratkontrol.ResponseGetSuratKontrolBySEP, 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)
|
|
||||||
}
|
|
||||||
|
|
||||||
var resSurKonSEP suratkontrol.ResponseRawUpper
|
|
||||||
err = json.Unmarshal([]byte(string(res)), &resSurKonSEP)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Unmarshaling: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
dataResp, err := docs.StringDecrypt(key, resSurKonSEP.Response)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Decrypt: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var responseNoSuratKontrol suratkontrol.ResponseSuratKontrolBySEP
|
|
||||||
log.Println("dataresp: ", dataResp)
|
|
||||||
|
|
||||||
err = json.Unmarshal([]byte(dataResp), &responseNoSuratKontrol)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error Decode: %v", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("res: ", resSurKonSEP)
|
|
||||||
|
|
||||||
responses := &suratkontrol.ResponseGetSuratKontrolBySEP{
|
|
||||||
MetaData: resSurKonSEP.MetaData,
|
|
||||||
Response: responseNoSuratKontrol,
|
|
||||||
}
|
|
||||||
|
|
||||||
return responses, nil
|
|
||||||
}
|
|
||||||
@@ -1,658 +0,0 @@
|
|||||||
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")
|
|
||||||
endpoint := os.Getenv("SURAT_KONTROL_RS")
|
|
||||||
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.SetHeader(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")
|
|
||||||
endpoint := os.Getenv("SURAT_KONTROL_RS")
|
|
||||||
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.SetHeader(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")
|
|
||||||
endpoint := os.Getenv("SURAT_KONTROL_RS")
|
|
||||||
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.SetHeader(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")
|
|
||||||
endpoint := os.Getenv("SURAT_KONTROL_RS")
|
|
||||||
param := os.Getenv("GET_NOMOR_SURAT_KONTROL")
|
|
||||||
noSurat := c.Param("noSuratKontrol")
|
|
||||||
url := baseUrl + endpoint + param + noSurat
|
|
||||||
|
|
||||||
conf := config.ConfigBpjs{}
|
|
||||||
|
|
||||||
header := cfg.SetHeader(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")
|
|
||||||
endpoint := os.Getenv("SURAT_KONTROL_RS")
|
|
||||||
param := os.Getenv("GET_SURAT_KONTROL_SEP")
|
|
||||||
noSEP := c.Param("noSEP")
|
|
||||||
url := baseUrl + endpoint + param + noSEP
|
|
||||||
|
|
||||||
conf := config.ConfigBpjs{}
|
|
||||||
|
|
||||||
header := cfg.SetHeader(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, &sk.MetadataString{
|
|
||||||
Code: "",
|
|
||||||
Message: err.Error(),
|
|
||||||
})
|
|
||||||
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, &sk.MetadataString{
|
|
||||||
Code: "",
|
|
||||||
Message: err.Error(),
|
|
||||||
})
|
|
||||||
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,
|
|
||||||
NoRM: v.NoRM,
|
|
||||||
KodeDiagnosa: v.KodeDiagnosa,
|
|
||||||
NamaDiagnosa: v.NamaDiagnosa,
|
|
||||||
TipeSurKon: v.TipeSurKon,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
c.JSON(http.StatusOK, resSurKon)
|
|
||||||
}
|
|
||||||
@@ -4,12 +4,10 @@ import (
|
|||||||
"bridging-rssa/config"
|
"bridging-rssa/config"
|
||||||
"bridging-rssa/handlers/bpjs"
|
"bridging-rssa/handlers/bpjs"
|
||||||
"bridging-rssa/handlers/bpjs/jadwal_dokter"
|
"bridging-rssa/handlers/bpjs/jadwal_dokter"
|
||||||
suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol"
|
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
_ "bridging-rssa/docs"
|
_ "bridging-rssa/docs"
|
||||||
|
|
||||||
"github.com/gin-contrib/cors"
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/joho/godotenv"
|
"github.com/joho/godotenv"
|
||||||
swaggerFiles "github.com/swaggo/files"
|
swaggerFiles "github.com/swaggo/files"
|
||||||
@@ -42,37 +40,12 @@ func main() {
|
|||||||
jadwalDokter := v1.Group("/jadwaldokter")
|
jadwalDokter := v1.Group("/jadwaldokter")
|
||||||
{
|
{
|
||||||
jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
|
jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
|
||||||
jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP)
|
|
||||||
// jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
|
|
||||||
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetJadwalSubspesialisByDate)
|
|
||||||
jadwalDokter.GET("/tanggal/:tanggal/spesialis/:spesialis", jadwal_dokter.GetDokterBySpesialis)
|
|
||||||
jadwalDokter.GET("/tanggal/:tanggal/subspesialis/:subspesialis", jadwal_dokter.GetDokterBySubspesialis)
|
|
||||||
}
|
|
||||||
|
|
||||||
suratKontrol := v1.Group("/suratkontrol")
|
|
||||||
{
|
|
||||||
suratKontrol.GET("/", suratkontrol.GetDataSurKon)
|
|
||||||
suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID)
|
|
||||||
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
|
|
||||||
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
|
|
||||||
suratKontrol.GET("/printSurKon/:idxdaftar", suratkontrol.PrintSurKon)
|
|
||||||
suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
|
|
||||||
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
|
|
||||||
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
|
|
||||||
suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
r.Use(cors.New(cors.Config{
|
|
||||||
AllowOrigins: []string{"*"}, // or specific domains like "http://example.com"
|
|
||||||
AllowMethods: []string{"GET", "POST", "PUT", "DELETE"},
|
|
||||||
AllowHeaders: []string{"Origin", "Content-Type"},
|
|
||||||
AllowCredentials: true,
|
|
||||||
}))
|
|
||||||
|
|
||||||
log.Println("JALAN DI PORT : 8081")
|
log.Println("JALAN DI PORT : 8081")
|
||||||
err = r.Run(":8081")
|
err = r.Run(":8081")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -31,42 +31,23 @@ type DaftarSpesialis struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type JadwalDokterSatuData struct {
|
type JadwalDokterSatuData struct {
|
||||||
ID int `gorm:"column:id" json:"id"`
|
ID int `gorm:"id" json:"id"`
|
||||||
Hari int `gorm:"column:Hari" json:"Hari"`
|
Hari int `gorm:"Hari" json:"Hari"`
|
||||||
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
|
NamaHari string `gorm:"Nama_hari" json:"Nama_hari"`
|
||||||
Waktu string `gorm:"column:Waktu" json:"Waktu"`
|
Waktu string `gorm:"Waktu" json:"Waktu"`
|
||||||
Dokter string `gorm:"column:Dokter" json:"Dokter"`
|
Dokter string `gorm:"Dokter" json:"Dokter"`
|
||||||
Spesialis int `gorm:"column:Spesialis" json:"Spesialis"`
|
Spesialis int `gorm:"Spesialis" json:"Spesialis"`
|
||||||
SubSpesialis int `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
|
SubSpesialis int `gorm:"Sub_spesialis" json:"Sub_spesialis"`
|
||||||
Status int `gorm:"column:Status" json:"Status"`
|
Status int `gorm:"Status" json:"Status"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type JadwalDokterTempSatuData struct {
|
type JadwalDokterTempSatuData struct {
|
||||||
ID int `gorm:"column:id" json:"id"`
|
ID int `gorm:"id" json:"id"`
|
||||||
Hari int `gorm:"column:Hari" json:"Hari"`
|
Hari int `gorm:"Hari" json:"Hari"`
|
||||||
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
|
NamaHari string `gorm:"Nama_hari" json:"Nama_hari"`
|
||||||
Waktu string `gorm:"column:Waktu" json:"Waktu"`
|
Waktu string `gorm:"Waktu" json:"Waktu"`
|
||||||
Dokter string `gorm:"column:Dokter" json:"Dokter"`
|
Dokter string `gorm:"Dokter" json:"Dokter"`
|
||||||
Spesialis string `gorm:"column:Spesialis" json:"Spesialis"`
|
Spesialis string `gorm:"Spesialis" json:"Spesialis"`
|
||||||
SubSpesialis string `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
|
SubSpesialis string `gorm:"Sub_spesialis" json:"Sub_spesialis"`
|
||||||
Status int `gorm:"column:Status" json:"Status"`
|
Status int `gorm:"Status" json:"Status"`
|
||||||
}
|
|
||||||
|
|
||||||
type ResponseListHari struct {
|
|
||||||
IDSpesialis int `json:"id_spesialis"`
|
|
||||||
Kode string `json:"Kode"`
|
|
||||||
Spesialis string `json:"Spesialis"`
|
|
||||||
Subspesialis string `json:"Subspesialis"`
|
|
||||||
IDSubspesialis string `json:"id_subspesialis"`
|
|
||||||
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"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ListJadwalDokter struct {
|
|
||||||
NamaHari string `json:"Nama_hari"`
|
|
||||||
KodeHari int `json:"Kode_hari"`
|
|
||||||
Waktu string `json:"Waktu"`
|
|
||||||
}
|
}
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
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"`
|
|
||||||
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"`
|
|
||||||
}
|
|
||||||
@@ -1,281 +0,0 @@
|
|||||||
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 {
|
|
||||||
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"`
|
|
||||||
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"`
|
|
||||||
}
|
|
||||||
+8
-12
@@ -1,18 +1,14 @@
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
type ConfigBpjs struct {
|
type ConfigBpjs struct {
|
||||||
Cons_id string
|
Cons_id string
|
||||||
Secret_key string
|
Secret_key string
|
||||||
User_key string
|
User_key string
|
||||||
Cons_id_dev string
|
|
||||||
Secret_key_dev string
|
|
||||||
User_key_dev string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Header struct {
|
type ConfigSatuSehat struct {
|
||||||
ConsID string
|
Org_id string
|
||||||
SecretKey string
|
Client_id string
|
||||||
UserKey string
|
Client_secret string
|
||||||
TimeStamp string
|
Token string
|
||||||
XSignature string
|
|
||||||
}
|
}
|
||||||
@@ -9,26 +9,3 @@ type DaftarDokterRes struct {
|
|||||||
ID string `gorm:"column:id" json:"id"`
|
ID string `gorm:"column:id" json:"id"`
|
||||||
HfisCode int `gorm:"column:HFIS_code" json:"HFIS_code"`
|
HfisCode int `gorm:"column:HFIS_code" json:"HFIS_code"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type NamaLengkap struct {
|
|
||||||
ID string `gorm:"column:id" json:"id"`
|
|
||||||
GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"`
|
|
||||||
NamaLengkap string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"`
|
|
||||||
GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"`
|
|
||||||
HFISCode string `gorm:"column:HFIS_code" json:"HFIS_code"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResponseDokter struct {
|
|
||||||
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_dokter"`
|
|
||||||
NamaLengkap string `json:"nama_lengkap"`
|
|
||||||
Subspesialis int `json:"subspesialis"`
|
|
||||||
HFISCode string `json:"HFIS_code"`
|
|
||||||
KodePoli string `json:"kode_poli"`
|
|
||||||
}
|
|
||||||
@@ -4,4 +4,4 @@ type DaftarSpesialis struct {
|
|||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
||||||
Kode string `json:"Kode"`
|
Kode string `json:"Kode"`
|
||||||
Spesialis string `json:"Spesialis"`
|
Spesialis string `json:"Spesialis"`
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package dokter
|
package dokter
|
||||||
|
|
||||||
type DaftarSubspesialis struct {
|
type DaftarSubspesialis struct {
|
||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
||||||
Kode string `json:"Kode"`
|
Kode string `json:"Kode"`
|
||||||
Subspesialis string `json:"Subspesialis"`
|
Subspesialis string `json:"Subspesialis"`
|
||||||
IDSpesialis int `json:"FK_daftar_spesialis_ID" gorm:"column:FK_daftar_spesialis_ID"`
|
FKDaftarSpesialisID int `json:"FK_daftar_spesialis_ID" gorm:"column:FK_daftar_spesialis_ID"`
|
||||||
Spesialis string `gorm:"column:Spesialis" json:"Spesialis"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package satusehat
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/go-playground/validator/v10"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Procedure struct {
|
||||||
|
VisitId int `db:"visit_id" json:"visit_id" validate:"required"`
|
||||||
|
ProcedureCode string `db:"procedure_code" json:"procedure_code" validate:"required"`
|
||||||
|
ProcedureName string `db:"procedure_name" json:"procedure_name" validate:"required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Procedure) Invalid() bool {
|
||||||
|
val := validator.New()
|
||||||
|
err := val.Struct(o)
|
||||||
|
if err != nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
package satusehat
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/go-playground/validator/v10"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Visit struct {
|
||||||
|
VisitID string
|
||||||
|
PatientSatusehatID string
|
||||||
|
PatientNIK string
|
||||||
|
PatientName string
|
||||||
|
PatientSex string
|
||||||
|
PatientBirthDate *time.Time
|
||||||
|
PatientAddress string
|
||||||
|
PractitionerNIK string
|
||||||
|
PractitionerSatusehatID string
|
||||||
|
PractitionerName string
|
||||||
|
ClinicSatusehatID string
|
||||||
|
ClinicName string
|
||||||
|
Systole string
|
||||||
|
Diastole string
|
||||||
|
HeartRate string
|
||||||
|
RespirationRate string
|
||||||
|
OxygenSaturation string
|
||||||
|
Temperature string
|
||||||
|
PeriodStartDate time.Time
|
||||||
|
PeriodEndDate time.Time
|
||||||
|
ArrivedStartTime *time.Time
|
||||||
|
ArrivedEndTime *time.Time
|
||||||
|
InProgressStartTime *time.Time
|
||||||
|
InProgressEndTime *time.Time
|
||||||
|
FinishStartTime *time.Time
|
||||||
|
FinishEndTime *time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
type VisitDetail struct {
|
||||||
|
VisitId string `json:"visit_id" validate:"required"`
|
||||||
|
PatientSatusehatId string `json:"patient_satusehat_id" validate:"required"`
|
||||||
|
PatientNik string `json:"patient_nik" `
|
||||||
|
PatientName string `json:"patient_name" validate:"required"`
|
||||||
|
PatientSex string `json:"patient_sex"`
|
||||||
|
PatientBirthDate *time.Time `json:"patient_birth_date"`
|
||||||
|
PatientAddress string `json:"patient_address"`
|
||||||
|
PractitionerNik string `json:"practitioner_nik"`
|
||||||
|
PractitionerId string `json:"practitioner_satusehat_id" validate:"required"`
|
||||||
|
PractitionerName string `json:"practitioner_name" validate:"required"`
|
||||||
|
ClinicName string `json:"clinic_name" validate:"required"`
|
||||||
|
ClinicSatuSehatId string `json:"clinic_id" validate:"required"`
|
||||||
|
PeriodStartDate time.Time `json:"period_start_date" validate:"required"`
|
||||||
|
PeriodEndDate time.Time `json:"period_end_date" validate:"required"`
|
||||||
|
ArrivedStartTime *time.Time `json:"arrived_start_time" validate:"required"`
|
||||||
|
ArrivedEndTime *time.Time `json:"arrived_end_time" validate:"required"`
|
||||||
|
InProgressStartTime *time.Time `json:"in_progress_start_time" validate:"required"`
|
||||||
|
InProgressEndTime *time.Time `json:"in_progress_end_time" validate:"required"`
|
||||||
|
FinishStartTime *time.Time `json:"finish_start_time" validate:"required"`
|
||||||
|
FinishEndTime *time.Time `json:"finish_end_time" validate:"required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v VisitDetail) Invalid() error {
|
||||||
|
val := validator.New()
|
||||||
|
return val.Struct(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
type VitalSign struct {
|
||||||
|
Systole string `json:"sistole"`
|
||||||
|
Diastole string `json:"diastole"`
|
||||||
|
HeartRate string `json:"heart_rate"`
|
||||||
|
RespirationRate string `json:"respiration_rate"`
|
||||||
|
Temperature string `json:"temperature"`
|
||||||
|
OxygenSaturation string `json:"oxygen_saturation"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *Visit) VitalSign() VitalSign {
|
||||||
|
return VitalSign{
|
||||||
|
Systole: v.Systole,
|
||||||
|
Diastole: v.Diastole,
|
||||||
|
HeartRate: v.HeartRate,
|
||||||
|
RespirationRate: v.RespirationRate,
|
||||||
|
Temperature: v.Temperature,
|
||||||
|
OxygenSaturation: v.OxygenSaturation,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *Visit) VisitDetail() VisitDetail {
|
||||||
|
return VisitDetail{
|
||||||
|
VisitId: v.VisitID,
|
||||||
|
PatientSatusehatId: v.PatientSatusehatID,
|
||||||
|
PatientNik: v.PatientNIK,
|
||||||
|
PatientName: v.PatientName,
|
||||||
|
PatientSex: v.PatientSex,
|
||||||
|
PatientBirthDate: v.PatientBirthDate,
|
||||||
|
PatientAddress: v.PatientAddress,
|
||||||
|
ClinicName: v.ClinicName,
|
||||||
|
ClinicSatuSehatId: v.ClinicSatusehatID,
|
||||||
|
PeriodStartDate: v.PeriodStartDate,
|
||||||
|
PeriodEndDate: v.PeriodEndDate,
|
||||||
|
PractitionerNik: v.PractitionerNIK,
|
||||||
|
PractitionerId: v.PractitionerSatusehatID,
|
||||||
|
PractitionerName: v.PractitionerName,
|
||||||
|
ArrivedStartTime: v.ArrivedStartTime,
|
||||||
|
ArrivedEndTime: v.ArrivedEndTime,
|
||||||
|
InProgressStartTime: v.InProgressStartTime,
|
||||||
|
InProgressEndTime: v.InProgressEndTime,
|
||||||
|
FinishStartTime: v.FinishStartTime,
|
||||||
|
FinishEndTime: v.FinishEndTime,
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user