From eea6bc7700c82950311cb2a5702303d6548cab47 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 15 Dec 2025 13:15:46 +0700 Subject: [PATCH] fix (encouter): fix dto, change createdto from object to embedded in create-with-patient --- .../domain/main-entities/encounter/dto.go | 4 +- .../main-handler/encounter/handler.go | 4 +- .../use-case/main-use-case/encounter/case.go | 38 +++++++++---------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/internal/domain/main-entities/encounter/dto.go b/internal/domain/main-entities/encounter/dto.go index 982f0ed8..3b857ca1 100644 --- a/internal/domain/main-entities/encounter/dto.go +++ b/internal/domain/main-entities/encounter/dto.go @@ -294,6 +294,6 @@ func ToResponseList(data []Encounter) []ResponseDto { } type CreateWithPatientDto struct { - Encounter CreateDto `json:"encounter"` - Patient ep.CreateDto `json:"patient"` + CreateDto + Patient ep.CreateDto `json:"patient"` } diff --git a/internal/interface/main-handler/encounter/handler.go b/internal/interface/main-handler/encounter/handler.go index 8b8babc9..0801f805 100644 --- a/internal/interface/main-handler/encounter/handler.go +++ b/internal/interface/main-handler/encounter/handler.go @@ -325,7 +325,7 @@ func (obj myBase) CreateWithPatient(w http.ResponseWriter, r *http.Request) { } // validate SubClass - if err := verifyClassCode(dto.Encounter); err != nil { + if err := verifyClassCode(dto.CreateDto); err != nil { rw.DataResponse(w, nil, d.FieldError{ Code: dataValidationFail, Message: err.Error(), @@ -333,7 +333,7 @@ func (obj myBase) CreateWithPatient(w http.ResponseWriter, r *http.Request) { return } - dto.Encounter.AuthInfo = *authInfo + dto.AuthInfo = *authInfo dto.Patient.AuthInfo = *authInfo res, err := u.CreateWithPatient(dto) rw.DataResponse(w, res, err) diff --git a/internal/use-case/main-use-case/encounter/case.go b/internal/use-case/main-use-case/encounter/case.go index 1c3d63aa..eb0c29dc 100644 --- a/internal/use-case/main-use-case/encounter/case.go +++ b/internal/use-case/main-use-case/encounter/case.go @@ -1094,17 +1094,17 @@ func CreateWithPatient(input e.CreateWithPatientDto) (*d.Data, error) { pl.SetLogInfo(&event, input, "started", "create") roleAllowed := []string{string(erg.EPCReg)} - err = validateAuth(input.Encounter.AuthInfo, roleAllowed, "create-encounter", &event) + err = validateAuth(input.AuthInfo, roleAllowed, "create-encounter", &event) if err != nil { return nil, err } // validate rehab by bpjs - if input.Encounter.RefTypeCode == ere.RTCBpjs && - input.Encounter.Class_Code == ere.ECAmbulatory && - ere.AmbulatoryClassCode(*input.Encounter.SubClass_Code) == ere.ACCRehab { + if input.RefTypeCode == ere.RTCBpjs && + input.Class_Code == ere.ECAmbulatory && + ere.AmbulatoryClassCode(*input.SubClass_Code) == ere.ACCRehab { // get latest rehab data - recentRehabData, err := getLatestRehabData(input.Encounter, &event) + recentRehabData, err := getLatestRehabData(input.CreateDto, &event) if err != nil { return nil, err } @@ -1115,18 +1115,18 @@ func CreateWithPatient(input e.CreateWithPatientDto) (*d.Data, error) { // If the mode is "series", verify whether the visit count still remains // and whether the series has not expired. // If visitMode is "series", then get encounterAdm - input.Encounter.VisitMode_Code, input.Encounter.RecentEncounterAdm, err = determineVisitMode(recentRehabData, input.Encounter, &event) + input.VisitMode_Code, input.RecentEncounterAdm, err = determineVisitMode(recentRehabData, input.CreateDto, &event) if err != nil { return nil, err } } else { - input.Encounter.VisitMode_Code = ere.VMCAdm + input.VisitMode_Code = ere.VMCAdm } // When visitMode_Code is "series", load the associated SOAPI record to copy its values. - if input.Encounter.VisitMode_Code == ere.VMCSeries { + if input.VisitMode_Code == ere.VMCSeries { // get data soapi - recentSoapiDataforCopy, err = getSoapiEncounterAdm(*input.Encounter.RecentEncounterAdm, &event) + recentSoapiDataforCopy, err = getSoapiEncounterAdm(*input.RecentEncounterAdm, &event) if err != nil { return nil, err } @@ -1134,13 +1134,13 @@ func CreateWithPatient(input e.CreateWithPatientDto) (*d.Data, error) { } // check if patient is new in the hospital - input.Encounter.NewStatus, err = identifyPatientStatus(input.Encounter) + input.NewStatus, err = identifyPatientStatus(input.CreateDto) if err != nil { return nil, err } - input.Encounter.Adm_Employee_Id = input.Encounter.AuthInfo.Employee_Id + input.Adm_Employee_Id = input.AuthInfo.Employee_Id - mwRunner := newMiddlewareRunner(&event, input.Encounter.Sync) + mwRunner := newMiddlewareRunner(&event, input.Sync) err = dg.I.Transaction(func(tx *gorm.DB) error { // create patient @@ -1155,28 +1155,28 @@ func CreateWithPatient(input e.CreateWithPatientDto) (*d.Data, error) { } // create encounter - input.Encounter.Patient_Id = &patientId - if resData, err := CreateData(input.Encounter, &event, tx); err != nil { + input.Patient_Id = &patientId + if resData, err := CreateData(input.CreateDto, &event, tx); err != nil { return err } else { data = *resData - input.Encounter.Id = data.Id + input.Id = data.Id } // insert ambulatory/emergency/inpatient - err = insertdataClassCode(input.Encounter, recentSoapiDataforCopy, &event, tx) + err = insertdataClassCode(input.CreateDto, recentSoapiDataforCopy, &event, tx) if err != nil { return err } // insert vclaimReference - if vr := input.Encounter.VclaimReference; vr != nil { + if vr := input.VclaimReference; vr != nil { t, _ := time.Parse("2006-01-02", vr.TglRujukan) _, err = uv.CreateData(ev.CreateDto{ Encounter_Id: &data.Id, Date: &t, - SrcCode: input.Encounter.Ref_Number, - SrcName: input.Encounter.RefSource_Name, + SrcCode: input.Ref_Number, + SrcName: input.RefSource_Name, Number: &vr.NoSep}, &event, tx) if err != nil { return err