Compare commits
51
Commits
@@ -4,8 +4,8 @@ SATUDATA_PASSWORD=stim*RS54
|
|||||||
SATUDATA_NAME=satu_db
|
SATUDATA_NAME=satu_db
|
||||||
SATUDATA_PORT=5000
|
SATUDATA_PORT=5000
|
||||||
|
|
||||||
BASEURL_BPJS=https://apijkn.bpjs-kesehatan.go.id/
|
BASEURL_BPJS=https://apijkn.bpjs-kesehatan.go.id
|
||||||
ANTREAN_RS=antreanrs
|
ANTREAN_RS=/antreanrs
|
||||||
CONS_ID=5257
|
CONS_ID=5257
|
||||||
USER_KEY=4cf1cbef8c008440bbe9ef9ba789e482
|
USER_KEY=4cf1cbef8c008440bbe9ef9ba789e482
|
||||||
SECRET_KEY=1bV363512D
|
SECRET_KEY=1bV363512D
|
||||||
@@ -13,12 +13,23 @@ SECRET_KEY=1bV363512D
|
|||||||
CONS_ID_DEV=16041
|
CONS_ID_DEV=16041
|
||||||
USER_KEY_DEV=467a2817fde5070f66c9a41fbeb8dc2c
|
USER_KEY_DEV=467a2817fde5070f66c9a41fbeb8dc2c
|
||||||
SECRET_KEY_DEV=8pP3D5431E
|
SECRET_KEY_DEV=8pP3D5431E
|
||||||
|
USER_KEY_ICARE=1cd65acaa349684be6353bea5149e2e2
|
||||||
|
|
||||||
|
BASEURL_BPJS_DEV=https://apijkn-dev.bpjs-kesehatan.go.id
|
||||||
|
VCLAIM_RS_DEV=/vclaim-rest-dev
|
||||||
|
SURAT_KONTROL_RS=/vclaim-rest
|
||||||
|
I_CARE_JKN=/wsihs
|
||||||
|
I_CARE_JKN_DEV=/ihs_dev
|
||||||
|
|
||||||
BASEURL_BPJS_DEV=https://apijkn-dev.bpjs-kesehatan.go.id/
|
|
||||||
SURAT_KONTROL_RS=vclaim-rest
|
|
||||||
INSERT_SURAT_KONTROL=/RencanaKontrol/insert
|
INSERT_SURAT_KONTROL=/RencanaKontrol/insert
|
||||||
UPDATE_SURAT_KONTROL=/RencanaKontrol/Update
|
UPDATE_SURAT_KONTROL=/RencanaKontrol/Update
|
||||||
DELETE_SURAT_KONTROL=/RencanaKontrol/Delete
|
DELETE_SURAT_KONTROL=/RencanaKontrol/Delete
|
||||||
GET_NOMOR_SURAT_KONTROL=/RencanaKontrol/noSuratKontrol/
|
GET_NOMOR_SURAT_KONTROL=/RencanaKontrol/noSuratKontrol/
|
||||||
GET_SURAT_KONTROL_SEP=/RencanaKontrol/nosep/
|
GET_SURAT_KONTROL_SEP=/RencanaKontrol/nosep/
|
||||||
|
GET_NOMOR_RUJUKAN=/Rujukan/
|
||||||
|
GET_NOMOR_RUJUKAN_BATCH=/Rujukan/List/Peserta/
|
||||||
|
|
||||||
|
GET_FKRTL=/api/rs/validate
|
||||||
|
GET_FKTP=/api/pcare/validate
|
||||||
|
|
||||||
|
|
||||||
Generated
+8
@@ -0,0 +1,8 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
Generated
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="Go" enabled="true">
|
||||||
|
<buildTags>
|
||||||
|
<option name="os" value="linux" />
|
||||||
|
</buildTags>
|
||||||
|
</component>
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
Generated
+8
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/api-bpjs-surkon.iml" filepath="$PROJECT_DIR$/.idea/api-bpjs-surkon.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
Generated
+6
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
+5
-1
@@ -12,7 +12,11 @@ RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .
|
|||||||
# RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
|
# RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
RUN apk --no-cache add ca-certificates
|
|
||||||
|
# Set timezone ke Asia/Jakarta
|
||||||
|
ENV TZ=Asia/Jakarta
|
||||||
|
|
||||||
|
RUN apk --no-cache add ca-certificates tzdata
|
||||||
|
|
||||||
WORKDIR /root/
|
WORKDIR /root/
|
||||||
|
|
||||||
|
|||||||
+4
-5
@@ -36,20 +36,19 @@ func ConnectDB() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetHeader(cfg config.ConfigBpjs) *config.Header {
|
func SetHeader(isIcare bool, cfg config.ConfigBpjs) *config.Header {
|
||||||
|
|
||||||
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")
|
||||||
|
|
||||||
|
if isIcare {
|
||||||
|
cfg.User_key = os.Getenv("USER_KEY_ICARE")
|
||||||
|
}
|
||||||
secret := []byte(cfg.Secret_key)
|
secret := []byte(cfg.Secret_key)
|
||||||
message := []byte(cfg.Cons_id + "&" + fmt.Sprint(tstamp))
|
message := []byte(cfg.Cons_id + "&" + fmt.Sprint(tstamp))
|
||||||
hash := hmac.New(sha256.New, secret)
|
hash := hmac.New(sha256.New, secret)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
func GetDokter() ([]dokter.DaftarDokterRes, error) {
|
func GetDokter() ([]dokter.DaftarDokterRes, error) {
|
||||||
var listDokter []dokter.DaftarDokter
|
var listDokter []dokter.DaftarDokter
|
||||||
var res []dokter.DaftarDokterRes
|
var res []dokter.DaftarDokterRes
|
||||||
result := config.SatuDataDB.Debug().Raw(`select "id", "HFIS_code" from "data_pegawai" where "HFIS_code" is not null`).Scan(&listDokter)
|
result := config.SatuDataDB.Raw(`select "id", "HFIS_code" from "data_pegawai" where "HFIS_code" is not null`).Scan(&listDokter)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
||||||
log.Fatalf("Error get data : %v", result.Error)
|
log.Fatalf("Error get data : %v", result.Error)
|
||||||
@@ -43,7 +43,7 @@ func GetDokter() ([]dokter.DaftarDokterRes, error) {
|
|||||||
|
|
||||||
func GetNamaLengkapDokter(idDokter []string) ([]dokter.NamaLengkap, error) {
|
func GetNamaLengkapDokter(idDokter []string) ([]dokter.NamaLengkap, error) {
|
||||||
var namaDokter []dokter.NamaLengkap
|
var namaDokter []dokter.NamaLengkap
|
||||||
result := config.SatuDataDB.Debug().Raw(`select dp.id,
|
result := config.SatuDataDB.Raw(`select dp.id,
|
||||||
array(
|
array(
|
||||||
select dgd. "Gelar_depan"
|
select dgd. "Gelar_depan"
|
||||||
from data_pegawai_daftar_gelar_depan dpdgd
|
from data_pegawai_daftar_gelar_depan dpdgd
|
||||||
@@ -55,7 +55,8 @@ func GetNamaLengkapDokter(idDokter []string) ([]dokter.NamaLengkap, error) {
|
|||||||
from data_pegawai_daftar_gelar_belakang dpdgb
|
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
|
left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id
|
||||||
) AS gelarbelakang,
|
) AS gelarbelakang,
|
||||||
dp."HFIS_code"
|
dp."HFIS_code",
|
||||||
|
dp."Code_dpjp" as "DPJP_code"
|
||||||
from "data_pegawai" dp
|
from "data_pegawai" dp
|
||||||
left join data_ktp dk on dp."KTP" = dk.id
|
left join data_ktp dk on dp."KTP" = dk.id
|
||||||
WHERE dp.id in ?`, idDokter).Find(&namaDokter)
|
WHERE dp.id in ?`, idDokter).Find(&namaDokter)
|
||||||
@@ -70,3 +71,19 @@ func GetNamaLengkapDokter(idDokter []string) ([]dokter.NamaLengkap, error) {
|
|||||||
|
|
||||||
return namaDokter, nil
|
return namaDokter, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetHFISCode(dpjp string) (*dokter.DaftarDokter, error) {
|
||||||
|
var dataDokter *dokter.DaftarDokter
|
||||||
|
err := config.SatuDataDB.Raw(`select dp."id", dp."HFIS_code" from data_pegawai dp where dp."Code_dpjp" = ?`, dpjp).First(&dataDokter).Error
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
errMsg := errors.New("Data tidak ditemukan")
|
||||||
|
log.Println("error :", errMsg)
|
||||||
|
return nil, errMsg
|
||||||
|
}
|
||||||
|
log.Println("error :", err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
log.Println("Daftar Dokter :", dataDokter)
|
||||||
|
return dataDokter, nil
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package dokter
|
|||||||
import (
|
import (
|
||||||
"bridging-rssa/config"
|
"bridging-rssa/config"
|
||||||
"bridging-rssa/models/bpjs/jadwal_dokter"
|
"bridging-rssa/models/bpjs/jadwal_dokter"
|
||||||
|
"gorm.io/gorm"
|
||||||
"log"
|
"log"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
@@ -11,7 +12,7 @@ import (
|
|||||||
|
|
||||||
func GetJadwalDokterByDPJP(dpjp string) (string, error) {
|
func GetJadwalDokterByDPJP(dpjp string) (string, error) {
|
||||||
var id string
|
var id string
|
||||||
errSelect := config.SatuDataDB.Debug().Raw(`select "id" from "data_pegawai" where "Code_dpjp" = ?`, dpjp).First(&id).Error
|
errSelect := config.SatuDataDB.Raw(`select "id" from "data_pegawai" where "Code_dpjp" = ?`, dpjp).First(&id).Error
|
||||||
if errSelect != nil {
|
if errSelect != nil {
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
log.Printf("Failed get data : %v", errSelect)
|
||||||
return "", errSelect
|
return "", errSelect
|
||||||
@@ -21,7 +22,7 @@ func GetJadwalDokterByDPJP(dpjp string) (string, error) {
|
|||||||
|
|
||||||
func GetJadwalHariDokterBySpesialis(id string) ([]jadwal_dokter.JadwalDokterSatuData, error) {
|
func GetJadwalHariDokterBySpesialis(id string) ([]jadwal_dokter.JadwalDokterSatuData, error) {
|
||||||
var hari []jadwal_dokter.JadwalDokterSatuData
|
var hari []jadwal_dokter.JadwalDokterSatuData
|
||||||
errSelect := config.SatuDataDB.Debug().Raw(`select * from "daftar_jadwal_dokter" where "Dokter" = ? order by "id"`, id).Scan(&hari).Error
|
errSelect := config.SatuDataDB.Raw(`select * from "daftar_jadwal_dokter" where "Dokter" = ? order by "id"`, id).Scan(&hari).Error
|
||||||
if errSelect != nil {
|
if errSelect != nil {
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
log.Printf("Failed get data : %v", errSelect)
|
||||||
return nil, errSelect
|
return nil, errSelect
|
||||||
@@ -31,7 +32,7 @@ func GetJadwalHariDokterBySpesialis(id string) ([]jadwal_dokter.JadwalDokterSatu
|
|||||||
|
|
||||||
func GetJadwalDokterByIDDokter(hari string) ([]string, error) {
|
func GetJadwalDokterByIDDokter(hari string) ([]string, error) {
|
||||||
var spesialis []string
|
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
|
errSelect := config.SatuDataDB.Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
|
||||||
if errSelect != nil {
|
if errSelect != nil {
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
log.Printf("Failed get data : %v", errSelect)
|
||||||
return nil, errSelect
|
return nil, errSelect
|
||||||
@@ -40,7 +41,7 @@ func GetJadwalDokterByIDDokter(hari string) ([]string, error) {
|
|||||||
}
|
}
|
||||||
func GetJadwalDokterByDate(hari string) ([]string, error) {
|
func GetJadwalDokterByDate(hari string) ([]string, error) {
|
||||||
var spesialis []string
|
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
|
errSelect := config.SatuDataDB.Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
|
||||||
if errSelect != nil {
|
if errSelect != nil {
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
log.Printf("Failed get data : %v", errSelect)
|
||||||
return nil, errSelect
|
return nil, errSelect
|
||||||
@@ -50,7 +51,7 @@ func GetJadwalDokterByDate(hari string) ([]string, error) {
|
|||||||
|
|
||||||
func GetJadwalSubspesialisByDate(hari string) ([]int, error) {
|
func GetJadwalSubspesialisByDate(hari string) ([]int, error) {
|
||||||
var subspesialis []int
|
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
|
errSelect := config.SatuDataDB.Raw(`select distinct "Sub_spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Sub_spesialis"`, hari).Scan(&subspesialis).Error
|
||||||
if errSelect != nil {
|
if errSelect != nil {
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
log.Printf("Failed get data : %v", errSelect)
|
||||||
return nil, errSelect
|
return nil, errSelect
|
||||||
@@ -60,7 +61,7 @@ func GetJadwalSubspesialisByDate(hari string) ([]int, error) {
|
|||||||
|
|
||||||
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
|
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
|
||||||
var listDokter []string
|
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
|
errSelect := config.SatuDataDB.Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Spesialis" = ? order by "Spesialis"`, hari, spesialis).Scan(&listDokter).Error
|
||||||
if errSelect != nil {
|
if errSelect != nil {
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
log.Printf("Failed get data : %v", errSelect)
|
||||||
return nil, errSelect
|
return nil, errSelect
|
||||||
@@ -70,7 +71,7 @@ func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error)
|
|||||||
|
|
||||||
func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) {
|
func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) {
|
||||||
var listDokter []string
|
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
|
errSelect := config.SatuDataDB.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 {
|
if errSelect != nil {
|
||||||
log.Printf("Failed get data : %v", errSelect)
|
log.Printf("Failed get data : %v", errSelect)
|
||||||
return nil, errSelect
|
return nil, errSelect
|
||||||
@@ -79,7 +80,17 @@ func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
func DeleteJadwalDokter() error {
|
func DeleteJadwalDokter() error {
|
||||||
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
|
err := config.SatuDataDB.Exec(`truncate table "daftar_jadwal_dokter"`).Error
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Failed truncate data : %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Println("Success truncate data")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func TruncateDataJadwalDokter() error {
|
||||||
|
err := config.SatuDataDB.Exec(`truncate table "data_jadwal_dokter"`).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed truncate data : %v", err)
|
log.Printf("Failed truncate data : %v", err)
|
||||||
return err
|
return err
|
||||||
@@ -89,7 +100,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.Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed truncate data : %v", err)
|
log.Printf("Failed truncate data : %v", err)
|
||||||
return err
|
return err
|
||||||
@@ -99,7 +110,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.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.Printf("Failed insert data : %v", err)
|
||||||
return err
|
return err
|
||||||
@@ -112,7 +123,17 @@ func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error
|
|||||||
spesialis := strconv.Itoa(reqInsert.Spesialis)
|
spesialis := strconv.Itoa(reqInsert.Spesialis)
|
||||||
subspesialis := strconv.Itoa(reqInsert.SubSpesialis)
|
subspesialis := strconv.Itoa(reqInsert.SubSpesialis)
|
||||||
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.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 {
|
||||||
|
log.Printf("Failed insert data : %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Println("Success insert data")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func InsertDataJadwalDokter(tx *gorm.DB, reqInsert *jadwal_dokter.DataJadwalDokterSatuData) error {
|
||||||
|
err := tx.Debug().Exec(`insert into "data_jadwal_dokter" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Tanggal_jadwal") values (?, ?, ? ,?, ?, ?, ?, ?)`, reqInsert.ID, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.TanggalJadwal).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed insert data : %v", err)
|
log.Printf("Failed insert data : %v", err)
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
func GetSpesialis() ([]dokter.DaftarSpesialis, error) {
|
func GetSpesialis() ([]dokter.DaftarSpesialis, error) {
|
||||||
var daftarSpesialis []dokter.DaftarSpesialis
|
var daftarSpesialis []dokter.DaftarSpesialis
|
||||||
|
|
||||||
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis"`).Find(&daftarSpesialis)
|
result := config.SatuDataDB.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.Printf("Error get data : %v", result.Error)
|
||||||
@@ -27,7 +27,7 @@ func GetSpesialis() ([]dokter.DaftarSpesialis, error) {
|
|||||||
|
|
||||||
func GetSpesialisByID(idSpesialis []string) ([]dokter.DaftarSpesialis, error) {
|
func GetSpesialisByID(idSpesialis []string) ([]dokter.DaftarSpesialis, error) {
|
||||||
var daftarSpesialis []dokter.DaftarSpesialis
|
var daftarSpesialis []dokter.DaftarSpesialis
|
||||||
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis" where "id" in ?`, idSpesialis).Find(&daftarSpesialis)
|
result := config.SatuDataDB.Raw(`select * from "daftar_spesialis" where "id" in ?`, idSpesialis).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.Printf("Error get data : %v", result.Error)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
func GetSubspesialis() ([]dokter.DaftarSubspesialis, error) {
|
func GetSubspesialis() ([]dokter.DaftarSubspesialis, error) {
|
||||||
var daftarSubspesialis []dokter.DaftarSubspesialis
|
var daftarSubspesialis []dokter.DaftarSubspesialis
|
||||||
|
|
||||||
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_subspesialis"`).Find(&daftarSubspesialis)
|
result := config.SatuDataDB.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.Printf("Error get data : %v", result.Error)
|
||||||
@@ -29,7 +29,7 @@ func GetSubspesialis() ([]dokter.DaftarSubspesialis, error) {
|
|||||||
func GetSubspesialisByID(idSubspesialis int) (*dokter.DaftarSubspesialis, error) {
|
func GetSubspesialisByID(idSubspesialis int) (*dokter.DaftarSubspesialis, error) {
|
||||||
var daftarSubspesialis *dokter.DaftarSubspesialis
|
var daftarSubspesialis *dokter.DaftarSubspesialis
|
||||||
|
|
||||||
result := config.SatuDataDB.Debug().Raw(`select dss.*, ds."Spesialis"
|
result := config.SatuDataDB.Raw(`select dss.*, ds."Spesialis"
|
||||||
from "daftar_subspesialis" dss
|
from "daftar_subspesialis" dss
|
||||||
left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID"
|
left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID"
|
||||||
where dss.id = ?`, idSubspesialis).First(&daftarSubspesialis)
|
where dss.id = ?`, idSubspesialis).First(&daftarSubspesialis)
|
||||||
@@ -48,7 +48,7 @@ func GetSubspesialisByID(idSubspesialis int) (*dokter.DaftarSubspesialis, error)
|
|||||||
|
|
||||||
func GetSubspesialisByIDBatch(idSubspesialis []int) ([]dokter.DaftarSubspesialis, error) {
|
func GetSubspesialisByIDBatch(idSubspesialis []int) ([]dokter.DaftarSubspesialis, error) {
|
||||||
var daftarSubspesialis []dokter.DaftarSubspesialis
|
var daftarSubspesialis []dokter.DaftarSubspesialis
|
||||||
result := config.SatuDataDB.Debug().Raw(`select dss.*, ds."Spesialis"
|
result := config.SatuDataDB.Raw(`select dss.*, ds."Spesialis"
|
||||||
from "daftar_subspesialis" dss
|
from "daftar_subspesialis" dss
|
||||||
left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID"
|
left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID"
|
||||||
where dss.id in ?
|
where dss.id in ?
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package jadwal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bridging-rssa/config"
|
||||||
|
"bridging-rssa/models/jadwal"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetJadwalLibur(date string) (*jadwal.DaftarJadwalLiburPelayanan, bool, error) {
|
||||||
|
var jadwalLibur *jadwal.DaftarJadwalLiburPelayanan
|
||||||
|
query := `select * from daftar_jadwal_libur_pelayanan where "Tanggal_libur_pelayanan" = ?`
|
||||||
|
q := config.SatuDataDB.Debug().Raw(query, date).Scan(&jadwalLibur)
|
||||||
|
if q.Error != nil {
|
||||||
|
log.Println(q.Error)
|
||||||
|
return nil, false, q.Error
|
||||||
|
} else if q.RowsAffected == 0 {
|
||||||
|
log.Println("Tidak pada hari libur")
|
||||||
|
return jadwalLibur, false, nil
|
||||||
|
}
|
||||||
|
return jadwalLibur, true, nil
|
||||||
|
}
|
||||||
@@ -10,7 +10,7 @@ func InsertLogAPI(reqInsert *logapi.DataLogAPI) error {
|
|||||||
query := `insert into "data_log_api" (
|
query := `insert into "data_log_api" (
|
||||||
"id", "date_created", "User_agent", "IP", "Parameter", "Header", "Method", "URL", "Request", "Respon", "Respon_code", "Respontime_start", "Respontime_end", "Comment"
|
"id", "date_created", "User_agent", "IP", "Parameter", "Header", "Method", "URL", "Request", "Respon", "Respon_code", "Respontime_start", "Respontime_end", "Comment"
|
||||||
) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
||||||
err := config.SatuDataDB.Debug().Exec(query,
|
err := config.SatuDataDB.Exec(query,
|
||||||
reqInsert.ID,
|
reqInsert.ID,
|
||||||
reqInsert.DateCreated,
|
reqInsert.DateCreated,
|
||||||
reqInsert.UserAgent,
|
reqInsert.UserAgent,
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package logapi
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bridging-rssa/config"
|
||||||
|
logapi "bridging-rssa/models/log_api"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func InsertLogICare(reqInsert *logapi.InsertLogICare) error {
|
||||||
|
query := `insert into "data_log_icare_bpjs" ("id", "date_created", "Ruangan", "Dokter", "Kunjungan_pasien", "Waktu_transaksi")
|
||||||
|
values (?, ?, ?, ?, ?, ?)`
|
||||||
|
errInsert := config.SatuDataDB.Exec(query,
|
||||||
|
reqInsert.ID,
|
||||||
|
reqInsert.DateCreated,
|
||||||
|
reqInsert.Ruangan,
|
||||||
|
reqInsert.Dokter,
|
||||||
|
reqInsert.Kunjungan_pasien,
|
||||||
|
reqInsert.WaktuTransaksi).Error
|
||||||
|
if errInsert != nil {
|
||||||
|
log.Println(errInsert)
|
||||||
|
return errInsert
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package lokasiruang
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bridging-rssa/config"
|
||||||
|
"errors"
|
||||||
|
"log"
|
||||||
|
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetDaftarLokasiRuang(idSimgos string) (int, error) {
|
||||||
|
var idRuangan int
|
||||||
|
query := `select dlr."id" from "daftar_lokasi_ruang" dlr where dlr."Id_location_simgos" = ?`
|
||||||
|
err := config.SatuDataDB.Raw(query, idSimgos).First(&idRuangan).Error
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
log.Println(err)
|
||||||
|
return 128, nil
|
||||||
|
}
|
||||||
|
log.Println(err)
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return idRuangan, nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package pasien
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bridging-rssa/config"
|
||||||
|
"bridging-rssa/models/pasien"
|
||||||
|
"errors"
|
||||||
|
"log"
|
||||||
|
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetDataKunjunganPasien(idxdaftar string) (*pasien.KunjunganPasien, error) {
|
||||||
|
var kunjunganPasien *pasien.KunjunganPasien
|
||||||
|
query := `select dks."id", dks."Ruangan" from "data_kunjungan_pasien" dks where dks."IDXDAFTAR" = ?`
|
||||||
|
err := config.SatuDataDB.Raw(query, 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
|
||||||
|
}
|
||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func UpdateKunjunganPasien(req sk.RequestInsertRencanaKontrol) error {
|
func UpdateKunjunganPasien(req sk.RequestInsertRencanaKontrol) error {
|
||||||
err := config.SatuDataDB.Debug().Exec(`update "data_kunjungan_pasien" set "Nomor_sep" = ?, "Diagnosis_akhir_keluar" = ?, "Display_diagnosis_akhir_keluar" = ?, "Diagnosis_primer_utama" = ?, "Display_diagnosis_primer_utama" = ? where "IDXDAFTAR" = ?`, req.NoSEP, req.KodeDiagnosa, req.NamaDiagnosa, req.KodeDiagnosa, req.NamaDiagnosa, req.IDXDaftar).Error
|
err := config.SatuDataDB.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 {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
|
|
||||||
func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, error) {
|
func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, error) {
|
||||||
var kunjunganPasien *suratkontrol.KunjunganPasien
|
var kunjunganPasien *suratkontrol.KunjunganPasien
|
||||||
err := config.SatuDataDB.Debug().Raw(`select dkp."id", dkp."IDXDAFTAR" as idxdaftar, dkp."Nomor_sep" as nomorsep,
|
err := config.SatuDataDB.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,
|
dlr."Nama" as namaklinik, dlr."Id_location_simgos" as idkliniksimgos, dlr."Kode_hfis_bpjs" as kodehfisklinik,
|
||||||
dk."Nama_lengkap" as namadokter,
|
dk."Nama_lengkap" as namadokter,
|
||||||
dp."KDDOKTER" as kodedokter, dp."HFIS_code" as kodehfisdokter,
|
dp."KDDOKTER" as kodedokter, dp."HFIS_code" as kodehfisdokter,
|
||||||
@@ -30,7 +30,8 @@ func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, er
|
|||||||
where dpdgb.data_pegawai_id = dp.id
|
where dpdgb.data_pegawai_id = dp.id
|
||||||
) AS gelarbelakang,
|
) AS gelarbelakang,
|
||||||
dkp."Ruangan" as ruangan,
|
dkp."Ruangan" as ruangan,
|
||||||
dkp."DPJP" as id_dokter
|
dkp."DPJP" as id_dokter,
|
||||||
|
dkp."NOMR" as "No_rm"
|
||||||
from data_kunjungan_pasien dkp
|
from data_kunjungan_pasien dkp
|
||||||
left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id
|
left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id
|
||||||
left join data_pegawai dp on dkp."DPJP" = dp.id
|
left join data_pegawai dp on dkp."DPJP" = dp.id
|
||||||
@@ -55,9 +56,9 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
|
|||||||
log.Println("Req Insert Database : ", reqInsert)
|
log.Println("Req Insert Database : ", reqInsert)
|
||||||
insertQuery := `insert into "data_surat_kontrol" ("id", "date_created", "Tanggal_cetak_surat_kontrol", "Tanggal_rencana_kontrol",
|
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",
|
"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")
|
"User_created_surat_kontrol", "Tipe_surat_kontrol", "User_updated_surat_kontrol", "Tipe_rawat")
|
||||||
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
||||||
err := config.SatuDataDB.Debug().Exec(insertQuery,
|
err := config.SatuDataDB.Exec(insertQuery,
|
||||||
reqInsert.ID,
|
reqInsert.ID,
|
||||||
reqInsert.DateCreated,
|
reqInsert.DateCreated,
|
||||||
reqInsert.TglCetakSurKon,
|
reqInsert.TglCetakSurKon,
|
||||||
@@ -70,6 +71,7 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
|
|||||||
reqInsert.UserCreatedSurKon,
|
reqInsert.UserCreatedSurKon,
|
||||||
reqInsert.TipeSurKon,
|
reqInsert.TipeSurKon,
|
||||||
reqInsert.UserUpdatedSurKon,
|
reqInsert.UserUpdatedSurKon,
|
||||||
|
reqInsert.TipeRawat,
|
||||||
).Error
|
).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -80,7 +82,7 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
|
|||||||
|
|
||||||
func GetDataSuratKontrol(offset, limit string) ([]*suratkontrol.GetDataSuratKontrol, error) {
|
func GetDataSuratKontrol(offset, limit string) ([]*suratkontrol.GetDataSuratKontrol, error) {
|
||||||
var dataSurKon []*suratkontrol.GetDataSuratKontrol
|
var dataSurKon []*suratkontrol.GetDataSuratKontrol
|
||||||
err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
|
err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
|
||||||
dsk."Nomor_surat_kontrol",
|
dsk."Nomor_surat_kontrol",
|
||||||
(select dlr."Nama"
|
(select dlr."Nama"
|
||||||
from data_kunjungan_pasien dkp
|
from data_kunjungan_pasien dkp
|
||||||
@@ -103,6 +105,7 @@ func GetDataSuratKontrol(offset, limit string) ([]*suratkontrol.GetDataSuratKont
|
|||||||
ds."id" as "ID_poli",
|
ds."id" as "ID_poli",
|
||||||
dp."HFIS_code" as "Kode_dokter",
|
dp."HFIS_code" as "Kode_dokter",
|
||||||
dp."id" as "id_dokter",
|
dp."id" as "id_dokter",
|
||||||
|
dp."Code_dpjp" as "Kode_dpjp",
|
||||||
dkp2."NOMR" as "No_rm",
|
dkp2."NOMR" as "No_rm",
|
||||||
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
|
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
|
||||||
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
|
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
|
||||||
@@ -124,9 +127,9 @@ func GetDataSuratKontrol(offset, limit string) ([]*suratkontrol.GetDataSuratKont
|
|||||||
return dataSurKon, nil
|
return dataSurKon, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontrol, error) {
|
func GetDataSuratKontrolByIDTipe(idxdaftar string, tipe string) (*suratkontrol.GetDataSuratKontrol, error) {
|
||||||
var dataSurKon *suratkontrol.GetDataSuratKontrol
|
var dataSurKon *suratkontrol.GetDataSuratKontrol
|
||||||
err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
|
err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
|
||||||
dsk."Nomor_surat_kontrol",
|
dsk."Nomor_surat_kontrol",
|
||||||
(select dlr."Nama"
|
(select dlr."Nama"
|
||||||
from data_kunjungan_pasien dkp
|
from data_kunjungan_pasien dkp
|
||||||
@@ -149,20 +152,70 @@ func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontro
|
|||||||
ds."id" as "ID_poli",
|
ds."id" as "ID_poli",
|
||||||
dp."HFIS_code" as "Kode_dokter",
|
dp."HFIS_code" as "Kode_dokter",
|
||||||
dp."id" as "id_dokter",
|
dp."id" as "id_dokter",
|
||||||
|
dp."Code_dpjp" as "Kode_dpjp",
|
||||||
dkp2."NOMR" as "No_rm",
|
dkp2."NOMR" as "No_rm",
|
||||||
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
|
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
|
||||||
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
|
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
|
||||||
dsk."Tipe_surat_kontrol" as "Tipe_SurKon"
|
dsk."Tipe_surat_kontrol" as "Tipe_SurKon",
|
||||||
|
dsk."User_created_surat_kontrol" as "User"
|
||||||
from data_surat_kontrol dsk
|
from data_surat_kontrol dsk
|
||||||
left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien"
|
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 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_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id"
|
||||||
left join data_ktp dk on dp."KTP" = dk. "id"
|
left join data_ktp dk on dp."KTP" = dk. "id"
|
||||||
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
|
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
|
||||||
where dsk."Status_surat_kontrol" = '1' and dkp2."IDXDAFTAR" = ?`, idxdaftar).First(&dataSurKon).Error
|
where dsk."Status_surat_kontrol" = '1' and dkp2."IDXDAFTAR" = ? and dsk."Tipe_rawat" = ?`, idxdaftar, tipe).First(&dataSurKon).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
errMsg := errors.New("DPJP anda belum ada subspesialis")
|
errMsg := errors.New("Data tidak ada")
|
||||||
|
log.Println(errMsg)
|
||||||
|
return nil, errMsg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dataSurKon, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontrol, error) {
|
||||||
|
var dataSurKon *suratkontrol.GetDataSuratKontrol
|
||||||
|
err := config.SatuDataDB.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",
|
||||||
|
dp."Code_dpjp" as "Kode_dpjp",
|
||||||
|
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",
|
||||||
|
dsk."User_created_surat_kontrol" as "User"
|
||||||
|
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" = ? and dsk."Tipe_rawat" is null`, idxdaftar).First(&dataSurKon).Error
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
errMsg := errors.New("Data tidak ada")
|
||||||
log.Println(errMsg)
|
log.Println(errMsg)
|
||||||
return nil, errMsg
|
return nil, errMsg
|
||||||
}
|
}
|
||||||
@@ -171,7 +224,7 @@ func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontro
|
|||||||
}
|
}
|
||||||
|
|
||||||
func UpdateDataSuratKontrol(reqUpdate *suratkontrol.DataSuratKontrol) error {
|
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
|
err := config.SatuDataDB.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 {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return err
|
return err
|
||||||
@@ -181,7 +234,7 @@ func UpdateDataSuratKontrol(reqUpdate *suratkontrol.DataSuratKontrol) error {
|
|||||||
|
|
||||||
func GetIDXDaftarBySurKon(idSurKon string) (string, error) {
|
func GetIDXDaftarBySurKon(idSurKon string) (string, error) {
|
||||||
var idxDaftar string
|
var idxDaftar string
|
||||||
err := config.SatuDataDB.Debug().Raw(`select dkp."IDXDAFTAR"
|
err := config.SatuDataDB.Raw(`select dkp."IDXDAFTAR"
|
||||||
from "data_surat_kontrol" dsk
|
from "data_surat_kontrol" dsk
|
||||||
left join "data_kunjungan_pasien" dkp on dkp."id" = dsk."Kunjungan_pasien"
|
left join "data_kunjungan_pasien" dkp on dkp."id" = dsk."Kunjungan_pasien"
|
||||||
where dsk."id" = ?`, idSurKon).First(&idxDaftar).Error
|
where dsk."id" = ?`, idSurKon).First(&idxDaftar).Error
|
||||||
@@ -194,7 +247,7 @@ func GetIDXDaftarBySurKon(idSurKon string) (string, error) {
|
|||||||
|
|
||||||
func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, error) {
|
func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, error) {
|
||||||
var dataSurKon *suratkontrol.DataSuratKontrol
|
var dataSurKon *suratkontrol.DataSuratKontrol
|
||||||
err := config.SatuDataDB.Debug().Raw(`select * from "data_surat_kontrol" where "id" = ?`, idSurKon).First(&dataSurKon).Error
|
err := config.SatuDataDB.Raw(`select * from "data_surat_kontrol" where "id" = ?`, idSurKon).First(&dataSurKon).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -204,7 +257,7 @@ func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, er
|
|||||||
|
|
||||||
func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) ([]*suratkontrol.GetDataSuratKontrol, error) {
|
func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) ([]*suratkontrol.GetDataSuratKontrol, error) {
|
||||||
var dataSurKon []*suratkontrol.GetDataSuratKontrol
|
var dataSurKon []*suratkontrol.GetDataSuratKontrol
|
||||||
query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?`
|
query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ? offset ? limit ?`
|
||||||
querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
|
querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
|
||||||
dsk."Nomor_surat_kontrol",
|
dsk."Nomor_surat_kontrol",
|
||||||
(select dlr."Nama"
|
(select dlr."Nama"
|
||||||
@@ -228,6 +281,7 @@ func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []i
|
|||||||
ds."id" as "ID_poli",
|
ds."id" as "ID_poli",
|
||||||
dp."HFIS_code" as "Kode_dokter",
|
dp."HFIS_code" as "Kode_dokter",
|
||||||
dp."id" as "id_dokter",
|
dp."id" as "id_dokter",
|
||||||
|
dp."Code_dpjp" as "Kode_dpjp",
|
||||||
dkp2."NOMR" as "No_rm",
|
dkp2."NOMR" as "No_rm",
|
||||||
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
|
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
|
||||||
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
|
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
|
||||||
@@ -238,12 +292,78 @@ func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []i
|
|||||||
left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."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 data_ktp dk on dp."KTP" = dk. "id"
|
||||||
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
|
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
|
||||||
where dsk."Status_surat_kontrol" = '1' `
|
where dsk."Status_surat_kontrol" = '1' and dsk."Tipe_surat_kontrol" = ? `
|
||||||
querySelect += query
|
querySelect += query
|
||||||
err := config.SatuDataDB.Debug().Raw(querySelect, args...).Find(&dataSurKon).Error
|
err := config.SatuDataDB.Raw(querySelect, args...).Find(&dataSurKon).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return dataSurKon, nil
|
return dataSurKon, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CountDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) (int, error) {
|
||||||
|
var jumlahData int
|
||||||
|
query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?`
|
||||||
|
querySelect := `select count(dsk.*)
|
||||||
|
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 dsk."Tipe_surat_kontrol" = ? `
|
||||||
|
querySelect += query
|
||||||
|
err := config.SatuDataDB.Raw(querySelect, args...).Find(&jumlahData).Error
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return jumlahData, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetNomorSurKon(idPasien string) (string, error) {
|
||||||
|
var noSurKon string
|
||||||
|
querySelect := `select dsk."Nomor_surat_kontrol" from data_surat_kontrol dsk where dsk."Kunjungan_pasien" = ? and dsk."Tipe_surat_kontrol" <> '1' order by dsk."date_created"`
|
||||||
|
err := config.SatuDataDB.Raw(querySelect, idPasien).Scan(&noSurKon).Error
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
log.Println("Nomor SurKon :", noSurKon)
|
||||||
|
return noSurKon, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func Getdatahistori(norm string, offset, limit string) ([]*suratkontrol.HistoriSurkon, error) {
|
||||||
|
var dataHistoriSurKon []*suratkontrol.HistoriSurkon
|
||||||
|
err := config.SatuDataDB.Raw(`select dkp2."Nama_lengkap",dkp2."Nomor_sep", dsk."Nomor_surat_kontrol",dsk."Tanggal_rencana_kontrol",dsk."Tanggal_cetak_surat_kontrol",
|
||||||
|
ds2."Spesialis",ds."Subspesialis",
|
||||||
|
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, dsk."User_created_surat_kontrol", dsk."User_updated_surat_kontrol",dsk."Tipe_rawat" ,
|
||||||
|
dsk."Status_surat_kontrol"
|
||||||
|
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"
|
||||||
|
left join daftar_spesialis ds2 on ds."FK_daftar_spesialis_ID" = ds2."id"
|
||||||
|
where dkp2."NOMR" = ? order by dsk."Tanggal_rencana_kontrol" desc offset ? limit ?`, norm, offset, limit).Scan(&dataHistoriSurKon).Error
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
errMsg := errors.New("data tidak ada")
|
||||||
|
log.Println(errMsg)
|
||||||
|
return nil, errMsg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dataHistoriSurKon, nil
|
||||||
|
}
|
||||||
+5
-1
@@ -10,7 +10,11 @@ services:
|
|||||||
- 8080:8080
|
- 8080:8080
|
||||||
volumes:
|
volumes:
|
||||||
- .:/app
|
- .:/app
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
environment:
|
environment:
|
||||||
|
# TIMEZONE
|
||||||
|
- TZ=Asia/Jakarta
|
||||||
# DATABASE SIMRS V3.0
|
# DATABASE SIMRS V3.0
|
||||||
- POSTGRE_DB_HOST=10.10.123.223
|
- POSTGRE_DB_HOST=10.10.123.223
|
||||||
- POSTGRE_DB_PORT=5432
|
- POSTGRE_DB_PORT=5432
|
||||||
@@ -24,7 +28,7 @@ services:
|
|||||||
- SATUDATA_NAME=satu_db
|
- SATUDATA_NAME=satu_db
|
||||||
- SATUDATA_PORT=5000
|
- SATUDATA_PORT=5000
|
||||||
# BPJS
|
# BPJS
|
||||||
- BASEURL_BPJS=https://apijkn.bpjs-kesehatan.go.id
|
- BASEURL_BPJS=https://apijkn.bpjs-kesehatan.go.id/
|
||||||
- CONS_ID=5257
|
- CONS_ID=5257
|
||||||
- USER_KEY=4cf1cbef8c008440bbe9ef9ba789e482
|
- USER_KEY=4cf1cbef8c008440bbe9ef9ba789e482
|
||||||
- SECRET_KEY=1bV363512D
|
- SECRET_KEY=1bV363512D
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
!/bin/bash
|
||||||
|
|
||||||
|
#get image name
|
||||||
|
remote_url=$(git remote get-url origin)
|
||||||
|
image=$(echo $remote_url | sed 's|https://||g; s|.git||g')
|
||||||
|
|
||||||
|
#get branch name
|
||||||
|
branch_name=$(git rev-parse --abbrev-ref HEAD)
|
||||||
|
clean_branch_name=${branch_name##*/}
|
||||||
|
|
||||||
|
#get timestamp for the tag
|
||||||
|
timestamp=$(date +%Y%m%d%H%M%S)
|
||||||
|
|
||||||
|
tag=$image:$timestamp-$clean_branch_name
|
||||||
|
latest=$image:latest-$clean_branch_name
|
||||||
|
|
||||||
|
#build image
|
||||||
|
docker build -t $tag .
|
||||||
|
docker tag $tag $latest
|
||||||
|
|
||||||
|
#push to dockerhub
|
||||||
|
docker login git.rssa.top -u stim -p 4fde63b07906e7bfa6b3493d76d153a3981039b9
|
||||||
|
docker push $tag
|
||||||
|
docker push $latest
|
||||||
|
|
||||||
|
#remove dangling images
|
||||||
|
docker system prune -f
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -43,3 +45,17 @@ func ReplaceGelar(gelar string) string {
|
|||||||
gelar = strings.ReplaceAll(gelar, ",", " ")
|
gelar = strings.ReplaceAll(gelar, ",", " ")
|
||||||
return gelar
|
return gelar
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetNoUrut(noSurKon string) (string, error) {
|
||||||
|
noSurKonSlice := strings.Split(noSurKon, "/")
|
||||||
|
noUrut := noSurKonSlice[3]
|
||||||
|
noUrutInt, err := strconv.Atoi(noUrut)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
noUrutInt++
|
||||||
|
noUrutStr := fmt.Sprintf("%03d", noUrutInt)
|
||||||
|
log.Println("No Urut: ", noUrutStr)
|
||||||
|
return noUrutStr, nil
|
||||||
|
}
|
||||||
@@ -65,6 +65,7 @@ require (
|
|||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
github.com/jinzhu/now v1.1.5 // indirect
|
github.com/jinzhu/now v1.1.5 // indirect
|
||||||
|
github.com/robfig/cron/v3 v3.0.1
|
||||||
golang.org/x/text v0.18.0 // indirect
|
golang.org/x/text v0.18.0 // indirect
|
||||||
gorm.io/driver/postgres v1.5.9
|
gorm.io/driver/postgres v1.5.9
|
||||||
)
|
)
|
||||||
@@ -96,6 +96,8 @@ github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xl
|
|||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
|
||||||
|
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
|
||||||
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
||||||
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
|
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
|
||||||
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
|
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
|
||||||
|
|||||||
@@ -0,0 +1,264 @@
|
|||||||
|
package icare
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bridging-rssa/database/satu_data/dokter"
|
||||||
|
log_api "bridging-rssa/database/satu_data/log_api"
|
||||||
|
"bridging-rssa/database/satu_data/pasien"
|
||||||
|
"bridging-rssa/models/config"
|
||||||
|
logapi "bridging-rssa/models/log_api"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
cfg "bridging-rssa/config"
|
||||||
|
ic "bridging-rssa/models/bpjs/i_care"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetFKRTL(c *gin.Context) {
|
||||||
|
baseUrl := os.Getenv("BASEURL_BPJS")
|
||||||
|
endpoint := os.Getenv("I_CARE_JKN")
|
||||||
|
param := os.Getenv("GET_FKRTL")
|
||||||
|
url := baseUrl + endpoint + param
|
||||||
|
|
||||||
|
log.Println("URL :", url)
|
||||||
|
var req *ic.ReqICare
|
||||||
|
|
||||||
|
err := c.Bind(&req)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
reqICare := &ic.RequestICare{
|
||||||
|
Param: req.Param,
|
||||||
|
KodeDokter: req.KodeDokter,
|
||||||
|
}
|
||||||
|
|
||||||
|
reqJson, errMarshal := json.Marshal(reqICare)
|
||||||
|
if errMarshal != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: errMarshal.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println("REQUEST: ", string(reqJson))
|
||||||
|
|
||||||
|
conf := config.ConfigBpjs{}
|
||||||
|
|
||||||
|
icare := true
|
||||||
|
header := cfg.SetHeader(icare, conf)
|
||||||
|
|
||||||
|
headers := map[string]string{
|
||||||
|
"X-cons-id": header.ConsID,
|
||||||
|
"X-timestamp": header.TimeStamp,
|
||||||
|
"X-signature": header.XSignature,
|
||||||
|
"user_key": header.UserKey,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
}
|
||||||
|
log.Println("Headers : ", headers)
|
||||||
|
|
||||||
|
var headerStringBuilder strings.Builder
|
||||||
|
for key, value := range headers {
|
||||||
|
headerStringBuilder.WriteString(fmt.Sprintf("%s: %s; ", key, value))
|
||||||
|
}
|
||||||
|
headerString := strings.TrimSuffix(headerStringBuilder.String(), "; ")
|
||||||
|
|
||||||
|
dpjp := strconv.Itoa(req.KodeDokter)
|
||||||
|
|
||||||
|
dataDokter, err := dokter.GetHFISCode(dpjp)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
reqICare.KodeDokter, err = strconv.Atoi(dataDokter.HfisCode)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
kunjunganPasien, err := pasien.GetDataKunjunganPasien(req.IDXDaftar)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
uuid := uuid.New().String()
|
||||||
|
logTimeStart := time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
res, err := ResponseGetFKRTL(url, header, headers, reqICare)
|
||||||
|
if err != nil {
|
||||||
|
responJson, errMarshal2 := json.Marshal(res)
|
||||||
|
if errMarshal2 != nil {
|
||||||
|
log.Println(errMarshal2)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: errMarshal2.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
reqInsertLog := &logapi.DataLogAPI{
|
||||||
|
ID: uuid,
|
||||||
|
DateCreated: logTimeEnd,
|
||||||
|
UserAgent: req.User,
|
||||||
|
IP: c.ClientIP(),
|
||||||
|
Parameter: "BPJS-ICare-FKRTL",
|
||||||
|
Header: headerString,
|
||||||
|
Method: "POST",
|
||||||
|
Url: url,
|
||||||
|
Request: reqJson,
|
||||||
|
Respon: responJson,
|
||||||
|
ResponCode: strconv.Itoa(res.MetaData.Code),
|
||||||
|
ResponTimeStart: logTimeStart,
|
||||||
|
ResponTimeEnd: logTimeEnd,
|
||||||
|
Comment: res.MetaData.Message,
|
||||||
|
}
|
||||||
|
|
||||||
|
errInsert := log_api.InsertLogAPI(reqInsertLog)
|
||||||
|
if errInsert != nil {
|
||||||
|
log.Println(errInsert)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: errInsert.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
responJson, err := json.Marshal(res)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
reqInsertLog := &logapi.DataLogAPI{
|
||||||
|
ID: uuid,
|
||||||
|
DateCreated: logTimeEnd,
|
||||||
|
UserAgent: req.User,
|
||||||
|
IP: c.ClientIP(),
|
||||||
|
Parameter: "BPJS-ICare-FKRTL",
|
||||||
|
Header: headerString,
|
||||||
|
Method: "POST",
|
||||||
|
Url: url,
|
||||||
|
Request: reqJson,
|
||||||
|
Respon: responJson,
|
||||||
|
ResponCode: strconv.Itoa(res.MetaData.Code),
|
||||||
|
ResponTimeStart: logTimeStart,
|
||||||
|
ResponTimeEnd: logTimeEnd,
|
||||||
|
Comment: res.MetaData.Message,
|
||||||
|
}
|
||||||
|
|
||||||
|
err = log_api.InsertLogAPI(reqInsertLog)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
reqInsert := &logapi.InsertLogICare{
|
||||||
|
ID: uuid,
|
||||||
|
DateCreated: logTimeEnd,
|
||||||
|
Ruangan: kunjunganPasien.Ruangan,
|
||||||
|
Dokter: dataDokter.ID,
|
||||||
|
Kunjungan_pasien: kunjunganPasien.ID,
|
||||||
|
WaktuTransaksi: logTimeEnd,
|
||||||
|
}
|
||||||
|
|
||||||
|
errInsert := log_api.InsertLogICare(reqInsert)
|
||||||
|
if errInsert != nil {
|
||||||
|
log.Println(errInsert)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: errInsert.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.JSON(http.StatusOK, res)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetFKTP(c *gin.Context) {
|
||||||
|
baseUrl := os.Getenv("BASEURL_BPJS")
|
||||||
|
endpoint := os.Getenv("I_CARE_JKN")
|
||||||
|
param := os.Getenv("GET_FKRTL")
|
||||||
|
url := baseUrl + endpoint + param
|
||||||
|
|
||||||
|
log.Println("URL :", url)
|
||||||
|
var req *ic.RequestICare
|
||||||
|
|
||||||
|
err := c.Bind(&req)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println("REQUEST: ", req)
|
||||||
|
|
||||||
|
conf := config.ConfigBpjs{}
|
||||||
|
|
||||||
|
header := cfg.SetHeaderDev(conf)
|
||||||
|
|
||||||
|
headers := map[string]string{
|
||||||
|
"X-cons-id": header.ConsID,
|
||||||
|
"X-timestamp": header.TimeStamp,
|
||||||
|
"X-signature": header.XSignature,
|
||||||
|
"user_key": header.UserKey,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
}
|
||||||
|
log.Println("Headers : ", headers)
|
||||||
|
|
||||||
|
res, err := ResponseGetFKRTL(url, header, headers, req)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &ic.Metadata{
|
||||||
|
Code: 0,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.JSON(http.StatusOK, res)
|
||||||
|
}
|
||||||
@@ -0,0 +1,222 @@
|
|||||||
|
package icare
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bridging-rssa/docs"
|
||||||
|
ic "bridging-rssa/models/bpjs/i_care"
|
||||||
|
"bridging-rssa/models/config"
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ResponseGetFKRTL(url string, header *config.Header, headers map[string]string, request *ic.RequestICare) (*ic.ResponseGet, 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{
|
||||||
|
Timeout: 10 * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
responses := &ic.ResponseGet{}
|
||||||
|
response, err := client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") {
|
||||||
|
errMsg := errors.New("Koneksi BPJS Terputus, 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("Koneksi BPJS Terputus, Silahkan Coba Lagi")
|
||||||
|
log.Printf("error : %v", errMsg)
|
||||||
|
responses.MetaData.Code = 504
|
||||||
|
responses.MetaData.Message = errMsg.Error()
|
||||||
|
log.Println("responses: ", responses)
|
||||||
|
return responses, err
|
||||||
|
}
|
||||||
|
|
||||||
|
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 resFkrtlRaw ic.ResponseGetRaw
|
||||||
|
err = json.Unmarshal([]byte(string(res)), &resFkrtlRaw)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Unmarshaling: %v", err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println("ResponseRaw : ", resFkrtlRaw)
|
||||||
|
|
||||||
|
if resFkrtlRaw.MetaData.Code != 200 {
|
||||||
|
errMsg := errors.New(resFkrtlRaw.MetaData.Message)
|
||||||
|
if strings.Contains(strings.ToLower(resFkrtlRaw.MetaData.Message), "Gagal simpan!") {
|
||||||
|
message := "Surat kontrol gagal diterbitkan, pastikan klinik tujuan sama dengan klinik asal pada rujukan awal"
|
||||||
|
resFkrtlRaw.MetaData.Message = message
|
||||||
|
}
|
||||||
|
log.Printf("error : %v", errMsg)
|
||||||
|
responses.MetaData.Code = resFkrtlRaw.MetaData.Code
|
||||||
|
responses.MetaData.Message = resFkrtlRaw.MetaData.Message
|
||||||
|
log.Println("responses: ", responses)
|
||||||
|
return responses, errMsg
|
||||||
|
}
|
||||||
|
|
||||||
|
dataResp, err := docs.StringDecrypt(key, resFkrtlRaw.Response)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Decrypt: %v", err)
|
||||||
|
log.Println("res: ", dataResp)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var resFkrtl ic.Response
|
||||||
|
|
||||||
|
log.Println("dataresp: ", dataResp)
|
||||||
|
|
||||||
|
err = json.Unmarshal([]byte(dataResp), &resFkrtl)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Decode: %v", err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
responses = &ic.ResponseGet{
|
||||||
|
Response: resFkrtl,
|
||||||
|
MetaData: resFkrtlRaw.MetaData,
|
||||||
|
}
|
||||||
|
return responses, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func ResponseGetFKTP(url string, header *config.Header, headers map[string]string, request *ic.ReqFKTP) (*ic.ResponseGet, 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{
|
||||||
|
Timeout: 10 * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
responses := &ic.ResponseGet{}
|
||||||
|
response, err := client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") {
|
||||||
|
errMsg := errors.New("Koneksi BPJS Terputus, 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("Koneksi BPJS Terputus, Silahkan Coba Lagi")
|
||||||
|
log.Printf("error : %v", errMsg)
|
||||||
|
responses.MetaData.Code = 504
|
||||||
|
responses.MetaData.Message = errMsg.Error()
|
||||||
|
log.Println("responses: ", responses)
|
||||||
|
return responses, err
|
||||||
|
}
|
||||||
|
|
||||||
|
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 resFkrtlRaw ic.ResponseGetRaw
|
||||||
|
err = json.Unmarshal([]byte(string(res)), &resFkrtlRaw)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Unmarshaling: %v", err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println("ResponseRaw : ", resFkrtlRaw)
|
||||||
|
|
||||||
|
if resFkrtlRaw.MetaData.Code != 200 {
|
||||||
|
errMsg := errors.New(resFkrtlRaw.MetaData.Message)
|
||||||
|
if strings.Contains(strings.ToLower(resFkrtlRaw.MetaData.Message), "Gagal simpan!") {
|
||||||
|
message := "Surat kontrol gagal diterbitkan, pastikan klinik tujuan sama dengan klinik asal pada rujukan awal"
|
||||||
|
resFkrtlRaw.MetaData.Message = message
|
||||||
|
}
|
||||||
|
log.Printf("error : %v", errMsg)
|
||||||
|
responses.MetaData.Code = resFkrtlRaw.MetaData.Code
|
||||||
|
responses.MetaData.Message = resFkrtlRaw.MetaData.Message
|
||||||
|
log.Println("responses: ", responses)
|
||||||
|
return responses, errMsg
|
||||||
|
}
|
||||||
|
|
||||||
|
dataResp, err := docs.StringDecrypt(key, resFkrtlRaw.Response)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Decrypt: %v", err)
|
||||||
|
log.Println("res: ", dataResp)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var resFkrtl ic.Response
|
||||||
|
|
||||||
|
log.Println("dataresp: ", dataResp)
|
||||||
|
|
||||||
|
err = json.Unmarshal([]byte(dataResp), &resFkrtl)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Decode: %v", err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
responses = &ic.ResponseGet{
|
||||||
|
Response: resFkrtl,
|
||||||
|
MetaData: resFkrtlRaw.MetaData,
|
||||||
|
}
|
||||||
|
return responses, nil
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,69 +1,129 @@
|
|||||||
package jadwal_dokter
|
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"
|
"bridging-rssa/models/config"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"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, header *config.Header, headers map[string]string) (*jadwal_dokter.JadwalDokter, error) {
|
||||||
param := "/jadwaldokter/kodepoli/" + kdPoly + "/tanggal/" + tanggal
|
log.Println("URL", url)
|
||||||
url += param
|
req, err := http.NewRequest("GET", url, nil)
|
||||||
log.Println("URL", url)
|
if err != nil {
|
||||||
req, err := http.NewRequest("GET", url, nil)
|
log.Printf("Error creating request: %v", err)
|
||||||
if err != nil {
|
}
|
||||||
log.Printf("Error creating request: %v", err)
|
|
||||||
}
|
for key, value := range headers {
|
||||||
|
req.Header.Set(key, value)
|
||||||
for key, value := range headers {
|
}
|
||||||
req.Header.Set(key, value)
|
|
||||||
}
|
log.Println("REQ", req.Header)
|
||||||
|
client := http.Client{}
|
||||||
log.Println("REQ", req.Header)
|
response, err := client.Do(req)
|
||||||
client := http.Client{}
|
if err != nil {
|
||||||
response, err := client.Do(req)
|
log.Printf("Error making external API request: %v", err)
|
||||||
if err != nil {
|
}
|
||||||
log.Printf("Error making external API request: %v", err)
|
log.Println("RESPONSE: ", response)
|
||||||
}
|
|
||||||
log.Println("RESPONSE: ", response)
|
key := header.ConsID + header.SecretKey + header.TimeStamp
|
||||||
|
res, err := io.ReadAll(response.Body)
|
||||||
key := header.ConsID + header.SecretKey + header.TimeStamp
|
if err != nil {
|
||||||
res, err := io.ReadAll(response.Body)
|
fmt.Println(err)
|
||||||
if err != nil {
|
}
|
||||||
fmt.Println(err)
|
|
||||||
}
|
var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw
|
||||||
|
err = json.Unmarshal([]byte(res), &jadwalDokterRaw)
|
||||||
var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw
|
if err != nil {
|
||||||
err = json.Unmarshal([]byte(res), &jadwalDokterRaw)
|
log.Printf("Error Unmarshaling: %v", err)
|
||||||
if err != nil {
|
}
|
||||||
log.Printf("Error Unmarshaling: %v", err)
|
|
||||||
}
|
responses := &jadwal_dokter.JadwalDokter{}
|
||||||
|
if jadwalDokterRaw.MetaData.Code != 200 {
|
||||||
if jadwalDokterRaw.MetaData.Code == 201 {
|
responses.MetaData.Code = jadwalDokterRaw.MetaData.Code
|
||||||
log.Println("No Data Found")
|
responses.MetaData.Message = jadwalDokterRaw.MetaData.Message
|
||||||
return nil, nil
|
log.Println("No Data Found")
|
||||||
}
|
return responses, nil
|
||||||
|
}
|
||||||
dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response)
|
|
||||||
if err != nil {
|
dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response)
|
||||||
log.Printf("Error Decrypt: %v", err)
|
if err != nil {
|
||||||
}
|
log.Printf("Error Decrypt: %v", err)
|
||||||
|
}
|
||||||
var listDokter []jadwal_dokter.ListDokter
|
|
||||||
|
var listDokter []*jadwal_dokter.ListDokter
|
||||||
log.Println("dataresp: ", dataResp)
|
|
||||||
|
log.Println("dataresp: ", dataResp)
|
||||||
err = json.Unmarshal([]byte(dataResp), &listDokter)
|
|
||||||
if err != nil {
|
err = json.Unmarshal([]byte(dataResp), &listDokter)
|
||||||
log.Printf("Error Decode: %v", err)
|
if err != nil {
|
||||||
}
|
log.Printf("Error Decode: %v", err)
|
||||||
|
}
|
||||||
log.Println("res: ", &listDokter)
|
|
||||||
|
log.Println("res: ", &listDokter)
|
||||||
return &listDokter, nil
|
responses = &jadwal_dokter.JadwalDokter{
|
||||||
}
|
Response: listDokter,
|
||||||
|
MetaData: jadwalDokterRaw.MetaData,
|
||||||
|
}
|
||||||
|
|
||||||
|
return responses, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func JadwalDokterGetResponseApi(url string, header *config.Header, headers map[string]string) ([]*jadwal_dokter.ListDokter, 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 {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw
|
||||||
|
err = json.Unmarshal([]byte(res), &jadwalDokterRaw)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Unmarshaling: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if jadwalDokterRaw.MetaData.Code == 201 {
|
||||||
|
log.Println("No Data Found")
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Decrypt: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var listDokter []*jadwal_dokter.ListDokter
|
||||||
|
|
||||||
|
log.Println("dataresp: ", dataResp)
|
||||||
|
|
||||||
|
err = json.Unmarshal([]byte(dataResp), &listDokter)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error Decode: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println("res: ", &listDokter)
|
||||||
|
|
||||||
|
return listDokter, nil
|
||||||
|
}
|
||||||
@@ -12,7 +12,6 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func PostData(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (*suratkontrol.Response, error) {
|
func PostData(url string, header *config.Header, headers map[string]string, request *suratkontrol.RequestHeaderRencanaKontrol) (*suratkontrol.Response, error) {
|
||||||
@@ -37,13 +36,27 @@ func PostData(url string, header *config.Header, headers map[string]string, requ
|
|||||||
|
|
||||||
log.Println("REQ", req.Header)
|
log.Println("REQ", req.Header)
|
||||||
client := http.Client{}
|
client := http.Client{}
|
||||||
|
|
||||||
|
responses := &suratkontrol.Response{}
|
||||||
response, err := client.Do(req)
|
response, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
responses.MetaData.Code = "203"
|
||||||
|
responses.MetaData.Message = err.Error()
|
||||||
log.Printf("Error making external API request: %v", err)
|
log.Printf("Error making external API request: %v", err)
|
||||||
return nil, err
|
log.Println("responses: ", responses)
|
||||||
|
return responses, err
|
||||||
}
|
}
|
||||||
log.Println("RESPONSE: ", response)
|
log.Println("RESPONSE: ", response)
|
||||||
|
|
||||||
|
if response.StatusCode == http.StatusGatewayTimeout { // 504
|
||||||
|
errMsg := errors.New("Koneksi BPJS Terputus, Silahkan Coba Lagi")
|
||||||
|
log.Printf("error : %v", errMsg)
|
||||||
|
responses.MetaData.Code = "504"
|
||||||
|
responses.MetaData.Message = errMsg.Error()
|
||||||
|
log.Println("responses: ", responses)
|
||||||
|
return responses, errMsg
|
||||||
|
}
|
||||||
|
|
||||||
key := header.ConsID + header.SecretKey + header.TimeStamp
|
key := header.ConsID + header.SecretKey + header.TimeStamp
|
||||||
res, err := io.ReadAll(response.Body)
|
res, err := io.ReadAll(response.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -62,12 +75,19 @@ func PostData(url string, header *config.Header, headers map[string]string, requ
|
|||||||
|
|
||||||
log.Println("ResponseRaw : ", resSuratKontrolRaw)
|
log.Println("ResponseRaw : ", resSuratKontrolRaw)
|
||||||
|
|
||||||
responses := &suratkontrol.Response{}
|
|
||||||
if resSuratKontrolRaw.MetaData.Code != "200" {
|
if resSuratKontrolRaw.MetaData.Code != "200" {
|
||||||
errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
|
if resSuratKontrolRaw.MetaData.Message == "Gagal simpan! Nomor SEP Sudah pernah digunakan!." {
|
||||||
log.Printf("error : %v", errMsg)
|
message := "Gagal simpan! Nomor SEP pernah diterbitkan Surat Kontrol!."
|
||||||
|
resSuratKontrolRaw.MetaData.Message = message
|
||||||
|
log.Println("masuk sini kan")
|
||||||
|
} else if resSuratKontrolRaw.MetaData.Message == "Gagal simpan! Poli Tujuan Kontrol tidak sama dengan Poli Asal Rujukan Awal." {
|
||||||
|
message := "Surat kontrol gagal diterbitkan, pastikan klinik tujuan sama dengan klinik asal pada rujukan awal"
|
||||||
|
resSuratKontrolRaw.MetaData.Message = message
|
||||||
|
}
|
||||||
|
log.Printf("error : %v", resSuratKontrolRaw.MetaData.Message)
|
||||||
responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code
|
responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code
|
||||||
responses.MetaData.Message = resSuratKontrolRaw.MetaData.Message
|
responses.MetaData.Message = resSuratKontrolRaw.MetaData.Message
|
||||||
|
errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
|
||||||
log.Println("responses: ", responses)
|
log.Println("responses: ", responses)
|
||||||
return responses, errMsg
|
return responses, errMsg
|
||||||
}
|
}
|
||||||
@@ -118,26 +138,20 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Println("REQ", req.Header)
|
log.Println("REQ", req.Header)
|
||||||
client := http.Client{
|
client := http.Client{}
|
||||||
Timeout: 10 * time.Second,
|
|
||||||
}
|
|
||||||
responses := &suratkontrol.Response{}
|
responses := &suratkontrol.Response{}
|
||||||
response, err := client.Do(req)
|
response, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") {
|
responses.MetaData.Code = "504"
|
||||||
errMsg := errors.New("Gagal Proses Selama 10 Detik, Silahkan Coba Lagi")
|
responses.MetaData.Message = err.Error()
|
||||||
log.Printf("error : %v", errMsg)
|
log.Println("responses: ", responses)
|
||||||
responses.MetaData.Message = errMsg.Error()
|
|
||||||
log.Println("responses: ", responses)
|
|
||||||
return responses, err
|
|
||||||
}
|
|
||||||
log.Printf("Error making external API request: %v", err)
|
log.Printf("Error making external API request: %v", err)
|
||||||
return responses, err
|
return responses, err
|
||||||
}
|
}
|
||||||
log.Println("RESPONSE: ", response)
|
log.Println("RESPONSE: ", response)
|
||||||
|
|
||||||
if response.StatusCode == http.StatusGatewayTimeout { // 504
|
if response.StatusCode == http.StatusGatewayTimeout { // 504
|
||||||
errMsg := errors.New("Gagal Proses Selama 10 Detik, Silahkan Coba Lagi")
|
errMsg := errors.New("Koneksi BPJS Terputus, Silahkan Coba Lagi")
|
||||||
log.Printf("error : %v", errMsg)
|
log.Printf("error : %v", errMsg)
|
||||||
responses.MetaData.Code = "504"
|
responses.MetaData.Code = "504"
|
||||||
responses.MetaData.Message = errMsg.Error()
|
responses.MetaData.Message = errMsg.Error()
|
||||||
@@ -162,10 +176,18 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s
|
|||||||
}
|
}
|
||||||
|
|
||||||
if resSuratKontrolRaw.MetaData.Code != "200" {
|
if resSuratKontrolRaw.MetaData.Code != "200" {
|
||||||
errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
|
if resSuratKontrolRaw.MetaData.Message == "Gagal simpan! Nomor SEP Sudah pernah digunakan!." {
|
||||||
log.Printf("error : %v", errMsg)
|
message := "Gagal simpan! Nomor SEP pernah diterbitkan Surat Kontrol!."
|
||||||
|
resSuratKontrolRaw.MetaData.Message = message
|
||||||
|
log.Println("masuk sini kan")
|
||||||
|
} else if strings.Contains(strings.ToLower(resSuratKontrolRaw.MetaData.Message), "gagal simpan") {
|
||||||
|
message := "Surat kontrol gagal diterbitkan, pastikan klinik tujuan sama dengan klinik asal pada rujukan awal"
|
||||||
|
resSuratKontrolRaw.MetaData.Message = message
|
||||||
|
}
|
||||||
|
log.Printf("error : %v", resSuratKontrolRaw.MetaData.Message)
|
||||||
responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code
|
responses.MetaData.Code = resSuratKontrolRaw.MetaData.Code
|
||||||
responses.MetaData.Message = resSuratKontrolRaw.MetaData.Message
|
responses.MetaData.Message = resSuratKontrolRaw.MetaData.Message
|
||||||
|
errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
|
||||||
log.Println("responses: ", responses)
|
log.Println("responses: ", responses)
|
||||||
return responses, errMsg
|
return responses, errMsg
|
||||||
}
|
}
|
||||||
@@ -237,7 +259,17 @@ func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[s
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
responses := &suratkontrol.Response{
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
responses = &suratkontrol.Response{
|
||||||
MetaData: resSuratKontrolRaw.MetaData,
|
MetaData: resSuratKontrolRaw.MetaData,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,6 +312,16 @@ func ResponseGetNomorSuratKontrol(url string, header *config.Header, headers map
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
responses := &suratkontrol.ResponseGetSuratKontrol{}
|
||||||
|
if resNoSuratKontrolRaw.MetaData.Code != "200" {
|
||||||
|
errMsg := errors.New(resNoSuratKontrolRaw.MetaData.Message)
|
||||||
|
log.Printf("error : %v", errMsg)
|
||||||
|
responses.MetaData.Code = resNoSuratKontrolRaw.MetaData.Code
|
||||||
|
responses.MetaData.Message = resNoSuratKontrolRaw.MetaData.Message
|
||||||
|
log.Println("responses: ", responses)
|
||||||
|
return responses, errMsg
|
||||||
|
}
|
||||||
|
|
||||||
dataResp, err := docs.StringDecrypt(key, resNoSuratKontrolRaw.Response)
|
dataResp, err := docs.StringDecrypt(key, resNoSuratKontrolRaw.Response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error Decrypt: %v", err)
|
log.Printf("Error Decrypt: %v", err)
|
||||||
@@ -295,7 +337,7 @@ func ResponseGetNomorSuratKontrol(url string, header *config.Header, headers map
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
responses := &suratkontrol.ResponseGetSuratKontrol{
|
responses = &suratkontrol.ResponseGetSuratKontrol{
|
||||||
MetaData: resNoSuratKontrolRaw.MetaData,
|
MetaData: resNoSuratKontrolRaw.MetaData,
|
||||||
Response: responseNoSuratKontrol,
|
Response: responseNoSuratKontrol,
|
||||||
}
|
}
|
||||||
@@ -337,6 +379,16 @@ func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
responses := &suratkontrol.ResponseGetSuratKontrolBySEP{}
|
||||||
|
if resSurKonSEP.MetaData.Code != "200" {
|
||||||
|
errMsg := errors.New(resSurKonSEP.MetaData.Message)
|
||||||
|
log.Printf("error : %v", errMsg)
|
||||||
|
responses.MetaData.Code = resSurKonSEP.MetaData.Code
|
||||||
|
responses.MetaData.Message = resSurKonSEP.MetaData.Message
|
||||||
|
log.Println("responses: ", responses)
|
||||||
|
return responses, errMsg
|
||||||
|
}
|
||||||
|
|
||||||
dataResp, err := docs.StringDecrypt(key, resSurKonSEP.Response)
|
dataResp, err := docs.StringDecrypt(key, resSurKonSEP.Response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error Decrypt: %v", err)
|
log.Printf("Error Decrypt: %v", err)
|
||||||
@@ -354,7 +406,7 @@ func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map
|
|||||||
|
|
||||||
log.Println("res: ", resSurKonSEP)
|
log.Println("res: ", resSurKonSEP)
|
||||||
|
|
||||||
responses := &suratkontrol.ResponseGetSuratKontrolBySEP{
|
responses = &suratkontrol.ResponseGetSuratKontrolBySEP{
|
||||||
MetaData: resSurKonSEP.MetaData,
|
MetaData: resSurKonSEP.MetaData,
|
||||||
Response: responseNoSuratKontrol,
|
Response: responseNoSuratKontrol,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package suratkontrol
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
cfg "bridging-rssa/config"
|
cfg "bridging-rssa/config"
|
||||||
|
"bridging-rssa/database/satu_data/jadwal"
|
||||||
log_api "bridging-rssa/database/satu_data/log_api"
|
log_api "bridging-rssa/database/satu_data/log_api"
|
||||||
|
lokasiruang "bridging-rssa/database/satu_data/lokasi_ruang"
|
||||||
suratkontrol "bridging-rssa/database/satu_data/surat_kontrol"
|
suratkontrol "bridging-rssa/database/satu_data/surat_kontrol"
|
||||||
"bridging-rssa/docs/utils"
|
"bridging-rssa/docs/utils"
|
||||||
sk "bridging-rssa/models/bpjs/surat_kontrol"
|
sk "bridging-rssa/models/bpjs/surat_kontrol"
|
||||||
@@ -33,9 +35,33 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
err := c.Bind(&req)
|
err := c.Bind(&req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Println(req)
|
||||||
|
|
||||||
|
jadwalLibur, isLibur, errLibur := jadwal.GetJadwalLibur(req.TglRencanaKontrol)
|
||||||
|
if errLibur != nil {
|
||||||
|
log.Println(errLibur)
|
||||||
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "203",
|
||||||
|
Message: errLibur.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
} else if isLibur {
|
||||||
|
log.Println(jadwalLibur.KeteranganLiburPelayanan)
|
||||||
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "203",
|
||||||
|
Message: jadwalLibur.NamaLiburPelayanan,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -43,18 +69,20 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
reqJson, err := json.Marshal(req)
|
reqJson, err := json.Marshal(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Println("Request: ", reqJson)
|
log.Println("Request: ", string(reqJson))
|
||||||
|
|
||||||
conf := config.ConfigBpjs{}
|
conf := config.ConfigBpjs{}
|
||||||
|
|
||||||
header := cfg.SetHeader(conf)
|
header := cfg.SetHeader(false, conf)
|
||||||
|
|
||||||
headers := map[string]string{
|
headers := map[string]string{
|
||||||
"X-cons-id": header.ConsID,
|
"X-cons-id": header.ConsID,
|
||||||
@@ -70,44 +98,109 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
headerStringBuilder.WriteString(fmt.Sprintf("%s: %s; ", key, value))
|
headerStringBuilder.WriteString(fmt.Sprintf("%s: %s; ", key, value))
|
||||||
}
|
}
|
||||||
headerString := strings.TrimSuffix(headerStringBuilder.String(), "; ")
|
headerString := strings.TrimSuffix(headerStringBuilder.String(), "; ")
|
||||||
tipeSurKon := "1"
|
|
||||||
|
|
||||||
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
|
kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var idRuangan int
|
||||||
|
if kunjunganPasien.Ruangan != 0 {
|
||||||
|
idRuangan = kunjunganPasien.Ruangan
|
||||||
|
} else {
|
||||||
|
idRuangan, err = lokasiruang.GetDaftarLokasiRuang(req.Ruangan)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uuid := uuid.New().String()
|
uuid := uuid.New().String()
|
||||||
if req.NoSEP == "" {
|
if req.TipeSurKon != "1" {
|
||||||
tipeSurKon = "0"
|
dataSurkon, err := suratkontrol.GetNomorSurKon(kunjunganPasien.ID)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
noUrut := "001"
|
||||||
|
if dataSurkon != "" {
|
||||||
|
noUrut, err = utils.GetNoUrut(dataSurkon)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
noSurKon := "SI/" + req.TipeRawat + "/" + kunjunganPasien.NomorRM + "/" + noUrut
|
||||||
reqInsert := &sk.DataSuratKontrol{
|
reqInsert := &sk.DataSuratKontrol{
|
||||||
ID: uuid,
|
ID: uuid,
|
||||||
DateCreated: timeNow,
|
DateCreated: timeNow,
|
||||||
TglCetakSurKon: timeNow,
|
TglCetakSurKon: timeNow,
|
||||||
TglRencanaKontrol: req.TglRencanaKontrol,
|
TglRencanaKontrol: req.TglRencanaKontrol,
|
||||||
NomorSurKon: "", //TODO How to get Nomor SurKon
|
NomorSurKon: noSurKon,
|
||||||
KunjunganPasien: kunjunganPasien.ID,
|
KunjunganPasien: kunjunganPasien.ID,
|
||||||
RuanganSurKon: kunjunganPasien.Ruangan,
|
RuanganSurKon: idRuangan,
|
||||||
DPJPSurKon: req.IDDokter,
|
DPJPSurKon: req.IDDokter,
|
||||||
StatusSurKon: 1, // First Insert status always set to 1
|
StatusSurKon: 1, // First Insert status always set to 1
|
||||||
UserCreatedSurKon: req.User,
|
UserCreatedSurKon: req.User,
|
||||||
TipeSurKon: tipeSurKon,
|
TipeSurKon: req.TipeSurKon,
|
||||||
|
TipeRawat: req.TipeRawat,
|
||||||
}
|
}
|
||||||
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
|
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, nil)
|
|
||||||
|
err = suratkontrol.UpdateKunjunganPasien(req)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "200",
|
||||||
|
Message: "Berhasil Insert Surat Kontrol",
|
||||||
|
},
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,9 +219,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
responJson, err := json.Marshal(res)
|
responJson, err := json.Marshal(res)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -138,7 +233,7 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
DateCreated: logTimeEnd,
|
DateCreated: logTimeEnd,
|
||||||
UserAgent: req.User,
|
UserAgent: req.User,
|
||||||
IP: c.ClientIP(),
|
IP: c.ClientIP(),
|
||||||
Parameter: "",
|
Parameter: "BPJS-VClaim-RencanaKontrol",
|
||||||
Header: headerString,
|
Header: headerString,
|
||||||
Method: "POST",
|
Method: "POST",
|
||||||
Url: url,
|
Url: url,
|
||||||
@@ -153,23 +248,29 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
err = log_api.InsertLogAPI(reqInsertLog)
|
err = log_api.InsertLogAPI(reqInsertLog)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, res.MetaData)
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: res.MetaData,
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
responJson, err := json.Marshal(res)
|
responJson, err := json.Marshal(res)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -181,19 +282,22 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
TglRencanaKontrol: res.Response.TglRencanaKontrol,
|
TglRencanaKontrol: res.Response.TglRencanaKontrol,
|
||||||
NomorSurKon: res.Response.NoSuratKontrol,
|
NomorSurKon: res.Response.NoSuratKontrol,
|
||||||
KunjunganPasien: kunjunganPasien.ID,
|
KunjunganPasien: kunjunganPasien.ID,
|
||||||
RuanganSurKon: kunjunganPasien.Ruangan,
|
RuanganSurKon: idRuangan,
|
||||||
DPJPSurKon: req.IDDokter,
|
DPJPSurKon: req.IDDokter,
|
||||||
StatusSurKon: 1, // First Insert status always set to 1
|
StatusSurKon: 1, // First Insert status always set to 1
|
||||||
UserCreatedSurKon: req.User,
|
UserCreatedSurKon: req.User,
|
||||||
TipeSurKon: tipeSurKon,
|
TipeSurKon: "1",
|
||||||
|
TipeRawat: req.TipeRawat,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
|
err = suratkontrol.InsertDataSuratKontrol(reqInsert)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -207,9 +311,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
err = suratkontrol.UpdateKunjunganPasien(req)
|
err = suratkontrol.UpdateKunjunganPasien(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -219,7 +325,7 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
DateCreated: logTimeEnd,
|
DateCreated: logTimeEnd,
|
||||||
UserAgent: req.User,
|
UserAgent: req.User,
|
||||||
IP: c.ClientIP(),
|
IP: c.ClientIP(),
|
||||||
Parameter: "",
|
Parameter: "BPJS-VClaim-RencanaKontrol",
|
||||||
Header: headerString,
|
Header: headerString,
|
||||||
Method: "POST",
|
Method: "POST",
|
||||||
Url: url,
|
Url: url,
|
||||||
@@ -234,9 +340,11 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
err = log_api.InsertLogAPI(reqInsertLog)
|
err = log_api.InsertLogAPI(reqInsertLog)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
c.JSON(http.StatusOK, &sk.ResponseInsertSuratKontrol{
|
||||||
Code: "",
|
MetaData: sk.MetadataString{
|
||||||
Message: err.Error(),
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -257,7 +365,6 @@ func InsertSuratKontrol(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Println("Response: ", response)
|
log.Println("Response: ", response)
|
||||||
|
|
||||||
c.JSON(http.StatusOK, response)
|
c.JSON(http.StatusOK, response)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -279,7 +386,34 @@ func UpdateSuratKontrol(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Println("Request: ", req)
|
jadwalLibur, isLibur, errLibur := jadwal.GetJadwalLibur(req.TglRencanaKontrol)
|
||||||
|
if errLibur != nil {
|
||||||
|
log.Println(errLibur)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
} else if isLibur {
|
||||||
|
log.Println(jadwalLibur.KeteranganLiburPelayanan)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: jadwalLibur.NamaLiburPelayanan,
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
reqJson, err := json.Marshal(req)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println("Request: ", string(reqJson))
|
||||||
|
|
||||||
timeNow := time.Now().Format("2006-01-02 15:04:05")
|
timeNow := time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
@@ -292,28 +426,38 @@ func UpdateSuratKontrol(c *gin.Context) {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
uuid := uuid.New().String()
|
|
||||||
tipeSurKon := "1"
|
|
||||||
|
|
||||||
if req.NoSEP == "" {
|
uuid := uuid.New().String()
|
||||||
tipeSurKon = "0"
|
if req.TipeSurKon != "1" {
|
||||||
|
dataSurkon, err := suratkontrol.GetNomorSurKon(kunjunganPasien.ID)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
reqInsert := &sk.DataSuratKontrol{
|
reqInsert := &sk.DataSuratKontrol{
|
||||||
ID: uuid,
|
ID: uuid,
|
||||||
DateCreated: timeNow,
|
DateCreated: timeNow,
|
||||||
TglCetakSurKon: timeNow,
|
TglCetakSurKon: timeNow,
|
||||||
TglRencanaKontrol: req.TglRencanaKontrol,
|
TglRencanaKontrol: req.TglRencanaKontrol,
|
||||||
NomorSurKon: "", //TODO How to get Nomor SurKon
|
NomorSurKon: dataSurkon, //TODO How to get Nomor SurKon
|
||||||
KunjunganPasien: kunjunganPasien.ID,
|
KunjunganPasien: kunjunganPasien.ID,
|
||||||
RuanganSurKon: kunjunganPasien.Ruangan,
|
RuanganSurKon: kunjunganPasien.Ruangan,
|
||||||
DPJPSurKon: req.IDDokter,
|
DPJPSurKon: req.IDDokter,
|
||||||
StatusSurKon: 1, // First Insert status always set to 1
|
StatusSurKon: 1, // First Insert status always set to 1
|
||||||
TipeSurKon: tipeSurKon,
|
TipeSurKon: req.TipeSurKon,
|
||||||
UserUpdatedSurKon: req.User,
|
UserUpdatedSurKon: req.User,
|
||||||
|
TipeRawat: req.TipeRawat,
|
||||||
}
|
}
|
||||||
reqUpdate := &sk.DataSuratKontrol{
|
reqUpdate := &sk.DataSuratKontrol{
|
||||||
DateUpdated: timeNow,
|
DateUpdated: timeNow,
|
||||||
ID: req.IDSurKon,
|
ID: req.IDSurKon,
|
||||||
StatusSurKon: 2,
|
StatusSurKon: 2,
|
||||||
|
UserUpdatedSurKon: req.User,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = suratkontrol.UpdateDataSuratKontrol(reqUpdate)
|
err = suratkontrol.UpdateDataSuratKontrol(reqUpdate)
|
||||||
@@ -334,16 +478,9 @@ func UpdateSuratKontrol(c *gin.Context) {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, nil)
|
c.JSON(http.StatusOK, &sk.MetadataString{
|
||||||
return
|
Code: "200",
|
||||||
}
|
Message: "Berhasil Update Surat Kontrol",
|
||||||
|
|
||||||
reqJson, err := json.Marshal(req)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
|
||||||
Code: "",
|
|
||||||
Message: err.Error(),
|
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -352,7 +489,7 @@ func UpdateSuratKontrol(c *gin.Context) {
|
|||||||
|
|
||||||
conf := config.ConfigBpjs{}
|
conf := config.ConfigBpjs{}
|
||||||
|
|
||||||
header := cfg.SetHeader(conf)
|
header := cfg.SetHeader(false, conf)
|
||||||
|
|
||||||
headers := map[string]string{
|
headers := map[string]string{
|
||||||
"X-cons-id": header.ConsID,
|
"X-cons-id": header.ConsID,
|
||||||
@@ -403,7 +540,7 @@ func UpdateSuratKontrol(c *gin.Context) {
|
|||||||
DateCreated: logTimeEnd,
|
DateCreated: logTimeEnd,
|
||||||
UserAgent: req.User,
|
UserAgent: req.User,
|
||||||
IP: c.ClientIP(),
|
IP: c.ClientIP(),
|
||||||
Parameter: "",
|
Parameter: "BPJS-VClaim-RencanaKontrol",
|
||||||
Header: headerString,
|
Header: headerString,
|
||||||
Method: "PUT",
|
Method: "PUT",
|
||||||
Url: url,
|
Url: url,
|
||||||
@@ -440,9 +577,10 @@ func UpdateSuratKontrol(c *gin.Context) {
|
|||||||
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
|
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
reqUpdate := &sk.DataSuratKontrol{
|
reqUpdate := &sk.DataSuratKontrol{
|
||||||
DateUpdated: timeNow,
|
DateUpdated: timeNow,
|
||||||
ID: req.IDSurKon,
|
ID: req.IDSurKon,
|
||||||
StatusSurKon: 2,
|
StatusSurKon: 2,
|
||||||
|
UserUpdatedSurKon: req.User,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = suratkontrol.UpdateDataSuratKontrol(reqUpdate)
|
err = suratkontrol.UpdateDataSuratKontrol(reqUpdate)
|
||||||
@@ -465,7 +603,7 @@ func UpdateSuratKontrol(c *gin.Context) {
|
|||||||
RuanganSurKon: kunjunganPasien.Ruangan,
|
RuanganSurKon: kunjunganPasien.Ruangan,
|
||||||
DPJPSurKon: req.IDDokter,
|
DPJPSurKon: req.IDDokter,
|
||||||
StatusSurKon: 1, // Insert status always set to 1
|
StatusSurKon: 1, // Insert status always set to 1
|
||||||
TipeSurKon: tipeSurKon,
|
TipeSurKon: "1",
|
||||||
UserUpdatedSurKon: req.User,
|
UserUpdatedSurKon: req.User,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,7 +625,7 @@ func UpdateSuratKontrol(c *gin.Context) {
|
|||||||
DateCreated: logTimeEnd,
|
DateCreated: logTimeEnd,
|
||||||
UserAgent: req.User,
|
UserAgent: req.User,
|
||||||
IP: c.ClientIP(),
|
IP: c.ClientIP(),
|
||||||
Parameter: "",
|
Parameter: "BPJS-VClaim-RencanaKontrol",
|
||||||
Header: headerString,
|
Header: headerString,
|
||||||
Method: "PUT",
|
Method: "PUT",
|
||||||
Url: url,
|
Url: url,
|
||||||
@@ -529,12 +667,21 @@ func DeleteSuratKontrol(c *gin.Context) {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
reqJson, err := json.Marshal(req)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
log.Println("REQUEST: ", req)
|
log.Println("REQUEST: ", req)
|
||||||
|
|
||||||
timeNow := time.Now().Format("2006-01-02 15:04:05")
|
timeNow := time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
if req.NomorSurKon == "" {
|
if req.TipeSurKon != "1" {
|
||||||
reqUpdate := &sk.DataSuratKontrol{
|
reqUpdate := &sk.DataSuratKontrol{
|
||||||
DateUpdated: timeNow,
|
DateUpdated: timeNow,
|
||||||
ID: req.IDDataSurKon,
|
ID: req.IDDataSurKon,
|
||||||
@@ -556,11 +703,12 @@ func DeleteSuratKontrol(c *gin.Context) {
|
|||||||
Message: "Berhasil Hapus Data",
|
Message: "Berhasil Hapus Data",
|
||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, res)
|
c.JSON(http.StatusOK, res)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
conf := config.ConfigBpjs{}
|
conf := config.ConfigBpjs{}
|
||||||
|
|
||||||
header := cfg.SetHeader(conf)
|
header := cfg.SetHeader(false, conf)
|
||||||
|
|
||||||
headers := map[string]string{
|
headers := map[string]string{
|
||||||
"X-cons-id": header.ConsID,
|
"X-cons-id": header.ConsID,
|
||||||
@@ -571,6 +719,12 @@ func DeleteSuratKontrol(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
log.Println("Headers : ", headers)
|
log.Println("Headers : ", headers)
|
||||||
|
|
||||||
|
var headerStringBuilder strings.Builder
|
||||||
|
for key, value := range headers {
|
||||||
|
headerStringBuilder.WriteString(fmt.Sprintf("%s: %s; ", key, value))
|
||||||
|
}
|
||||||
|
|
||||||
|
headerString := strings.TrimSuffix(headerStringBuilder.String(), "; ")
|
||||||
request := &sk.RequestHeaderRencanaKontrol{
|
request := &sk.RequestHeaderRencanaKontrol{
|
||||||
Request: &sk.TSuratKontrol{
|
Request: &sk.TSuratKontrol{
|
||||||
RequestDelete: sk.RequestDeleteRencanaKontrol{
|
RequestDelete: sk.RequestDeleteRencanaKontrol{
|
||||||
@@ -580,12 +734,91 @@ func DeleteSuratKontrol(c *gin.Context) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logTimeStart := time.Now().Format("2006-01-02 15:04:05")
|
||||||
res, err := ResponseDeleteSuratKontrol(url, header, headers, request)
|
res, err := ResponseDeleteSuratKontrol(url, header, headers, request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
responJson, err := json.Marshal(res)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
uuid := uuid.New().String()
|
||||||
|
reqInsertLog := &logapi.DataLogAPI{
|
||||||
|
ID: uuid,
|
||||||
|
DateCreated: logTimeEnd,
|
||||||
|
UserAgent: req.User,
|
||||||
|
IP: c.ClientIP(),
|
||||||
|
Parameter: "BPJS-VClaim-RencanaKontrol",
|
||||||
|
Header: headerString,
|
||||||
|
Method: "DELETE",
|
||||||
|
Url: url,
|
||||||
|
Request: reqJson,
|
||||||
|
Respon: responJson,
|
||||||
|
ResponCode: res.MetaData.Code,
|
||||||
|
ResponTimeStart: logTimeStart,
|
||||||
|
ResponTimeEnd: logTimeEnd,
|
||||||
|
Comment: res.MetaData.Message,
|
||||||
|
}
|
||||||
|
|
||||||
|
err = log_api.InsertLogAPI(reqInsertLog)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
log.Printf("Error making external API request: %v", err)
|
log.Printf("Error making external API request: %v", err)
|
||||||
c.JSON(http.StatusInternalServerError, err)
|
c.JSON(http.StatusInternalServerError, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
responJson, err := json.Marshal(res)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{
|
||||||
|
MetaData: sk.MetadataString{
|
||||||
|
Code: "203",
|
||||||
|
Message: err.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
logTimeEnd := time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
uuid := uuid.New().String()
|
||||||
|
reqInsertLog := &logapi.DataLogAPI{
|
||||||
|
ID: uuid,
|
||||||
|
DateCreated: logTimeEnd,
|
||||||
|
UserAgent: req.User,
|
||||||
|
IP: c.ClientIP(),
|
||||||
|
Parameter: "BPJS-VClaim-RencanaKontrol",
|
||||||
|
Header: headerString,
|
||||||
|
Method: "DELETE",
|
||||||
|
Url: url,
|
||||||
|
Request: reqJson,
|
||||||
|
Respon: responJson,
|
||||||
|
ResponCode: res.MetaData.Code,
|
||||||
|
ResponTimeStart: logTimeStart,
|
||||||
|
ResponTimeEnd: logTimeEnd,
|
||||||
|
Comment: res.MetaData.Message,
|
||||||
|
}
|
||||||
|
|
||||||
|
err = log_api.InsertLogAPI(reqInsertLog)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
reqUpdate := &sk.DataSuratKontrol{
|
reqUpdate := &sk.DataSuratKontrol{
|
||||||
DateUpdated: timeNow,
|
DateUpdated: timeNow,
|
||||||
@@ -615,7 +848,7 @@ func GetNomorSuratKontrol(c *gin.Context) {
|
|||||||
|
|
||||||
conf := config.ConfigBpjs{}
|
conf := config.ConfigBpjs{}
|
||||||
|
|
||||||
header := cfg.SetHeader(conf)
|
header := cfg.SetHeader(false, conf)
|
||||||
|
|
||||||
headers := map[string]string{
|
headers := map[string]string{
|
||||||
"X-cons-id": header.ConsID,
|
"X-cons-id": header.ConsID,
|
||||||
@@ -645,7 +878,7 @@ func GetSuratKontrolBySEP(c *gin.Context) {
|
|||||||
|
|
||||||
conf := config.ConfigBpjs{}
|
conf := config.ConfigBpjs{}
|
||||||
|
|
||||||
header := cfg.SetHeader(conf)
|
header := cfg.SetHeader(false, conf)
|
||||||
|
|
||||||
headers := map[string]string{
|
headers := map[string]string{
|
||||||
"X-cons-id": header.ConsID,
|
"X-cons-id": header.ConsID,
|
||||||
@@ -704,6 +937,8 @@ func GetDataSurKon(c *gin.Context) {
|
|||||||
Subspesialis: v.Subspesialis,
|
Subspesialis: v.Subspesialis,
|
||||||
KodePoli: v.KodePoli,
|
KodePoli: v.KodePoli,
|
||||||
KodeDokter: v.KodeDokter,
|
KodeDokter: v.KodeDokter,
|
||||||
|
IDDokter: v.IDDokter,
|
||||||
|
KodeDPJP: v.KodeDPJP,
|
||||||
NoRM: v.NoRM,
|
NoRM: v.NoRM,
|
||||||
KodeDiagnosa: v.KodeDiagnosa,
|
KodeDiagnosa: v.KodeDiagnosa,
|
||||||
NamaDiagnosa: v.NamaDiagnosa,
|
NamaDiagnosa: v.NamaDiagnosa,
|
||||||
@@ -715,46 +950,62 @@ func GetDataSurKon(c *gin.Context) {
|
|||||||
|
|
||||||
func GetDataSurKonByID(c *gin.Context) {
|
func GetDataSurKonByID(c *gin.Context) {
|
||||||
id := c.Param("idxdaftar")
|
id := c.Param("idxdaftar")
|
||||||
data, err := suratkontrol.GetDataSuratKontrolByID(id)
|
tipe := c.Param("tiperawat")
|
||||||
|
var dataSurKon *sk.GetDataSuratKontrol
|
||||||
|
dataSurKon, err := suratkontrol.GetDataSuratKontrolByIDTipe(id, tipe)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
if err.Error() == "Data tidak ada" {
|
||||||
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
dataSurKon, err = suratkontrol.GetDataSuratKontrolByID(id)
|
||||||
Code: "",
|
if err != nil {
|
||||||
Message: err.Error(),
|
log.Println(err)
|
||||||
})
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
return
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gelarDepan := utils.ReplaceGelar(data.GelarDepan)
|
gelarDepan := utils.ReplaceGelar(dataSurKon.GelarDepan)
|
||||||
gelarBelakang := utils.ReplaceGelar(data.GelarBelakang)
|
gelarBelakang := utils.ReplaceGelar(dataSurKon.GelarBelakang)
|
||||||
namaLengkap := gelarDepan + " " + data.NamaLengkapDokter + " " + gelarBelakang
|
namaLengkap := gelarDepan + " " + dataSurKon.NamaLengkapDokter + " " + gelarBelakang
|
||||||
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
|
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
|
||||||
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
|
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
|
||||||
dateCetakSurkon, _ := time.Parse(time.RFC3339, data.TglCetakSurKon)
|
dateCetakSurkon, _ := time.Parse(time.RFC3339, dataSurKon.TglCetakSurKon)
|
||||||
dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02")
|
dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02")
|
||||||
dateRencanaSurkon, _ := time.Parse(time.RFC3339, data.TglRencanaKontrol)
|
dateRencanaSurkon, _ := time.Parse(time.RFC3339, dataSurKon.TglRencanaKontrol)
|
||||||
dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02")
|
dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02")
|
||||||
resSurKon := &sk.ResponseGetDataSuratKontrol{
|
resSurKon := &sk.ResponseGetDataSuratKontrol{
|
||||||
IDDataSurKon: data.IDDataSurKon,
|
IDDataSurKon: dataSurKon.IDDataSurKon,
|
||||||
IDXDaftar: data.IDXDaftar,
|
IDXDaftar: dataSurKon.IDXDaftar,
|
||||||
TglCetakSurKon: dateCetakSurkonString,
|
TglCetakSurKon: dateCetakSurkonString,
|
||||||
TglRencanaKontrol: dateRencanaSurkonString,
|
TglRencanaKontrol: dateRencanaSurkonString,
|
||||||
NomorSurKon: data.NomorSurKon,
|
NomorSurKon: dataSurKon.NomorSurKon,
|
||||||
PoliAsal: data.PoliAsal,
|
PoliAsal: dataSurKon.PoliAsal,
|
||||||
PoliTujuan: data.PoliTujuan,
|
PoliTujuan: dataSurKon.PoliTujuan,
|
||||||
NomorSEP: data.NomorSEP,
|
NomorSEP: dataSurKon.NomorSEP,
|
||||||
NamaPasien: data.NamaPasien,
|
NamaPasien: dataSurKon.NamaPasien,
|
||||||
NamaDokter: namaLengkap,
|
NamaDokter: namaLengkap,
|
||||||
NomorKartu: "",
|
NomorKartu: "",
|
||||||
Subspesialis: data.Subspesialis,
|
Subspesialis: dataSurKon.Subspesialis,
|
||||||
KodePoli: data.KodePoli,
|
KodePoli: dataSurKon.KodePoli,
|
||||||
KodeDokter: data.KodeDokter,
|
KodeDokter: dataSurKon.KodeDokter,
|
||||||
IDPoli: data.IDPoli,
|
IDPoli: dataSurKon.IDPoli,
|
||||||
IDDokter: data.IDDokter,
|
IDDokter: dataSurKon.IDDokter,
|
||||||
NoRM: data.NoRM,
|
KodeDPJP: dataSurKon.KodeDPJP,
|
||||||
KodeDiagnosa: data.KodeDiagnosa,
|
NoRM: dataSurKon.NoRM,
|
||||||
NamaDiagnosa: data.NamaDiagnosa,
|
KodeDiagnosa: dataSurKon.KodeDiagnosa,
|
||||||
TipeSurKon: data.TipeSurKon,
|
NamaDiagnosa: dataSurKon.NamaDiagnosa,
|
||||||
|
TipeSurKon: dataSurKon.TipeSurKon,
|
||||||
|
User: dataSurKon.User,
|
||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, resSurKon)
|
c.JSON(http.StatusOK, resSurKon)
|
||||||
}
|
}
|
||||||
@@ -815,10 +1066,22 @@ func CariPasienTPP(c *gin.Context) {
|
|||||||
|
|
||||||
query := ``
|
query := ``
|
||||||
var args []interface{}
|
var args []interface{}
|
||||||
|
var argsCount []interface{}
|
||||||
var data []*sk.GetDataSuratKontrol
|
var data []*sk.GetDataSuratKontrol
|
||||||
|
var count int
|
||||||
if req.NoRM != "" {
|
if req.NoRM != "" {
|
||||||
query += `and dkp2."NOMR" = ?`
|
query += `and dkp2."NOMR" = ?`
|
||||||
args = append(args, req.NoRM, req.TanggalAwal, req.TanggalAkhir)
|
argsCount = append(argsCount, req.TipeSurKon, req.NoRM, req.TanggalAwal, req.TanggalAkhir)
|
||||||
|
count, err = suratkontrol.CountDataSurKon(req, query, argsCount)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
args = append(args, req.TipeSurKon, req.NoRM, req.TanggalAwal, req.TanggalAkhir, req.Offset, req.Limit)
|
||||||
data, err = suratkontrol.SearchDataSurKon(req, query, args)
|
data, err = suratkontrol.SearchDataSurKon(req, query, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -830,7 +1093,17 @@ func CariPasienTPP(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
} else if req.NoSEP != "" {
|
} else if req.NoSEP != "" {
|
||||||
query += `and dkp2."Nomor_sep" = ?`
|
query += `and dkp2."Nomor_sep" = ?`
|
||||||
args = append(args, req.NoSEP, req.TanggalAwal, req.TanggalAkhir)
|
argsCount = append(argsCount, req.TipeSurKon, req.NoSEP, req.TanggalAwal, req.TanggalAkhir)
|
||||||
|
count, err = suratkontrol.CountDataSurKon(req, query, argsCount)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
args = append(args, req.TipeSurKon, req.NoSEP, req.TanggalAwal, req.TanggalAkhir, req.Offset, req.Limit)
|
||||||
data, err = suratkontrol.SearchDataSurKon(req, query, args)
|
data, err = suratkontrol.SearchDataSurKon(req, query, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -842,7 +1115,17 @@ func CariPasienTPP(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
} else if req.PoliKlinik != "" {
|
} else if req.PoliKlinik != "" {
|
||||||
query += `and ds."id" = ?`
|
query += `and ds."id" = ?`
|
||||||
args = append(args, req.PoliKlinik, req.TanggalAwal, req.TanggalAkhir)
|
argsCount = append(argsCount, req.TipeSurKon, req.PoliKlinik, req.TanggalAwal, req.TanggalAkhir)
|
||||||
|
count, err = suratkontrol.CountDataSurKon(req, query, argsCount)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
args = append(args, req.TipeSurKon, req.PoliKlinik, req.TanggalAwal, req.TanggalAkhir, req.Offset, req.Limit)
|
||||||
data, err = suratkontrol.SearchDataSurKon(req, query, args)
|
data, err = suratkontrol.SearchDataSurKon(req, query, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -853,7 +1136,17 @@ func CariPasienTPP(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
args = append(args, req.TanggalAwal, req.TanggalAkhir)
|
argsCount = append(argsCount, req.TipeSurKon, req.TanggalAwal, req.TanggalAkhir)
|
||||||
|
count, err = suratkontrol.CountDataSurKon(req, query, argsCount)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
args = append(args, req.TipeSurKon, req.TanggalAwal, req.TanggalAkhir, req.Offset, req.Limit)
|
||||||
data, err = suratkontrol.SearchDataSurKon(req, query, args)
|
data, err = suratkontrol.SearchDataSurKon(req, query, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -864,8 +1157,7 @@ func CariPasienTPP(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var listData []*sk.ResponseGetDataSuratKontrol
|
||||||
var resSurKon []*sk.ResponseGetDataSuratKontrol
|
|
||||||
for _, v := range data {
|
for _, v := range data {
|
||||||
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
|
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
|
||||||
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
|
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
|
||||||
@@ -876,7 +1168,7 @@ func CariPasienTPP(c *gin.Context) {
|
|||||||
dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02")
|
dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02")
|
||||||
dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol)
|
dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TglRencanaKontrol)
|
||||||
dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02")
|
dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02")
|
||||||
resSurKon = append(resSurKon, &sk.ResponseGetDataSuratKontrol{
|
listData = append(listData, &sk.ResponseGetDataSuratKontrol{
|
||||||
IDDataSurKon: v.IDDataSurKon,
|
IDDataSurKon: v.IDDataSurKon,
|
||||||
IDXDaftar: v.IDXDaftar,
|
IDXDaftar: v.IDXDaftar,
|
||||||
TglCetakSurKon: dateCetakSurkonString,
|
TglCetakSurKon: dateCetakSurkonString,
|
||||||
@@ -891,11 +1183,60 @@ func CariPasienTPP(c *gin.Context) {
|
|||||||
Subspesialis: v.Subspesialis,
|
Subspesialis: v.Subspesialis,
|
||||||
KodePoli: v.KodePoli,
|
KodePoli: v.KodePoli,
|
||||||
KodeDokter: v.KodeDokter,
|
KodeDokter: v.KodeDokter,
|
||||||
|
IDDokter: v.IDDokter,
|
||||||
|
KodeDPJP: v.KodeDPJP,
|
||||||
NoRM: v.NoRM,
|
NoRM: v.NoRM,
|
||||||
KodeDiagnosa: v.KodeDiagnosa,
|
KodeDiagnosa: v.KodeDiagnosa,
|
||||||
NamaDiagnosa: v.NamaDiagnosa,
|
NamaDiagnosa: v.NamaDiagnosa,
|
||||||
TipeSurKon: v.TipeSurKon,
|
TipeSurKon: v.TipeSurKon,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resSurKon := &sk.ResponseCariDataSuratKontrol{
|
||||||
|
JumlahData: count,
|
||||||
|
ListDataSuratKontrol: listData,
|
||||||
|
}
|
||||||
c.JSON(http.StatusOK, resSurKon)
|
c.JSON(http.StatusOK, resSurKon)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GethistoribyNorm(c *gin.Context) {
|
||||||
|
norm := c.Param("norm")
|
||||||
|
offset := c.Param("offset")
|
||||||
|
limit := c.Param("limit")
|
||||||
|
data, err := suratkontrol.Getdatahistori(norm, offset, limit)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
c.JSON(http.StatusInternalServerError, &sk.MetadataString{
|
||||||
|
Code: "",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var resHisSurKon []*sk.Dataresponse
|
||||||
|
for _, v := range data {
|
||||||
|
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
|
||||||
|
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
|
||||||
|
namaLengkap := gelarDepan + " " + v.NamaDokter + " " + gelarBelakang
|
||||||
|
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
|
||||||
|
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
|
||||||
|
dateCetakSurkon, _ := time.Parse(time.RFC3339, v.TanggalCetak)
|
||||||
|
dateCetakSurkonString := dateCetakSurkon.Format("2006-01-02")
|
||||||
|
dateRencanaSurkon, _ := time.Parse(time.RFC3339, v.TanggalRencana)
|
||||||
|
dateRencanaSurkonString := dateRencanaSurkon.Format("2006-01-02")
|
||||||
|
resHisSurKon = append(resHisSurKon, &sk.Dataresponse{
|
||||||
|
NamaPasien: v.NamaPasien,
|
||||||
|
NoSEP: v.NoSEP,
|
||||||
|
NomorSuratkontrol: v.NomorSuratkontrol,
|
||||||
|
TanggalRencana: dateRencanaSurkonString,
|
||||||
|
TanggalCetak: dateCetakSurkonString,
|
||||||
|
Spesialis: v.Spesialis,
|
||||||
|
Subspesialis: v.Subspesialis,
|
||||||
|
NamaLengkap: namaLengkap,
|
||||||
|
Tiperawat: v.Tiperawat,
|
||||||
|
UserCreate: v.UserCreate,
|
||||||
|
UserUpdate: v.UserUpdate,
|
||||||
|
Status: v.Status,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusOK, resHisSurKon)
|
||||||
|
}
|
||||||
@@ -1,81 +1,120 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bridging-rssa/config"
|
"bridging-rssa/config"
|
||||||
"bridging-rssa/handlers/bpjs"
|
"bridging-rssa/handlers/bpjs"
|
||||||
"bridging-rssa/handlers/bpjs/jadwal_dokter"
|
icare "bridging-rssa/handlers/bpjs/i_care"
|
||||||
suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol"
|
"bridging-rssa/handlers/bpjs/jadwal_dokter"
|
||||||
"log"
|
suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol"
|
||||||
|
"log"
|
||||||
_ "bridging-rssa/docs"
|
|
||||||
|
_ "bridging-rssa/docs"
|
||||||
"github.com/gin-contrib/cors"
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-contrib/cors"
|
||||||
"github.com/joho/godotenv"
|
"github.com/gin-gonic/gin"
|
||||||
swaggerFiles "github.com/swaggo/files"
|
"github.com/joho/godotenv"
|
||||||
ginSwagger "github.com/swaggo/gin-swagger"
|
cron "github.com/robfig/cron/v3"
|
||||||
)
|
swaggerFiles "github.com/swaggo/files"
|
||||||
|
ginSwagger "github.com/swaggo/gin-swagger"
|
||||||
// @title Crud User
|
)
|
||||||
// @version 1
|
|
||||||
// @Description Rest API CRUD User
|
// @title Crud User
|
||||||
|
// @version 1
|
||||||
// @host localhost:8080
|
// @Description Rest API CRUD User
|
||||||
|
|
||||||
func main() {
|
// @host localhost:8080
|
||||||
err := godotenv.Load()
|
|
||||||
if err != nil {
|
func main() {
|
||||||
log.Fatal("Error loading .env file")
|
err := godotenv.Load()
|
||||||
}
|
if err != nil {
|
||||||
|
log.Fatal("Error loading .env file")
|
||||||
config.ConnectDB()
|
}
|
||||||
|
|
||||||
r := gin.Default()
|
config.ConnectDB()
|
||||||
|
|
||||||
v1 := r.Group("/api")
|
r := gin.Default()
|
||||||
|
|
||||||
subspesialis := v1.Group("/subspesialis")
|
scheduler := cron.New()
|
||||||
{
|
|
||||||
subspesialis.GET("/", bpjs.GetAllSubspesialis)
|
defer scheduler.Stop()
|
||||||
}
|
|
||||||
|
// SCHEDULE HARIAN
|
||||||
jadwalDokter := v1.Group("/jadwaldokter")
|
scheduler.AddFunc("15 2 * * *", func() {
|
||||||
{
|
log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER ===")
|
||||||
jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
|
for {
|
||||||
jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP)
|
success := jadwal_dokter.GetJadwalDokterNew()
|
||||||
// jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
|
if success {
|
||||||
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetJadwalSubspesialisByDate)
|
log.Println("=== SCHEDULE GET JADWAL DOKTER DONE ===")
|
||||||
jadwalDokter.GET("/tanggal/:tanggal/spesialis/:spesialis", jadwal_dokter.GetDokterBySpesialis)
|
break
|
||||||
jadwalDokter.GET("/tanggal/:tanggal/subspesialis/:subspesialis", jadwal_dokter.GetDokterBySubspesialis)
|
}
|
||||||
}
|
}
|
||||||
|
})
|
||||||
suratKontrol := v1.Group("/suratkontrol")
|
|
||||||
{
|
//SCHEDULE TIAP 3 BULAN
|
||||||
suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon)
|
scheduler.AddFunc("20 2 * * 5", func() {
|
||||||
suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID)
|
log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER MONTHLY===")
|
||||||
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
|
for {
|
||||||
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
|
success := jadwal_dokter.GetDataJadwalDokter()
|
||||||
suratKontrol.GET("/printSurKon/:idxdaftar", suratkontrol.PrintSurKon)
|
if success {
|
||||||
suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
|
log.Println("=== SCHEDULE GET JADWAL DOKTER MONTHLY DONE ===")
|
||||||
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
|
break
|
||||||
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
|
}
|
||||||
suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
go scheduler.Start()
|
||||||
r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
|
||||||
r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
v1 := r.Group("/api")
|
||||||
r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
|
||||||
r.Use(cors.New(cors.Config{
|
subspesialis := v1.Group("/subspesialis")
|
||||||
AllowOrigins: []string{"*"}, // or specific domains like "http://example.com"
|
{
|
||||||
AllowMethods: []string{"GET", "POST", "PUT", "DELETE"},
|
subspesialis.GET("/", bpjs.GetAllSubspesialis)
|
||||||
AllowHeaders: []string{"Origin", "Content-Type"},
|
}
|
||||||
AllowCredentials: true,
|
|
||||||
}))
|
//API UNTUK JADWAL DOKTER
|
||||||
|
jadwalDokter := v1.Group("/jadwaldokter")
|
||||||
log.Println("JALAN DI PORT : 8081")
|
{
|
||||||
err = r.Run(":8081")
|
jadwalDokter.GET("/date/:tanggal", jadwal_dokter.GetJadwalDokter)
|
||||||
if err != nil {
|
jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP)
|
||||||
log.Fatal(err)
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
|
// API UNTUK SURAT KONTROL
|
||||||
|
suratKontrol := v1.Group("/suratkontrol")
|
||||||
|
{
|
||||||
|
suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon)
|
||||||
|
suratKontrol.GET("/idxdaftar/:idxdaftar/tiperawat/:tiperawat", suratkontrol.GetDataSurKonByID)
|
||||||
|
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
|
||||||
|
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
|
||||||
|
suratKontrol.GET("/printSurKon/:idxdaftar/tiperawat/:tiperawat", suratkontrol.PrintSurKon)
|
||||||
|
suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
|
||||||
|
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
|
||||||
|
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
|
||||||
|
suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
|
||||||
|
suratKontrol.GET("/norm/:norm/limit/:limit/offset/:offset", suratkontrol.GethistoribyNorm)
|
||||||
|
}
|
||||||
|
|
||||||
|
iCare := v1.Group("/icare")
|
||||||
|
{
|
||||||
|
iCare.POST("/rs/validate", icare.GetFKRTL)
|
||||||
|
iCare.POST("/pcare/validate", icare.GetFKTP)
|
||||||
|
}
|
||||||
|
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
|
r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
|
r.PUT("/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 : 8080")
|
||||||
|
err = r.Run(":8080")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package icare
|
||||||
|
|
||||||
|
type ReqICare struct {
|
||||||
|
IDXDaftar string `json:"idxdaftar"`
|
||||||
|
Param string `json:"param"`
|
||||||
|
KodeDokter int `json:"kodedokter"`
|
||||||
|
User string `json:"user"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RequestICare struct {
|
||||||
|
Param string `json:"param"`
|
||||||
|
KodeDokter int `json:"kodedokter"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ReqFKTP struct {
|
||||||
|
Param string `json:"param"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Metadata struct {
|
||||||
|
Code int `json:"code"`
|
||||||
|
Message string `json:"message"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Response struct {
|
||||||
|
Url string `json:"url"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResponseGet struct {
|
||||||
|
Response Response `json:"response"`
|
||||||
|
MetaData Metadata `json:"metaData"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResponseGetRaw struct {
|
||||||
|
Response string `json:"response"`
|
||||||
|
MetaData Metadata `json:"metaData"`
|
||||||
|
}
|
||||||
@@ -1,72 +1,94 @@
|
|||||||
package jadwal_dokter
|
package jadwal_dokter
|
||||||
|
|
||||||
type JadwalDokterRaw struct {
|
type JadwalDokterRaw struct {
|
||||||
Response string `json:"response"`
|
Response string `json:"response"`
|
||||||
MetaData Metadata `json:"metadata"`
|
MetaData Metadata `json:"metadata"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Metadata struct {
|
type JadwalDokter struct {
|
||||||
Code int `json:"code"`
|
Response []*ListDokter `json:"response"`
|
||||||
Message string `json:"message"`
|
MetaData Metadata `json:"metadata"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListDokter struct {
|
type Metadata struct {
|
||||||
KodeSubspesialis string `json:"kodesubspesialis"`
|
Code int `json:"code"`
|
||||||
Hari int `json:"hari"`
|
Message string `json:"message"`
|
||||||
KapasitasPasien int `json:"kapasitaspasien"`
|
}
|
||||||
Libur int `json:"libur"`
|
|
||||||
NamaHari string `json:"namahari"`
|
type ListDokter struct {
|
||||||
Jadwal string `json:"jadwal"`
|
KodeSubspesialis string `json:"kodesubspesialis"`
|
||||||
NamaSubspesialis string `json:"namasubspesialis"`
|
Hari int `json:"hari"`
|
||||||
NamaDokter string `json:"namadokter"`
|
KapasitasPasien int `json:"kapasitaspasien"`
|
||||||
KodePoli string `json:"kodepoli"`
|
Libur int `json:"libur"`
|
||||||
NamaPoli string `json:"namapoli"`
|
NamaHari string `json:"namahari"`
|
||||||
KodeDokter int `json:"kodedokter"`
|
Jadwal string `json:"jadwal"`
|
||||||
}
|
NamaSubspesialis string `json:"namasubspesialis"`
|
||||||
|
NamaDokter string `json:"namadokter"`
|
||||||
type DaftarSpesialis struct {
|
KodePoli string `json:"kodepoli"`
|
||||||
ID int `json:"id"`
|
NamaPoli string `json:"namapoli"`
|
||||||
Kode string `json:"Kode"`
|
KodeDokter int `json:"kodedokter"`
|
||||||
Spesialis string `json:"Spesialis"`
|
}
|
||||||
}
|
|
||||||
|
type DaftarSpesialis struct {
|
||||||
type JadwalDokterSatuData struct {
|
ID int `json:"id"`
|
||||||
ID int `gorm:"column:id" json:"id"`
|
Kode string `json:"Kode"`
|
||||||
Hari int `gorm:"column:Hari" json:"Hari"`
|
Spesialis string `json:"Spesialis"`
|
||||||
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
|
}
|
||||||
Waktu string `gorm:"column:Waktu" json:"Waktu"`
|
|
||||||
Dokter string `gorm:"column:Dokter" json:"Dokter"`
|
type JadwalDokterSatuData struct {
|
||||||
Spesialis int `gorm:"column:Spesialis" json:"Spesialis"`
|
ID int `gorm:"column:id" json:"id"`
|
||||||
SubSpesialis int `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
|
Hari int `gorm:"column:Hari" json:"Hari"`
|
||||||
Status int `gorm:"column:Status" json:"Status"`
|
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
|
||||||
}
|
Waktu string `gorm:"column:Waktu" json:"Waktu"`
|
||||||
|
Dokter string `gorm:"column:Dokter" json:"Dokter"`
|
||||||
type JadwalDokterTempSatuData struct {
|
Spesialis int `gorm:"column:Spesialis" json:"Spesialis"`
|
||||||
ID int `gorm:"column:id" json:"id"`
|
SubSpesialis int `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
|
||||||
Hari int `gorm:"column:Hari" json:"Hari"`
|
Status int `gorm:"column:Status" json:"Status"`
|
||||||
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
|
}
|
||||||
Waktu string `gorm:"column:Waktu" json:"Waktu"`
|
|
||||||
Dokter string `gorm:"column:Dokter" json:"Dokter"`
|
type DataJadwalDokterSatuData struct {
|
||||||
Spesialis string `gorm:"column:Spesialis" json:"Spesialis"`
|
ID string `gorm:"column:id" json:"id"`
|
||||||
SubSpesialis string `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
|
DateCreated string `gorm:"column:date_created" json:"Date_created"`
|
||||||
Status int `gorm:"column:Status" json:"Status"`
|
Hari string `gorm:"column:Hari" json:"Hari"`
|
||||||
}
|
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
|
||||||
|
Waktu string `gorm:"column:Waktu" json:"Waktu"`
|
||||||
type ResponseListHari struct {
|
Dokter string `gorm:"column:Dokter" json:"Dokter"`
|
||||||
IDSpesialis int `json:"id_spesialis"`
|
Spesialis int `gorm:"column:Spesialis" json:"Spesialis"`
|
||||||
Kode string `json:"Kode"`
|
SubSpesialis int `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
|
||||||
Spesialis string `json:"Spesialis"`
|
TanggalJadwal string `gorm:"column:Tanggal_jadwal" json:"Tanggal_jadwal"`
|
||||||
Subspesialis string `json:"Subspesialis"`
|
}
|
||||||
IDSubspesialis string `json:"id_subspesialis"`
|
|
||||||
NamaLengkap string `json:"nama_lengkap"`
|
type JadwalDokterTempSatuData struct {
|
||||||
HFISCode string `json:"HFIS_code"`
|
ID int `gorm:"column:id" json:"id"`
|
||||||
KodeDPJP string `json:"DPJP_code"`
|
Hari int `gorm:"column:Hari" json:"Hari"`
|
||||||
IDDokter string `json:"id_dokter"`
|
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
|
||||||
JadwalDokter []ListJadwalDokter `json:"Jadwal_dokter"`
|
Waktu string `gorm:"column:Waktu" json:"Waktu"`
|
||||||
}
|
Dokter string `gorm:"column:Dokter" json:"Dokter"`
|
||||||
|
Spesialis string `gorm:"column:Spesialis" json:"Spesialis"`
|
||||||
type ListJadwalDokter struct {
|
SubSpesialis string `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
|
||||||
NamaHari string `json:"Nama_hari"`
|
Status int `gorm:"column:Status" json:"Status"`
|
||||||
KodeHari int `json:"Kode_hari"`
|
}
|
||||||
Waktu string `json:"Waktu"`
|
|
||||||
}
|
type ResponseListHari struct {
|
||||||
|
IDSpesialis int `json:"id_spesialis"`
|
||||||
|
Kode string `json:"Kode"`
|
||||||
|
Spesialis string `json:"Spesialis"`
|
||||||
|
Subspesialis string `json:"Subspesialis"`
|
||||||
|
IDSubspesialis int `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"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RequestJadwalDokter struct {
|
||||||
|
KodePoli string `json:"kodepoli"`
|
||||||
|
Tanggal string `json:"tanggal"`
|
||||||
|
}
|
||||||
@@ -21,4 +21,5 @@ type KunjunganPasien struct {
|
|||||||
DisplayDiagnosisAkhirKeluar string `gorm:"column:Display_diagnosis_akhir_keluar" json:"Display_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"`
|
DiagnosisPrimerUtama string `gorm:"column:Diagnosis_primer_utama" json:"Diagnosis_primer_utama"`
|
||||||
DisplayDiagnosisPrimerUtama string `gorm:"column:Display_diagnosis_primer_utama" json:"Display_diagnosis_primer_utama"`
|
DisplayDiagnosisPrimerUtama string `gorm:"column:Display_diagnosis_primer_utama" json:"Display_diagnosis_primer_utama"`
|
||||||
|
NomorRM string `gorm:"column:No_rm" json:"No_rm"`
|
||||||
}
|
}
|
||||||
@@ -30,14 +30,18 @@ type RequestInsertRencanaKontrol struct {
|
|||||||
TglRencanaKontrol string `json:"tglRencanaKontrol"`
|
TglRencanaKontrol string `json:"tglRencanaKontrol"`
|
||||||
User string `json:"user"`
|
User string `json:"user"`
|
||||||
IDDokter string `json:"id_dokter"`
|
IDDokter string `json:"id_dokter"`
|
||||||
KodeDiagnosa string `json:"kode_diagnosa"`
|
KodeDiagnosa string `json:"Kode_diagnosa"`
|
||||||
NamaDiagnosa string `json:"nama_diagnosa"`
|
NamaDiagnosa string `json:"Nama_diagnosa"`
|
||||||
|
TipeSurKon string `json:"tipe_surkon"`
|
||||||
|
TipeRawat string `json:"tipe_rawat"`
|
||||||
|
Ruangan string `json:"ruangan"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ReqDeleteRencanaKontrol struct {
|
type ReqDeleteRencanaKontrol struct {
|
||||||
IDDataSurKon string `json:"id_surat_kontrol"`
|
IDDataSurKon string `json:"id_surat_kontrol"`
|
||||||
NomorSurKon string `json:"Nomor_surat_kontrol"`
|
NomorSurKon string `json:"Nomor_surat_kontrol"`
|
||||||
User string `json:"user"`
|
User string `json:"user"`
|
||||||
|
TipeSurKon string `json:"tipe_surkon"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type RequestUpdateRencanaKontrol struct {
|
type RequestUpdateRencanaKontrol struct {
|
||||||
@@ -52,6 +56,8 @@ type RequestUpdateRencanaKontrol struct {
|
|||||||
User string `json:"user"`
|
User string `json:"user"`
|
||||||
KodeDiagnosa string `json:"Kode_diagnosa"`
|
KodeDiagnosa string `json:"Kode_diagnosa"`
|
||||||
NamaDiagnosa string `json:"Nama_diagnosa"`
|
NamaDiagnosa string `json:"Nama_diagnosa"`
|
||||||
|
TipeSurKon string `json:"tipe_surkon"`
|
||||||
|
TipeRawat string `json:"tipe_rawat"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type TSuratKontrol struct {
|
type TSuratKontrol struct {
|
||||||
@@ -181,8 +187,8 @@ type Peserta struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ProvUmum struct {
|
type ProvUmum struct {
|
||||||
KodedProvider string `json:"kdProvider"`
|
KodeProvider string `json:"kdProvider"`
|
||||||
NamaProvider string `json:"nmProvider"`
|
NamaProvider string `json:"nmProvider"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProvPerujuk struct {
|
type ProvPerujuk struct {
|
||||||
@@ -211,6 +217,7 @@ type DataSuratKontrol struct {
|
|||||||
UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_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"`
|
TipeSurKon string `gorm:"column:Tipe_surat_kontrol" json:"Tipe_surat_kontrol"`
|
||||||
UserUpdatedSurKon string `gorm:"column:User_updated_surat_kontrol" json:"User_updated_surat_kontrol"`
|
UserUpdatedSurKon string `gorm:"column:User_updated_surat_kontrol" json:"User_updated_surat_kontrol"`
|
||||||
|
TipeRawat string `gorm:"column:Tipe_rawat" json:"Tipe_rawat"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ResponseSuratKontrolBySEP struct {
|
type ResponseSuratKontrolBySEP struct {
|
||||||
@@ -243,10 +250,12 @@ type GetDataSuratKontrol struct {
|
|||||||
NomorKartu string `gorm:"column:No_kartu" json:"No_kartu"`
|
NomorKartu string `gorm:"column:No_kartu" json:"No_kartu"`
|
||||||
IDPoli string `gorm:"column:ID_poli" json:"id_poli"`
|
IDPoli string `gorm:"column:ID_poli" json:"id_poli"`
|
||||||
IDDokter string `gorm:"column:id_dokter" json:"id_dokter"`
|
IDDokter string `gorm:"column:id_dokter" json:"id_dokter"`
|
||||||
|
KodeDPJP string `gorm:"column:Kode_dpjp" json:"Kode_dpjp"`
|
||||||
NoRM string `gorm:"column:No_rm" json:"No_rm"`
|
NoRM string `gorm:"column:No_rm" json:"No_rm"`
|
||||||
KodeDiagnosa string `gorm:"column:Kode_diagnosa" json:"Kode_diagnosa"`
|
KodeDiagnosa string `gorm:"column:Kode_diagnosa" json:"Kode_diagnosa"`
|
||||||
NamaDiagnosa string `gorm:"column:Nama_diagnosa" json:"Nama_diagnosa"`
|
NamaDiagnosa string `gorm:"column:Nama_diagnosa" json:"Nama_diagnosa"`
|
||||||
TipeSurKon string `gorm:"column:Tipe_SurKon" json:"Tipe_SurKon"`
|
TipeSurKon string `gorm:"column:Tipe_SurKon" json:"Tipe_SurKon"`
|
||||||
|
User string `gorm:"column:User" json:"User"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ResponseGetDataSuratKontrol struct {
|
type ResponseGetDataSuratKontrol struct {
|
||||||
@@ -264,12 +273,19 @@ type ResponseGetDataSuratKontrol struct {
|
|||||||
Subspesialis string `json:"Subspesialis"`
|
Subspesialis string `json:"Subspesialis"`
|
||||||
KodePoli string `json:"Kode_poli"`
|
KodePoli string `json:"Kode_poli"`
|
||||||
KodeDokter string `json:"Kode_dokter"`
|
KodeDokter string `json:"Kode_dokter"`
|
||||||
|
KodeDPJP string `json:"Kode_dpjp"`
|
||||||
IDPoli string `json:"id_poli"`
|
IDPoli string `json:"id_poli"`
|
||||||
IDDokter string `json:"id_dokter"`
|
IDDokter string `json:"id_dokter"`
|
||||||
NoRM string `json:"No_rm"`
|
NoRM string `json:"No_rm"`
|
||||||
KodeDiagnosa string `json:"Kode_diagnosa"`
|
KodeDiagnosa string `json:"Kode_diagnosa"`
|
||||||
NamaDiagnosa string `json:"Nama_diagnosa"`
|
NamaDiagnosa string `json:"Nama_diagnosa"`
|
||||||
TipeSurKon string `json:"Tipe_SurKon"`
|
TipeSurKon string `json:"Tipe_SurKon"`
|
||||||
|
User string `json:"User"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResponseCariDataSuratKontrol struct {
|
||||||
|
JumlahData int `json:"jumlah_data"`
|
||||||
|
ListDataSuratKontrol []*ResponseGetDataSuratKontrol `json:"list_data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type RequestCariPasien struct {
|
type RequestCariPasien struct {
|
||||||
@@ -278,6 +294,39 @@ type RequestCariPasien struct {
|
|||||||
PoliKlinik string `json:"poliklinik"`
|
PoliKlinik string `json:"poliklinik"`
|
||||||
TanggalAwal string `json:"tanggal_awal"`
|
TanggalAwal string `json:"tanggal_awal"`
|
||||||
TanggalAkhir string `json:"tanggal_akhir"`
|
TanggalAkhir string `json:"tanggal_akhir"`
|
||||||
|
TipeSurKon string `json:"tipe_surkon"`
|
||||||
Offset string `json:"offset"`
|
Offset string `json:"offset"`
|
||||||
Limit string `json:"limit"`
|
Limit string `json:"limit"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type HistoriSurkon struct {
|
||||||
|
NamaPasien string `gorm:"column:Nama_lengkap" json:"Nama_pasien"`
|
||||||
|
NoSEP string `gorm:"column:Nomor_sep" json:"No_SEP"`
|
||||||
|
NomorSuratkontrol string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"`
|
||||||
|
TanggalRencana string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"`
|
||||||
|
TanggalCetak string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"`
|
||||||
|
Spesialis string `gorm:"column:Spesialis" json:"Spesialis"`
|
||||||
|
Subspesialis string `gorm:"column:Subspesialis" json:"Subspesialis"`
|
||||||
|
GelarDepan string `gorm:"column:gelardepan" json:"Gelar_depan"`
|
||||||
|
NamaDokter string `gorm:"column:Nama_lengkap_dokter" json:"Nama_dokter"`
|
||||||
|
GelarBelakang string `gorm:"column:gelarbelakang" json:"Gelar_belakang"`
|
||||||
|
Tiperawat string `gorm:"column:Tipe_rawat" json:"Tipe_rawat"`
|
||||||
|
UserCreate string `gorm:"column:User_created_surat_kontrol" json:"User_create"`
|
||||||
|
UserUpdate string `gorm:"column:User_updated_surat_kontrol" json:"User_update"`
|
||||||
|
Status string `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dataresponse struct {
|
||||||
|
NamaPasien string `json:"Nama_pasien"`
|
||||||
|
NoSEP string `json:"No_SEP"`
|
||||||
|
NomorSuratkontrol string `json:"Nomor_surat_kontrol"`
|
||||||
|
TanggalRencana string `json:"Tanggal_rencana_kontrol"`
|
||||||
|
TanggalCetak string `json:"Tanggal_cetak_surat_kontrol"`
|
||||||
|
Spesialis string `json:"Spesialis"`
|
||||||
|
Subspesialis string `json:"Subspesialis"`
|
||||||
|
NamaLengkap string `json:"Dpjp"`
|
||||||
|
Tiperawat string `json:"Tipe_rawat"`
|
||||||
|
UserCreate string `json:"User_create"`
|
||||||
|
UserUpdate string `json:"User_update"`
|
||||||
|
Status string `json:"Status_surat_kontrol"`
|
||||||
|
}
|
||||||
@@ -16,6 +16,7 @@ type NamaLengkap struct {
|
|||||||
NamaLengkap string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"`
|
NamaLengkap string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"`
|
||||||
GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"`
|
GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"`
|
||||||
HFISCode string `gorm:"column:HFIS_code" json:"HFIS_code"`
|
HFISCode string `gorm:"column:HFIS_code" json:"HFIS_code"`
|
||||||
|
DPJPCode string `gorm:"column:DPJP_code" json:"DPJP_code"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ResponseDokter struct {
|
type ResponseDokter struct {
|
||||||
@@ -31,4 +32,5 @@ type ResponseDokterNew struct {
|
|||||||
Subspesialis int `json:"subspesialis"`
|
Subspesialis int `json:"subspesialis"`
|
||||||
HFISCode string `json:"HFIS_code"`
|
HFISCode string `json:"HFIS_code"`
|
||||||
KodePoli string `json:"kode_poli"`
|
KodePoli string `json:"kode_poli"`
|
||||||
|
DPJPCode string `json:"DPJP_code"`
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package jadwal
|
||||||
|
|
||||||
|
type DaftarJadwalLiburPelayanan struct {
|
||||||
|
NamaLiburPelayanan string `gorm:"column:Nama_libur_pelayanan" json:"Nama_libur_pelayanan"`
|
||||||
|
KeteranganLiburPelayanan string `gorm:"column:Keterangan_libur_pelayanan" json:"Keterangan_libur_pelayanan"`
|
||||||
|
TanggalLiburPelayanan string `gorm:"column:Tanggal_libur_pelayanan" json:"Tanggal_libur_pelayanan"`
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package logapi
|
||||||
|
|
||||||
|
type InsertLogICare struct {
|
||||||
|
ID string `gorm:"column:id" json:"id"`
|
||||||
|
DateCreated string `gorm:"column:date_created" json:"date_created"`
|
||||||
|
Ruangan int `gorm:"column:Ruangan" json:"Ruangan"`
|
||||||
|
Dokter string `gorm:"column:Dokter" json:"Dokter"`
|
||||||
|
Kunjungan_pasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"`
|
||||||
|
WaktuTransaksi string `gorm:"column:Waktu_transaksi" json:"Waktu_transaksi"`
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package pasien
|
||||||
|
|
||||||
|
type KunjunganPasien struct {
|
||||||
|
ID string `gorm:"column:id" json:"id"`
|
||||||
|
Ruangan int `gorm:"column:Ruangan" json:"Ruangan"`
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user