Author SHA256 Message Date
mirza.millahsyafiq.0912 81b7cb08e8 new branch 2024-12-20 08:57:06 +07:00
mirza.millahsyafiq.0912 e7f4001ac7 remove unused code 2024-11-05 08:31:11 +07:00
mirza.millahsyafiq.0912 82e756d5d9 fix conflict 2024-11-05 08:30:32 +07:00
mirza.millahsyafiq.0912 67fbe47f87 add i_care code 2024-11-05 08:25:53 +07:00
mirza.millahsyafiq.0912 5c815e4146 update code 2024-10-31 13:52:36 +07:00
mirza.millahsyafiq.0912 c07a2dba07 fix conflict 2024-10-24 13:03:57 +07:00
mirza.millahsyafiq.0912 e681aa5581 fix conflict 2024-10-23 12:07:18 +07:00
mirza.millahsyafiq.0912 6d8298a845 fix conflict 2024-10-22 12:13:34 +07:00
mirza.millahsyafiq.0912 18665f7d34 add rujukan 2024-10-22 12:01:12 +07:00
42 changed files with 3541 additions and 3270 deletions
+17 -11
View File
@@ -4,22 +4,29 @@ 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 SIMRS_HOST=10.10.123.160
ANTREAN_RS=/antreanrs SIMRS_USERNAME=simrs
SIMRS_PASSWORD=simrs.rssa
SIMRS_NAME=simrs
SIMRS_PORT=5000
BASEURL_BPJS=https://apijkn.bpjs-kesehatan.go.id/
ANTREAN_RS=antreanrs
I_CARE_JKN=ihs
CONS_ID=5257 CONS_ID=5257
USER_KEY=4cf1cbef8c008440bbe9ef9ba789e482 USER_KEY=4cf1cbef8c008440bbe9ef9ba789e482
USER_KEY_ICARE=1cd65acaa349684be6353bea5149e2e2
SECRET_KEY=1bV363512D 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 BASEURL_BPJS_DEV=https://apijkn-dev.bpjs-kesehatan.go.id/
VCLAIM_RS_DEV=/vclaim-rest-dev VCLAIM_RS_DEV=vclaim-rest-dev
SURAT_KONTROL_RS=/vclaim-rest VCLAIM_RS=vclaim-rest
I_CARE_JKN=/wsihs I_CARE_JKN=wsihs
I_CARE_JKN_DEV=/ihs_dev I_CARE_JKN_DEV=ihs_dev
INSERT_SURAT_KONTROL=/RencanaKontrol/insert INSERT_SURAT_KONTROL=/RencanaKontrol/insert
UPDATE_SURAT_KONTROL=/RencanaKontrol/Update UPDATE_SURAT_KONTROL=/RencanaKontrol/Update
@@ -28,8 +35,7 @@ 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=/Rujukan/
GET_NOMOR_RUJUKAN_BATCH=/Rujukan/List/Peserta/ GET_NOMOR_RUJUKAN_BATCH=/Rujukan/List/Peserta/
GET_REFERENSI_DOKTER=/referensi/dokter/
GET_FKRTL=/api/rs/validate GET_FKRTL=/api/rs/validate
GET_FKTP=/api/pcare/validate GET_FKTP=/api/pcare/validate
-8
View File
@@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
-13
View File
@@ -1,13 +0,0 @@
<?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>
-8
View File
@@ -1,8 +0,0 @@
<?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
View File
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
+1 -5
View File
@@ -12,11 +12,7 @@ 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/
+46 -5
View File
@@ -17,6 +17,7 @@ import (
var DB *gorm.DB var DB *gorm.DB
var SatuDataDB *gorm.DB var SatuDataDB *gorm.DB
var SimrsDB *gorm.DB
var err error var err error
func ConnectDB() { func ConnectDB() {
@@ -34,6 +35,21 @@ func ConnectDB() {
} else { } else {
log.Println("Successfully connected to the database") log.Println("Successfully connected to the database")
} }
hostSimrs := os.Getenv("SIMRS_HOST")
userNameSimrs := os.Getenv("SIMRS_USERNAME")
passwordSimrs := os.Getenv("SIMRS_PASSWORD")
dbNameSimrs := os.Getenv("SIMRS_NAME")
portSimrs := os.Getenv("SIMRS_PORT")
simrs := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSimrs, userNameSimrs, passwordSimrs, dbNameSimrs, portSimrs)
SimrsDB, err = gorm.Open(postgres.Open(simrs), &gorm.Config{})
if err != nil {
log.Fatal("Failed to connect to Satu Data database: ", err)
} else {
log.Println("Successfully connected to the database")
}
} }
func SetHeader(isIcare bool, cfg config.ConfigBpjs) *config.Header { func SetHeader(isIcare bool, cfg config.ConfigBpjs) *config.Header {
@@ -49,6 +65,7 @@ func SetHeader(isIcare bool, cfg config.ConfigBpjs) *config.Header {
if isIcare { if isIcare {
cfg.User_key = os.Getenv("USER_KEY_ICARE") 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)
@@ -70,6 +87,35 @@ func SetHeader(isIcare bool, cfg config.ConfigBpjs) *config.Header {
} }
func SetHeaderFKRTL(cfg config.ConfigBpjs) *config.Header {
timestamp := time.Now().UTC().Unix()
cfg.Cons_id = os.Getenv("CONS_ID")
cfg.User_key = os.Getenv("USER_KEY")
cfg.Secret_key = os.Getenv("SECRET_KEY")
secret := []byte(cfg.Secret_key)
message := []byte(cfg.Cons_id + "&" + fmt.Sprint(timestamp))
hash := hmac.New(sha256.New, secret)
hash.Write(message)
// to lowercase hexits
hex.EncodeToString(hash.Sum(nil))
// to base64
X_signature := base64.StdEncoding.EncodeToString(hash.Sum(nil))
header := &config.Header{
ConsID: cfg.Cons_id,
SecretKey: cfg.Secret_key,
UserKey: cfg.User_key,
TimeStamp: fmt.Sprint(timestamp),
XSignature: X_signature,
}
return header
}
func SetHeaderDev(cfg config.ConfigBpjs) *config.Header { func SetHeaderDev(cfg config.ConfigBpjs) *config.Header {
timenow := time.Now().UTC() timenow := time.Now().UTC()
@@ -80,10 +126,6 @@ func SetHeaderDev(cfg config.ConfigBpjs) *config.Header {
cfg.User_key = os.Getenv("USER_KEY_DEV") cfg.User_key = os.Getenv("USER_KEY_DEV")
cfg.Secret_key = os.Getenv("SECRET_KEY_DEV") cfg.Secret_key = os.Getenv("SECRET_KEY_DEV")
// cfg.Cons_id = os.Getenv("CONS_ID")
// cfg.User_key = os.Getenv("USER_KEY")
// cfg.Secret_key = os.Getenv("SECRET_KEY")
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)
@@ -92,7 +134,6 @@ func SetHeaderDev(cfg config.ConfigBpjs) *config.Header {
hex.EncodeToString(hash.Sum(nil)) hex.EncodeToString(hash.Sum(nil))
// to base64 // to base64
X_signature := base64.StdEncoding.EncodeToString(hash.Sum(nil)) X_signature := base64.StdEncoding.EncodeToString(hash.Sum(nil))
header := &config.Header{ header := &config.Header{
ConsID: cfg.Cons_id, ConsID: cfg.Cons_id,
SecretKey: cfg.Secret_key, SecretKey: cfg.Secret_key,
+3 -3
View File
@@ -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.Raw(`select "id", "HFIS_code" from "data_pegawai" where "HFIS_code" is not null`).Scan(&listDokter) result := config.SatuDataDB.Debug().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.Raw(`select dp.id, result := config.SatuDataDB.Debug().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
@@ -74,7 +74,7 @@ func GetNamaLengkapDokter(idDokter []string) ([]dokter.NamaLengkap, error) {
func GetHFISCode(dpjp string) (*dokter.DaftarDokter, error) { func GetHFISCode(dpjp string) (*dokter.DaftarDokter, error) {
var dataDokter *dokter.DaftarDokter 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 err := config.SatuDataDB.Debug().Raw(`select dp."id", dp."HFIS_code" from data_pegawai dp where dp."Code_dpjp" = ?`, dpjp).First(&dataDokter).Error
if err != nil { if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) { if errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data tidak ditemukan") errMsg := errors.New("Data tidak ditemukan")
+156 -143
View File
@@ -1,143 +1,156 @@
package dokter 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" "errors"
"log" "log"
"strconv" "strconv"
"github.com/google/uuid" "github.com/google/uuid"
) "gorm.io/gorm"
)
func GetJadwalDokterByDPJP(dpjp string) (string, error) {
var id string func GetJadwalDokterByDPJP(dpjp string) ([]jadwal_dokter.JadwalDokterSatuData, error) {
errSelect := config.SatuDataDB.Raw(`select "id" from "data_pegawai" where "Code_dpjp" = ?`, dpjp).First(&id).Error var hari []jadwal_dokter.JadwalDokterSatuData
if errSelect != nil { errSelect := config.SatuDataDB.Debug().Raw(`select djd.* from "daftar_jadwal_dokter" djd
log.Printf("Failed get data : %v", errSelect) left join "data_pegawai" dp on djd."Dokter" = dp."id" where dp."Code_dpjp" = ? order by djd."id"`, dpjp).Scan(&hari).Error
return "", errSelect if errSelect != nil {
} if errors.Is(errSelect, gorm.ErrRecordNotFound) {
return id, nil errMsg := errors.New("Dokter Tidak Terdaftar di HFIS")
} log.Println(errMsg)
return nil, errMsg
func GetJadwalHariDokterBySpesialis(id string) ([]jadwal_dokter.JadwalDokterSatuData, error) { }
var hari []jadwal_dokter.JadwalDokterSatuData log.Printf("Failed get data : %v", errSelect)
errSelect := config.SatuDataDB.Raw(`select * from "daftar_jadwal_dokter" where "Dokter" = ? order by "id"`, id).Scan(&hari).Error return nil, errSelect
if errSelect != nil { }
log.Printf("Failed get data : %v", errSelect) return hari, nil
return nil, errSelect }
}
return hari, nil func GetJadwalHariDokterBySpesialis(id string) ([]jadwal_dokter.JadwalDokterSatuData, error) {
} var hari []jadwal_dokter.JadwalDokterSatuData
errSelect := config.SatuDataDB.Debug().Raw(`select * from "daftar_jadwal_dokter" where "Dokter" = ? order by "id"`, id).Scan(&hari).Error
func GetJadwalDokterByIDDokter(hari string) ([]string, error) { if errSelect != nil {
var spesialis []string if errors.Is(errSelect, gorm.ErrRecordNotFound) {
errSelect := config.SatuDataDB.Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error errMsg := errors.New("Dokter Tidak Terdaftar di HFIS")
if errSelect != nil { log.Println(errMsg)
log.Printf("Failed get data : %v", errSelect) return nil, errMsg
return nil, errSelect }
} log.Printf("Failed get data : %v", errSelect)
return spesialis, nil return nil, errSelect
} }
func GetJadwalDokterByDate(hari string) ([]string, error) { return hari, nil
var spesialis []string }
errSelect := config.SatuDataDB.Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
if errSelect != nil { func GetJadwalDokterByDate(hari string) ([]string, error) {
log.Printf("Failed get data : %v", errSelect) var spesialis []string
return nil, errSelect errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
} if errSelect != nil {
return spesialis, nil log.Printf("Failed get data : %v", errSelect)
} return nil, errSelect
}
func GetJadwalSubspesialisByDate(hari string) ([]int, error) { return spesialis, nil
var subspesialis []int }
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 { func GetJadwalSubspesialisByDate(hari string) ([]int, error) {
log.Printf("Failed get data : %v", errSelect) var subspesialis []int
return nil, errSelect errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Sub_spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Sub_spesialis"`, hari).Scan(&subspesialis).Error
} if errSelect != nil {
return subspesialis, nil log.Printf("Failed get data : %v", errSelect)
} return nil, errSelect
}
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) { return subspesialis, nil
var listDokter []string }
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 { func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
log.Printf("Failed get data : %v", errSelect) var listDokter []string
return nil, errSelect errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Spesialis" = ? order by "Spesialis"`, hari, spesialis).Scan(&listDokter).Error
} if errSelect != nil {
return listDokter, nil log.Printf("Failed get data : %v", errSelect)
} return nil, errSelect
}
func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) { return listDokter, nil
var listDokter []string }
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 { func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) {
log.Printf("Failed get data : %v", errSelect) var listDokter []string
return nil, errSelect errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Sub_spesialis" = ? order by "Sub_spesialis"`, hari, subspesialis).Scan(&listDokter).Error
} if errSelect != nil {
return listDokter, nil log.Printf("Failed get data : %v", errSelect)
} return nil, errSelect
}
func DeleteJadwalDokter() error { return listDokter, nil
err := config.SatuDataDB.Exec(`truncate table "daftar_jadwal_dokter"`).Error }
if err != nil {
log.Printf("Failed truncate data : %v", err) func DeleteJadwalDokter() error {
return err err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
} if err != nil {
log.Println("Success truncate data") log.Printf("Failed truncate data : %v", err)
return nil return err
} }
log.Println("Success truncate data")
func TruncateDataJadwalDokter() error { return nil
err := config.SatuDataDB.Exec(`truncate table "data_jadwal_dokter"`).Error }
if err != nil {
log.Printf("Failed truncate data : %v", err) func DeleteJadwalDokterTemp() error {
return err err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
} if err != nil {
log.Println("Success truncate data") log.Printf("Failed truncate data : %v", err)
return nil return err
} }
log.Println("Success truncate data")
func DeleteJadwalDokterTemp() error { return nil
err := config.SatuDataDB.Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error }
if err != nil {
log.Printf("Failed truncate data : %v", err) func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
return err err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ? ,?, ?, ?, ?, ?)`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error
} if err != nil {
log.Println("Success truncate data") log.Printf("Failed insert data : %v", err)
return nil return err
} }
log.Println("Success insert data")
func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error { return nil
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 {
log.Printf("Failed insert data : %v", err) func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
return err spesialis := strconv.Itoa(reqInsert.Spesialis)
} subspesialis := strconv.Itoa(reqInsert.SubSpesialis)
log.Println("Success insert data") id := uuid.New()
return nil err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter_temp" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ?, ?, ?, ?, ?, ?, ?)`, id, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, spesialis, subspesialis, reqInsert.Status).Error
} if err != nil {
log.Printf("Failed insert data : %v", err)
func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error { return err
spesialis := strconv.Itoa(reqInsert.Spesialis) }
subspesialis := strconv.Itoa(reqInsert.SubSpesialis) log.Println("Success insert data")
id := uuid.New() return nil
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) func GetAllJadwalDokter() ([]*jadwal_dokter.ListDaftarJadwalDokter, error) {
return err var listDokter []*jadwal_dokter.ListDaftarJadwalDokter
} query := `select djd."Hari" as valuehari, djd."Nama_hari" as hari, djd."Waktu" as waktu, ds."Spesialis" as spesialis, dss."Subspesialis" as subspesialis,
log.Println("Success insert data") array(
return nil 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
func InsertDataJadwalDokter(tx *gorm.DB, reqInsert *jadwal_dokter.DataJadwalDokterSatuData) error { where dpdgd.data_pegawai_id = dp.id
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 ) AS gelardepan,
if err != nil { dkt. "Nama_lengkap" as namalengkap,
log.Printf("Failed insert data : %v", err) array(
return err select dgb."Gelar_belakang"
} from data_pegawai_daftar_gelar_belakang dpdgb
log.Println("Success insert data") left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id
return nil where dpdgb.data_pegawai_id = dp.id
} ) AS gelarbelakang
from daftar_jadwal_dokter djd
join daftar_spesialis ds on ds.id = djd."Spesialis"
join daftar_subspesialis dss on dss.id = djd."Sub_spesialis"
join data_pegawai dp on dp.id = djd."Dokter"
join data_ktp dkt on dkt.id = dp."KTP"
order by djd."Hari" asc, ds."Spesialis" asc, dss."Subspesialis" asc, djd."Waktu" asc`
err := config.SatuDataDB.Debug().Raw(query).Scan(&listDokter).Error
if err != nil {
log.Printf("Failed Get data : %v", err)
return nil, err
}
return listDokter, nil
}
+2 -2
View File
@@ -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.Raw(`select * from "daftar_spesialis"`).Find(&daftarSpesialis) result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis"`).Find(&daftarSpesialis)
if result.Error != nil { if result.Error != nil {
if !errors.Is(result.Error, gorm.ErrRecordNotFound) { if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
log.Printf("Error get data : %v", result.Error) log.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.Raw(`select * from "daftar_spesialis" where "id" in ?`, idSpesialis).Find(&daftarSpesialis) result := config.SatuDataDB.Debug().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)
+3 -3
View File
@@ -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.Raw(`select * from "daftar_subspesialis"`).Find(&daftarSubspesialis) result := config.SatuDataDB.Debug().Raw(`select * from "daftar_subspesialis"`).Find(&daftarSubspesialis)
if result.Error != nil { if result.Error != nil {
if !errors.Is(result.Error, gorm.ErrRecordNotFound) { if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
log.Printf("Error get data : %v", result.Error) log.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.Raw(`select dss.*, ds."Spesialis" result := config.SatuDataDB.Debug().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.Raw(`select dss.*, ds."Spesialis" result := config.SatuDataDB.Debug().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 ?
-21
View File
@@ -1,21 +0,0 @@
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
}
+13 -1
View File
@@ -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.Exec(query, err := config.SatuDataDB.Debug().Exec(query,
reqInsert.ID, reqInsert.ID,
reqInsert.DateCreated, reqInsert.DateCreated,
reqInsert.UserAgent, reqInsert.UserAgent,
@@ -32,3 +32,15 @@ func InsertLogAPI(reqInsert *logapi.DataLogAPI) error {
} }
return nil return nil
} }
func GetLogAPI(req logapi.ReqGetDataLogAPI) ([]*logapi.DataLogAPI, error) {
var dataLog []*logapi.DataLogAPI
query := `select * from data_log_api dla where dla."Parameter" = 'BPJS-VClaim-RencanaKontrol' and dla."Request"->>'tipe_rawat' = ? and date(dla."date_created") between ? and ?`
err := config.SatuDataDB.Debug().Raw(query, req.TipeRawat, req.TanggalAwal, req.TanggalAkhir).Scan(&dataLog).Error
if err != nil {
log.Println(err)
return nil, err
}
log.Println("Berhasil Get Data")
return dataLog, nil
}
+1 -1
View File
@@ -9,7 +9,7 @@ import (
func InsertLogICare(reqInsert *logapi.InsertLogICare) error { func InsertLogICare(reqInsert *logapi.InsertLogICare) error {
query := `insert into "data_log_icare_bpjs" ("id", "date_created", "Ruangan", "Dokter", "Kunjungan_pasien", "Waktu_transaksi") query := `insert into "data_log_icare_bpjs" ("id", "date_created", "Ruangan", "Dokter", "Kunjungan_pasien", "Waktu_transaksi")
values (?, ?, ?, ?, ?, ?)` values (?, ?, ?, ?, ?, ?)`
errInsert := config.SatuDataDB.Exec(query, errInsert := config.SatuDataDB.Debug().Exec(query,
reqInsert.ID, reqInsert.ID,
reqInsert.DateCreated, reqInsert.DateCreated,
reqInsert.Ruangan, reqInsert.Ruangan,
@@ -11,7 +11,7 @@ import (
func GetDaftarLokasiRuang(idSimgos string) (int, error) { func GetDaftarLokasiRuang(idSimgos string) (int, error) {
var idRuangan int var idRuangan int
query := `select dlr."id" from "daftar_lokasi_ruang" dlr where dlr."Id_location_simgos" = ?` query := `select dlr."id" from "daftar_lokasi_ruang" dlr where dlr."Id_location_simgos" = ?`
err := config.SatuDataDB.Raw(query, idSimgos).First(&idRuangan).Error err := config.SatuDataDB.Debug().Raw(query, idSimgos).First(&idRuangan).Error
if err != nil { if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) { if errors.Is(err, gorm.ErrRecordNotFound) {
log.Println(err) log.Println(err)
+35 -1
View File
@@ -12,7 +12,7 @@ import (
func GetDataKunjunganPasien(idxdaftar string) (*pasien.KunjunganPasien, error) { func GetDataKunjunganPasien(idxdaftar string) (*pasien.KunjunganPasien, error) {
var kunjunganPasien *pasien.KunjunganPasien var kunjunganPasien *pasien.KunjunganPasien
query := `select dks."id", dks."Ruangan" from "data_kunjungan_pasien" dks where dks."IDXDAFTAR" = ?` query := `select dks."id", dks."Ruangan" from "data_kunjungan_pasien" dks where dks."IDXDAFTAR" = ?`
err := config.SatuDataDB.Raw(query, idxdaftar).First(&kunjunganPasien).Error err := config.SatuDataDB.Debug().Raw(query, idxdaftar).First(&kunjunganPasien).Error
if err != nil { if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) { if errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan") errMsg := errors.New("Data Tidak Ditemukan")
@@ -25,3 +25,37 @@ func GetDataKunjunganPasien(idxdaftar string) (*pasien.KunjunganPasien, error) {
log.Println("Data Kunjungan Pasien : ", kunjunganPasien) log.Println("Data Kunjungan Pasien : ", kunjunganPasien)
return kunjunganPasien, nil return kunjunganPasien, nil
} }
func GetListKunjunganPasien(req *pasien.RequestListKunjunganPasien) ([]*pasien.ListKunjunganPasien, error) {
var dataKunjunganPasien []*pasien.ListKunjunganPasien
query := `select
dkp. "NOMR" as nomr, dkp. "Nama_lengkap" as namalengkap, dkp. "Tanggal_lahir" as tanggallahir,
dkp. "Jenis_kelamin" as jeniskelamin, dkp. "Tanggal_masuk" as tanggalmasukkunjungan,
dkp."Jam_masuk" as jammasukkunjungan, dkp. "Diagnosis_awal_masuk" as dxawalmasuk,
dkp. "Display_diagnosis_awal_masuk" as displaydxawalmasuk, dlr. "Nama" as namaruang,
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,
dkt. "Nama_lengkap" as namalengkapdokter,
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
from data_kunjungan_pasien dkp
join daftar_lokasi_ruang dlr on dlr.id = dkp. "Ruangan"
join data_pegawai dp on dp.id = dkp. "DPJP"
join data_ktp dkt on dkt.id = dp. "KTP"
where dkp."Tanggal_masuk" between ? and ?
order by dkp. "Tanggal_masuk" desc, dkp. "Jam_masuk" desc`
q := config.SatuDataDB.Debug().Raw(query, req.TanggalAwal, req.TanggalAkhir).Scan(&dataKunjunganPasien)
if q.Error != nil {
log.Println(q.Error)
return nil, q.Error
}
return dataKunjunganPasien, nil
}
@@ -7,7 +7,7 @@ import (
) )
func UpdateKunjunganPasien(req sk.RequestInsertRencanaKontrol) error { func UpdateKunjunganPasien(req sk.RequestInsertRencanaKontrol) 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 err := config.SatuDataDB.Debug().Exec(`update "data_kunjungan_pasien" set "Nomor_sep" = ?, "Diagnosis_akhir_keluar" = ?, "Display_diagnosis_akhir_keluar" = ?, "Diagnosis_primer_utama" = ?, "Display_diagnosis_primer_utama" = ? where "IDXDAFTAR" = ?`, req.NoSEP, req.KodeDiagnosa, req.NamaDiagnosa, req.KodeDiagnosa, req.NamaDiagnosa, req.IDXDaftar).Error
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return err return err
+345 -369
View File
@@ -1,369 +1,345 @@
package suratkontrol package suratkontrol
import ( import (
"bridging-rssa/config" "bridging-rssa/config"
suratkontrol "bridging-rssa/models/bpjs/surat_kontrol" suratkontrol "bridging-rssa/models/bpjs/surat_kontrol"
"errors" "errors"
"log" "log"
"gorm.io/gorm" "gorm.io/gorm"
) )
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.Raw(`select dkp."id", dkp."IDXDAFTAR" as idxdaftar, dkp."Nomor_sep" as nomorsep, err := config.SatuDataDB.Debug().Raw(`select dkp."id", dkp."IDXDAFTAR" as idxdaftar, dkp."Nomor_sep" as nomorsep,
dlr."Nama" as namaklinik, dlr."Id_location_simgos" as idkliniksimgos, dlr."Kode_hfis_bpjs" as kodehfisklinik, 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,
dsu."Kode" as kodesubspesialis, dsu."Subspesialis" as subspesialis, dsu."Kode" as kodesubspesialis, dsu."Subspesialis" as subspesialis,
ds."Spesialis" as spesialis, ds."Spesialis" as spesialis,
array( array(
select dgd."Gelar_depan" select dgd."Gelar_depan"
from data_pegawai_daftar_gelar_depan dpdgd from data_pegawai_daftar_gelar_depan dpdgd
left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id
where dpdgd.data_pegawai_id = dp.id where dpdgd.data_pegawai_id = dp.id
) AS gelardepan, ) AS gelardepan,
array( array(
select dgb."Gelar_belakang" select dgb."Gelar_belakang"
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 left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id
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" 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
left join data_ktp dk on dp."KTP" = dk.id left join data_ktp dk on dp."KTP" = dk.id
left join daftar_subspesialis dsu on dp."Subspesialis" = dsu.id left join daftar_subspesialis dsu on dp."Subspesialis" = dsu.id
left join daftar_spesialis ds on dsu."FK_daftar_spesialis_ID" = ds.id left join daftar_spesialis ds on dsu."FK_daftar_spesialis_ID" = ds.id
where dkp."IDXDAFTAR" = ?`, idxdaftar).First(&kunjunganPasien).Error where dkp."IDXDAFTAR" = ?`, idxdaftar).First(&kunjunganPasien).Error
if err != nil { if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) { if errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan") errMsg := errors.New("Data Tidak Ditemukan")
log.Println(errMsg) log.Println(errMsg)
return nil, errMsg return nil, errMsg
} }
log.Println(err) log.Println(err)
return nil, err return nil, err
} }
log.Println("Data Kunjungan Pasien : ", kunjunganPasien) log.Println("Data Kunjungan Pasien : ", kunjunganPasien)
return kunjunganPasien, nil return kunjunganPasien, nil
} }
func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error { 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", "Tipe_rawat") "User_created_surat_kontrol", "Tipe_surat_kontrol", "User_updated_surat_kontrol")
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
err := config.SatuDataDB.Exec(insertQuery, err := config.SatuDataDB.Debug().Exec(insertQuery,
reqInsert.ID, reqInsert.ID,
reqInsert.DateCreated, reqInsert.DateCreated,
reqInsert.TglCetakSurKon, reqInsert.TglCetakSurKon,
reqInsert.TglRencanaKontrol, reqInsert.TglRencanaKontrol,
reqInsert.NomorSurKon, reqInsert.NomorSurKon,
reqInsert.KunjunganPasien, reqInsert.KunjunganPasien,
reqInsert.RuanganSurKon, reqInsert.RuanganSurKon,
reqInsert.DPJPSurKon, reqInsert.DPJPSurKon,
reqInsert.StatusSurKon, reqInsert.StatusSurKon,
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) return err
return err }
} return nil
return nil }
}
func GetDataSuratKontrol() ([]*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 left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal",
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",
dlr."Nama" as "Poli_tuju", dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR",
dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", array(
array( select dgd. "Gelar_depan"
select dgd. "Gelar_depan" from data_pegawai_daftar_gelar_depan dpdgd
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
left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id ) AS gelardepan ,
) AS gelardepan , dk."Nama_lengkap" as "Nama_lengkap_dokter",
dk."Nama_lengkap" as "Nama_lengkap_dokter", array(
array( select dgb. "Gelar_belakang"
select dgb. "Gelar_belakang" 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, ds."Subspesialis",
ds."Subspesialis", ds."Kode" as "Kode_poli",
ds."Kode" as "Kode_poli", 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",
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" 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'`).Scan(&dataSurKon).Error
where dsk."Status_surat_kontrol" = '1' offset ? limit ?`, offset, limit).Scan(&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("DPJP anda belum ada subspesialis") log.Println(errMsg)
log.Println(errMsg) return nil, errMsg
return nil, errMsg }
} }
} 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 left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal",
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",
dlr."Nama" as "Poli_tuju", dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR",
dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", array(
array( select dgd. "Gelar_depan"
select dgd. "Gelar_depan" from data_pegawai_daftar_gelar_depan dpdgd
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
left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id ) AS gelardepan ,
) AS gelardepan , dk."Nama_lengkap" as "Nama_lengkap_dokter",
dk."Nama_lengkap" as "Nama_lengkap_dokter", array(
array( select dgb. "Gelar_belakang"
select dgb. "Gelar_belakang" 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, ds."Subspesialis",
ds."Subspesialis", ds."Kode" as "Kode_poli",
ds."Kode" as "Kode_poli", 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",
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"
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)
log.Println(errMsg) return nil, errMsg
return nil, errMsg }
} }
} return dataSurKon, nil
return dataSurKon, nil }
}
func UpdateDataSuratKontrol(reqUpdate *suratkontrol.DataSuratKontrol) error {
func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontrol, 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
var dataSurKon *suratkontrol.GetDataSuratKontrol if err != nil {
err := config.SatuDataDB.Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", log.Println(err)
dsk."Nomor_surat_kontrol", return err
(select dlr."Nama" }
from data_kunjungan_pasien dkp return nil
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", func GetIDXDaftarBySurKon(idSurKon string) (string, error) {
array( var idxDaftar string
select dgd. "Gelar_depan" err := config.SatuDataDB.Debug().Raw(`select dkp."IDXDAFTAR"
from data_pegawai_daftar_gelar_depan dpdgd from "data_surat_kontrol" dsk
left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id left join "data_kunjungan_pasien" dkp on dkp."id" = dsk."Kunjungan_pasien"
) AS gelardepan , where dsk."id" = ?`, idSurKon).First(&idxDaftar).Error
dk."Nama_lengkap" as "Nama_lengkap_dokter", if err != nil {
array( log.Println(err)
select dgb. "Gelar_belakang" return "", err
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 return idxDaftar, err
) AS gelarbelakang, }
ds."Subspesialis",
ds."Kode" as "Kode_poli", func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, error) {
ds."id" as "ID_poli", var dataSurKon *suratkontrol.DataSuratKontrol
dp."HFIS_code" as "Kode_dokter", err := config.SatuDataDB.Debug().Raw(`select * from "data_surat_kontrol" where "id" = ?`, idSurKon).First(&dataSurKon).Error
dp."id" as "id_dokter", if err != nil {
dp."Code_dpjp" as "Kode_dpjp", log.Println(err)
dkp2."NOMR" as "No_rm", return nil, err
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa", }
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa", return dataSurKon, nil
dsk."Tipe_surat_kontrol" as "Tipe_SurKon", }
dsk."User_created_surat_kontrol" as "User"
from data_surat_kontrol dsk func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) ([]*suratkontrol.GetDataSuratKontrol, error) {
left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien" var dataSurKon []*suratkontrol.GetDataSuratKontrol
left join daftar_lokasi_ruang dlr on dsk."Ruangan_surat_kontrol" = dlr."id" queryDate := ` and date(dsk."Tanggal_rencana_kontrol") between ? and ? offset ? limit ?`
left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" if req.IsTanggalEntri {
left join data_ktp dk on dp."KTP" = dk. "id" queryDate = ` and date(dsk."Tanggal_cetak_surat_kontrol") between ? and ? offset ? limit ?`
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 query += queryDate
if err != nil { querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
if errors.Is(err, gorm.ErrRecordNotFound) { dsk."Nomor_surat_kontrol",
errMsg := errors.New("Data tidak ada") (select dlr."Nama"
log.Println(errMsg) from data_kunjungan_pasien dkp
return nil, errMsg 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",
return dataSurKon, nil array(
} select dgd. "Gelar_depan"
from data_pegawai_daftar_gelar_depan dpdgd
func UpdateDataSuratKontrol(reqUpdate *suratkontrol.DataSuratKontrol) error { left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id
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 ) AS gelardepan ,
if err != nil { dk."Nama_lengkap" as "Nama_lengkap_dokter",
log.Println(err) array(
return err select dgb. "Gelar_belakang"
} from data_pegawai_daftar_gelar_belakang dpdgb
return nil 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",
func GetIDXDaftarBySurKon(idSurKon string) (string, error) { ds."Kode" as "Kode_poli",
var idxDaftar string ds."id" as "ID_poli",
err := config.SatuDataDB.Raw(`select dkp."IDXDAFTAR" dp."HFIS_code" as "Kode_dokter",
from "data_surat_kontrol" dsk dp."id" as "id_dokter",
left join "data_kunjungan_pasien" dkp on dkp."id" = dsk."Kunjungan_pasien" dp."Code_dpjp" as "Kode_dpjp",
where dsk."id" = ?`, idSurKon).First(&idxDaftar).Error dkp2."NOMR" as "No_rm",
if err != nil { dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
log.Println(err) dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
return "", err dsk."Tipe_surat_kontrol" as "Tipe_SurKon"
} from data_surat_kontrol dsk
return idxDaftar, err 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"
func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, error) { left join data_ktp dk on dp."KTP" = dk. "id"
var dataSurKon *suratkontrol.DataSuratKontrol left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
err := config.SatuDataDB.Raw(`select * from "data_surat_kontrol" where "id" = ?`, idSurKon).First(&dataSurKon).Error where dsk."Status_surat_kontrol" = '1' and dsk."Tipe_surat_kontrol" = ? `
if err != nil { querySelect += query
log.Println(err) err := config.SatuDataDB.Debug().Raw(querySelect, args...).Find(&dataSurKon).Error
return nil, err if err != nil {
} log.Println(err)
return dataSurKon, nil return nil, err
} }
return dataSurKon, nil
func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) ([]*suratkontrol.GetDataSuratKontrol, error) { }
var dataSurKon []*suratkontrol.GetDataSuratKontrol
query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ? offset ? limit ?` func SearchDataSurKonNew(req suratkontrol.RequestCariPasien, query string, args []interface{}) ([]*suratkontrol.GetDataSuratKontrol, error) {
querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol", var dataSurKon []*suratkontrol.GetDataSuratKontrol
dsk."Nomor_surat_kontrol", queryDate := ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?`
(select dlr."Nama" if req.IsTanggalEntri {
from data_kunjungan_pasien dkp queryDate = ` and date(dsk."Tanggal_cetak_surat_kontrol") between ? and ?`
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", query += queryDate
dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR", querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
array( dsk."Nomor_surat_kontrol",
select dgd. "Gelar_depan" (select dlr."Nama"
from data_pegawai_daftar_gelar_depan dpdgd from data_kunjungan_pasien dkp
left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal",
) AS gelardepan , dlr."Nama" as "Poli_tuju",
dk."Nama_lengkap" as "Nama_lengkap_dokter", dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR",
array( array(
select dgb. "Gelar_belakang" select dgd. "Gelar_depan"
from data_pegawai_daftar_gelar_belakang dpdgb from data_pegawai_daftar_gelar_depan dpdgd
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_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id
) AS gelarbelakang, ) AS gelardepan ,
ds."Subspesialis", dk."Nama_lengkap" as "Nama_lengkap_dokter",
ds."Kode" as "Kode_poli", array(
ds."id" as "ID_poli", select dgb. "Gelar_belakang"
dp."HFIS_code" as "Kode_dokter", from data_pegawai_daftar_gelar_belakang dpdgb
dp."id" as "id_dokter", left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id
dp."Code_dpjp" as "Kode_dpjp", ) AS gelarbelakang,
dkp2."NOMR" as "No_rm", ds."Subspesialis",
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa", ds."Kode" as "Kode_poli",
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa", ds."id" as "ID_poli",
dsk."Tipe_surat_kontrol" as "Tipe_SurKon" dp."HFIS_code" as "Kode_dokter",
from data_surat_kontrol dsk dp."id" as "id_dokter",
left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien" dp."Code_dpjp" as "Kode_dpjp",
left join daftar_lokasi_ruang dlr on dsk."Ruangan_surat_kontrol" = dlr."id" dkp2."NOMR" as "No_rm",
left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
left join data_ktp dk on dp."KTP" = dk. "id" dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" dsk."Tipe_surat_kontrol" as "Tipe_SurKon"
where dsk."Status_surat_kontrol" = '1' and dsk."Tipe_surat_kontrol" = ? ` from data_surat_kontrol dsk
querySelect += query left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien"
err := config.SatuDataDB.Raw(querySelect, args...).Find(&dataSurKon).Error left join daftar_lokasi_ruang dlr on dsk."Ruangan_surat_kontrol" = dlr."id"
if err != nil { left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id"
log.Println(err) left join data_ktp dk on dp."KTP" = dk. "id"
return nil, err left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
} where dsk."Status_surat_kontrol" = '1' and dsk."Tipe_surat_kontrol" = ? `
return dataSurKon, nil querySelect += query
} err := config.SatuDataDB.Debug().Raw(querySelect, args...).Find(&dataSurKon).Error
if err != nil {
func CountDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) (int, error) { log.Println(err)
var jumlahData int return nil, err
query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?` }
querySelect := `select count(dsk.*) return dataSurKon, nil
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" func CountDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) (int, error) {
left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id" var jumlahData int
left join data_ktp dk on dp."KTP" = dk. "id" queryDate := ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?`
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id" if req.IsTanggalEntri {
where dsk."Status_surat_kontrol" = '1' and dsk."Tipe_surat_kontrol" = ? ` queryDate = ` and date(dsk."Tanggal_cetak_surat_kontrol") between ? and ?`
querySelect += query }
err := config.SatuDataDB.Raw(querySelect, args...).Find(&jumlahData).Error query += queryDate
if err != nil { querySelect := `select count(dsk.*)
log.Println(err) from data_surat_kontrol dsk
return 0, err 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"
return jumlahData, nil 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"
func GetNomorSurKon(idPasien string) (string, error) { where dsk."Status_surat_kontrol" = '1' and dsk."Tipe_surat_kontrol" = ? `
var noSurKon string querySelect += query
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.Debug().Raw(querySelect, args...).Find(&jumlahData).Error
err := config.SatuDataDB.Raw(querySelect, idPasien).Scan(&noSurKon).Error if err != nil {
if err != nil { log.Println(err)
log.Println(err) return 0, err
return "", err }
} return jumlahData, nil
log.Println("Nomor SurKon :", noSurKon) }
return noSurKon, nil
} func GetNomorSurKon(idPasien string) (string, error) {
var noSurKon string
func Getdatahistori(norm string, offset, limit string) ([]*suratkontrol.HistoriSurkon, error) { 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"`
var dataHistoriSurKon []*suratkontrol.HistoriSurkon err := config.SatuDataDB.Debug().Raw(querySelect, idPasien).Scan(&noSurKon).Error
err := config.SatuDataDB.Raw(`select dkp2."Nama_lengkap",dkp2."Nomor_sep", dsk."Nomor_surat_kontrol",dsk."Tanggal_rencana_kontrol",dsk."Tanggal_cetak_surat_kontrol", if err != nil {
ds2."Spesialis",ds."Subspesialis", log.Println(err)
array( return "", err
select dgd. "Gelar_depan" }
from data_pegawai_daftar_gelar_depan dpdgd log.Println("Nomor SurKon :", noSurKon)
left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id return noSurKon, nil
) 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
}
@@ -0,0 +1,43 @@
package mikrobiologi
import (
"bridging-rssa/config"
"bridging-rssa/models/simrs/mikrobiologi"
"errors"
"log"
"gorm.io/gorm"
)
func GetDataMikroBiologi(req *mikrobiologi.RequestPasienMikrobiologi) ([]*mikrobiologi.DataPasienMikrobiologi, error) {
var dataPasien []*mikrobiologi.DataPasienMikrobiologi
query := `select tom."nomr" as nomr, tomm."nonota" as nonota, tom."idxdaftar" as idxdaftar, tom."tglorder" as tglorder, tom."nolab" as nolab, tom."rajal" as statusrajal, tom."aps" as statusaps,
mp."nama" as nama, mp."noktp" as noktp, mp."noktp_baru" as noktpbaru, mp."tempat" as tmptlahir, mp."tgllahir" as tgllahir, mp."jeniskelamin" as jeniskelamin, mp."alamat" as alamat,
mpa."nama" as namaaps, mpa."noktp" as noktpaps, mpa."tempat" as tmptlahiraps, mpa."tgllahir" as tgllahiraps, mpa."jeniskelamin" as jeniskelaminaps, mpa."alamat" as alamataps,
mr."nama" as namaruang, mr."kelas" as kelasruang,
trj."kodetarif" as kodetarifrajal,
trp."kodetarif" as kodetarifranap
from t_orderlabmikro tom
left join m_pasien mp on mp."nomr" = tom."nomr"
left join m_pasien_aps mpa on mpa."nomr" = tom."nomr"
left join m_ruang mr on mr."no" = tom."kdpoli"
left join t_orderlabmikro_main tomm on tomm."nolab" = tom."nolab"
left join t_billrajal trj on trj."nonota" = CAST(tomm."nonota" AS int8)
left join t_billranap trp on trp."nonota" = CAST(tomm."nonota" AS int8)
where tom."nomr" = ?
and tom."idxdaftar" = ?
group by (tom."nomr",tomm."nonota",tom."idxdaftar",tom."tglorder",tom."nolab",tom."rajal",tom."aps",mp."nama",mp."noktp",mp."noktp_baru",mp."tempat",mp."tgllahir",mp."jeniskelamin",mp."alamat",mpa."nama",mpa."noktp",
mpa."tempat",mpa."tgllahir",mpa."jeniskelamin",mpa."alamat",mr."nama",mr."kelas",trj."kodetarif",trp."kodetarif")
`
errQuery := config.SimrsDB.Debug().Raw(query, req.NOMR, req.IDXDaftar).Scan(&dataPasien).Error
if errQuery != nil {
if errors.Is(errQuery, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan")
log.Println(errMsg)
return nil, errMsg
}
log.Println(errQuery)
return nil, errQuery
}
return dataPasien, nil
}
+1 -5
View File
@@ -10,11 +10,7 @@ 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
@@ -28,7 +24,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
-27
View File
@@ -1,27 +0,0 @@
!/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
+4
View File
@@ -54,7 +54,11 @@ func GetNoUrut(noSurKon string) (string, error) {
return "", err return "", err
} }
log.Println("No Urut Int: ", noUrutInt)
noUrutInt++ noUrutInt++
log.Println("No Urut Int: ", noUrutInt)
noUrutStr := fmt.Sprintf("%03d", noUrutInt) noUrutStr := fmt.Sprintf("%03d", noUrutInt)
log.Println("No Urut: ", noUrutStr) log.Println("No Urut: ", noUrutStr)
return noUrutStr, nil return noUrutStr, nil
-1
View File
@@ -65,7 +65,6 @@ 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
) )
-2
View File
@@ -96,8 +96,6 @@ 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=
+3 -4
View File
@@ -60,8 +60,7 @@ func GetFKRTL(c *gin.Context) {
conf := config.ConfigBpjs{} conf := config.ConfigBpjs{}
icare := true header := cfg.SetHeader(true, conf)
header := cfg.SetHeader(icare, conf)
headers := map[string]string{ headers := map[string]string{
"X-cons-id": header.ConsID, "X-cons-id": header.ConsID,
@@ -217,8 +216,8 @@ func GetFKRTL(c *gin.Context) {
} }
func GetFKTP(c *gin.Context) { func GetFKTP(c *gin.Context) {
baseUrl := os.Getenv("BASEURL_BPJS") baseUrl := os.Getenv("BASEURL_BPJS_DEV")
endpoint := os.Getenv("I_CARE_JKN") endpoint := os.Getenv("I_CARE_JKN_DEV")
param := os.Getenv("GET_FKRTL") param := os.Getenv("GET_FKRTL")
url := baseUrl + endpoint + param url := baseUrl + endpoint + param
File diff suppressed because it is too large Load Diff
+69 -129
View File
@@ -1,129 +1,69 @@
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, headers map[string]string) (*jadwal_dokter.JadwalDokter, error) { func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, tanggal string, headers map[string]string) (*[]jadwal_dokter.ListDokter, error) {
log.Println("URL", url) param := "/jadwaldokter/kodepoli/" + kdPoly + "/tanggal/" + tanggal
req, err := http.NewRequest("GET", url, nil) url += param
if err != nil { log.Println("URL", url)
log.Printf("Error creating request: %v", err) 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)
} for key, value := range headers {
req.Header.Set(key, value)
log.Println("REQ", req.Header) }
client := http.Client{}
response, err := client.Do(req) log.Println("REQ", req.Header)
if err != nil { client := http.Client{}
log.Printf("Error making external API request: %v", err) response, err := client.Do(req)
} if err != nil {
log.Println("RESPONSE: ", response) log.Printf("Error making external API request: %v", err)
}
key := header.ConsID + header.SecretKey + header.TimeStamp log.Println("RESPONSE: ", response)
res, err := io.ReadAll(response.Body)
if err != nil { key := header.ConsID + header.SecretKey + header.TimeStamp
fmt.Println(err) 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 { var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw
log.Printf("Error Unmarshaling: %v", err) err = json.Unmarshal([]byte(res), &jadwalDokterRaw)
} if err != nil {
log.Printf("Error Unmarshaling: %v", err)
responses := &jadwal_dokter.JadwalDokter{} }
if jadwalDokterRaw.MetaData.Code != 200 {
responses.MetaData.Code = jadwalDokterRaw.MetaData.Code if jadwalDokterRaw.MetaData.Code == 201 {
responses.MetaData.Message = jadwalDokterRaw.MetaData.Message log.Println("No Data Found")
log.Println("No Data Found") return nil, nil
return responses, nil }
}
dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response)
dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response) if err != nil {
if err != nil { log.Printf("Error Decrypt: %v", err)
log.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)
err = json.Unmarshal([]byte(dataResp), &listDokter) if err != nil {
if err != nil { log.Printf("Error Decode: %v", err)
log.Printf("Error Decode: %v", err) }
}
log.Println("res: ", &listDokter)
log.Println("res: ", &listDokter)
responses = &jadwal_dokter.JadwalDokter{ return &listDokter, nil
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
}
+148
View File
@@ -0,0 +1,148 @@
package rujukan
import (
"bridging-rssa/docs"
"bridging-rssa/models/bpjs/rujukan"
"bridging-rssa/models/config"
"encoding/json"
"errors"
"io"
"log"
"net/http"
)
func ResponseGetRujukan(url string, header *config.Header, headers map[string]string) (*rujukan.ResponseGetRujukan, error) {
log.Println("URL", url)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.Printf("Error creating request: %v", err)
}
for key, value := range headers {
req.Header.Set(key, value)
}
log.Println("REQ", req.Header)
client := http.Client{}
response, err := client.Do(req)
if err != nil {
log.Printf("Error making external API request: %v", err)
}
log.Println("RESPONSE: ", response)
key := header.ConsID + header.SecretKey + header.TimeStamp
res, err := io.ReadAll(response.Body)
if err != nil {
log.Println(err)
}
log.Println("res: ", string(res))
var resRujukanRaw rujukan.ResponseRaw
err = json.Unmarshal([]byte(string(res)), &resRujukanRaw)
if err != nil {
log.Printf("Error Unmarshaling: %v", err)
return nil, err
}
responses := &rujukan.ResponseGetRujukan{}
if resRujukanRaw.MetaData.Code != "200" {
errMsg := errors.New(resRujukanRaw.MetaData.Message)
log.Printf("error : %v", errMsg)
responses.MetaData.Code = resRujukanRaw.MetaData.Code
responses.MetaData.Message = resRujukanRaw.MetaData.Message
log.Println("responses: ", responses)
return responses, errMsg
}
dataResp, err := docs.StringDecrypt(key, resRujukanRaw.Response)
if err != nil {
log.Printf("Error Decrypt: %v", err)
return nil, err
}
log.Println("dataresp: ", dataResp)
var responseRujukan rujukan.ResponseRujukan
err = json.Unmarshal([]byte(dataResp), &responseRujukan)
if err != nil {
log.Printf("Error Decode: %v", err)
return nil, err
}
responses = &rujukan.ResponseGetRujukan{
MetaData: resRujukanRaw.MetaData,
Response: responseRujukan,
}
log.Println("res: ", responses)
return responses, nil
}
func ResponseGetRujukanBatch(url string, header *config.Header, headers map[string]string) (*rujukan.ResponseGetRujukanBatch, error) {
log.Println("URL", url)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.Printf("Error creating request: %v", err)
}
for key, value := range headers {
req.Header.Set(key, value)
}
log.Println("REQ", req.Header)
client := http.Client{}
response, err := client.Do(req)
if err != nil {
log.Printf("Error making external API request: %v", err)
}
log.Println("RESPONSE: ", response)
key := header.ConsID + header.SecretKey + header.TimeStamp
res, err := io.ReadAll(response.Body)
if err != nil {
log.Println(err)
}
log.Println("res: ", string(res))
var resRujukanRaw rujukan.ResponseRaw
err = json.Unmarshal([]byte(string(res)), &resRujukanRaw)
if err != nil {
log.Printf("Error Unmarshaling: %v", err)
return nil, err
}
responses := &rujukan.ResponseGetRujukanBatch{}
if resRujukanRaw.MetaData.Code != "200" {
errMsg := errors.New(resRujukanRaw.MetaData.Message)
log.Printf("error : %v", errMsg)
responses.MetaData.Code = resRujukanRaw.MetaData.Code
responses.MetaData.Message = resRujukanRaw.MetaData.Message
log.Println("responses: ", responses)
return responses, errMsg
}
dataResp, err := docs.StringDecrypt(key, resRujukanRaw.Response)
if err != nil {
log.Printf("Error Decrypt: %v", err)
return nil, err
}
log.Println("dataresp: ", dataResp)
var responseRujukan rujukan.ResponseRujukanBatch
err = json.Unmarshal([]byte(dataResp), &responseRujukan)
if err != nil {
log.Printf("Error Decode: %v", err)
return nil, err
}
responses = &rujukan.ResponseGetRujukanBatch{
MetaData: resRujukanRaw.MetaData,
Response: responseRujukan,
}
log.Println("res: ", responses)
return responses, nil
}
+71
View File
@@ -0,0 +1,71 @@
package rujukan
import (
cfg "bridging-rssa/config"
"bridging-rssa/models/config"
"log"
"net/http"
"os"
"github.com/gin-gonic/gin"
)
func GetSuratRujukan(c *gin.Context) {
baseUrl := os.Getenv("BASEURL_BPJS_DEV")
endpoint := os.Getenv("VCLAIM_RS_DEV")
param := os.Getenv("GET_NOMOR_RUJUKAN")
noRujukan := c.Param("noRujukan")
url := baseUrl + endpoint + param + noRujukan
conf := config.ConfigBpjs{}
header := cfg.SetHeaderDev(conf)
headers := map[string]string{
"X-cons-id": header.ConsID,
"X-timestamp": header.TimeStamp,
"X-signature": header.XSignature,
"user_key": header.UserKey,
"Content-Type": "application/json; charset=utf-8",
}
log.Println("Headers : ", headers)
res, err := ResponseGetRujukan(url, header, headers)
if err != nil {
log.Printf("Error making external API request: %v", err)
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, res)
}
func GetSuratRujukanBatch(c *gin.Context) {
baseUrl := os.Getenv("BASEURL_BPJS_DEV")
endpoint := os.Getenv("VCLAIM_RS_DEV")
param := os.Getenv("GET_NOMOR_RUJUKAN")
noKartu := c.Param("noKartu")
url := baseUrl + endpoint + param + noKartu
conf := config.ConfigBpjs{}
header := cfg.SetHeaderDev(conf)
headers := map[string]string{
"X-cons-id": header.ConsID,
"X-timestamp": header.TimeStamp,
"X-signature": header.XSignature,
"user_key": header.UserKey,
"Content-Type": "application/json; charset=utf-8",
}
log.Println("Headers : ", headers)
res, err := ResponseGetRujukan(url, header, headers)
if err != nil {
log.Printf("Error making external API request: %v", err)
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, res)
}
+28 -23
View File
@@ -12,6 +12,7 @@ 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) {
@@ -35,15 +36,21 @@ 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{
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 {
responses.MetaData.Code = "203" if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") {
responses.MetaData.Message = err.Error() 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) log.Printf("Error making external API request: %v", err)
log.Println("responses: ", responses)
return responses, err return responses, err
} }
log.Println("RESPONSE: ", response) log.Println("RESPONSE: ", response)
@@ -54,7 +61,7 @@ func PostData(url string, header *config.Header, headers map[string]string, requ
responses.MetaData.Code = "504" responses.MetaData.Code = "504"
responses.MetaData.Message = errMsg.Error() responses.MetaData.Message = errMsg.Error()
log.Println("responses: ", responses) log.Println("responses: ", responses)
return responses, errMsg return responses, err
} }
key := header.ConsID + header.SecretKey + header.TimeStamp key := header.ConsID + header.SecretKey + header.TimeStamp
@@ -76,18 +83,14 @@ func PostData(url string, header *config.Header, headers map[string]string, requ
log.Println("ResponseRaw : ", resSuratKontrolRaw) log.Println("ResponseRaw : ", resSuratKontrolRaw)
if resSuratKontrolRaw.MetaData.Code != "200" { if resSuratKontrolRaw.MetaData.Code != "200" {
if resSuratKontrolRaw.MetaData.Message == "Gagal simpan! Nomor SEP Sudah pernah digunakan!." { errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
message := "Gagal simpan! Nomor SEP pernah diterbitkan Surat Kontrol!." if strings.Contains(strings.ToLower(resSuratKontrolRaw.MetaData.Message), "Gagal simpan!") {
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" message := "Surat kontrol gagal diterbitkan, pastikan klinik tujuan sama dengan klinik asal pada rujukan awal"
resSuratKontrolRaw.MetaData.Message = message resSuratKontrolRaw.MetaData.Message = message
} }
log.Printf("error : %v", resSuratKontrolRaw.MetaData.Message) log.Printf("error : %v", errMsg)
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
} }
@@ -138,13 +141,19 @@ 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 {
responses.MetaData.Code = "504" if strings.Contains(strings.ToLower(err.Error()), "deadline exceeded") {
responses.MetaData.Message = err.Error() errMsg := errors.New("Koneksi BPJS Terputus, Silahkan Coba Lagi")
log.Println("responses: ", responses) 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) log.Printf("Error making external API request: %v", err)
return responses, err return responses, err
} }
@@ -176,18 +185,14 @@ func ResponseUpdateSuratKontrol(url string, header *config.Header, headers map[s
} }
if resSuratKontrolRaw.MetaData.Code != "200" { if resSuratKontrolRaw.MetaData.Code != "200" {
if resSuratKontrolRaw.MetaData.Message == "Gagal simpan! Nomor SEP Sudah pernah digunakan!." { errMsg := errors.New(resSuratKontrolRaw.MetaData.Message)
message := "Gagal simpan! Nomor SEP pernah diterbitkan Surat Kontrol!." if strings.Contains(strings.ToLower(resSuratKontrolRaw.MetaData.Message), "gagal simpan") {
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" message := "Surat kontrol gagal diterbitkan, pastikan klinik tujuan sama dengan klinik asal pada rujukan awal"
resSuratKontrolRaw.MetaData.Message = message resSuratKontrolRaw.MetaData.Message = message
} }
log.Printf("error : %v", resSuratKontrolRaw.MetaData.Message) log.Printf("error : %v", errMsg)
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
} }
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,55 @@
package kunjunganpasien
import (
pasien "bridging-rssa/database/satu_data/pasien"
"bridging-rssa/docs/utils"
pasien_model "bridging-rssa/models/pasien"
"log"
"net/http"
"strings"
"time"
"github.com/gin-gonic/gin"
)
func ListKunjunganPasien(c *gin.Context) {
var req *pasien_model.RequestListKunjunganPasien
err := c.Bind(&req)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
dataKunjunganPasien, err := pasien.GetListKunjunganPasien(req)
if err != nil {
log.Println(err)
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
var res []*pasien_model.ResponseListKunjunganPasien
for _, v := range dataKunjunganPasien {
gelarDepan := utils.ReplaceGelar(v.GelarDepan)
gelarBelakang := utils.ReplaceGelar(v.GelarBelakang)
namaLengkap := gelarDepan + " " + v.NamaLengkapDokter + " " + gelarBelakang
namaLengkap = strings.TrimPrefix(namaLengkap, " ")
namaLengkap = strings.TrimSuffix(namaLengkap, " ")
namaRuang := strings.TrimSpace(v.NamaRuang)
parsedTimeLahir, _ := time.Parse(time.RFC3339, v.TanggalLahir)
parsedTimeMasuk, _ := time.Parse(time.RFC3339, v.TanggalMasukKunjungan)
tanggalLahir := parsedTimeLahir.Format("2006-01-02")
tanggalMasuk := parsedTimeMasuk.Format("2006-01-02")
res = append(res, &pasien_model.ResponseListKunjunganPasien{
NoMR: v.NoMR,
NamaPasien: v.NamaPasien,
TanggalLahir: tanggalLahir,
JenisKelamin: v.JenisKelamin,
TanggalMasukKunjungan: tanggalMasuk,
JamMasukKunjungan: v.JamMasukKunjungan,
KodeDiagnosa: v.KodeDiagnosa,
NamaDiagnosa: v.NamaDiagnosa,
NamaRuang: namaRuang,
NamaLengkapDokter: namaLengkap,
})
}
c.JSON(http.StatusOK, res)
}
+96
View File
@@ -0,0 +1,96 @@
package mikrobiologi
import (
mikrobiologiDB "bridging-rssa/database/simrs/mikrobiologi"
"bridging-rssa/models/simrs/mikrobiologi"
"log"
"net/http"
"github.com/gin-gonic/gin"
)
func GetDataPasienMikrobiologi(c *gin.Context) {
var req *mikrobiologi.RequestPasienMikrobiologi
err := c.Bind(&req)
if err != nil {
log.Println(err)
c.JSON(http.StatusBadRequest, gin.H{
"message": err,
})
return
}
dataPasien, errData := mikrobiologiDB.GetDataMikroBiologi(req)
if errData != nil {
log.Println(errData)
c.JSON(http.StatusBadRequest, gin.H{
"message": errData,
})
return
}
var res []interface{}
for _, v := range dataPasien {
if v.StatusAPS == 1 {
res = append(res, &mikrobiologi.ResponseDataPasienRajalAPS{
NOMR: v.NOMR,
NoNota: v.NoNota,
IdxDaftar: v.IDXDaftar,
TanggalOrder: v.TanggalOrder,
NoLab: v.NoLab,
StatusRajal: v.StatusRajal,
StatusAPS: v.StatusAPS,
NamaAPS: v.NamaAPS,
NoKTPAPS: v.NoKTPAPS,
TempatLahirAPS: v.TempatLahirAPS,
TanggalLahirAPS: v.TanggalLahirAPS,
JenisKelaminAPS: v.JenisKelaminAPS,
AlamatAPS: v.AlamatAPS,
NamaRuang: v.NamaRuang,
KelasRuang: v.KelasRuang,
KodeTarifRajal: v.KodeTarifRajal,
})
} else {
if v.StatusRajal != 1 {
res = append(res, &mikrobiologi.ResponseDataPasienRanap{
NOMR: v.NOMR,
NoNota: v.NoNota,
IDXDaftar: v.IDXDaftar,
TanggalOrder: v.TanggalOrder,
NoLab: v.NoLab,
StatusRajal: v.StatusRajal,
Nama: v.Nama,
NoKTP: v.NoKTP,
NoKTPBaru: v.NoKTPBaru,
TempatLahir: v.TempatLahir,
TanggalLahir: v.TanggalLahir,
JenisKelamin: v.JenisKelamin,
Alamat: v.Alamat,
NamaRuang: v.NamaRuang,
KelasRuang: v.KelasRuang,
KodeTarifRanap: v.KodeTarifRanap,
})
} else {
res = append(res, &mikrobiologi.ResponseDataPasienRajal{
NOMR: v.NOMR,
NoNota: v.NoNota,
IDXDaftar: v.IDXDaftar,
TanggalOrder: v.TanggalOrder,
NoLab: v.NoLab,
StatusRajal: v.StatusRajal,
Nama: v.Nama,
NoKTP: v.NoKTP,
NoKTPBaru: v.NoKTPBaru,
TempatLahir: v.TempatLahir,
TanggalLahir: v.TanggalLahir,
JenisKelamin: v.JenisKelamin,
Alamat: v.Alamat,
NamaRuang: v.NamaRuang,
KelasRuang: v.KelasRuang,
KodeTarifRajal: v.KodeTarifRajal,
})
}
}
}
c.JSON(http.StatusOK, res)
}
+110 -120
View File
@@ -1,120 +1,110 @@
package main package main
import ( import (
"bridging-rssa/config" "bridging-rssa/config"
"bridging-rssa/handlers/bpjs" "bridging-rssa/handlers/bpjs"
icare "bridging-rssa/handlers/bpjs/i_care" icare "bridging-rssa/handlers/bpjs/i_care"
"bridging-rssa/handlers/bpjs/jadwal_dokter" "bridging-rssa/handlers/bpjs/jadwal_dokter"
suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol" "bridging-rssa/handlers/bpjs/rujukan"
"log" suratkontrol "bridging-rssa/handlers/bpjs/surat_kontrol"
kunjunganPasienHandler "bridging-rssa/handlers/kunjungan_pasien"
_ "bridging-rssa/docs" mikrobiologiHandler "bridging-rssa/handlers/mikrobiologi"
"github.com/gin-contrib/cors" "log"
"github.com/gin-gonic/gin"
"github.com/joho/godotenv" _ "bridging-rssa/docs"
cron "github.com/robfig/cron/v3"
swaggerFiles "github.com/swaggo/files" "github.com/gin-contrib/cors"
ginSwagger "github.com/swaggo/gin-swagger" "github.com/gin-gonic/gin"
) "github.com/joho/godotenv"
swaggerFiles "github.com/swaggo/files"
// @title Crud User ginSwagger "github.com/swaggo/gin-swagger"
// @version 1 )
// @Description Rest API CRUD User
// @title Crud User
// @host localhost:8080 // @version 1
// @Description Rest API CRUD User
func main() {
err := godotenv.Load() // @host localhost:8080
if err != nil {
log.Fatal("Error loading .env file") func main() {
} err := godotenv.Load()
if err != nil {
config.ConnectDB() log.Fatal("Error loading .env file")
}
r := gin.Default()
config.ConnectDB()
scheduler := cron.New()
r := gin.Default()
defer scheduler.Stop()
v1 := r.Group("/api")
// SCHEDULE HARIAN
scheduler.AddFunc("15 2 * * *", func() { subspesialis := v1.Group("/subspesialis")
log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER ===") {
for { subspesialis.GET("/", bpjs.GetAllSubspesialis)
success := jadwal_dokter.GetJadwalDokterNew() }
if success {
log.Println("=== SCHEDULE GET JADWAL DOKTER DONE ===") jadwalDokter := v1.Group("/jadwaldokter")
break {
} jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
} jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP)
}) // jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetJadwalSubspesialisByDate)
//SCHEDULE TIAP 3 BULAN jadwalDokter.GET("/tanggal/:tanggal/spesialis/:spesialis", jadwal_dokter.GetDokterBySpesialis)
scheduler.AddFunc("20 2 * * 5", func() { jadwalDokter.GET("/tanggal/:tanggal/subspesialis/:subspesialis", jadwal_dokter.GetDokterBySubspesialis)
log.Println("=== RUNNING SCHEDULE GET JADWAL DOKTER MONTHLY===") jadwalDokter.GET("/detail", jadwal_dokter.GetDetailJadwalDokter)
for { }
success := jadwal_dokter.GetDataJadwalDokter()
if success { suratKontrol := v1.Group("/suratkontrol")
log.Println("=== SCHEDULE GET JADWAL DOKTER MONTHLY DONE ===") {
break suratKontrol.GET("", suratkontrol.GetDataSurKon)
} suratKontrol.GET("/idxdaftar/:idxdaftar", suratkontrol.GetDataSurKonByID)
} suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
}) suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP)
suratKontrol.GET("/printSurKon/:idxdaftar", suratkontrol.PrintSurKon)
go scheduler.Start() suratKontrol.POST("/cari", suratkontrol.CariPasienTPP)
suratKontrol.POST("/carinew", suratkontrol.CariPasienTPPNew)
v1 := r.Group("/api") suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol)
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol)
subspesialis := v1.Group("/subspesialis") suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol)
{ suratKontrol.POST("/datalog", suratkontrol.GetDataLogAPI)
subspesialis.GET("/", bpjs.GetAllSubspesialis) }
}
kunjunganPasien := v1.Group("/kunjunganpasien")
//API UNTUK JADWAL DOKTER {
jadwalDokter := v1.Group("/jadwaldokter") kunjunganPasien.POST("/listkunjunganpasien", kunjunganPasienHandler.ListKunjunganPasien)
{ }
jadwalDokter.GET("/date/:tanggal", jadwal_dokter.GetJadwalDokter)
jadwalDokter.GET("/dpjp/:dpjp", jadwal_dokter.GetDokterByDPJP) suratRujukan := v1.Group("/rujukan")
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetJadwalSubspesialisByDate) {
jadwalDokter.GET("/tanggal/:tanggal/spesialis/:spesialis", jadwal_dokter.GetDokterBySpesialis) suratRujukan.GET("/noRujukan/:noRujukan", rujukan.GetSuratRujukan)
jadwalDokter.GET("/tanggal/:tanggal/subspesialis/:subspesialis", jadwal_dokter.GetDokterBySubspesialis) suratRujukan.GET("/list/peserta/:noKartu", rujukan.GetSuratRujukanBatch)
} }
// API UNTUK SURAT KONTROL iCare := v1.Group("/icare")
suratKontrol := v1.Group("/suratkontrol") {
{ iCare.POST("/rs/validate", icare.GetFKRTL)
suratKontrol.GET("/offset/:offset/limit/:limit", suratkontrol.GetDataSurKon) iCare.POST("/pcare/validate", icare.GetFKTP)
suratKontrol.GET("/idxdaftar/:idxdaftar/tiperawat/:tiperawat", suratkontrol.GetDataSurKonByID) }
suratKontrol.GET("/noSuratKontrol/:noSuratKontrol", suratkontrol.GetNomorSuratKontrol)
suratKontrol.GET("/noSEP/:noSEP", suratkontrol.GetSuratKontrolBySEP) mikrobiologi := v1.Group("/mikrobiologi")
suratKontrol.GET("/printSurKon/:idxdaftar/tiperawat/:tiperawat", suratkontrol.PrintSurKon) {
suratKontrol.POST("/cari", suratkontrol.CariPasienTPP) mikrobiologi.POST("/datapasien", mikrobiologiHandler.GetDataPasienMikrobiologi)
suratKontrol.POST("/insert", suratkontrol.InsertSuratKontrol) }
suratKontrol.PUT("/update", suratkontrol.UpdateSuratKontrol) r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
suratKontrol.POST("/delete", suratkontrol.DeleteSuratKontrol) r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
suratKontrol.GET("/norm/:norm/limit/:limit/offset/:offset", suratkontrol.GethistoribyNorm) r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
} r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
r.Use(cors.New(cors.Config{
iCare := v1.Group("/icare") AllowOrigins: []string{"*"}, // or specific domains like "http://example.com"
{ AllowMethods: []string{"GET", "POST", "PUT", "DELETE"},
iCare.POST("/rs/validate", icare.GetFKRTL) AllowHeaders: []string{"Origin", "Content-Type"},
iCare.POST("/pcare/validate", icare.GetFKTP) AllowCredentials: true,
} }))
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
r.POST("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) log.Println("JALAN DI PORT : 8082")
r.PUT("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) err = r.Run(":8082")
r.DELETE("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) if err != nil {
r.Use(cors.New(cors.Config{ log.Fatal(err)
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)
}
}
+92 -94
View File
@@ -1,94 +1,92 @@
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 JadwalDokter struct { type Metadata struct {
Response []*ListDokter `json:"response"` Code int `json:"code"`
MetaData Metadata `json:"metadata"` Message string `json:"message"`
} }
type Metadata struct { type ListDokter struct {
Code int `json:"code"` KodeSubspesialis string `json:"kodesubspesialis"`
Message string `json:"message"` Hari int `json:"hari"`
} KapasitasPasien int `json:"kapasitaspasien"`
Libur int `json:"libur"`
type ListDokter struct { NamaHari string `json:"namahari"`
KodeSubspesialis string `json:"kodesubspesialis"` Jadwal string `json:"jadwal"`
Hari int `json:"hari"` NamaSubspesialis string `json:"namasubspesialis"`
KapasitasPasien int `json:"kapasitaspasien"` NamaDokter string `json:"namadokter"`
Libur int `json:"libur"` KodePoli string `json:"kodepoli"`
NamaHari string `json:"namahari"` NamaPoli string `json:"namapoli"`
Jadwal string `json:"jadwal"` KodeDokter int `json:"kodedokter"`
NamaSubspesialis string `json:"namasubspesialis"` }
NamaDokter string `json:"namadokter"`
KodePoli string `json:"kodepoli"` type DaftarSpesialis struct {
NamaPoli string `json:"namapoli"` ID int `json:"id"`
KodeDokter int `json:"kodedokter"` Kode string `json:"Kode"`
} Spesialis string `json:"Spesialis"`
}
type DaftarSpesialis struct {
ID int `json:"id"` type JadwalDokterSatuData struct {
Kode string `json:"Kode"` ID int `gorm:"column:id" json:"id"`
Spesialis string `json:"Spesialis"` Hari int `gorm:"column:Hari" json:"Hari"`
} NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
Waktu string `gorm:"column:Waktu" json:"Waktu"`
type JadwalDokterSatuData struct { Dokter string `gorm:"column:Dokter" json:"Dokter"`
ID int `gorm:"column:id" json:"id"` Spesialis int `gorm:"column:Spesialis" json:"Spesialis"`
Hari int `gorm:"column:Hari" json:"Hari"` SubSpesialis int `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"` Status int `gorm:"column:Status" json:"Status"`
Waktu string `gorm:"column:Waktu" json:"Waktu"` }
Dokter string `gorm:"column:Dokter" json:"Dokter"`
Spesialis int `gorm:"column:Spesialis" json:"Spesialis"` type JadwalDokterTempSatuData struct {
SubSpesialis int `gorm:"column:Sub_spesialis" json:"Sub_spesialis"` ID int `gorm:"column:id" json:"id"`
Status int `gorm:"column:Status" json:"Status"` Hari int `gorm:"column:Hari" json:"Hari"`
} NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"`
Waktu string `gorm:"column:Waktu" json:"Waktu"`
type DataJadwalDokterSatuData struct { Dokter string `gorm:"column:Dokter" json:"Dokter"`
ID string `gorm:"column:id" json:"id"` Spesialis string `gorm:"column:Spesialis" json:"Spesialis"`
DateCreated string `gorm:"column:date_created" json:"Date_created"` SubSpesialis string `gorm:"column:Sub_spesialis" json:"Sub_spesialis"`
Hari string `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 ResponseListHari struct {
Spesialis int `gorm:"column:Spesialis" json:"Spesialis"` IDSpesialis int `json:"id_spesialis"`
SubSpesialis int `gorm:"column:Sub_spesialis" json:"Sub_spesialis"` Kode string `json:"Kode"`
TanggalJadwal string `gorm:"column:Tanggal_jadwal" json:"Tanggal_jadwal"` Spesialis string `json:"Spesialis"`
} Subspesialis string `json:"Subspesialis"`
IDSubspesialis int `json:"id_subspesialis"`
type JadwalDokterTempSatuData struct { NamaLengkap string `json:"nama_lengkap"`
ID int `gorm:"column:id" json:"id"` HFISCode string `json:"HFIS_code"`
Hari int `gorm:"column:Hari" json:"Hari"` KodeDPJP string `json:"DPJP_code"`
NamaHari string `gorm:"column:Nama_hari" json:"Nama_hari"` IDDokter string `json:"id_dokter"`
Waktu string `gorm:"column:Waktu" json:"Waktu"` JadwalDokter []ListJadwalDokter `json:"Jadwal_dokter"`
Dokter string `gorm:"column:Dokter" json:"Dokter"` }
Spesialis string `gorm:"column:Spesialis" json:"Spesialis"`
SubSpesialis string `gorm:"column:Sub_spesialis" json:"Sub_spesialis"` type ListJadwalDokter struct {
Status int `gorm:"column:Status" json:"Status"` NamaHari string `json:"Nama_hari"`
} KodeHari int `json:"Kode_hari"`
Waktu string `json:"Waktu"`
type ResponseListHari struct { }
IDSpesialis int `json:"id_spesialis"`
Kode string `json:"Kode"` type ListDaftarJadwalDokter struct {
Spesialis string `json:"Spesialis"` ValueHari string `gorm:"column:valuehari" json:"valuehari"`
Subspesialis string `json:"Subspesialis"` NamaHari string `gorm:"column:hari" json:"hari"`
IDSubspesialis int `json:"id_subspesialis"` Waktu string `gorm:"column:waktu" json:"waktu"`
NamaLengkap string `json:"nama_lengkap"` Spesialis string `gorm:"column:spesialis" json:"spesialis"`
HFISCode string `json:"HFIS_code"` Subspesialis string `gorm:"column:subspesialis" json:"subspesialis"`
KodeDPJP string `json:"DPJP_code"` GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"`
IDDokter string `json:"id_dokter"` NamaLengkap string `gorm:"column:namalengkap" json:"namalengkap"`
JadwalDokter []ListJadwalDokter `json:"Jadwal_dokter"` GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"`
} }
type ListJadwalDokter struct { type ResponseDetailJadwalDokter struct {
NamaHari string `json:"Nama_hari"` ValueHari string `gorm:"column:valuehari" json:"valuehari"`
KodeHari int `json:"Kode_hari"` NamaHari string `gorm:"column:hari" json:"hari"`
Waktu string `json:"Waktu"` Waktu string `gorm:"column:waktu" json:"waktu"`
} Spesialis string `gorm:"column:spesialis" json:"spesialis"`
Subspesialis string `gorm:"column:subspesialis" json:"subspesialis"`
type RequestJadwalDokter struct { NamaLengkap string `gorm:"column:namalengkap" json:"namalengkap"`
KodePoli string `json:"kodepoli"` }
Tanggal string `json:"tanggal"`
}
+131
View File
@@ -0,0 +1,131 @@
package rujukan
type ResponseGetRujukan struct {
Response ResponseRujukan `json:"response"`
MetaData Metadata `json:"metaData"`
}
type ResponseGetRujukanBatch struct {
Response ResponseRujukanBatch `json:"response"`
MetaData Metadata `json:"metaData"`
}
type ResponseRaw struct {
Response string `json:"response"`
MetaData Metadata `json:"metaData"`
}
type Metadata struct {
Code string `json:"code"`
Message string `json:"message"`
}
type ResponseRujukan struct {
Rujukan Rujukan `json:"rujukan"`
}
type ResponseRujukanBatch struct {
Rujukan []Rujukan `json:"rujukan"`
}
type Response struct {
MetaData Metadata `json:"metaData"`
Response ResponseRujukan `json:"response"`
}
type ResponseBatch struct {
MetaData Metadata `json:"metaData"`
Response ResponseRujukanBatch `json:"response"`
}
type Rujukan struct {
Diagnosa Diagnosa `json:"diagnosa"`
Keluhan string `json:"keluhan"`
NoKunjungan string `json:"noKunjungan"`
Pelayanan Pelayanan `json:"pelayanan"`
Peserta Peserta `json:"peserta"`
PoliRujukan PoliRujukan `json:"poliRujukan"`
ProvPerujuk ProvPerujuk `json:"provPerujuk"`
TglKunjungan string `json:"tglKunjungan"`
}
type Diagnosa struct {
Kode string `json:"kode"`
Nama string `json:"nama"`
}
type Pelayanan struct {
Kode string `json:"kode"`
Nama string `json:"nama"`
}
type Peserta struct {
Cob COB `json:"cob"`
HakKelas HakKelas `json:"hakKelas"`
Informasi Informasi `json:"informasi"`
Mr MR `json:"mr"`
Nama string `json:"nama"`
NIK *string `json:"nik"`
NoKartu string `json:"noKartu"`
Pisa string `json:"pisa"`
ProvUmum ProvUmum `json:"provUmum"`
Sex string `json:"sex"`
StatusPeserta StatusPeserta `json:"statusPeserta"`
TglCetakKartu string `json:"tglCetakKartu"`
TglLahir string `json:"tglLahir"`
TglTAT string `json:"tglTAT"`
TglTMT string `json:"tglTMT"`
Umur Umur `json:"umur"`
}
type COB struct {
NamaAsuransi *string `json:"nmAsuransi"`
NoAsuransi *string `json:"noAsuransi"`
TglTAT *string `json:"tglTAT"`
TglTMT *string `json:"tglTMT"`
}
type HakKelas struct {
Keterangan string `json:"keterangan"`
Kode string `json:"kode"`
}
type Informasi struct {
Dinsos *string `json:"dinsos"`
NoSKTM *string `json:"noSKTM"`
ProlanisPRB *string `json:"prolanisPRB"`
}
type JenisPeserta struct {
Keterangan string `json:"keterangan"`
Kode string `json:"kode"`
}
type MR struct {
NoMR string `json:"noMR"`
NoTelepon *string `json:"noTelepon"`
}
type ProvUmum struct {
KodeProvider string `json:"kdProvider"`
NamaProvider string `json:"nmProvider"`
}
type StatusPeserta struct {
Keterangan string `json:"keterangan"`
Kode string `json:"kode"`
}
type Umur struct {
UmurSaatPelayanan string `json:"umurSaatPelayanan"`
UmurSekarang string `json:"umurSekarang"`
}
type PoliRujukan struct {
Kode string `json:"kode"`
Nama string `json:"nama"`
}
type ProvPerujuk struct {
Kode string `json:"kode"`
Nama string `json:"nama"`
}
+300 -332
View File
@@ -1,332 +1,300 @@
package suratkontrol package suratkontrol
type RequestHeaderRencanaKontrol struct { type RequestHeaderRencanaKontrol struct {
Request interface{} `json:"request"` Request interface{} `json:"request"`
} }
type ReqInsertRencanaKontrol struct { type ReqInsertRencanaKontrol struct {
NoSEP string `json:"noSEP"` NoSEP string `json:"noSEP"`
KodeDokter string `json:"kodeDokter"` KodeDokter string `json:"kodeDokter"`
PoliKontrol string `json:"poliKontrol"` PoliKontrol string `json:"poliKontrol"`
TglRencanaKontrol string `json:"tglRencanaKontrol"` TglRencanaKontrol string `json:"tglRencanaKontrol"`
User string `json:"user"` User string `json:"user"`
} }
type ReqUpdateRencanaKontrol struct { type ReqUpdateRencanaKontrol struct {
NoSuratKontrol string `json:"noSuratKontrol"` NoSuratKontrol string `json:"noSuratKontrol"`
NoSEP string `json:"noSEP"` NoSEP string `json:"noSEP"`
KodeDokter string `json:"kodeDokter"` KodeDokter string `json:"kodeDokter"`
PoliKontrol string `json:"poliKontrol"` PoliKontrol string `json:"poliKontrol"`
TglRencanaKontrol string `json:"tglRencanaKontrol"` TglRencanaKontrol string `json:"tglRencanaKontrol"`
User string `json:"user"` User string `json:"user"`
} }
type RequestInsertRencanaKontrol struct { type RequestInsertRencanaKontrol struct {
IDXDaftar string `json:"idxdaftar"` IDXDaftar string `json:"idxdaftar"`
NoSEP string `json:"noSEP"` NoSEP string `json:"noSEP"`
KodeHFIS string `json:"kodeHFIS"` KodeHFIS string `json:"kodeHFIS"`
KodePoli string `json:"kodePoli"` KodePoli string `json:"kodePoli"`
Subspesialis string `json:"subspesialis"` Subspesialis string `json:"subspesialis"`
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"` TipeSurKon string `json:"tipe_surkon"`
TipeRawat string `json:"tipe_rawat"` TipeRawat string `json:"tipe_rawat"`
Ruangan string `json:"ruangan"` 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"` TipeSurKon string `json:"tipe_surkon"`
} }
type RequestUpdateRencanaKontrol struct { type RequestUpdateRencanaKontrol struct {
IDXDaftar string `json:"idxdaftar"` IDXDaftar string `json:"idxdaftar"`
IDSurKon string `json:"idSurKon"` IDSurKon string `json:"idSurKon"`
IDDokter string `json:"id_dokter"` IDDokter string `json:"id_dokter"`
NoSuratKontrol string `json:"noSuratKontrol"` NoSuratKontrol string `json:"noSuratKontrol"`
NoSEP string `json:"noSEP"` NoSEP string `json:"noSEP"`
KodeHFIS string `json:"kodeHFIS"` KodeHFIS string `json:"kodeHFIS"`
KodePoli string `json:"kodePoli"` KodePoli string `json:"kodePoli"`
TglRencanaKontrol string `json:"tglRencanaKontrol"` TglRencanaKontrol string `json:"tglRencanaKontrol"`
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"` TipeSurKon string `json:"tipe_surkon"`
TipeRawat string `json:"tipe_rawat"` TipeRawat string `json:"tipe_rawat"`
} }
type TSuratKontrol struct { type TSuratKontrol struct {
RequestDelete RequestDeleteRencanaKontrol `json:"t_suratkontrol"` RequestDelete RequestDeleteRencanaKontrol `json:"t_suratkontrol"`
} }
type RequestDeleteRencanaKontrol struct { type RequestDeleteRencanaKontrol struct {
NoSuratKontrol string `json:"noSuratKontrol"` NoSuratKontrol string `json:"noSuratKontrol"`
User string `json:"user"` User string `json:"user"`
} }
type ResponseRaw struct { type ResponseRaw struct {
Response string `json:"response"` Response string `json:"response"`
MetaData MetadataString `json:"metadata"` MetaData MetadataString `json:"metadata"`
} }
type ResponseRawUpper struct { type ResponseRawUpper struct {
Response string `json:"response"` Response string `json:"response"`
MetaData MetadataString `json:"metaData"` MetaData MetadataString `json:"metaData"`
} }
type Metadata struct { type Metadata struct {
Code int `json:"code"` Code int `json:"code"`
Message string `json:"message"` Message string `json:"message"`
} }
type ResponseInsertRaw struct { type ResponseInsertRaw struct {
Response string `json:"response"` Response string `json:"response"`
MetaData MetadataString `json:"metaData"` MetaData MetadataString `json:"metaData"`
} }
type MetadataString struct { type MetadataString struct {
Code string `json:"code"` Code string `json:"code"`
Message string `json:"message"` Message string `json:"message"`
} }
type ResponseGetSuratKontrol struct { type ResponseGetSuratKontrol struct {
MetaData MetadataString `json:"metaData"` MetaData MetadataString `json:"metaData"`
Response ResponseNomorSuratKontrol `json:"response"` Response ResponseNomorSuratKontrol `json:"response"`
} }
type ResponseGetSuratKontrolBySEP struct { type ResponseGetSuratKontrolBySEP struct {
MetaData MetadataString `json:"metaData"` MetaData MetadataString `json:"metaData"`
Response ResponseSuratKontrolBySEP `json:"response"` Response ResponseSuratKontrolBySEP `json:"response"`
} }
type Response struct { type Response struct {
MetaData MetadataString `json:"metadata"` MetaData MetadataString `json:"metadata"`
Response ResponseSuratKontrol `json:"response"` Response ResponseSuratKontrol `json:"response"`
} }
type ResponseUpper struct { type ResponseUpper struct {
MetaData MetadataString `json:"metaData"` MetaData MetadataString `json:"metaData"`
Response ResponseSuratKontrol `json:"response"` Response ResponseSuratKontrol `json:"response"`
} }
type ResponseInsertSuratKontrol struct { type ResponseInsertSuratKontrol struct {
MetaData MetadataString `json:"metaData"` MetaData MetadataString `json:"metaData"`
Response ResponseData `json:"response"` Response ResponseData `json:"response"`
} }
type ResponseData struct { type ResponseData struct {
NoSuratKontrol string `json:"noSuratKontrol"` NoSuratKontrol string `json:"noSuratKontrol"`
TglRencanaKontrol string `json:"tglRencanaKontrol"` TglRencanaKontrol string `json:"tglRencanaKontrol"`
NamaDokter string `json:"namaDokter"` NamaDokter string `json:"namaDokter"`
NoKartu string `json:"noKartu"` NoKartu string `json:"noKartu"`
Nama string `json:"nama"` Nama string `json:"nama"`
Kelamin string `json:"kelamin"` Kelamin string `json:"kelamin"`
TglLahir string `json:"tglLahir"` TglLahir string `json:"tglLahir"`
NamaDiagnosa string `json:"namaDiagnosa"` NamaDiagnosa string `json:"namaDiagnosa"`
SubSpesialis string `json:"subspesialis"` SubSpesialis string `json:"subspesialis"`
} }
type ResponseSuratKontrol struct { type ResponseSuratKontrol struct {
NoSuratKontrol string `json:"noSuratKontrol"` NoSuratKontrol string `json:"noSuratKontrol"`
TglRencanaKontrol string `json:"tglRencanaKontrol"` TglRencanaKontrol string `json:"tglRencanaKontrol"`
NamaDokter string `json:"namaDokter"` NamaDokter string `json:"namaDokter"`
NoKartu string `json:"noKartu"` NoKartu string `json:"noKartu"`
Nama string `json:"nama"` Nama string `json:"nama"`
Kelamin string `json:"kelamin"` Kelamin string `json:"kelamin"`
TglLahir string `json:"tglLahir"` TglLahir string `json:"tglLahir"`
NamaDiagnosa string `json:"namaDiagnosa"` NamaDiagnosa string `json:"namaDiagnosa"`
} }
type RequestRencanaKontrol struct { type RequestRencanaKontrol struct {
IDXDaftar string `json:"idxdaftar"` IDXDaftar string `json:"idxdaftar"`
NoSEP string `json:"noSEP"` NoSEP string `json:"noSEP"`
KodeHFIS string `json:"kodeHFIS"` KodeHFIS string `json:"kodeHFIS"`
KodePoli string `json:"kodePoli"` KodePoli string `json:"kodePoli"`
TglRencanaKontrol string `json:"tglRencanaKontrol"` TglRencanaKontrol string `json:"tglRencanaKontrol"`
User string `json:"user"` User string `json:"user"`
} }
type ResponseNomorSuratKontrol struct { type ResponseNomorSuratKontrol struct {
NoSuratKontrol string `json:"noSuratKontrol"` NoSuratKontrol string `json:"noSuratKontrol"`
TglRencanaKontrol string `json:"tglRencanaKontrol"` TglRencanaKontrol string `json:"tglRencanaKontrol"`
TglTerbit string `json:"tglTerbit"` TglTerbit string `json:"tglTerbit"`
JnsKontrol string `json:"jnsKontrol"` JnsKontrol string `json:"jnsKontrol"`
PoliTujuan string `json:"poliTujuan"` PoliTujuan string `json:"poliTujuan"`
NamaPoliTujuan string `json:"namaPoliTujuan"` NamaPoliTujuan string `json:"namaPoliTujuan"`
KodeDokter string `json:"kodeDokter"` KodeDokter string `json:"kodeDokter"`
NamaDokter string `json:"namaDokter"` NamaDokter string `json:"namaDokter"`
FlagKontrol string `json:"flagKontrol"` FlagKontrol string `json:"flagKontrol"`
KodeDokterPembuat string `json:"kodeDokterPembuat"` KodeDokterPembuat string `json:"kodeDokterPembuat"`
NamaDokterPembuat string `json:"namaDokterPembuat"` NamaDokterPembuat string `json:"namaDokterPembuat"`
NamaJnsKontrol string `json:"namaJnsKontrol"` NamaJnsKontrol string `json:"namaJnsKontrol"`
Sep Sep `json:"sep"` Sep Sep `json:"sep"`
} }
type Sep struct { type Sep struct {
NoSep string `json:"noSep"` NoSep string `json:"noSep"`
TglSep string `json:"tglSep"` TglSep string `json:"tglSep"`
JnsPelayanan string `json:"jnsPelayanan"` JnsPelayanan string `json:"jnsPelayanan"`
Poli string `json:"poli"` Poli string `json:"poli"`
Diagnosa string `json:"diagnosa"` Diagnosa string `json:"diagnosa"`
Peserta Peserta `json:"peserta"` Peserta Peserta `json:"peserta"`
ProvUmum ProvUmum `json:"provUmum"` ProvUmum ProvUmum `json:"provUmum"`
ProvPerujuk ProvPerujuk `json:"provPerujuk"` ProvPerujuk ProvPerujuk `json:"provPerujuk"`
} }
type Peserta struct { type Peserta struct {
NoKartu string `json:"noKartu"` NoKartu string `json:"noKartu"`
Nama string `json:"nama"` Nama string `json:"nama"`
TglLahir string `json:"tglLahir"` TglLahir string `json:"tglLahir"`
Kelamin string `json:"kelamin"` Kelamin string `json:"kelamin"`
HakKelas string `json:"hakKelas"` HakKelas string `json:"hakKelas"`
} }
type ProvUmum struct { type ProvUmum struct {
KodeProvider string `json:"kdProvider"` KodeProvider string `json:"kdProvider"`
NamaProvider string `json:"nmProvider"` NamaProvider string `json:"nmProvider"`
} }
type ProvPerujuk struct { type ProvPerujuk struct {
KodeProviderPerujuk string `json:"kdProviderPerujuk"` KodeProviderPerujuk string `json:"kdProviderPerujuk"`
NamaProviderPerujuk string `json:"nmProviderPerujuk"` NamaProviderPerujuk string `json:"nmProviderPerujuk"`
AsalRujukan string `json:"asalRujukan"` AsalRujukan string `json:"asalRujukan"`
NoRujukan string `json:"noRujukan"` NoRujukan string `json:"noRujukan"`
TglRujukan string `json:"tglRujukan"` TglRujukan string `json:"tglRujukan"`
} }
type DataSuratKontrol struct { type DataSuratKontrol struct {
ID string `gorm:"column:id" json:"id"` ID string `gorm:"column:id" json:"id"`
Status string `gorm:"column:status" json:"status"` Status string `gorm:"column:status" json:"status"`
Sort int `gorm:"column:sort" json:"sort"` Sort int `gorm:"column:sort" json:"sort"`
UserCreated string `gorm:"column:user_created" json:"user_created"` UserCreated string `gorm:"column:user_created" json:"user_created"`
DateCreated string `gorm:"column:date_created" json:"date_created"` DateCreated string `gorm:"column:date_created" json:"date_created"`
UserUpdated string `gorm:"column:user_updated" json:"user_updated"` UserUpdated string `gorm:"column:user_updated" json:"user_updated"`
DateUpdated string `gorm:"column:date_updated" json:"date_updated"` DateUpdated string `gorm:"column:date_updated" json:"date_updated"`
TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"`
TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"`
NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"`
KunjunganPasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"` KunjunganPasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"`
RuanganSurKon int `gorm:"column:Ruangan_surat_kontrol" json:"Ruangan_surat_kontrol"` RuanganSurKon int `gorm:"column:Ruangan_surat_kontrol" json:"Ruangan_surat_kontrol"`
DPJPSurKon string `gorm:"column:DPJP_surat_kontrol" json:"DPJP_surat_kontrol"` DPJPSurKon string `gorm:"column:DPJP_surat_kontrol" json:"DPJP_surat_kontrol"`
StatusSurKon int `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"` StatusSurKon int `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"`
UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_surat_kontrol"` 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 { NoSEP string `json:"noSep"`
NoSEP string `json:"noSep"` TglSEP string `json:"tglSep"`
TglSEP string `json:"tglSep"` JenisPelayanan string `json:"jnsPelayanan"`
JenisPelayanan string `json:"jnsPelayanan"` Poli string `json:"poli"`
Poli string `json:"poli"` Diagnosa string `json:"diagnosa"`
Diagnosa string `json:"diagnosa"` Peserta Peserta `json:"peserta"`
Peserta Peserta `json:"peserta"` ProvUmum ProvUmum `json:"provUmum"`
ProvUmum ProvUmum `json:"provUmum"` ProvPerujuk ProvPerujuk `json:"provPerujuk"`
ProvPerujuk ProvPerujuk `json:"provPerujuk"` }
}
type GetDataSuratKontrol struct {
type GetDataSuratKontrol struct { IDDataSurKon string `gorm:"column:id" json:"id"`
IDDataSurKon string `gorm:"column:id" json:"id"` IDXDaftar string `gorm:"column:IDXDAFTAR" json:"IDXDAFTAR"`
IDXDaftar string `gorm:"column:IDXDAFTAR" json:"IDXDAFTAR"` TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"`
TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"`
TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"`
NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` PoliAsal string `gorm:"column:Poli_asal" json:"Poli_asal"`
PoliAsal string `gorm:"column:Poli_asal" json:"Poli_asal"` PoliTujuan string `gorm:"column:Poli_tuju" json:"Poli_tuju"`
PoliTujuan string `gorm:"column:Poli_tuju" json:"Poli_tuju"` NomorSEP string `gorm:"column:Nomor_sep" json:"Nomor_sep"`
NomorSEP string `gorm:"column:Nomor_sep" json:"Nomor_sep"` NamaPasien string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"`
NamaPasien string `gorm:"column:Nama_lengkap" json:"Nama_lengkap"` GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"`
GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` NamaLengkapDokter string `gorm:"column:Nama_lengkap_dokter" json:"Nama_lengkap_dokter"`
NamaLengkapDokter string `gorm:"column:Nama_lengkap_dokter" json:"Nama_lengkap_dokter"` GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"`
GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` Subspesialis string `gorm:"column:Subspesialis" json:"Subspesialis"`
Subspesialis string `gorm:"column:Subspesialis" json:"Subspesialis"` KodePoli string `gorm:"column:Kode_poli" json:"Kode_poli"`
KodePoli string `gorm:"column:Kode_poli" json:"Kode_poli"` KodeDokter string `gorm:"column:Kode_dokter" json:"Kode_dokter"`
KodeDokter string `gorm:"column:Kode_dokter" json:"Kode_dokter"` 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"`
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"`
User string `gorm:"column:User" json:"User"` }
}
type ResponseGetDataSuratKontrol struct {
type ResponseGetDataSuratKontrol struct { IDDataSurKon string `json:"id"`
IDDataSurKon string `json:"id"` IDXDaftar string `json:"Idx_daftar"`
IDXDaftar string `json:"Idx_daftar"` TglCetakSurKon string `json:"Tanggal_cetak_surat_kontrol"`
TglCetakSurKon string `json:"Tanggal_cetak_surat_kontrol"` TglRencanaKontrol string `json:"Tanggal_rencana_kontrol"`
TglRencanaKontrol string `json:"Tanggal_rencana_kontrol"` NomorSurKon string `json:"Nomor_surat_kontrol"`
NomorSurKon string `json:"Nomor_surat_kontrol"` PoliAsal string `json:"Poli_asal"`
PoliAsal string `json:"Poli_asal"` PoliTujuan string `json:"Poli_tuju"`
PoliTujuan string `json:"Poli_tuju"` NomorSEP string `json:"Nomor_sep"`
NomorSEP string `json:"Nomor_sep"` NamaPasien string `json:"Nama_pasien"`
NamaPasien string `json:"Nama_pasien"` NamaDokter string `json:"NamaDokter"`
NamaDokter string `json:"NamaDokter"` NomorKartu string `json:"Nomor_kartu"`
NomorKartu string `json:"Nomor_kartu"` 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"`
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"`
User string `json:"User"` }
}
type ResponseCariDataSuratKontrol struct {
type ResponseCariDataSuratKontrol struct { JumlahData int `json:"jumlah_data"`
JumlahData int `json:"jumlah_data"` ListDataSuratKontrol []*ResponseGetDataSuratKontrol `json:"list_data"`
ListDataSuratKontrol []*ResponseGetDataSuratKontrol `json:"list_data"` }
}
type RequestCariPasien struct {
type RequestCariPasien struct { NoRM string `json:"no_rm"`
NoRM string `json:"no_rm"` NoSEP string `json:"no_sep"`
NoSEP string `json:"no_sep"` 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"`
TipeSurKon string `json:"tipe_surkon"` Offset string `json:"offset"`
Offset string `json:"offset"` Limit string `json:"limit"`
Limit string `json:"limit"` IsTanggalEntri bool `json:"is_tanggal_entri"`
} }
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"`
}
+6 -5
View File
@@ -10,9 +10,10 @@ type ConfigBpjs struct {
} }
type Header struct { type Header struct {
ConsID string ConsID string
SecretKey string SecretKey string
UserKey string UserKey string
TimeStamp string TimeStamp string
XSignature string XSignature string
XAuthorization string
} }
-7
View File
@@ -1,7 +0,0 @@
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"`
}
+8
View File
@@ -17,4 +17,12 @@ type DataLogAPI struct {
ResponTimeStart string `gorm:"column:Respontime_start" json:"Respontime_start"` ResponTimeStart string `gorm:"column:Respontime_start" json:"Respontime_start"`
ResponTimeEnd string `gorm:"column:Respontime_end" json:"Respontime_end"` ResponTimeEnd string `gorm:"column:Respontime_end" json:"Respontime_end"`
Comment string `gorm:"column:Comment" json:"Comment"` Comment string `gorm:"column:Comment" json:"Comment"`
RequestString string `json:"Request_string"`
ResponString string `json:"Respon_string"`
}
type ReqGetDataLogAPI struct {
TanggalAwal string `json:"Tanggal_awal"`
TanggalAkhir string `json:"Tanggal_akhir"`
TipeRawat string `json:"Tipe_rawat"`
} }
+33
View File
@@ -4,3 +4,36 @@ type KunjunganPasien struct {
ID string `gorm:"column:id" json:"id"` ID string `gorm:"column:id" json:"id"`
Ruangan int `gorm:"column:Ruangan" json:"Ruangan"` Ruangan int `gorm:"column:Ruangan" json:"Ruangan"`
} }
type RequestListKunjunganPasien struct {
TanggalAwal string `json:"tanggalawal"`
TanggalAkhir string `json:"tanggalakhir"`
}
type ListKunjunganPasien struct {
NoMR string `gorm:"column:nomr" json:"nomr"`
NamaPasien string `gorm:"column:namalengkap" json:"namalengkap"`
TanggalLahir string `gorm:"column:tanggallahir" json:"tanggallahir"`
JenisKelamin string `gorm:"column:jeniskelamin" json:"jeniskelamin"`
TanggalMasukKunjungan string `gorm:"column:tanggalmasukkunjungan" json:"tanggalmasukkunjungan"`
JamMasukKunjungan string `gorm:"column:jammasukkunjungan" json:"jammasukkunjungan"`
KodeDiagnosa string `gorm:"column:dxawalmasuk" json:"dxawalmasuk"`
NamaDiagnosa string `gorm:"column:displaydxawalmasuk" json:"displaydxawalmasuk"`
NamaRuang string `gorm:"column:namaruang" json:"namaruang"`
GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"`
NamaLengkapDokter string `gorm:"column:namalengkapdokter" json:"namalengkapdokter"`
GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"`
}
type ResponseListKunjunganPasien struct {
NoMR string `gorm:"column:nomr" json:"nomr"`
NamaPasien string `gorm:"column:namalengkap" json:"namalengkap"`
TanggalLahir string `gorm:"column:tanggallahir" json:"tanggallahir"`
JenisKelamin string `gorm:"column:jeniskelamin" json:"jeniskelamin"`
TanggalMasukKunjungan string `gorm:"column:tanggalmasukkunjungan" json:"tanggalmasukkunjungan"`
JamMasukKunjungan string `gorm:"column:jammasukkunjungan" json:"jammasukkunjungan"`
KodeDiagnosa string `gorm:"column:dxawalmasuk" json:"dxawalmasuk"`
NamaDiagnosa string `gorm:"column:displaydxawalmasuk" json:"displaydxawalmasuk"`
NamaRuang string `gorm:"column:namaruang" json:"namaruang"`
NamaLengkapDokter string `gorm:"column:namalengkapdokter" json:"namalengkapdokter"`
}
+90
View File
@@ -0,0 +1,90 @@
package mikrobiologi
type RequestPasienMikrobiologi struct {
NOMR string `json:"nomr"`
IDXDaftar string `json:"idxdaftar"`
}
type DataPasienMikrobiologi struct {
NOMR string `gorm:"column:nomr" json:"nomr"`
NoNota string `gorm:"column:nonota" json:"nonota"`
IDXDaftar int `gorm:"column:idxdaftar" json:"idxdaftar"`
TanggalOrder string `gorm:"column:tglorder" json:"tglorder"`
NoLab string `gorm:"column:nolab" json:"nolab"`
StatusRajal int `gorm:"column:statusrajal" json:"statusrajal"`
StatusAPS int `gorm:"column:statusaps" json:"statusaps"`
Nama string `gorm:"column:nama" json:"nama"`
NoKTP string `gorm:"column:noktp" json:"noktp"`
NoKTPBaru string `gorm:"column:noktpbaru" json:"noktpbaru"`
TempatLahir string `gorm:"column:tmptlahir" json:"tmptlahir"`
TanggalLahir string `gorm:"column:tgllahir" json:"tgllahir"`
JenisKelamin string `gorm:"column:jeniskelamin" json:"jeniskelamin"`
Alamat string `gorm:"column:alamat" json:"alamat"`
NamaAPS string `gorm:"column:namaaps" json:"namaaps"`
NoKTPAPS string `gorm:"column:noktpaps" json:"noktpaps"`
TempatLahirAPS string `gorm:"column:tmptlahiraps" json:"tmptlahiraps"`
TanggalLahirAPS string `gorm:"column:tgllahiraps" json:"tgllahiraps"`
JenisKelaminAPS string `gorm:"column:jeniskelaminaps" json:"jeniskelaminaps"`
AlamatAPS string `gorm:"column:alamataps" json:"alamataps"`
NamaRuang string `gorm:"column:namaruang" json:"namaruang"`
KelasRuang string `gorm:"column:kelasruang" json:"kelasruang"`
KodeTarifRajal string `gorm:"column:kodetarifrajal" json:"kodetarifrajal"`
KodeTarifRanap string `gorm:"column:kodetarifranap" json:"kodetarifranap"`
}
type ResponseDataPasienRanap struct {
NOMR string `gorm:"column:nomr" json:"nomr"`
NoNota string `gorm:"column:nonota" json:"nonota"`
IDXDaftar int `gorm:"column:idxdaftar" json:"idxdaftar"`
TanggalOrder string `gorm:"column:tglorder" json:"tglorder"`
NoLab string `gorm:"column:nolab" json:"nolab"`
StatusRajal int `gorm:"column:statusrajal" json:"statusrajal"`
Nama string `gorm:"column:nama" json:"nama"`
NoKTP string `gorm:"column:noktp" json:"noktp"`
NoKTPBaru string `gorm:"column:noktpbaru" json:"noktpbaru"`
TempatLahir string `gorm:"column:tmptlahir" json:"tmptlahir"`
TanggalLahir string `gorm:"column:tgllahir" json:"tgllahir"`
JenisKelamin string `gorm:"column:jeniskelamin" json:"jeniskelamin"`
Alamat string `gorm:"column:alamat" json:"alamat"`
NamaRuang string `gorm:"column:namaruang" json:"namaruang"`
KelasRuang string `gorm:"column:kelasruang" json:"kelasruang"`
KodeTarifRanap string `gorm:"column:kodetarifranap" json:"kodetarifranap"`
}
type ResponseDataPasienRajal struct {
NOMR string `gorm:"column:nomr" json:"nomr"`
NoNota string `gorm:"column:nonota" json:"nonota"`
IDXDaftar int `gorm:"column:idxdaftar" json:"idxdaftar"`
TanggalOrder string `gorm:"column:tglorder" json:"tglorder"`
NoLab string `gorm:"column:nolab" json:"nolab"`
StatusRajal int `gorm:"column:statusrajal" json:"statusrajal"`
Nama string `gorm:"column:nama" json:"nama"`
NoKTP string `gorm:"column:noktp" json:"noktp"`
NoKTPBaru string `gorm:"column:noktpbaru" json:"noktpbaru"`
TempatLahir string `gorm:"column:tmptlahir" json:"tmptlahir"`
TanggalLahir string `gorm:"column:tgllahir" json:"tgllahir"`
JenisKelamin string `gorm:"column:jeniskelamin" json:"jeniskelamin"`
Alamat string `gorm:"column:alamat" json:"alamat"`
NamaRuang string `gorm:"column:namaruang" json:"namaruang"`
KelasRuang string `gorm:"column:kelasruang" json:"kelasruang"`
KodeTarifRajal string `gorm:"column:kodetarifrajal" json:"kodetarifrajal"`
}
type ResponseDataPasienRajalAPS struct {
NOMR string `gorm:"column:nomr" json:"nomr"`
NoNota string `gorm:"column:nonota" json:"nonota"`
IdxDaftar int `gorm:"column:idxdaftar" json:"idxdaftar"`
TanggalOrder string `gorm:"column:tglorder" json:"tglorder"`
NoLab string `gorm:"column:nolab" json:"nolab"`
StatusRajal int `gorm:"column:statusrajal" json:"statusrajal"`
StatusAPS int `gorm:"column:statusaps" json:"statusaps"`
NamaAPS string `gorm:"column:namaaps" json:"namaaps"`
NoKTPAPS string `gorm:"column:noktpaps" json:"noktpaps"`
TempatLahirAPS string `gorm:"column:tmptlahiraps" json:"tmptlahiraps"`
TanggalLahirAPS string `gorm:"column:tgllahiraps" json:"tgllahiraps"`
JenisKelaminAPS string `gorm:"column:jeniskelaminaps" json:"jeniskelaminaps"`
AlamatAPS string `gorm:"column:alamataps" json:"alamataps"`
NamaRuang string `gorm:"column:namaruang" json:"namaruang"`
KelasRuang string `gorm:"column:kelasruang" json:"kelasruang"`
KodeTarifRajal string `gorm:"column:kodetarifrajal" json:"kodetarifrajal"`
}