91 lines
1.9 KiB
Go
91 lines
1.9 KiB
Go
/*
|
|
DESCRIPTION:
|
|
Any functions that are used internally by the use-case
|
|
*/
|
|
package chemo_plan
|
|
|
|
import (
|
|
"encoding/json"
|
|
pl "simrs-vx/pkg/logger"
|
|
pu "simrs-vx/pkg/use-case-helper"
|
|
"time"
|
|
|
|
dg "github.com/karincake/apem/db-gorm-pg"
|
|
|
|
ere "simrs-vx/internal/domain/references/encounter"
|
|
|
|
e "simrs-vx/internal/domain/main-entities/chemo-plan"
|
|
ep "simrs-vx/internal/domain/main-entities/chemo-protocol"
|
|
es "simrs-vx/internal/domain/main-entities/soapi"
|
|
)
|
|
|
|
var now = time.Now()
|
|
|
|
func setDataCreate(input *ep.CreateDto) (data []e.ChemoPlan) {
|
|
for _, c := range *input.ChemoPlans {
|
|
data = append(data, e.ChemoPlan{
|
|
Parent_Id: input.Chemo_Id,
|
|
Protocol_Id: input.Id,
|
|
SeriesNumber: c.SeriesNumber,
|
|
CycleNumber: c.CycleNumber,
|
|
PlanDate: c.PlanDate,
|
|
})
|
|
}
|
|
return
|
|
}
|
|
|
|
func setDataCreateSoapi(data *e.ChemoPlan) {
|
|
data.RealizationDate = &now
|
|
|
|
status := ere.SPCComplete
|
|
data.Status = &status
|
|
}
|
|
|
|
func setDataDeleteSoapi(data *e.ChemoPlan) {
|
|
status := ere.SPCPlanned
|
|
data.Status = &status
|
|
}
|
|
|
|
func setDatafail(input e.FailDto, data *e.ChemoPlan) {
|
|
data.RealizationDate = nil
|
|
|
|
status := ere.SPCSchedule
|
|
data.Status = &status
|
|
|
|
var reasons []e.FailReason
|
|
|
|
if data.Reasons != nil {
|
|
json.Unmarshal([]byte(*data.Reasons), &reasons)
|
|
}
|
|
|
|
reasons = append(reasons, e.FailReason{
|
|
FailReason: input.Reasons,
|
|
Date: &now,
|
|
Encounter_Id: data.Encounter_Id,
|
|
})
|
|
|
|
if b, err := json.Marshal(reasons); err == nil {
|
|
jsonStr := string(b)
|
|
data.Reasons = &jsonStr
|
|
}
|
|
}
|
|
|
|
func getSoapiByEncounterId(encounterId uint, event *pl.Event) (*[]es.Soapi, error) {
|
|
pl.SetLogInfo(event, encounterId, "started", "DBReadDetail")
|
|
var data []es.Soapi
|
|
|
|
var tx = dg.I
|
|
|
|
if err := tx.
|
|
Model(&es.Soapi{}).
|
|
Where(`"Encounter_Id" = ?`, encounterId).
|
|
Find(&data).Error; err != nil {
|
|
if processedErr := pu.HandleReadError(err, event, source, encounterId, data); processedErr != nil {
|
|
return nil, processedErr
|
|
}
|
|
}
|
|
|
|
pl.SetLogInfo(event, nil, "complete")
|
|
return &data, nil
|
|
}
|