add filter kategori & dokter
This commit is contained in:
@@ -81,3 +81,8 @@ type DetailPasienOperasi struct {
|
||||
RencanaOperasi *string `db:"rencana_operasi"`
|
||||
KeteranganStatusPasien *string `db:"keterangan_status_pasien"`
|
||||
}
|
||||
|
||||
type DokterOperasi struct {
|
||||
IDDokter string `db:"data_pegawai_id"`
|
||||
IDAntrianOperasi string `db:"data_pasien_operasi_id"`
|
||||
}
|
||||
|
||||
@@ -1145,6 +1145,48 @@ func (r antrianOperasiRepo) getNumberedListAntrianV2(c context.Context, dbconn *
|
||||
selectFilter = append(selectFilter, queryUtils.DynamicFilter{Column: typeIdColumn, Operator: queryUtils.OpEqual, Value: q.TypeID})
|
||||
}
|
||||
|
||||
if q.KategoriId != 0 {
|
||||
selectFilter = append(selectFilter, queryUtils.DynamicFilter{Column: "dpo.Kategori_operasi", Operator: queryUtils.OpEqual, Value: q.KategoriId})
|
||||
}
|
||||
|
||||
// filter by dokter id
|
||||
if q.DokterId != "" {
|
||||
var resultDokterOperasi []DokterOperasi
|
||||
queryDokter := queryUtils.DynamicQuery{
|
||||
From: TBL_DOKTER_OPERASI,
|
||||
Aliases: "dpodp",
|
||||
Fields: []queryUtils.SelectField{
|
||||
{Expression: "dpodp.id"},
|
||||
{Expression: "dpodp.data_pegawai_id"},
|
||||
{Expression: "dpodp.data_pasien_operasi_id"},
|
||||
},
|
||||
Filters: []queryUtils.FilterGroup{
|
||||
{
|
||||
Filters: []queryUtils.DynamicFilter{
|
||||
{Column: "data_pegawai_id", Operator: queryUtils.OpEqual, Value: q.DokterId},
|
||||
}, LogicOp: "AND",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err := r.queryBuilder.ExecuteQuery(c, dbconn, queryDokter, &resultDokterOperasi)
|
||||
if err != nil {
|
||||
log.Printf("Unable to execute dokter query : %s", err)
|
||||
return result, err
|
||||
}
|
||||
|
||||
//
|
||||
// filtering antrian ids
|
||||
var operasiIDFilteredByDokter []string
|
||||
for _, item := range resultDokterOperasi {
|
||||
operasiIDFilteredByDokter = append(operasiIDFilteredByDokter, item.IDAntrianOperasi)
|
||||
}
|
||||
|
||||
if len(operasiIDFilteredByDokter) > 0 {
|
||||
selectFilter = append(selectFilter, queryUtils.DynamicFilter{Column: "dpo.id", Operator: queryUtils.OpIn, Value: operasiIDFilteredByDokter})
|
||||
}
|
||||
}
|
||||
|
||||
if q.Status != "" {
|
||||
selectFilter = append(selectFilter, queryUtils.DynamicFilter{Column: "dpo.Status_operasi", Operator: queryUtils.OpEqual, Value: q.Status})
|
||||
}
|
||||
|
||||
@@ -62,13 +62,15 @@ type CreatePasienOperasiRequest struct {
|
||||
}
|
||||
|
||||
type AntrianQuery struct {
|
||||
Id string `form:"id"`
|
||||
Search string `form:"search"`
|
||||
Type string `form:"type,default=all" binding:"omitempty,oneof=all kategori spesialis sub-spesialis"`
|
||||
TypeID int `form:"type_id,default=0"`
|
||||
Status string `form:"status" binding:"omitempty,oneof=1 2 3 4"`
|
||||
Limit int `form:"limit,default=10"`
|
||||
Offset int `form:"offset,default=0"`
|
||||
SortBy string `form:"sort_by" binding:"omitempty,oneof=tanggal_daftar no_urut_kategori no_urut_spesialis"`
|
||||
SortOrder string `form:"sort_order" binding:"omitempty,oneof=ASC DESC"`
|
||||
Id string `form:"id"`
|
||||
Search string `form:"search"`
|
||||
Type string `form:"type,default=all" binding:"omitempty,oneof=all kategori spesialis sub-spesialis"`
|
||||
TypeID int `form:"type_id,default=0"`
|
||||
Status string `form:"status" binding:"omitempty,oneof=1 2 3 4"`
|
||||
Limit int `form:"limit,default=10"`
|
||||
Offset int `form:"offset,default=0"`
|
||||
SortBy string `form:"sort_by" binding:"omitempty,oneof=tanggal_daftar no_urut_kategori no_urut_spesialis"`
|
||||
SortOrder string `form:"sort_order" binding:"omitempty,oneof=ASC DESC"`
|
||||
KategoriId int `form:"kategori_id"`
|
||||
DokterId string `form:"dokter_id"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user