From 203b6f51d5a046246ab504d78aac94c792861bd0 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Wed, 3 Dec 2025 17:32:36 +0700 Subject: [PATCH 1/3] feat (encounter): add filter by range registered at, and patient name --- internal/domain/main-entities/encounter/dto.go | 7 +++++-- internal/use-case/main-use-case/encounter/lib.go | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/internal/domain/main-entities/encounter/dto.go b/internal/domain/main-entities/encounter/dto.go index 8dd9a0a1..c039fc0c 100644 --- a/internal/domain/main-entities/encounter/dto.go +++ b/internal/domain/main-entities/encounter/dto.go @@ -78,8 +78,11 @@ type TRujukan struct { type ReadListDto struct { FilterDto - Includes string `json:"includes"` - Pagination ecore.Pagination + Includes string `json:"includes"` + Pagination ecore.Pagination + Person_Name *string `json:"person-name"` + StartDate *string `json:"start-date"` + EndDate *string `json:"end-date"` pa.AuthInfo } diff --git a/internal/use-case/main-use-case/encounter/lib.go b/internal/use-case/main-use-case/encounter/lib.go index 0b14b925..0ea8988d 100644 --- a/internal/use-case/main-use-case/encounter/lib.go +++ b/internal/use-case/main-use-case/encounter/lib.go @@ -65,7 +65,20 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.En tx.Where("\"Responsible_Doctor_Code\" = ?", *input.AuthInfo.Doctor_Code) // } - tx.Scopes(gh.Preload(input.Includes)). + if input.StartDate != nil && input.EndDate != nil { + tx = tx.Where( + "DATE(\"RegisteredAt\") >= DATE(?) AND DATE(\"RegisteredAt\") <= DATE(?)", + input.StartDate, + input.EndDate, + ) + } + + if input.Person_Name != nil { + tx = tx.Joins("JOIN \"Patient\" ON \"Patient\".\"Id\" = \"Encounter\".\"Patient_Id\""). + Joins("JOIN \"Person\" ON \"Person\".\"Id\" = \"Patient\".\"Person_Id\"").Where("\"Person\".\"Name\" ILIKE ?", "%"+*input.Person_Name+"%") + } + + tx = tx.Debug().Scopes(gh.Preload(input.Includes)). Scopes(gh.Filter(input.FilterDto)). Count(&count). Scopes(gh.Paginate(input, &pagination)). From 521dbdd0a436f13e2d2be2e33a32bf730c6a5c2c Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Thu, 4 Dec 2025 11:13:08 +0700 Subject: [PATCH 2/3] fix (encounter): fix list --- internal/use-case/main-use-case/encounter/lib.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/use-case/main-use-case/encounter/lib.go b/internal/use-case/main-use-case/encounter/lib.go index 0ea8988d..a9a5a307 100644 --- a/internal/use-case/main-use-case/encounter/lib.go +++ b/internal/use-case/main-use-case/encounter/lib.go @@ -67,7 +67,7 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.En if input.StartDate != nil && input.EndDate != nil { tx = tx.Where( - "DATE(\"RegisteredAt\") >= DATE(?) AND DATE(\"RegisteredAt\") <= DATE(?)", + "DATE(\"Encounter\".\"RegisteredAt\") >= DATE(?) AND DATE(\"Encounter\".\"RegisteredAt\") <= DATE(?)", input.StartDate, input.EndDate, ) From 91e40cc2b747babde0af59f8156e2371542a3654 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Thu, 4 Dec 2025 13:11:54 +0700 Subject: [PATCH 3/3] fix (referral): typo json --- internal/domain/bpjs-entities/referral/entity.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/domain/bpjs-entities/referral/entity.go b/internal/domain/bpjs-entities/referral/entity.go index 8977ee31..680400b6 100644 --- a/internal/domain/bpjs-entities/referral/entity.go +++ b/internal/domain/bpjs-entities/referral/entity.go @@ -81,8 +81,8 @@ type Mr struct { } type Provider struct { - Kode string `json:"kdProvider" json:"kode"` // API sometimes uses different keys - NmProvider string `json:"nmProvider" json:"nama"` + Kode string `son:"kode"` + NmProvider string `json:"nama"` } type Poli struct {