on going chemo plan
This commit is contained in:
No files matched your search
@@ -1,17 +1,17 @@
|
||||
package chemo_plan
|
||||
|
||||
import (
|
||||
erc "simrs-vx/internal/domain/references/common"
|
||||
ere "simrs-vx/internal/domain/references/encounter"
|
||||
pl "simrs-vx/pkg/logger"
|
||||
pu "simrs-vx/pkg/use-case-helper"
|
||||
"strconv"
|
||||
|
||||
dg "github.com/karincake/apem/db-gorm-pg"
|
||||
d "github.com/karincake/dodol"
|
||||
|
||||
pl "simrs-vx/pkg/logger"
|
||||
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-plan"
|
||||
ep "simrs-vx/internal/domain/main-entities/chemo-protocol"
|
||||
)
|
||||
@@ -266,12 +266,33 @@ func Fail(input e.FailDto) (*d.Data, error) {
|
||||
// Start log
|
||||
pl.SetLogInfo(&event, input, "started", "update")
|
||||
|
||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||
if data, err = ReadDetailData(rdDto, &event, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
if data, err = ReadDetailData(rdDto, &event); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
dataSoapi, err := getSoapiByEncounterId(*data.Encounter_Id, &event)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if dataSoapi != nil && len(*dataSoapi) > 0 {
|
||||
event.Status = "failed"
|
||||
event.ErrInfo = pl.ErrorInfo{
|
||||
Code: "soapi-exist",
|
||||
Detail: "cancel soapi to proceed",
|
||||
}
|
||||
return nil, pl.SetLogError(&event, data)
|
||||
}
|
||||
|
||||
if data.Status != ere.SPCPlanned {
|
||||
event.Status = "failed"
|
||||
event.ErrInfo = pl.ErrorInfo{
|
||||
Code: "invalid-chemo-status",
|
||||
Detail: "only chemo plans with status 'planned' can be deleted.",
|
||||
}
|
||||
}
|
||||
|
||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||
if err := UpdateData(data, &event, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user