37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package imagingstudy
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
)
|
|
|
|
// MapToInternalAPI memetakan data gabungan ke payload API Internal SatuSehat
|
|
func MapToInternalAPI(dbData *ImagingStudyData, orgID string) map[string]interface{} {
|
|
waktu := time.Now()
|
|
if dbData.StartedDate.Valid {
|
|
waktu = dbData.StartedDate.Time
|
|
}
|
|
payload := map[string]interface{}{
|
|
"request_id": dbData.RequestID,
|
|
"servicerequest_id": dbData.ServiceRequestID.String,
|
|
"encounter_id": dbData.EncounterID.String,
|
|
"patient_id": dbData.PatientID.String,
|
|
"accession_number": dbData.NoRegister.String, // Digunakan sebagai Identifier SATUSEHAT
|
|
"modality": dbData.Modality.String,
|
|
"started_date": waktu.Format(time.RFC3339),
|
|
}
|
|
return payload
|
|
}
|
|
|
|
func MapToSyncLog(reqID string, fhirID string, reqPayload interface{}, respBody []byte, status string, errMsg string) ImagingStudySyncLog {
|
|
reqBytes, _ := json.MarshalIndent(reqPayload, "", " ")
|
|
return ImagingStudySyncLog{
|
|
RequestID: reqID,
|
|
ImagingStudyID: fhirID,
|
|
RequestPayload: string(reqBytes),
|
|
ResponsePayload: string(respBody),
|
|
Status: status,
|
|
ErrorMessage: errMsg,
|
|
}
|
|
}
|