adj sync request switch poly

This commit is contained in:
vanilia
2025-11-26 13:42:24 +07:00
17 changed files with 278 additions and 139 deletions
@@ -5,35 +5,41 @@ Any functions that are used internally by the use-case
package internal_reference
import (
e "simrs-vx/internal/domain/main-entities/encounter"
ir "simrs-vx/internal/domain/main-entities/internal-reference"
erc "simrs-vx/internal/domain/references/common"
)
func setData[T *ir.CreateDto | *ir.UpdateDto](input T, data *ir.InternalReference) {
var inputSrc *ir.CreateDto
if inputT, ok := any(input).(*ir.CreateDto); ok {
inputSrc = inputT
} else {
inputTemp := any(input).(*ir.UpdateDto)
inputSrc = &inputTemp.CreateDto
}
func setDataCreate(input *ir.CreateDto, data *ir.InternalReference) {
data.Encounter_Id = input.Encounter_Id
data.Unit_Code = input.Unit_Code
data.Encounter_Id = inputSrc.Encounter_Id
data.Unit_Code = inputSrc.Unit_Code
data.Doctor_Code = inputSrc.Doctor_Code
data.Status_Code = &inputSrc.Status_Code
data.Doctor_Code = input.Doctor_Code
data.SrcDoctor_Code = input.SrcDoctor_Code
data.Nurse_Code = input.Nurse_Code
data.SrcNurse_Code = input.SrcNurse_Code
data.Status_Code = &input.Status_Code
}
func setBulkData(input []ir.CreateDto, encounterId uint) []ir.InternalReference {
func setDataUpdate(input *ir.UpdateDto, data *ir.InternalReference) {
data.Doctor_Code = input.Doctor_Code
data.Nurse_Code = input.Nurse_Code
data.Status_Code = &input.Status_Code
}
func setBulkData(input *e.SwitchUnitDto) []ir.InternalReference {
var data []ir.InternalReference
for _, v := range input {
for _, v := range *input.InternalReferences {
statusCode := erc.DACNew
data = append(data, ir.InternalReference{
Encounter_Id: &encounterId,
Unit_Code: v.Unit_Code,
Doctor_Code: v.Doctor_Code,
Status_Code: &statusCode,
Encounter_Id: &input.Id,
Unit_Code: v.Unit_Code,
Doctor_Code: v.Doctor_Code,
Status_Code: &statusCode,
SrcDoctor_Code: input.Src_Doctor_Code,
SrcNurse_Code: input.Src_Nurse_Code,
})
}
@@ -2,6 +2,7 @@ package internal_reference
import (
"errors"
e "simrs-vx/internal/domain/main-entities/encounter"
eir "simrs-vx/internal/domain/main-entities/internal-reference"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
@@ -16,7 +17,7 @@ func CreateData(input eir.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*eir.Int
pl.SetLogInfo(event, nil, "started", "DBCreate")
data := eir.InternalReference{}
setData(&input, &data)
setDataCreate(&input, &data)
var tx *gorm.DB
if len(dbx) > 0 {
@@ -97,7 +98,7 @@ func ReadDetailData(input eir.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (
func UpdateData(input eir.UpdateDto, data *eir.InternalReference, event *pl.Event, dbx ...*gorm.DB) error {
pl.SetLogInfo(event, data, "started", "DBUpdate")
setData(&input, data)
setDataUpdate(&input, data)
var tx *gorm.DB
if len(dbx) > 0 {
@@ -143,10 +144,10 @@ func DeleteData(data *eir.InternalReference, event *pl.Event, dbx ...*gorm.DB) e
return nil
}
func CreateBulkData(input []eir.CreateDto, encounterId uint, event *pl.Event, dbx ...*gorm.DB) error {
func CreateBulkData(input *e.SwitchUnitDto, event *pl.Event, dbx ...*gorm.DB) error {
pl.SetLogInfo(event, nil, "started", "DBCreate")
data := setBulkData(input, encounterId)
data := setBulkData(input)
var tx *gorm.DB
if len(dbx) > 0 {