Merge pull request #173 from dikstub-rssa/feat/sync-setting-vanili
update entity encounter and apply sync from old source
This commit is contained in:
@@ -34,28 +34,39 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type CreateDto struct {
|
type CreateDto struct {
|
||||||
Patient_Id *uint `json:"patient_id"`
|
Patient_Id *uint `json:"patient_id"`
|
||||||
RegisteredAt *time.Time `json:"registeredAt"`
|
RegisteredAt *time.Time `json:"registeredAt"`
|
||||||
Class_Code ere.EncounterClassCode `json:"class_code" validate:"maxLength=10"`
|
Class_Code ere.EncounterClassCode `json:"class_code" validate:"maxLength=10"`
|
||||||
SubClass_Code *string `json:"subClass_code" validate:"maxLength=10"` // for sub
|
SubClass_Code *string `json:"subClass_code" validate:"maxLength=10"` // for sub
|
||||||
Infra_Code *string `json:"infra_code"` // for inpatient
|
Infra_Code *string `json:"infra_code"` // for inpatient
|
||||||
Unit_Code *string `json:"unit_code"`
|
Unit_Code *string `json:"unit_code"`
|
||||||
Specialist_Code *string `json:"specialist_code"`
|
Specialist_Code *string `json:"specialist_code"`
|
||||||
Subspecialist_Code *string `json:"subspecialist_code"`
|
Subspecialist_Code *string `json:"subspecialist_code"`
|
||||||
VisitDate time.Time `json:"visitDate"`
|
VisitDate time.Time `json:"visitDate"`
|
||||||
PaymentMethod_Code ere.AllPaymentMethodCode `json:"paymentMethod_code" gorm:"size:10"`
|
StartedAt *time.Time `json:"startedAt"`
|
||||||
InsuranceCompany_Code *string `json:"insuranceCompany_code"`
|
FinishedAt *time.Time `json:"finishedAt"`
|
||||||
Member_Number *string `json:"member_number" validate:"maxLength=20"`
|
PaymentMethod_Code ere.AllPaymentMethodCode `json:"paymentMethod_code" gorm:"size:10"`
|
||||||
Ref_Number *string `json:"ref_number" validate:"maxLength=20"`
|
InsuranceCompany_Code *string `json:"insuranceCompany_code"`
|
||||||
Trx_Number *string `json:"trx_number" validate:"maxLength=20"`
|
Member_Number *string `json:"member_number" validate:"maxLength=20"`
|
||||||
Appointment_Doctor_Code *string `json:"appointment_doctor_code"`
|
RefTypeCode ere.RefTypeCode `json:"refTypeCode"`
|
||||||
Adm_Employee_Id *uint `json:"-"`
|
Ref_Number *string `json:"ref_number" validate:"maxLength=20"`
|
||||||
Responsible_Doctor_Code *string `json:"responsible_doctor_code"`
|
Trx_Number *string `json:"trx_number" validate:"maxLength=20"`
|
||||||
RefSource_Name *string `json:"refSource_name" validate:"maxLength=100"`
|
Appointment_Doctor_Code *string `json:"appointment_doctor_code"`
|
||||||
Appointment_Id *uint `json:"appointment_id"`
|
Adm_Employee_Id *uint `json:"-"`
|
||||||
RefTypeCode ere.RefTypeCode `json:"refTypeCode"`
|
Responsible_Doctor_Code *string `json:"responsible_doctor_code"`
|
||||||
NewStatus bool `json:"newStatus"`
|
Responsible_Nurse_Code *string `json:"responsible_nurse_code"`
|
||||||
VclaimReference *TRujukan `json:"vclaimReference"`
|
Discharge_Method_Code *ere.DischargeMethodCode `json:"discharge_method_code" gorm:"size:16"`
|
||||||
|
RefSource_Name *string `json:"refSource_name" validate:"maxLength=100"`
|
||||||
|
Appointment_Id *uint `json:"appointment_id"`
|
||||||
|
EarlyEducation *string `json:"earlyEducation"`
|
||||||
|
MedicalDischargeEducation *string `json:"medicalDischargeEducation"`
|
||||||
|
AdmDischargeEducation *string `json:"admDischargeEducation"`
|
||||||
|
DischargeReason *string `json:"dischargeReason"`
|
||||||
|
Status_Code erc.DataStatusCode `json:"status_code" gorm:"size:10"`
|
||||||
|
Discharge_Date *time.Time `json:"discharge_date"`
|
||||||
|
DeathCause *edc.DeathCause `json:"deathCause"`
|
||||||
|
NewStatus bool `json:"newStatus"`
|
||||||
|
VclaimReference *TRujukan `json:"vclaimReference"`
|
||||||
|
|
||||||
Id uint `json:"-"`
|
Id uint `json:"-"`
|
||||||
RecentEncounterAdm *Encounter `json:"-"` // if subClass_Code is rehab
|
RecentEncounterAdm *Encounter `json:"-"` // if subClass_Code is rehab
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ type UpdateDto struct {
|
|||||||
|
|
||||||
type DeleteDto struct {
|
type DeleteDto struct {
|
||||||
Id uint `json:"id"`
|
Id uint `json:"id"`
|
||||||
|
pa.AuthInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
type SearchDto struct {
|
type SearchDto struct {
|
||||||
|
|||||||
@@ -63,7 +63,15 @@ func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
|
|||||||
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
|
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
authInfo, err := pa.GetAuthInfo(r)
|
||||||
|
if err != nil {
|
||||||
|
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
|
||||||
|
}
|
||||||
|
|
||||||
dto.Id = uint(id)
|
dto.Id = uint(id)
|
||||||
|
dto.AuthInfo = *authInfo
|
||||||
|
|
||||||
res, err := u.Update(dto)
|
res, err := u.Update(dto)
|
||||||
rw.DataResponse(w, res, err)
|
rw.DataResponse(w, res, err)
|
||||||
}
|
}
|
||||||
@@ -75,7 +83,15 @@ func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dto := e.DeleteDto{}
|
dto := e.DeleteDto{}
|
||||||
|
|
||||||
|
authInfo, err := pa.GetAuthInfo(r)
|
||||||
|
if err != nil {
|
||||||
|
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
|
||||||
|
}
|
||||||
|
|
||||||
dto.Id = uint(id)
|
dto.Id = uint(id)
|
||||||
|
dto.AuthInfo = *authInfo
|
||||||
|
|
||||||
res, err := u.Delete(dto)
|
res, err := u.Delete(dto)
|
||||||
rw.DataResponse(w, res, err)
|
rw.DataResponse(w, res, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
|||||||
input.NewStatus, err = identifyPatientStatus(input)
|
input.NewStatus, err = identifyPatientStatus(input)
|
||||||
input.Adm_Employee_Id = input.AuthInfo.Employee_Id
|
input.Adm_Employee_Id = input.AuthInfo.Employee_Id
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
// create encounter
|
// create encounter
|
||||||
@@ -158,7 +158,6 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ReadList(input e.ReadListDto) (*d.Data, error) {
|
func ReadList(input e.ReadListDto) (*d.Data, error) {
|
||||||
var data *e.Encounter
|
|
||||||
var dataList []e.Encounter
|
var dataList []e.Encounter
|
||||||
var metaList *e.MetaDto
|
var metaList *e.MetaDto
|
||||||
var err error
|
var err error
|
||||||
@@ -172,23 +171,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
|
|||||||
pl.SetLogInfo(&event, input, "started", "readList")
|
pl.SetLogInfo(&event, input, "started", "readList")
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
|
||||||
mwRunner.setMwType(pu.MWTPre)
|
|
||||||
// Run pre-middleware
|
|
||||||
if err := mwRunner.RunReadListMiddleware(readListPreMw, &input, data); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
|
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner.setMwType(pu.MWTPost)
|
|
||||||
// Run post-middleware
|
|
||||||
if err := mwRunner.RunReadListMiddleware(readListPostMw, &input, data); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -223,23 +208,9 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
|
|||||||
pl.SetLogInfo(&event, input, "started", "readDetail")
|
pl.SetLogInfo(&event, input, "started", "readDetail")
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
|
||||||
mwRunner.setMwType(pu.MWTPre)
|
|
||||||
// Run pre-middleware
|
|
||||||
if err := mwRunner.RunReadDetailMiddleware(readDetailPreMw, &input, data); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if data, err = ReadDetailData(input, &event, tx); err != nil {
|
if data, err = ReadDetailData(input, &event, tx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner.setMwType(pu.MWTPost)
|
|
||||||
// Run post-middleware
|
|
||||||
if err := mwRunner.RunReadDetailMiddleware(readDetailPostMw, &input, data); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -277,7 +248,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
|
|||||||
}
|
}
|
||||||
input.Adm_Employee_Id = input.AuthInfo.Employee_Id
|
input.Adm_Employee_Id = input.AuthInfo.Employee_Id
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
@@ -352,7 +323,7 @@ func Delete(input e.DeleteDto) (*d.Data, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
@@ -436,7 +407,7 @@ func CheckOut(input e.DischargeDto) (*d.Data, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
@@ -561,7 +532,7 @@ func UpdateStatusCode(input e.UpdateStatusDto) (*d.Data, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
@@ -664,7 +635,7 @@ func CheckIn(input e.CheckinDto) (*d.Data, error) {
|
|||||||
input.StartedAt = &now
|
input.StartedAt = &now
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
@@ -767,7 +738,7 @@ func RequestSwitchUnit(input e.SwitchUnitDto) (*d.Data, error) {
|
|||||||
}
|
}
|
||||||
input.Src_Nurse_Code = input.AuthInfo.Nurse_Code
|
input.Src_Nurse_Code = input.AuthInfo.Nurse_Code
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
@@ -861,7 +832,7 @@ func ApproveSwitchUnit(input e.ApproveCancelUnitDto) (*d.Data, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
@@ -976,7 +947,7 @@ func CancelSwitchUnit(input e.ApproveCancelUnitDto) (*d.Data, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
|
|||||||
@@ -65,44 +65,71 @@ import (
|
|||||||
us "simrs-vx/internal/use-case/main-use-case/soapi"
|
us "simrs-vx/internal/use-case/main-use-case/soapi"
|
||||||
)
|
)
|
||||||
|
|
||||||
func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Encounter) {
|
func setDataCreate(input *e.CreateDto, data *e.Encounter) {
|
||||||
var inputSrc *e.CreateDto
|
data.Patient_Id = input.Patient_Id
|
||||||
if inputT, ok := any(input).(*e.CreateDto); ok {
|
data.RegisteredAt = input.RegisteredAt
|
||||||
inputSrc = inputT
|
data.Class_Code = input.Class_Code
|
||||||
data.Status_Code = erc.DSCNew
|
data.Unit_Code = input.Unit_Code
|
||||||
} else {
|
data.Specialist_Code = input.Specialist_Code
|
||||||
inputTemp := any(input).(*e.UpdateDto)
|
data.Subspecialist_Code = input.Subspecialist_Code
|
||||||
inputSrc = &inputTemp.CreateDto
|
data.VisitDate = input.VisitDate
|
||||||
}
|
data.PaymentMethod_Code = input.PaymentMethod_Code
|
||||||
|
data.InsuranceCompany_Code = input.InsuranceCompany_Code
|
||||||
data.Patient_Id = inputSrc.Patient_Id
|
data.Member_Number = input.Member_Number
|
||||||
data.RegisteredAt = inputSrc.RegisteredAt
|
data.RefType_Code = &input.RefTypeCode
|
||||||
data.Class_Code = inputSrc.Class_Code
|
data.Ref_Number = input.Ref_Number
|
||||||
data.Unit_Code = inputSrc.Unit_Code
|
data.Trx_Number = input.Trx_Number
|
||||||
data.Specialist_Code = inputSrc.Specialist_Code
|
data.Appointment_Doctor_Code = input.Appointment_Doctor_Code
|
||||||
data.Subspecialist_Code = inputSrc.Subspecialist_Code
|
data.Adm_Employee_Id = input.Adm_Employee_Id
|
||||||
data.VisitDate = inputSrc.VisitDate
|
data.RefSource_Name = input.RefSource_Name
|
||||||
data.PaymentMethod_Code = inputSrc.PaymentMethod_Code
|
data.Appointment_Id = input.Appointment_Id
|
||||||
data.InsuranceCompany_Code = inputSrc.InsuranceCompany_Code
|
data.Status_Code = erc.DSCNew
|
||||||
data.Member_Number = inputSrc.Member_Number
|
data.NewStatus = input.NewStatus
|
||||||
data.Ref_Number = inputSrc.Ref_Number
|
|
||||||
data.Trx_Number = inputSrc.Trx_Number
|
|
||||||
data.Appointment_Doctor_Code = inputSrc.Appointment_Doctor_Code
|
|
||||||
data.Adm_Employee_Id = inputSrc.Adm_Employee_Id
|
|
||||||
data.Responsible_Doctor_Code = inputSrc.Responsible_Doctor_Code
|
|
||||||
data.RefSource_Name = inputSrc.RefSource_Name
|
|
||||||
data.Appointment_Id = inputSrc.Appointment_Id
|
|
||||||
data.RefType_Code = &inputSrc.RefTypeCode
|
|
||||||
data.NewStatus = inputSrc.NewStatus
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDataUpdate(src e.UpdateDto, dst *e.Encounter) {
|
func setDataUpdate(src e.UpdateDto, dst *e.Encounter) {
|
||||||
dst.Appointment_Doctor_Code = src.Appointment_Doctor_Code
|
|
||||||
dst.Responsible_Doctor_Code = src.Responsible_Doctor_Code
|
|
||||||
dst.Unit_Code = src.Unit_Code
|
dst.Unit_Code = src.Unit_Code
|
||||||
dst.Specialist_Code = src.Specialist_Code
|
dst.Specialist_Code = src.Specialist_Code
|
||||||
dst.Subspecialist_Code = src.Subspecialist_Code
|
dst.Subspecialist_Code = src.Subspecialist_Code
|
||||||
dst.VisitDate = src.VisitDate
|
dst.VisitDate = src.VisitDate
|
||||||
|
dst.Appointment_Doctor_Code = src.Appointment_Doctor_Code
|
||||||
|
dst.Adm_Employee_Id = src.Adm_Employee_Id
|
||||||
|
dst.Appointment_Id = src.Appointment_Id
|
||||||
|
dst.RefSource_Name = src.RefSource_Name
|
||||||
|
dst.Trx_Number = src.Trx_Number
|
||||||
|
dst.Ref_Number = src.Ref_Number
|
||||||
|
dst.Member_Number = src.Member_Number
|
||||||
|
}
|
||||||
|
|
||||||
|
func setDataUpdateFromSource(input *e.UpdateDto, data *e.Encounter) {
|
||||||
|
data.Patient_Id = input.Patient_Id
|
||||||
|
data.RegisteredAt = input.RegisteredAt
|
||||||
|
data.Unit_Code = input.Unit_Code
|
||||||
|
data.Specialist_Code = input.Specialist_Code
|
||||||
|
data.Subspecialist_Code = input.Subspecialist_Code
|
||||||
|
data.VisitDate = input.VisitDate
|
||||||
|
data.StartedAt = input.StartedAt
|
||||||
|
data.FinishedAt = input.FinishedAt
|
||||||
|
data.PaymentMethod_Code = input.PaymentMethod_Code
|
||||||
|
data.InsuranceCompany_Code = input.InsuranceCompany_Code
|
||||||
|
data.Member_Number = input.Member_Number
|
||||||
|
data.RefType_Code = &input.RefTypeCode
|
||||||
|
data.Ref_Number = input.Ref_Number
|
||||||
|
data.Trx_Number = input.Trx_Number
|
||||||
|
data.Appointment_Doctor_Code = input.Appointment_Doctor_Code
|
||||||
|
data.Adm_Employee_Id = input.Adm_Employee_Id
|
||||||
|
data.Responsible_Doctor_Code = input.Responsible_Doctor_Code
|
||||||
|
data.Discharge_Method_Code = input.Discharge_Method_Code
|
||||||
|
data.RefSource_Name = input.RefSource_Name
|
||||||
|
data.Appointment_Id = input.Appointment_Id
|
||||||
|
data.EarlyEducation = input.EarlyEducation
|
||||||
|
data.MedicalDischargeEducation = input.MedicalDischargeEducation
|
||||||
|
data.AdmDischargeEducation = input.AdmDischargeEducation
|
||||||
|
data.DischargeReason = input.DischargeReason
|
||||||
|
data.Status_Code = input.Status_Code
|
||||||
|
data.Discharge_Date = input.Discharge_Date
|
||||||
|
data.NewStatus = input.NewStatus
|
||||||
|
data.Responsible_Nurse_Code = input.Responsible_Nurse_Code
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDataDischarge(src e.DischargeDto, dst *e.Encounter) {
|
func setDataDischarge(src e.DischargeDto, dst *e.Encounter) {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Encount
|
|||||||
pl.SetLogInfo(event, nil, "started", "DBCreate")
|
pl.SetLogInfo(event, nil, "started", "DBCreate")
|
||||||
|
|
||||||
data := e.Encounter{}
|
data := e.Encounter{}
|
||||||
setData(&input, &data)
|
setDataCreate(&input, &data)
|
||||||
|
|
||||||
var tx *gorm.DB
|
var tx *gorm.DB
|
||||||
if len(dbx) > 0 {
|
if len(dbx) > 0 {
|
||||||
@@ -109,7 +109,12 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
|
|||||||
|
|
||||||
func UpdateData(input e.UpdateDto, data *e.Encounter, event *pl.Event, dbx ...*gorm.DB) error {
|
func UpdateData(input e.UpdateDto, data *e.Encounter, event *pl.Event, dbx ...*gorm.DB) error {
|
||||||
pl.SetLogInfo(event, data, "started", "DBUpdate")
|
pl.SetLogInfo(event, data, "started", "DBUpdate")
|
||||||
setDataUpdate(input, data)
|
|
||||||
|
if input.Sync {
|
||||||
|
setDataUpdateFromSource(&input, data)
|
||||||
|
} else {
|
||||||
|
setDataUpdate(input, data)
|
||||||
|
}
|
||||||
|
|
||||||
var tx *gorm.DB
|
var tx *gorm.DB
|
||||||
if len(dbx) > 0 {
|
if len(dbx) > 0 {
|
||||||
|
|||||||
@@ -20,10 +20,15 @@ type middlewareRunner struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewMiddlewareExecutor creates a new middleware executor
|
// NewMiddlewareExecutor creates a new middleware executor
|
||||||
func newMiddlewareRunner(event *pl.Event) *middlewareRunner {
|
func newMiddlewareRunner(event *pl.Event, syncFromOldSource bool) *middlewareRunner {
|
||||||
|
activateSync := sync.O.Enable
|
||||||
|
if syncFromOldSource {
|
||||||
|
activateSync = false
|
||||||
|
}
|
||||||
|
|
||||||
return &middlewareRunner{
|
return &middlewareRunner{
|
||||||
Event: event,
|
Event: event,
|
||||||
SyncOn: sync.O.Enable,
|
SyncOn: activateSync,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
|||||||
|
|
||||||
// Start log
|
// Start log
|
||||||
pl.SetLogInfo(&event, input, "started", "create")
|
pl.SetLogInfo(&event, input, "started", "create")
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
// check if user has employee position
|
// check if user has employee position
|
||||||
if !input.AuthInfo.HasEmployeePosition() {
|
if !input.AuthInfo.HasEmployeePosition() {
|
||||||
@@ -143,7 +143,6 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ReadList(input e.ReadListDto) (*d.Data, error) {
|
func ReadList(input e.ReadListDto) (*d.Data, error) {
|
||||||
var data *e.Patient
|
|
||||||
var dataList []e.Patient
|
var dataList []e.Patient
|
||||||
var metaList *e.MetaDto
|
var metaList *e.MetaDto
|
||||||
var err error
|
var err error
|
||||||
@@ -157,23 +156,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
|
|||||||
pl.SetLogInfo(&event, input, "started", "readList")
|
pl.SetLogInfo(&event, input, "started", "readList")
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
|
||||||
mwRunner.setMwType(pu.MWTPre)
|
|
||||||
// Run pre-middleware
|
|
||||||
if err := mwRunner.RunReadListMiddleware(readListPreMw, &input, data); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
|
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner.setMwType(pu.MWTPost)
|
|
||||||
// Run post-middleware
|
|
||||||
if err := mwRunner.RunReadListMiddleware(readListPostMw, &input, data); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -208,23 +193,9 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
|
|||||||
pl.SetLogInfo(&event, input, "started", "readDetail")
|
pl.SetLogInfo(&event, input, "started", "readDetail")
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
|
||||||
mwRunner.setMwType(pu.MWTPre)
|
|
||||||
// Run pre-middleware
|
|
||||||
if err := mwRunner.RunReadDetailMiddleware(readDetailPreMw, &input, data); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if data, err = ReadDetailData(input, &event, tx); err != nil {
|
if data, err = ReadDetailData(input, &event, tx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
mwRunner.setMwType(pu.MWTPost)
|
|
||||||
// Run post-middleware
|
|
||||||
if err := mwRunner.RunReadDetailMiddleware(readDetailPostMw, &input, data); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -254,7 +225,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
|
|||||||
|
|
||||||
// Start log
|
// Start log
|
||||||
pl.SetLogInfo(&event, input, "started", "update")
|
pl.SetLogInfo(&event, input, "started", "update")
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
@@ -343,7 +314,7 @@ func Delete(input e.DeleteDto) (*d.Data, error) {
|
|||||||
|
|
||||||
// Start log
|
// Start log
|
||||||
pl.SetLogInfo(&event, input, "started", "delete")
|
pl.SetLogInfo(&event, input, "started", "delete")
|
||||||
mwRunner := newMiddlewareRunner(&event)
|
mwRunner := newMiddlewareRunner(&event, input.Sync)
|
||||||
|
|
||||||
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
err = dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
|
||||||
|
|||||||
@@ -20,10 +20,15 @@ type middlewareRunner struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewMiddlewareExecutor creates a new middleware executor
|
// NewMiddlewareExecutor creates a new middleware executor
|
||||||
func newMiddlewareRunner(event *pl.Event) *middlewareRunner {
|
func newMiddlewareRunner(event *pl.Event, syncFromOldSource bool) *middlewareRunner {
|
||||||
|
activateSync := sync.O.Enable
|
||||||
|
if syncFromOldSource {
|
||||||
|
activateSync = false
|
||||||
|
}
|
||||||
|
|
||||||
return &middlewareRunner{
|
return &middlewareRunner{
|
||||||
Event: event,
|
Event: event,
|
||||||
SyncOn: sync.O.Enable,
|
SyncOn: activateSync,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user