add filter kategori & dokter
This commit is contained in:
@@ -81,3 +81,8 @@ type DetailPasienOperasi struct {
|
|||||||
RencanaOperasi *string `db:"rencana_operasi"`
|
RencanaOperasi *string `db:"rencana_operasi"`
|
||||||
KeteranganStatusPasien *string `db:"keterangan_status_pasien"`
|
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})
|
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 != "" {
|
if q.Status != "" {
|
||||||
selectFilter = append(selectFilter, queryUtils.DynamicFilter{Column: "dpo.Status_operasi", Operator: queryUtils.OpEqual, Value: 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 {
|
type AntrianQuery struct {
|
||||||
Id string `form:"id"`
|
Id string `form:"id"`
|
||||||
Search string `form:"search"`
|
Search string `form:"search"`
|
||||||
Type string `form:"type,default=all" binding:"omitempty,oneof=all kategori spesialis sub-spesialis"`
|
Type string `form:"type,default=all" binding:"omitempty,oneof=all kategori spesialis sub-spesialis"`
|
||||||
TypeID int `form:"type_id,default=0"`
|
TypeID int `form:"type_id,default=0"`
|
||||||
Status string `form:"status" binding:"omitempty,oneof=1 2 3 4"`
|
Status string `form:"status" binding:"omitempty,oneof=1 2 3 4"`
|
||||||
Limit int `form:"limit,default=10"`
|
Limit int `form:"limit,default=10"`
|
||||||
Offset int `form:"offset,default=0"`
|
Offset int `form:"offset,default=0"`
|
||||||
SortBy string `form:"sort_by" binding:"omitempty,oneof=tanggal_daftar no_urut_kategori no_urut_spesialis"`
|
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"`
|
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