This commit is contained in:
vanilia
2025-12-06 04:40:13 +07:00
parent 95afff0c4e
commit b454f52039
4 changed files with 30 additions and 5 deletions
@@ -35,6 +35,7 @@ type FilterDto struct {
Status_Code *erc.DataVerifiedCode `json:"status-code"`
VerifiedBy_User_Id *uint `json:"verifiedBy-user-id"`
SrcUnit_Code *string `json:"srcUnit-code"`
Patient_Id *uint `json:"patient-id"`
}
type ReadDetailDto struct {
@@ -46,7 +46,7 @@ func getChemoEncounterReg(event *pl.Event) (*ec.Chemo, error) {
if err := tx.Model(&ec.Chemo{}).
Joins(`LEFT JOIN "Encounter" "e" ON "e"."Id" = "Chemo"."Encounter_Id"`).
Joins(`LEFT JOIN "Ambulatory" "a" ON "a"."Encounter_Id" = "e"."Id"`).
Where(`"Chemo"."Status_Code" = ? AND a"."Class_Code" = ?`, erc.DVCVerified, ere.ACCReg).
Where(`"Chemo"."Status_Code" = ? AND "a"."Class_Code" = ?`, erc.DVCVerified, ere.ACCReg).
Order("\"CreatedAt\" DESC").
First(&data).
Error; err != nil {
+25 -4
View File
@@ -4,10 +4,6 @@ import (
"errors"
"strconv"
e "simrs-vx/internal/domain/main-entities/chemo"
erc "simrs-vx/internal/domain/references/common"
dg "github.com/karincake/apem/db-gorm-pg"
d "github.com/karincake/dodol"
@@ -15,6 +11,13 @@ import (
pu "simrs-vx/pkg/use-case-helper"
"gorm.io/gorm"
erc "simrs-vx/internal/domain/references/common"
e "simrs-vx/internal/domain/main-entities/chemo"
ee "simrs-vx/internal/domain/main-entities/encounter"
ue "simrs-vx/internal/use-case/main-use-case/encounter"
)
const source = "chemo"
@@ -83,6 +86,15 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
// Start log
pl.SetLogInfo(&event, input, "started", "readList")
if input.Encounter_Id == nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-validation-fail",
Detail: "Encounter-Id is required",
}
return nil, pl.SetLogError(&event, input)
}
err = dg.I.Transaction(func(tx *gorm.DB) error {
mwRunner := newMiddlewareRunner(&event, tx)
mwRunner.setMwType(pu.MWTPre)
@@ -91,6 +103,15 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
return err
}
// Get Encounter
dataEncounter, err := ue.ReadDetailData(ee.ReadDetailDto{Id: *input.Encounter_Id}, &event)
if err != nil {
return err
}
input.Patient_Id = dataEncounter.Patient_Id
input.Encounter_Id = nil
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err
}
@@ -49,6 +49,9 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Ch
tx = tx.
Model(&e.Chemo{}).
Joins(`LEFT JOIN "Encounter" "e" ON "e"."Id" = "Chemo"."Encounter_Id"`).
Joins(`LEFT JOIN "Patient" "p" ON "e"."Patient_Id" = "p"."Id"`).
Where(`"p"."Id" = ?`, input.Patient_Id).
Scopes(gh.Preload(input.Includes)).
Scopes(gh.Filter(input.FilterDto)).
Count(&count).