36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package medication
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
)
|
|
|
|
// TODO: Sesuaikan dengan payload internal API Medication
|
|
func MapToInternalAPI(dbData *MedicationDB, orgID string) map[string]interface{} {
|
|
payload := map[string]interface{}{
|
|
"status_code": "active",
|
|
"kfa_code": dbData.KodeKFA.String,
|
|
"kfa_display": dbData.NamaKFA.String,
|
|
"form_code": dbData.KodeBentuk.String,
|
|
"form_display": dbData.NamaBentuk.String,
|
|
"manufacturer_id": orgID, // Bisa disesuaikan menjadi dbData.ManufacturerID.String jika beda pabrik
|
|
"batch_number": dbData.NoBatch.String,
|
|
}
|
|
if dbData.TglKadaluarsa.Valid {
|
|
payload["expiration_date"] = dbData.TglKadaluarsa.Time.Format(time.RFC3339)
|
|
}
|
|
return payload
|
|
}
|
|
|
|
func MapToSyncLog(idx int64, fhirID string, reqPayload interface{}, respBody []byte, status string, errMsg string) MedicationSyncLog {
|
|
reqBytes, _ := json.MarshalIndent(reqPayload, "", " ")
|
|
return MedicationSyncLog{
|
|
IdxObat: idx,
|
|
MedicationID: fhirID,
|
|
RequestPayload: string(reqBytes),
|
|
ResponsePayload: string(respBody),
|
|
Status: status,
|
|
ErrorMessage: errMsg,
|
|
}
|
|
}
|