Medication Update
This commit is contained in:
No files matched your search
@@ -2,31 +2,42 @@ package medication
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// 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,
|
||||
// MapToInternalAPI memetakan data DB ke payload API Internal Medication
|
||||
func MapToInternalAPI(dbData *MedicationDB, orgID string, kfaDisplay, formCode, formDisplay string) map[string]interface{} {
|
||||
payload := make(map[string]interface{})
|
||||
|
||||
payload["status_code"] = "active"
|
||||
|
||||
if dbData.IdxPesanObat != 0 {
|
||||
payload["medication_id"] = strconv.FormatInt(dbData.IdxPesanObat, 10)
|
||||
}
|
||||
if dbData.TglKadaluarsa.Valid {
|
||||
payload["expiration_date"] = dbData.TglKadaluarsa.Time.Format(time.RFC3339)
|
||||
if dbData.KfaCode.Valid && dbData.KfaCode.String != "" {
|
||||
payload["kfa_code"] = dbData.KfaCode.String
|
||||
}
|
||||
if orgID != "" {
|
||||
payload["manufacturer_id"] = orgID
|
||||
}
|
||||
|
||||
if kfaDisplay != "" {
|
||||
payload["kfa_display"] = kfaDisplay
|
||||
}
|
||||
if formCode != "" {
|
||||
payload["form_code"] = formCode
|
||||
}
|
||||
if formDisplay != "" {
|
||||
payload["form_display"] = formDisplay
|
||||
}
|
||||
return payload
|
||||
}
|
||||
|
||||
func MapToSyncLog(idx int64, fhirID string, reqPayload interface{}, respBody []byte, status string, errMsg string) MedicationSyncLog {
|
||||
reqBytes, _ := json.MarshalIndent(reqPayload, "", " ")
|
||||
reqBytes, _ := json.Marshal(reqPayload)
|
||||
return MedicationSyncLog{
|
||||
IdxObat: idx,
|
||||
MedicationID: fhirID,
|
||||
IdxPesanObat: idx,
|
||||
SatuSehatID: fhirID,
|
||||
RequestPayload: string(reqBytes),
|
||||
ResponsePayload: string(respBody),
|
||||
Status: status,
|
||||
|
||||
Reference in New Issue
Block a user