update code a lot

This commit is contained in:
2024-12-20 08:49:02 +07:00
parent e7f4001ac7
commit be13b428f1
45 changed files with 3038 additions and 815 deletions

No files matched your search

+18 -1
View File
@@ -55,7 +55,8 @@ func GetNamaLengkapDokter(idDokter []string) ([]dokter.NamaLengkap, error) {
from data_pegawai_daftar_gelar_belakang dpdgb
left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id
) AS gelarbelakang,
dp."HFIS_code"
dp."HFIS_code",
dp."Code_dpjp" as "DPJP_code"
from "data_pegawai" dp
left join data_ktp dk on dp."KTP" = dk.id
WHERE dp.id in ?`, idDokter).Find(&namaDokter)
@@ -70,3 +71,19 @@ func GetNamaLengkapDokter(idDokter []string) ([]dokter.NamaLengkap, error) {
return namaDokter, nil
}
func GetHFISCode(dpjp string) (*dokter.DaftarDokter, error) {
var dataDokter *dokter.DaftarDokter
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 errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data tidak ditemukan")
log.Println("error :", errMsg)
return nil, errMsg
}
log.Println("error :", err)
return nil, err
}
log.Println("Daftar Dokter :", dataDokter)
return dataDokter, nil
}
+187 -126
View File
@@ -1,126 +1,187 @@
package dokter
import (
"bridging-rssa/config"
"bridging-rssa/models/bpjs/jadwal_dokter"
"errors"
"log"
"strconv"
"github.com/google/uuid"
"gorm.io/gorm"
)
func GetJadwalDokterByDPJP(dpjp string) ([]jadwal_dokter.JadwalDokterSatuData, error) {
var hari []jadwal_dokter.JadwalDokterSatuData
errSelect := config.SatuDataDB.Debug().Raw(`select djd.* from "daftar_jadwal_dokter" djd
left join "data_pegawai" dp on djd."Dokter" = dp."id" where dp."Code_dpjp" = ? order by djd."id"`, dpjp).Scan(&hari).Error
if errSelect != nil {
if errors.Is(errSelect, gorm.ErrRecordNotFound) {
errMsg := errors.New("Dokter Tidak Terdaftar di HFIS")
log.Println(errMsg)
return nil, errMsg
}
log.Printf("Failed get data : %v", errSelect)
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
if errSelect != nil {
if errors.Is(errSelect, gorm.ErrRecordNotFound) {
errMsg := errors.New("Dokter Tidak Terdaftar di HFIS")
log.Println(errMsg)
return nil, errMsg
}
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return hari, nil
}
func GetJadwalDokterByDate(hari string) ([]string, error) {
var spesialis []string
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return spesialis, nil
}
func GetJadwalSubspesialisByDate(hari string) ([]int, error) {
var subspesialis []int
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Sub_spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Sub_spesialis"`, hari).Scan(&subspesialis).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return subspesialis, nil
}
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
var listDokter []string
errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Spesialis" = ? order by "Spesialis"`, hari, spesialis).Scan(&listDokter).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return listDokter, nil
}
func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) {
var listDokter []string
errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Sub_spesialis" = ? order by "Sub_spesialis"`, hari, subspesialis).Scan(&listDokter).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return listDokter, nil
}
func DeleteJadwalDokter() error {
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
if err != nil {
log.Printf("Failed truncate data : %v", err)
return err
}
log.Println("Success truncate data")
return nil
}
func DeleteJadwalDokterTemp() error {
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
if err != nil {
log.Printf("Failed truncate data : %v", err)
return err
}
log.Println("Success truncate data")
return nil
}
func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ? ,?, ?, ?, ?, ?)`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error
if err != nil {
log.Printf("Failed insert data : %v", err)
return err
}
log.Println("Success insert data")
return nil
}
func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
spesialis := strconv.Itoa(reqInsert.Spesialis)
subspesialis := strconv.Itoa(reqInsert.SubSpesialis)
id := uuid.New()
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter_temp" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ?, ?, ?, ?, ?, ?, ?)`, id, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, spesialis, subspesialis, reqInsert.Status).Error
if err != nil {
log.Printf("Failed insert data : %v", err)
return err
}
log.Println("Success insert data")
return nil
}
package dokter
import (
"bridging-rssa/config"
"bridging-rssa/models/bpjs/jadwal_dokter"
"errors"
"log"
"strconv"
"github.com/google/uuid"
"gorm.io/gorm"
)
func GetJadwalDokterByDPJP(dpjp string) ([]jadwal_dokter.JadwalDokterSatuData, error) {
var hari []jadwal_dokter.JadwalDokterSatuData
errSelect := config.SatuDataDB.Debug().Raw(`select djd.* from "daftar_jadwal_dokter" djd
left join "data_pegawai" dp on djd."Dokter" = dp."id" where dp."Code_dpjp" = ? order by djd."id"`, dpjp).Scan(&hari).Error
if errSelect != nil {
if errors.Is(errSelect, gorm.ErrRecordNotFound) {
errMsg := errors.New("Dokter Tidak Terdaftar di HFIS")
log.Println(errMsg)
return nil, errMsg
}
log.Printf("Failed get data : %v", errSelect)
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
if errSelect != nil {
if errors.Is(errSelect, gorm.ErrRecordNotFound) {
errMsg := errors.New("Dokter Tidak Terdaftar di HFIS")
log.Println(errMsg)
return nil, errMsg
}
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return hari, nil
}
func GetJadwalDokterByDate(hari string) ([]string, error) {
var spesialis []string
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return spesialis, nil
}
func GetJadwalSubspesialisByDate(hari string) ([]int, error) {
var subspesialis []int
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Sub_spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Sub_spesialis"`, hari).Scan(&subspesialis).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return subspesialis, nil
}
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
var listDokter []string
errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Spesialis" = ? order by "Spesialis"`, hari, spesialis).Scan(&listDokter).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return listDokter, nil
}
func GetJadwalDokterBySubpesialis(hari string, subspesialis string) ([]string, error) {
var listDokter []string
errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and "Sub_spesialis" = ? order by "Sub_spesialis"`, hari, subspesialis).Scan(&listDokter).Error
if errSelect != nil {
log.Printf("Failed get data : %v", errSelect)
return nil, errSelect
}
return listDokter, nil
}
func DeleteJadwalDokter() error {
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
if err != nil {
log.Printf("Failed truncate data : %v", err)
return err
}
log.Println("Success truncate data")
return nil
}
func DeleteDataJadwalDokter() error {
err := config.SatuDataDB.Debug().Exec(`truncate table "data_jadwal_dokter"`).Error
if err != nil {
log.Printf("Failed truncate data : %v", err)
return err
}
log.Println("Success truncate data")
return nil
}
func DeleteJadwalDokterTemp() error {
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
if err != nil {
log.Printf("Failed truncate data : %v", err)
return err
}
log.Println("Success truncate data")
return nil
}
func TruncateDataJadwalDokter() error {
err := config.SatuDataDB.Debug().Exec(`truncate table "data_jadwal_dokter"`).Error
if err != nil {
log.Printf("Failed truncate data : %v", err)
return err
}
log.Println("Success truncate data")
return nil
}
func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ? ,?, ?, ?, ?, ?)`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error
if err != nil {
log.Printf("Failed insert data : %v", err)
return err
}
log.Println("Success insert data")
return nil
}
func InsertDataJadwalDokter(reqInsert *jadwal_dokter.DataJadwalDokterSatuData) error {
err := config.SatuDataDB.Debug().Exec(`insert into "data_jadwal_dokter" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Tanggal_jadwal") values (?, ?, ? ,?, ?, ?, ?, ?)`, reqInsert.ID, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.TanggalJadwal).Error
if err != nil {
log.Printf("Failed insert data : %v", err)
return err
}
log.Println("Success insert data")
return nil
}
func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error {
spesialis := strconv.Itoa(reqInsert.Spesialis)
subspesialis := strconv.Itoa(reqInsert.SubSpesialis)
id := uuid.New()
err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter_temp" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ?, ?, ?, ?, ?, ?, ?)`, id, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, spesialis, subspesialis, reqInsert.Status).Error
if err != nil {
log.Printf("Failed insert data : %v", err)
return err
}
log.Println("Success insert data")
return nil
}
func GetAllJadwalDokter(condition string, args []interface{}) ([]*jadwal_dokter.ListDaftarJadwalDokter, error) {
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,
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 namalengkap,
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 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 := ` order by djd."Hari" asc, ds."Spesialis" asc, dss."Subspesialis" asc, djd."Waktu" asc`
query += condition + order
err := config.SatuDataDB.Debug().Raw(query, args...).Scan(&listDokter).Error
if err != nil {
log.Printf("Failed Get data : %v", err)
return nil, err
}
return listDokter, nil
}
+21
View File
@@ -0,0 +1,21 @@
package jadwal
import (
"bridging-rssa/config"
"bridging-rssa/models/jadwal"
"log"
)
func GetJadwalLibur(date string) (*jadwal.DaftarJadwalLiburPelayanan, bool, error) {
var jadwalLibur *jadwal.DaftarJadwalLiburPelayanan
query := `select * from daftar_jadwal_libur_pelayanan where "Tanggal_libur_pelayanan" = ?`
q := config.SatuDataDB.Debug().Raw(query, date).Scan(&jadwalLibur)
if q.Error != nil {
log.Println(q.Error)
return nil, false, q.Error
} else if q.RowsAffected == 0 {
log.Println("Tidak pada hari libur")
return jadwalLibur, false, nil
}
return jadwalLibur, true, nil
}
@@ -0,0 +1,41 @@
package kunjunganpasien
import (
"bridging-rssa/config"
kunjunganpasien "bridging-rssa/models/kunjungan_pasien"
"log"
)
func GetListKunjunganPasien(req *kunjunganpasien.RequestListKunjunganPasien) ([]*kunjunganpasien.ListKunjunganPasien, error) {
var dataKunjunganPasien []*kunjunganpasien.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`
err := config.SatuDataDB.Debug().Raw(query, req.TanggalAwal, req.TanggalAkhir).Scan(&dataKunjunganPasien).Error
if err != nil {
log.Println(err)
return nil, err
}
return dataKunjunganPasien, nil
}
+13 -1
View File
@@ -31,4 +31,16 @@ func InsertLogAPI(reqInsert *logapi.DataLogAPI) error {
return err
}
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
}
+24
View File
@@ -0,0 +1,24 @@
package logapi
import (
"bridging-rssa/config"
logapi "bridging-rssa/models/log_api"
"log"
)
func InsertLogICare(reqInsert *logapi.InsertLogICare) error {
query := `insert into "data_log_icare_bpjs" ("id", "date_created", "Ruangan", "Dokter", "Kunjungan_pasien", "Waktu_transaksi")
values (?, ?, ?, ?, ?, ?)`
errInsert := config.SatuDataDB.Debug().Exec(query,
reqInsert.ID,
reqInsert.DateCreated,
reqInsert.Ruangan,
reqInsert.Dokter,
reqInsert.Kunjungan_pasien,
reqInsert.WaktuTransaksi).Error
if errInsert != nil {
log.Println(errInsert)
return errInsert
}
return nil
}
@@ -0,0 +1,30 @@
package lokasiruang
import (
"bridging-rssa/config"
"errors"
"log"
"strconv"
"gorm.io/gorm"
)
func GetDaftarLokasiRuang(idSimgos string) (int, error) {
var idRuangan int
query := `select dlr."id" from "daftar_lokasi_ruang" dlr where dlr."Id_location_simgos" = ?`
err := config.SatuDataDB.Debug().Raw(query, idSimgos).First(&idRuangan).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
log.Println(err)
idInt, errConv := strconv.Atoi(idSimgos)
if errConv != nil {
log.Println(err)
return 0, err
}
return idInt, nil
}
log.Println(err)
return 0, err
}
return idRuangan, nil
}
@@ -0,0 +1,61 @@
package pasien
import (
"bridging-rssa/config"
"bridging-rssa/models/pasien"
"errors"
"log"
"gorm.io/gorm"
)
func GetDataKunjunganPasien(idxdaftar string) (*pasien.KunjunganPasien, error) {
var kunjunganPasien *pasien.KunjunganPasien
query := `select dks."id", dks."Ruangan" from "data_kunjungan_pasien" dks where dks."IDXDAFTAR" = ?`
err := config.SatuDataDB.Debug().Raw(query, idxdaftar).First(&kunjunganPasien).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan")
log.Println(errMsg)
return nil, errMsg
}
log.Println(err)
return nil, err
}
log.Println("Data Kunjungan Pasien : ", kunjunganPasien)
return kunjunganPasien, nil
}
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
}
@@ -79,7 +79,7 @@ func InsertDataSuratKontrol(reqInsert *suratkontrol.DataSuratKontrol) error {
return nil
}
func GetDataSuratKontrol(offset, limit string) ([]*suratkontrol.GetDataSuratKontrol, error) {
func GetDataSuratKontrol() ([]*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon []*suratkontrol.GetDataSuratKontrol
err := config.SatuDataDB.Debug().Raw(`select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
dsk."Nomor_surat_kontrol",
@@ -115,7 +115,7 @@ func GetDataSuratKontrol(offset, limit string) ([]*suratkontrol.GetDataSuratKont
left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id"
left join data_ktp dk on dp."KTP" = dk. "id"
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
where dsk."Status_surat_kontrol" = '1' offset ? limit ?`, offset, limit).Scan(&dataSurKon).Error
where dsk."Status_surat_kontrol" = '1'`).Scan(&dataSurKon).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
errMsg := errors.New("DPJP anda belum ada subspesialis")
@@ -155,7 +155,8 @@ func GetDataSuratKontrolByID(idxdaftar string) (*suratkontrol.GetDataSuratKontro
dkp2."NOMR" as "No_rm",
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
dsk."Tipe_surat_kontrol" as "Tipe_SurKon"
dsk."Tipe_surat_kontrol" as "Tipe_SurKon",
dsk."User_created_surat_kontrol" as "User"
from data_surat_kontrol dsk
left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien"
left join daftar_lokasi_ruang dlr on dsk."Ruangan_surat_kontrol" = dlr."id"
@@ -207,7 +208,62 @@ func GetAllDataSuratKontrol(idSurKon string) (*suratkontrol.DataSuratKontrol, er
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 ?`
queryDate := ` and date(dsk."Tanggal_rencana_kontrol") between ? and ? offset ? limit ?`
if req.IsTanggalEntri {
queryDate = ` and date(dsk."Tanggal_cetak_surat_kontrol") between ? and ? offset ? limit ?`
}
query += queryDate
querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
dsk."Nomor_surat_kontrol",
(select dlr."Nama"
from data_kunjungan_pasien dkp
left join daftar_lokasi_ruang dlr on dkp."Ruangan" = dlr.id where dkp."id" = dsk."Kunjungan_pasien" LIMIT 1) as "Poli_asal",
dlr."Nama" as "Poli_tuju",
dkp2."Nomor_sep", dkp2."Nama_lengkap", dkp2."IDXDAFTAR",
array(
select dgd. "Gelar_depan"
from data_pegawai_daftar_gelar_depan dpdgd
left join daftar_gelar_depan dgd on dpdgd.daftar_gelar_depan_id = dgd.id where dpdgd.data_pegawai_id = dp.id
) AS gelardepan ,
dk."Nama_lengkap" as "Nama_lengkap_dokter",
array(
select dgb. "Gelar_belakang"
from data_pegawai_daftar_gelar_belakang dpdgb
left join daftar_gelar_belakang dgb on dpdgb.daftar_gelar_belakang_id = dgb.id where dpdgb.data_pegawai_id = dp.id
) AS gelarbelakang,
ds."Subspesialis",
ds."Kode" as "Kode_poli",
ds."id" as "ID_poli",
dp."HFIS_code" as "Kode_dokter",
dp."id" as "id_dokter",
dp."Code_dpjp" as "Kode_dpjp",
dkp2."NOMR" as "No_rm",
dkp2."Diagnosis_primer_utama" as "Kode_diagnosa",
dkp2."Display_diagnosis_primer_utama" as "Nama_diagnosa",
dsk."Tipe_surat_kontrol" as "Tipe_SurKon"
from data_surat_kontrol dsk
left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien"
left join daftar_lokasi_ruang dlr on dsk."Ruangan_surat_kontrol" = dlr."id"
left join data_pegawai dp on dsk."DPJP_surat_kontrol" = dp."id"
left join data_ktp dk on dp."KTP" = dk. "id"
left join daftar_subspesialis ds on dp."Subspesialis" = ds."id"
where dsk."Status_surat_kontrol" = '1' and dsk."Tipe_surat_kontrol" = ? `
querySelect += query
err := config.SatuDataDB.Debug().Raw(querySelect, args...).Find(&dataSurKon).Error
if err != nil {
log.Println(err)
return nil, err
}
return dataSurKon, nil
}
func SearchDataSurKonNew(req suratkontrol.RequestCariPasien, query string, args []interface{}) ([]*suratkontrol.GetDataSuratKontrol, error) {
var dataSurKon []*suratkontrol.GetDataSuratKontrol
queryDate := ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?`
if req.IsTanggalEntri {
queryDate = ` and date(dsk."Tanggal_cetak_surat_kontrol") between ? and ?`
}
query += queryDate
querySelect := `select dsk."id", dsk."Tanggal_cetak_surat_kontrol", dsk."Tanggal_rencana_kontrol",
dsk."Nomor_surat_kontrol",
(select dlr."Nama"
@@ -254,7 +310,11 @@ func SearchDataSurKon(req suratkontrol.RequestCariPasien, query string, args []i
func CountDataSurKon(req suratkontrol.RequestCariPasien, query string, args []interface{}) (int, error) {
var jumlahData int
query += ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?`
queryDate := ` and date(dsk."Tanggal_rencana_kontrol") between ? and ?`
if req.IsTanggalEntri {
queryDate = ` and date(dsk."Tanggal_cetak_surat_kontrol") between ? and ?`
}
query += queryDate
querySelect := `select count(dsk.*)
from data_surat_kontrol dsk
left join data_kunjungan_pasien dkp2 on dkp2."id" = dsk."Kunjungan_pasien"
@@ -283,3 +343,14 @@ func GetNomorSurKon(idPasien string) (string, error) {
log.Println("Nomor SurKon :", noSurKon)
return noSurKon, nil
}
func GetAllNomorSurKon(date string) ([]*suratkontrol.DataNomorSuratKontrol, error) {
var listNoSurKon []*suratkontrol.DataNomorSuratKontrol
querySelect := `select dsk."id", dsk."Nomor_surat_kontrol", date(dsk."Tanggal_rencana_kontrol") as "Tanggal_rencana_kontrol" from data_surat_kontrol dsk where dsk."Tipe_surat_kontrol" = '1' and date(dsk.date_created) = ?`
err := config.SatuDataDB.Debug().Raw(querySelect, date).Scan(&listNoSurKon).Error
if err != nil {
log.Println(err)
return nil, err
}
return listNoSurKon, nil
}