list antrian operasi
This commit is contained in:
No files matched your search
@@ -68,3 +68,17 @@ func (h AntrianOperasiHandler) CreateAntrianOperasi(c *gin.Context) {
|
|||||||
|
|
||||||
c.JSON(201, shared.ToBaseResponse(res, true, 201, "success insert antrian operasi"))
|
c.JSON(201, shared.ToBaseResponse(res, true, 201, "success insert antrian operasi"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h AntrianOperasiHandler) GetListAntrianOperasi(c *gin.Context) {
|
||||||
|
res, err := h.repo.SearchableListAntrianOperasi(c)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(500, shared.BaseErrorResponse{
|
||||||
|
Success: false,
|
||||||
|
Code: 500,
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.JSON(200, shared.ToBaseResponse(res, true, 200, "success get list antrian operasi"))
|
||||||
|
}
|
||||||
@@ -1,50 +1,16 @@
|
|||||||
package antrianoperasi
|
package antrianoperasi
|
||||||
|
|
||||||
import "database/sql"
|
import "time"
|
||||||
|
|
||||||
type ListDiagnosaPasienOperasi struct {
|
type PasienOperasi struct {
|
||||||
ID int `json:"id" db:"id"`
|
ID string `db:"id" json:"id"`
|
||||||
KodeDiagnosa string `json:"kode_diagnosa" db:"Kode_diagnosa"`
|
TglDaftar time.Time `db:"tanggal_daftar"`
|
||||||
Diagnosa string `json:"diagnosa" db:"Diagnosa"`
|
NoKtp *string `db:"no_ktp"`
|
||||||
Keterangan string `json:"keterangan" db:"Keterangan"`
|
NoRekamMedis *string `db:"no_rekam_medis"`
|
||||||
JenisDiagnosa string `json:"jenis_diagnosa" db:"Jenis_diagnosa"`
|
NamaPasien *string `db:"nama_pasien"`
|
||||||
}
|
Spesialis *string `db:"spesialis"`
|
||||||
|
SubSpesialis *string `db:"subspesialis"`
|
||||||
type ListTindakanPasienOperasi struct {
|
KodeDiagnosa *string `db:"kode_diagnosa"`
|
||||||
ID int `json:"id" db:"id"`
|
Diagnosa *string `db:"diagnosa"`
|
||||||
KodeTindakan string `json:"kode_tindakan" db:"Kode_tindakan"`
|
Kategori *string `db:"kategori"`
|
||||||
Tindakan string `json:"tindakan" db:"Tindakan"`
|
|
||||||
TindakanTambahan string `json:"tindakan_tambahan" db:"Tindakan_tambahan"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ListTeleponPasienOperasi struct {
|
|
||||||
ID int `json:"id" db:"id"`
|
|
||||||
NoTelepon string `json:"no_telepon" db:"Nomor_telepon"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ListPasienOperasi struct {
|
|
||||||
ID string `db:"id"`
|
|
||||||
Status string `db:"status"`
|
|
||||||
NoRekamMedis string `db:"No_rekam_medis"`
|
|
||||||
NoKtp string `db:"No_KTP"`
|
|
||||||
NamaPasien string `db:"Nama_pasien"`
|
|
||||||
JenisKelamin string `db:"Jenis_kelamin"`
|
|
||||||
TglLahir sql.NullTime `db:"Tanggal_lahir"`
|
|
||||||
Umur string `db:"Umur"`
|
|
||||||
Alamat string `db:"Alamat"`
|
|
||||||
TglDaftar sql.NullTime `db:"Tanggal_daftar"`
|
|
||||||
IdKategoriOperasi int `db:"Kategori_operasi"`
|
|
||||||
RencanaOperasi string `db:"Rencana_operasi"`
|
|
||||||
Keterangan string `db:"Keterangan"`
|
|
||||||
TglSelesaiOperasi sql.NullTime `db:"Tanggal_selesai_operasi"`
|
|
||||||
StatusOperasi string `db:"Status_operasi"`
|
|
||||||
Nomor int `db:"Nomor"`
|
|
||||||
OldKategori int `db:"Old_kategori"`
|
|
||||||
IdSpesialis int `db:"Spesialis"`
|
|
||||||
IdSubSpesialis int `db:"Sub_spesialis"`
|
|
||||||
KeteranganStatusPasien string `db:"Keterangan_status_pasien"`
|
|
||||||
NomorSpesialis int `db:"Nomor_spesialis"`
|
|
||||||
NomorSubSpesialis int `db:"Nomor_sub_spesialis"`
|
|
||||||
OldSpesialis int `db:"Old_spesialis"`
|
|
||||||
OldSubSpesialis int `db:"Old_sub_spesialis"`
|
|
||||||
}
|
}
|
||||||
@@ -11,10 +11,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const DB_NAME = "db_antrian"
|
const DB_NAME = "db_antrian"
|
||||||
const TABLE_NAME = "data_pasien_operasi"
|
const TBL_NAME = "data_pasien_operasi"
|
||||||
|
|
||||||
type IAntrianOperasiRepository interface {
|
type IAntrianOperasiRepository interface {
|
||||||
CreateAntrianOperasi(c *gin.Context, req CreatePasienOperasiRequest) (CreatePasienOperasiRequest, error)
|
CreateAntrianOperasi(c *gin.Context, req CreatePasienOperasiRequest) (CreatePasienOperasiRequest, error)
|
||||||
|
SearchableListAntrianOperasi(c *gin.Context) ([]PasienOperasi, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type antrianOperasiRepo struct {
|
type antrianOperasiRepo struct {
|
||||||
@@ -264,3 +265,105 @@ func (r antrianOperasiRepo) CreateAntrianOperasi(c *gin.Context, req CreatePasie
|
|||||||
|
|
||||||
return req, nil
|
return req, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r antrianOperasiRepo) SearchableListAntrianOperasi(c *gin.Context) ([]PasienOperasi, error) {
|
||||||
|
var result []PasienOperasi
|
||||||
|
search := c.Query("search")
|
||||||
|
|
||||||
|
query := queryUtils.DynamicQuery{
|
||||||
|
From: TBL_NAME,
|
||||||
|
Aliases: "dpo",
|
||||||
|
Fields: []queryUtils.SelectField{
|
||||||
|
{Expression: "dpo.id"},
|
||||||
|
{Expression: "dpo.Tanggal_daftar", Alias: "tanggal_daftar"},
|
||||||
|
{Expression: "dpo.No_KTP", Alias: "no_ktp"},
|
||||||
|
{Expression: "dpo.No_rekam_medis", Alias: "no_rekam_medis"},
|
||||||
|
{Expression: "dpo.Nama_pasien", Alias: "nama_pasien"},
|
||||||
|
{Expression: "ds.Spesialis", Alias: "spesialis"},
|
||||||
|
{Expression: "dss.Subspesialis", Alias: "subspesialis"},
|
||||||
|
{Expression: "ddpo.Kode_diagnosa", Alias: "kode_diagnosa"},
|
||||||
|
{Expression: "ddpo.Diagnosa", Alias: "diagnosa"},
|
||||||
|
{Expression: "dko.Kategori", Alias: "kategori"},
|
||||||
|
},
|
||||||
|
Limit: 10,
|
||||||
|
Sort: []queryUtils.SortField{
|
||||||
|
{Column: "created_at", Order: "DESC"}},
|
||||||
|
}
|
||||||
|
|
||||||
|
query.Joins = []queryUtils.Join{
|
||||||
|
{
|
||||||
|
Type: "LEFT",
|
||||||
|
Table: "daftar_spesialis",
|
||||||
|
Alias: "ds",
|
||||||
|
OnConditions: queryUtils.FilterGroup{
|
||||||
|
Filters: []queryUtils.DynamicFilter{
|
||||||
|
{
|
||||||
|
Column: "ds.id", Operator: queryUtils.OpEqual, Value: "dpo.Spesialis",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "LEFT",
|
||||||
|
Table: "daftar_subspesialis",
|
||||||
|
Alias: "dss",
|
||||||
|
OnConditions: queryUtils.FilterGroup{
|
||||||
|
Filters: []queryUtils.DynamicFilter{
|
||||||
|
{
|
||||||
|
Column: "dpo.Sub_spesialis", Operator: queryUtils.OpEqual, Value: "dss.id",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "LEFT",
|
||||||
|
Table: "daftar_kategori_operasi",
|
||||||
|
Alias: "dko",
|
||||||
|
OnConditions: queryUtils.FilterGroup{
|
||||||
|
Filters: []queryUtils.DynamicFilter{
|
||||||
|
{
|
||||||
|
Column: "dpo.Kategori_operasi", Operator: queryUtils.OpEqual, Value: "dko.id",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "LEFT",
|
||||||
|
Table: "data_diagnosa_pasien_operasi",
|
||||||
|
Alias: "ddpo",
|
||||||
|
OnConditions: queryUtils.FilterGroup{
|
||||||
|
Filters: []queryUtils.DynamicFilter{
|
||||||
|
{
|
||||||
|
Column: "dpo.id", Operator: queryUtils.OpEqual, Value: "ddpo.FK_pasien_operasi_diagnosa_pasien_operasi_ID",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// filtering search results
|
||||||
|
if search != "" {
|
||||||
|
searchFilters := []queryUtils.DynamicFilter{
|
||||||
|
{Column: "dpo.No_KTP", Operator: queryUtils.OpILike, Value: "%" + search + "%"},
|
||||||
|
{Column: "dpo.No_rekam_medis", Operator: queryUtils.OpILike, Value: "%" + search + "%"},
|
||||||
|
{Column: "dpo.Nama_pasien", Operator: queryUtils.OpILike, Value: "%" + search + "%"},
|
||||||
|
}
|
||||||
|
|
||||||
|
query.Filters = append(query.Filters, queryUtils.FilterGroup{Filters: searchFilters, LogicOp: "OR"})
|
||||||
|
}
|
||||||
|
|
||||||
|
dbconn, err := r.db.GetSQLXDB(DB_NAME)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Unable to connect db : %s", err)
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = r.queryBuilder.ExecuteQuery(
|
||||||
|
c, dbconn, query, &result)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Unable to execute query : %s", err)
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
@@ -19,4 +19,5 @@ func RegisterRoutes(r *gin.RouterGroup, dbService database.Service) {
|
|||||||
antrianOperasiRepo, kategoriRepo, spesialisRepo, dokterRepo)
|
antrianOperasiRepo, kategoriRepo, spesialisRepo, dokterRepo)
|
||||||
|
|
||||||
r.POST("/antrian-operasi", antrianOperasiHandler.CreateAntrianOperasi)
|
r.POST("/antrian-operasi", antrianOperasiHandler.CreateAntrianOperasi)
|
||||||
|
r.GET("/antrian-operasi", antrianOperasiHandler.GetListAntrianOperasi)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user