This commit is contained in:
dpurbosakti
2025-12-02 13:37:26 +07:00
parent 7e454b0a2d
commit 5adb4e5666
8 changed files with 361 additions and 43 deletions
@@ -38,7 +38,11 @@ func Create(input e.CreateDto) (*d.Data, error) {
return err
}
if !input.AuthInfo.IsDoctor() && !input.AuthInfo.IsNurse() {
if !pu.Contains([]erc.ScreeningFormTypeCode{erc.SFTCB, erc.SFTCA}, input.Type) {
return errors.New("invalid screening form type")
}
if !input.AuthInfo.IsScreener() {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "auth-forbidden",
@@ -55,12 +59,21 @@ func Create(input e.CreateDto) (*d.Data, error) {
input.Employee_Id = nil
}
if input.Type == erc.SFTCB {
switch input.Type {
case erc.SFTCA:
s, _, err := ReadListData(e.ReadListDto{FilterDto: e.FilterDto{Type: erc.SFTCA}}, &event, tx)
if err != nil {
return err
}
if len(s) != 0 {
if len(s) > 0 {
return errors.New("screening form type A is already created for this encounter")
}
case erc.SFTCB:
s, _, err := ReadListData(e.ReadListDto{FilterDto: e.FilterDto{Type: erc.SFTCA}}, &event, tx)
if err != nil {
return err
}
if len(s) < 1 {
return errors.New("screening form type A is not created yet, please create it first")
}
}
@@ -6,12 +6,14 @@ package screening
import (
e "simrs-vx/internal/domain/main-entities/screening"
erc "simrs-vx/internal/domain/references/common"
)
func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Screening) {
var inputSrc *e.CreateDto
if inputT, ok := any(input).(*e.CreateDto); ok {
inputSrc = inputT
data.Status = erc.DVCValidated
} else {
inputTemp := any(input).(*e.UpdateDto)
inputSrc = &inputTemp.CreateDto