penambahan All case Satu sehat
This commit is contained in:
No files matched your search
@@ -1,33 +1,78 @@
|
||||
package medication
|
||||
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"service/internal/interfaces/satusehat"
|
||||
)
|
||||
|
||||
func MapRequestToFHIR(req MedicationRequest) satusehat.FHIRPayload {
|
||||
payload := satusehat.NewFHIRPayload("Medication").
|
||||
Set("status", req.StatusCode).
|
||||
Set("code", map[string]interface{}{
|
||||
"coding": []map[string]interface{}{
|
||||
{
|
||||
"system": "http://sys-ids.kemkes.go.id/kfa",
|
||||
"code": req.KfaCode,
|
||||
"display": req.KfaDisplay,
|
||||
payload := satusehat.NewFHIRPayload("Medication")
|
||||
|
||||
orgID := os.Getenv("SATUSEHAT_ORG_ID")
|
||||
if orgID == "" {
|
||||
orgID = req.OrganizationID
|
||||
}
|
||||
|
||||
// Set Meta Profile secara otomatis
|
||||
payload.Set("meta", map[string]interface{}{
|
||||
"profile": []string{"https://fhir.kemkes.go.id/r4/StructureDefinition/Medication"},
|
||||
})
|
||||
|
||||
// Set Extension MedicationType (Non-compound) secara otomatis
|
||||
payload.Set("extension", []map[string]interface{}{
|
||||
{
|
||||
"url": "https://fhir.kemkes.go.id/r4/StructureDefinition/MedicationType",
|
||||
"valueCodeableConcept": map[string]interface{}{
|
||||
"coding": []map[string]interface{}{
|
||||
{
|
||||
"system": "http://terminology.kemkes.go.id/CodeSystem/medication-type",
|
||||
"code": "NC",
|
||||
"display": "Non-compound",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
if orgID != "" && req.MedicationID != "" {
|
||||
payload.Set("identifier", []map[string]interface{}{
|
||||
{
|
||||
"system": "http://sys-ids.kemkes.go.id/medication/" + orgID,
|
||||
"use": "official",
|
||||
"value": req.MedicationID,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if req.StatusCode != "" {
|
||||
payload.Set("status", req.StatusCode)
|
||||
}
|
||||
|
||||
if req.KfaCode != "" {
|
||||
coding := map[string]interface{}{
|
||||
"system": "http://sys-ids.kemkes.go.id/kfa",
|
||||
"code": req.KfaCode,
|
||||
}
|
||||
if req.KfaDisplay != "" {
|
||||
coding["display"] = req.KfaDisplay
|
||||
}
|
||||
payload.Set("code", map[string]interface{}{
|
||||
"coding": []map[string]interface{}{coding},
|
||||
})
|
||||
}
|
||||
|
||||
if req.FormCode != "" {
|
||||
coding := map[string]interface{}{
|
||||
"system": "http://terminology.kemkes.go.id/CodeSystem/medication-form",
|
||||
"code": req.FormCode,
|
||||
}
|
||||
if req.FormDisplay != "" {
|
||||
coding["display"] = req.FormDisplay
|
||||
}
|
||||
payload.Set("form", map[string]interface{}{
|
||||
"coding": []map[string]interface{}{
|
||||
{
|
||||
"system": "http://terminology.kemkes.go.id/CodeSystem/medication-form",
|
||||
"code": req.FormCode,
|
||||
"display": req.FormDisplay,
|
||||
},
|
||||
},
|
||||
"coding": []map[string]interface{}{coding},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -37,11 +82,15 @@ func MapRequestToFHIR(req MedicationRequest) satusehat.FHIRPayload {
|
||||
})
|
||||
}
|
||||
|
||||
if req.BatchNumber != "" && req.ExpirationDate != nil {
|
||||
payload.Set("batch", map[string]interface{}{
|
||||
"lotNumber": req.BatchNumber,
|
||||
"expirationDate": req.ExpirationDate.Format(time.RFC3339),
|
||||
})
|
||||
if req.BatchNumber != "" || req.ExpirationDate != nil {
|
||||
batch := map[string]interface{}{}
|
||||
if req.BatchNumber != "" {
|
||||
batch["lotNumber"] = req.BatchNumber
|
||||
}
|
||||
if req.ExpirationDate != nil {
|
||||
batch["expirationDate"] = req.ExpirationDate.Format(time.RFC3339)
|
||||
}
|
||||
payload.Set("batch", batch)
|
||||
}
|
||||
|
||||
return payload
|
||||
|
||||
Reference in New Issue
Block a user