This commit is contained in:
vanilia
2025-11-25 19:47:47 +07:00
parent 782d272d91
commit 04312afcee
20 changed files with 165 additions and 120 deletions
@@ -22,6 +22,6 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Doctor) {
data.IHS_Number = inputSrc.IHS_Number
data.SIP_Number = inputSrc.SIP_Number
data.Unit_Code = inputSrc.Unit_Code
data.Specialist_Code = inputSrc.Code
data.Subspecialist_Code = inputSrc.Code
data.Specialist_Code = inputSrc.Specialist_Code
data.Subspecialist_Code = inputSrc.Subspecialist_Code
}
@@ -37,7 +37,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
}
// validate encounter_id
_, err := ue.ReadDetail(ee.ReadDetailDto{Id: uint16(*input.Encounter_Id)})
_, err := ue.ReadDetail(ee.ReadDetailDto{Id: *input.Encounter_Id})
if err != nil {
return err
}
@@ -118,7 +118,6 @@ func Create(input e.CreateDto) (*d.Data, error) {
// insert vclaimReference
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,
@@ -136,8 +135,10 @@ func Create(input e.CreateDto) (*d.Data, error) {
}
dataEncounter, err := ReadDetailData(e.ReadDetailDto{
Id: uint16(data.Id),
Includes: "Adm_Employee.User,Patient.Person.Relatives,Patient.Person.VclaimMember,VclaimReference"},
Id: data.Id,
Includes: "Adm_Employee.User,Patient.Person.Relatives," +
"Patient.Person.VclaimMember,VclaimReference," +
"Patient.Person.Contacts,Patient.Person.Addresses"},
&event, tx)
if err != nil {
return err
@@ -311,7 +312,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
}
dataEncounter, err := ReadDetailData(e.ReadDetailDto{
Id: uint16(data.Id),
Id: data.Id,
Includes: "Adm_Employee.User,Patient.Person.Relatives,Patient.Person.VclaimMember"},
&event, tx)
if err != nil {
@@ -429,7 +430,7 @@ func Delete(input e.DeleteDto) (*d.Data, error) {
}
func CheckOut(input e.DischargeDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id), Includes: "Ambulatory,Rehab"}
rdDto := e.ReadDetailDto{Id: input.Id, Includes: "Ambulatory,Rehab"}
var data *e.Encounter
var err error
@@ -516,7 +517,7 @@ func CheckOut(input e.DischargeDto) (*d.Data, error) {
}
dataEncounter, err := ReadDetailData(e.ReadDetailDto{
Id: uint16(data.Id),
Id: data.Id,
Includes: "DeathCause"},
&event, tx)
if err != nil {
@@ -658,7 +659,7 @@ func UpdateStatusCode(input e.UpdateStatusDto) (*d.Data, error) {
}
func CheckIn(input e.CheckinDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id), Includes: "Rehab,Ambulatory"}
rdDto := e.ReadDetailDto{Id: input.Id, Includes: "Rehab,Ambulatory"}
var data *e.Encounter
var err error
@@ -743,7 +744,7 @@ func CheckIn(input e.CheckinDto) (*d.Data, error) {
}
dataEncounter, err := ReadDetailData(e.ReadDetailDto{
Id: uint16(data.Id),
Id: data.Id,
Includes: "Adm_Employee.User"},
&event, tx)
if err != nil {
@@ -776,7 +777,7 @@ func CheckIn(input e.CheckinDto) (*d.Data, error) {
}
func RequestSwitchUnit(input e.SwitchUnitDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id), Includes: "Responsible_Doctor"}
rdDto := e.ReadDetailDto{Id: input.Id, Includes: "Responsible_Doctor"}
var data *e.Encounter
var err error
@@ -865,7 +866,7 @@ func RequestSwitchUnit(input e.SwitchUnitDto) (*d.Data, error) {
}
func ApproveSwitchUnit(input e.ApproveUnitDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id), Includes: "Responsible_Doctor"}
rdDto := e.ReadDetailDto{Id: input.Id, Includes: "Responsible_Doctor"}
var data *e.Encounter
var err error
@@ -68,6 +68,7 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Encounter) {
var inputSrc *e.CreateDto
if inputT, ok := any(input).(*e.CreateDto); ok {
inputSrc = inputT
data.Status_Code = erc.DSCNew
} else {
inputTemp := any(input).(*e.UpdateDto)
inputSrc = &inputTemp.CreateDto
@@ -90,7 +91,6 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Encounter) {
data.Responsible_Doctor_Code = inputSrc.Responsible_Doctor_Code
data.RefSource_Name = inputSrc.RefSource_Name
data.Appointment_Id = inputSrc.Appointment_Id
data.Status_Code = erc.DSCProcess
data.RefType_Code = &inputSrc.RefTypeCode
data.NewStatus = inputSrc.NewStatus
}
@@ -556,6 +556,7 @@ func getSoapiByResponsibleDoctor(enc e.Encounter, event *pl.Event) (data []es.So
Code: "no responsible-doctor found",
Detail: "Encounter does not have responsible-doctor",
}
return nil, pl.SetLogError(event, enc)
}
err = dg.I.
@@ -359,7 +359,7 @@ func Verify(input e.VerifyDto) (*d.Data, error) {
func validateForeignKey(input e.CreateDto) error {
// validate encounter
if input.Encounter_Id != nil {
if _, err := ue.ReadDetail(ee.ReadDetailDto{Id: uint16(*input.Encounter_Id)}); err != nil {
if _, err := ue.ReadDetail(ee.ReadDetailDto{Id: *input.Encounter_Id}); err != nil {
return err
}
}
+15 -1
View File
@@ -1,6 +1,7 @@
package unit
import (
"errors"
e "simrs-vx/internal/domain/main-entities/unit"
erc "simrs-vx/internal/domain/references/common"
esync "simrs-vx/internal/domain/sync-entities/log"
@@ -27,9 +28,22 @@ func Create(input e.CreateDto) (*d.Data, error) {
// Start log
pl.SetLogInfo(&event, input, "started", "create")
// validate unit_code
_, err := strconv.Atoi(input.Code)
if err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "invalid_code_format",
Detail: "unit_code must be a valid integer",
Raw: errors.New("invalid unit_code format"),
}
return nil, pl.SetLogError(&event, input)
}
mwRunner := newMiddlewareRunner(&event)
err := dg.I.Transaction(func(tx *gorm.DB) error {
err = dg.I.Transaction(func(tx *gorm.DB) error {
if resData, err := CreateData(input, &event, tx); err != nil {
return err
} else {