fix soapi sync

This commit is contained in:
vanilia
2025-12-03 14:02:29 +07:00
parent 2d701e0992
commit 7276b2a985
5 changed files with 39 additions and 4 deletions
@@ -51,7 +51,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
// get detail for sync
soapiData, err := ReadDetailData(e.ReadDetailDto{
Id: data.Id,
Includes: "Encounter,Employee"}, &event)
Includes: "Encounter,Employee"}, &event, tx)
if err != nil {
return err
}
@@ -59,7 +59,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
mwRunner.setMwType(pu.MWTPre)
// Run pre-middleware
if err = mwRunner.ExecuteIfSyncOn(func() error {
return mwRunner.RunCreateMiddleware(createPostMw, soapiData)
return mwRunner.RunCreateMiddleware(createPreMw, soapiData)
}); err != nil {
return err
}
@@ -4,7 +4,7 @@ import plugin "simrs-vx/internal/use-case/simgos-sync-plugin/new/soapi"
func init() {
createPreMw = append(createPreMw,
createMw{Name: "sync-update-soapi", Func: plugin.Create})
createMw{Name: "sync-create-soapi", Func: plugin.Create})
createSimxLogMw = append(createSimxLogMw,
createLogMw{Name: "create-sync-log", Func: plugin.CreateLog})
@@ -32,5 +32,5 @@ func Delete(input *e.DeleteDto) error {
}
func getPrefixEndpoint() string {
return fmt.Sprintf("%s%s/v1/encounter", sync.O.TargetHost, sync.O.Prefix)
return fmt.Sprintf("%s%s/v1/soapi", sync.O.TargetHost, sync.O.Prefix)
}
@@ -135,6 +135,11 @@ func Update(input e.Encounter) (*d.Data, error) {
tx := db.NewTx()
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
// SET LOCAL
if err = tx.Exec(`SET LOCAL simx.sync_source = 'new'`).Error; err != nil {
return err
}
// Step 2: Update Simgos
if err = UpdateTPendaftaranData(input, simgos, "update", &event, tx); err != nil {
return err
@@ -238,6 +243,11 @@ func CheckIn(input e.Encounter) (*d.Data, error) {
tx := db.NewTx()
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
// SET LOCAL
if err = tx.Exec(`SET LOCAL simx.sync_source = 'new'`).Error; err != nil {
return err
}
// Step 2: Update Simgos
if err = UpdateTPendaftaranData(input, simgos, "check-in", &event, tx); err != nil {
return err
@@ -280,6 +290,11 @@ func CheckOut(input e.Encounter) (*d.Data, error) {
tx := db.NewTx()
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
// SET LOCAL
if err = tx.Exec(`SET LOCAL simx.sync_source = 'new'`).Error; err != nil {
return err
}
// Step 2: Update Simgos
if err = UpdateTPendaftaranData(input, simgos, "check-out", &event, tx); err != nil {
return err
@@ -322,6 +337,11 @@ func UpdateStatus(input e.Encounter) (*d.Data, error) {
tx := db.NewTx()
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
// SET LOCAL
if err = tx.Exec(`SET LOCAL simx.sync_source = 'new'`).Error; err != nil {
return err
}
// Step 2: Update TPendaftaran
if err = UpdateTPendaftaranData(input, simgos, "update-status", &event, tx); err != nil {
return err
@@ -434,6 +454,11 @@ func ApproveSwitchUnit(input e.ApproveCancelUnitDto) (*d.Data, error) {
tx := db.NewTx()
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
// SET LOCAL
if err = tx.Exec(`SET LOCAL simx.sync_source = 'new'`).Error; err != nil {
return err
}
// Step 3: Update TPemeriksaanHist
if err := utph.UpdateSimgosData(input, tPemeriksaanHist, "approve", &event, tx); err != nil {
return err
@@ -476,6 +501,11 @@ func CancelSwitchUnit(input e.ApproveCancelUnitDto) (*d.Data, error) {
tx := db.NewTx()
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
// SET LOCAL
if err = tx.Exec(`SET LOCAL simx.sync_source = 'new'`).Error; err != nil {
return err
}
// Step 3: Update TPemeriksaanHist
if err := utph.UpdateSimgosData(input, tPemeriksaanHist, "cancel", &event, tx); err != nil {
return err
@@ -122,6 +122,11 @@ func Update(input e.Patient) (*d.Data, error) {
tx := db.NewTx()
err = tx.Simgos.Transaction(func(tx *gorm.DB) error {
// SET LOCAL
if err = tx.Exec(`SET LOCAL simx.sync_source = 'new'`).Error; err != nil {
return err
}
// Step 3: Update Simgos
if err = UpdateSimgosData(input, patientData, &event, tx); err != nil {
return err