update worker
This commit is contained in:
@@ -48,6 +48,7 @@ type ServiceRequestJson struct {
|
||||
Coding []struct {
|
||||
Code string `json:"code"`
|
||||
Display string `json:"display"`
|
||||
System string `json:"system"`
|
||||
} `json:"coding"`
|
||||
} `json:"code"`
|
||||
Requester struct {
|
||||
|
||||
@@ -50,9 +50,11 @@ func MapRadiologyToInternalAPI(dbData *ServiceRequestRadDB) map[string]interface
|
||||
|
||||
codeVal := ""
|
||||
codeDisplay := ""
|
||||
codeSystem := ""
|
||||
if len(parsedData.Code.Coding) > 0 {
|
||||
codeVal = parsedData.Code.Coding[0].Code
|
||||
codeDisplay = parsedData.Code.Coding[0].Display
|
||||
codeSystem = parsedData.Code.Coding[0].System
|
||||
}
|
||||
|
||||
requesterID := dbData.RequesterID.String
|
||||
@@ -86,6 +88,7 @@ func MapRadiologyToInternalAPI(dbData *ServiceRequestRadDB) map[string]interface
|
||||
"category_display": categoryDisplay,
|
||||
"code": codeVal,
|
||||
"display": codeDisplay,
|
||||
"system": codeSystem,
|
||||
"requester_id": requesterID,
|
||||
"performer_id": performerID,
|
||||
"authored_on": parsedData.AuthoredOn,
|
||||
|
||||
+72
-68
@@ -11,11 +11,6 @@ import (
|
||||
"service/internal/infrastructure/database"
|
||||
"service/internal/interfaces/satusehat"
|
||||
"service/internal/master/kfa"
|
||||
"service/internal/worker/satusehat/imagingstudy"
|
||||
"service/internal/worker/satusehat/medication"
|
||||
"service/internal/worker/satusehat/medicationdispense"
|
||||
"service/internal/worker/satusehat/medicationrequest"
|
||||
"service/internal/worker/satusehat/servicerequest"
|
||||
"service/pkg/logger"
|
||||
)
|
||||
|
||||
@@ -45,9 +40,18 @@ func (m *Manager) Start(ctx context.Context) {
|
||||
logger.Default().Info("Starting background workers...")
|
||||
|
||||
// Lakukan login awal untuk mendapatkan token bagi semua worker
|
||||
if err := m.login(ctx); err != nil {
|
||||
logger.Default().Fatal("Initial login for workers failed, stopping.", logger.ErrorField(err))
|
||||
return
|
||||
maxRetries := 6
|
||||
for i := 1; i <= maxRetries; i++ {
|
||||
err := m.login(ctx)
|
||||
if err == nil {
|
||||
break
|
||||
}
|
||||
logger.Default().Warn(fmt.Sprintf("Initial login attempt %d/%d failed, retrying in 5 seconds...", i, maxRetries), logger.ErrorField(err))
|
||||
if i == maxRetries {
|
||||
logger.Default().Fatal("Initial login for workers failed after maximum retries, stopping.", logger.ErrorField(err))
|
||||
return
|
||||
}
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
|
||||
var wg sync.WaitGroup
|
||||
@@ -86,17 +90,17 @@ func (m *Manager) Start(ctx context.Context) {
|
||||
// // condition.NewWorker(...).Run(c)
|
||||
// },
|
||||
// },
|
||||
{
|
||||
name: "Medication (Master)",
|
||||
delay: 0, // Master data berjalan seketika
|
||||
run: func(c context.Context) {
|
||||
medication.NewWorker(medication.Config{
|
||||
DBManager: m.db,
|
||||
InternalBaseURL: internalBaseURL,
|
||||
OrganizationID: orgID,
|
||||
}, m).Run(c)
|
||||
},
|
||||
},
|
||||
// {
|
||||
// name: "Medication (Master)",
|
||||
// delay: 2, // Master data berjalan seketika
|
||||
// run: func(c context.Context) {
|
||||
// medication.NewWorker(medication.Config{
|
||||
// DBManager: m.db,
|
||||
// InternalBaseURL: internalBaseURL,
|
||||
// OrganizationID: orgID,
|
||||
// }, m).Run(c)
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// name: "Observation",
|
||||
// delay: 2 * time.Second,
|
||||
@@ -148,17 +152,17 @@ func (m *Manager) Start(ctx context.Context) {
|
||||
// }, m).Run(c)
|
||||
// },
|
||||
// },
|
||||
{
|
||||
name: "ServiceRequest (Radiology)",
|
||||
delay: 2 * time.Second,
|
||||
run: func(c context.Context) {
|
||||
servicerequest.NewRadiologyWorker(servicerequest.Config{
|
||||
DBManager: m.db,
|
||||
InternalBaseURL: internalBaseURL,
|
||||
OrganizationID: orgID,
|
||||
}, m).Run(c)
|
||||
},
|
||||
},
|
||||
// {
|
||||
// name: "ServiceRequest (Radiology)",
|
||||
// delay: 2 * time.Second,
|
||||
// run: func(c context.Context) {
|
||||
// servicerequest.NewRadiologyWorker(servicerequest.Config{
|
||||
// DBManager: m.db,
|
||||
// InternalBaseURL: internalBaseURL,
|
||||
// OrganizationID: orgID,
|
||||
// }, m).Run(c)
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// name: "Specimen",
|
||||
// delay: 2 * time.Second,
|
||||
@@ -175,16 +179,16 @@ func (m *Manager) Start(ctx context.Context) {
|
||||
// // diagnosticreport.NewWorker(...).Run(c)
|
||||
// },
|
||||
// },
|
||||
{
|
||||
name: "ImagingStudy",
|
||||
delay: 2 * time.Second,
|
||||
run: func(c context.Context) {
|
||||
// The Manager 'm' now acts as the TokenManager
|
||||
imagingstudy.NewWorker(imagingstudy.Config{
|
||||
DBManager: m.db, InternalBaseURL: internalBaseURL, OrganizationID: orgID,
|
||||
}, m).Run(c)
|
||||
},
|
||||
},
|
||||
// {
|
||||
// name: "ImagingStudy",
|
||||
// delay: 2 * time.Second,
|
||||
// run: func(c context.Context) {
|
||||
// // The Manager 'm' now acts as the TokenManager
|
||||
// imagingstudy.NewWorker(imagingstudy.Config{
|
||||
// DBManager: m.db, InternalBaseURL: internalBaseURL, OrganizationID: orgID,
|
||||
// }, m).Run(c)
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// name: "Composition",
|
||||
// delay: 2 * time.Second,
|
||||
@@ -209,40 +213,40 @@ func (m *Manager) Start(ctx context.Context) {
|
||||
// // episodeofcare.NewWorker(...).Run(c)
|
||||
// },
|
||||
// },
|
||||
{
|
||||
name: "MedicationRequest",
|
||||
delay: 2 * time.Second,
|
||||
run: func(c context.Context) {
|
||||
medicationrequest.NewWorker(medicationrequest.Config{
|
||||
DBManager: m.db,
|
||||
InternalBaseURL: internalBaseURL,
|
||||
OrganizationID: orgID,
|
||||
}, m).Run(c)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MedicationDispense",
|
||||
delay: 2 * time.Second,
|
||||
run: func(c context.Context) {
|
||||
medicationdispense.NewWorker(medicationdispense.Config{
|
||||
DBManager: m.db,
|
||||
InternalBaseURL: internalBaseURL,
|
||||
OrganizationID: orgID,
|
||||
}, m).Run(c)
|
||||
},
|
||||
},
|
||||
// {
|
||||
// name: "KFA Master Puller",
|
||||
// delay: 5 * time.Second,
|
||||
// name: "MedicationRequest",
|
||||
// delay: 2 * time.Second,
|
||||
// run: func(c context.Context) {
|
||||
// repo := kfa.NewCommandRepository(m.db, "default")
|
||||
// kfa.NewWorker(kfa.Config{
|
||||
// medicationrequest.NewWorker(medicationrequest.Config{
|
||||
// DBManager: m.db,
|
||||
// InternalBaseURL: internalBaseURL,
|
||||
// PageSize: 100,
|
||||
// }, repo, m).Run(c)
|
||||
// OrganizationID: orgID,
|
||||
// }, m).Run(c)
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// name: "MedicationDispense",
|
||||
// delay: 2 * time.Second,
|
||||
// run: func(c context.Context) {
|
||||
// medicationdispense.NewWorker(medicationdispense.Config{
|
||||
// DBManager: m.db,
|
||||
// InternalBaseURL: internalBaseURL,
|
||||
// OrganizationID: orgID,
|
||||
// }, m).Run(c)
|
||||
// },
|
||||
// },
|
||||
{
|
||||
name: "KFA Master Puller",
|
||||
delay: 5 * time.Second,
|
||||
run: func(c context.Context) {
|
||||
repo := kfa.NewCommandRepository(m.db, "default")
|
||||
kfa.NewWorker(kfa.Config{
|
||||
InternalBaseURL: internalBaseURL,
|
||||
PageSize: 100,
|
||||
}, repo, m).Run(c)
|
||||
},
|
||||
},
|
||||
// {
|
||||
// name: "MedicationStatement",
|
||||
// delay: 2 * time.Second,
|
||||
// run: func(c context.Context) {
|
||||
|
||||
Reference in New Issue
Block a user