update mappping

This commit is contained in:
meninjar
2026-08-04 11:46:50 +00:00
parent b8e219868d
commit ccd5a0974d
4 changed files with 21 additions and 25 deletions
@@ -27,7 +27,7 @@ type DiagnosticReportRequest struct {
PerformerID string `json:"performer_id,omitempty"` PerformerID string `json:"performer_id,omitempty"`
PerformerName string `json:"performer_name,omitempty"` PerformerName string `json:"performer_name,omitempty"`
ResultObservationIDs []string `json:"result_observation_ids,omitempty"` ResultObservationIDs string `json:"result_observation_ids,omitempty"`
ResultObservationSystem []string `json:"result_observation_system,omitempty"` ResultObservationSystem []string `json:"result_observation_system,omitempty"`
ResultObservationCode []string `json:"result_observation_code,omitempty"` ResultObservationCode []string `json:"result_observation_code,omitempty"`
ResultObservationDisplay []string `json:"result_observation_display,omitempty"` ResultObservationDisplay []string `json:"result_observation_display,omitempty"`
@@ -37,7 +37,7 @@ type DiagnosticReportRequest struct {
SpecimenCode []string `json:"specimen_code,omitempty"` SpecimenCode []string `json:"specimen_code,omitempty"`
SpecimenDisplay []string `json:"specimen_display,omitempty"` SpecimenDisplay []string `json:"specimen_display,omitempty"`
BasedOnIDs []string `json:"based_on_service_request_ids,omitempty"` BasedOnIDs string `json:"based_on_service_request_ids,omitempty"`
BasedOnSystem []string `json:"based_on_service_request_system,omitempty"` BasedOnSystem []string `json:"based_on_service_request_system,omitempty"`
BasedOnCode []string `json:"based_on_service_request_code,omitempty"` BasedOnCode []string `json:"based_on_service_request_code,omitempty"`
BasedOnDisplay []string `json:"based_on_service_request_display,omitempty"` BasedOnDisplay []string `json:"based_on_service_request_display,omitempty"`
@@ -73,11 +73,9 @@ func MapRequestToFHIR(req DiagnosticReportRequest) satusehat.FHIRPayload {
payload.Set("performer", []map[string]interface{}{perf}) payload.Set("performer", []map[string]interface{}{perf})
} }
if len(req.ResultObservationIDs) > 0 { if req.ResultObservationIDs != "" {
results := make([]map[string]interface{}, 0, len(req.ResultObservationIDs)) results := make([]map[string]interface{}, 0, 1)
for _, id := range req.ResultObservationIDs { results = append(results, map[string]interface{}{"reference": "Observation/" + req.ResultObservationIDs})
results = append(results, map[string]interface{}{"reference": "Observation/" + id})
}
payload.Set("result", results) payload.Set("result", results)
} }
if len(req.SpecimenIDs) > 0 { if len(req.SpecimenIDs) > 0 {
@@ -87,11 +85,9 @@ func MapRequestToFHIR(req DiagnosticReportRequest) satusehat.FHIRPayload {
} }
payload.Set("specimen", specs) payload.Set("specimen", specs)
} }
if len(req.BasedOnIDs) > 0 { if req.BasedOnIDs != "" {
basedOns := make([]map[string]interface{}, 0, len(req.BasedOnIDs)) basedOns := make([]map[string]interface{}, 0, 1)
for _, id := range req.BasedOnIDs { basedOns = append(basedOns, map[string]interface{}{"reference": "ServiceRequest/" + req.BasedOnIDs})
basedOns = append(basedOns, map[string]interface{}{"reference": "ServiceRequest/" + id})
}
payload.Set("basedOn", basedOns) payload.Set("basedOn", basedOns)
} }
if len(req.ImagingStudyIDs) > 0 { if len(req.ImagingStudyIDs) > 0 {
@@ -6,18 +6,18 @@ type ServiceRequestRequest struct {
OrganizationID string `json:"organization_id,omitempty"` OrganizationID string `json:"organization_id,omitempty"`
ServiceRequestID string `json:"service_request_id,omitempty"` ServiceRequestID string `json:"service_request_id,omitempty"`
PatientID string `json:"patient_id,omitempty"` PatientID string `json:"patient_id,omitempty"`
PatientName string `json:"patient_name,omitempty"` PatientName string `json:"patient_name,omitempty"`
EncounterID string `json:"encounter_id,omitempty"` EncounterID string `json:"encounter_id,omitempty"`
RequesterID string `json:"requester_id,omitempty"` RequesterID string `json:"requester_id,omitempty"`
PerformerID string `json:"performer_id,omitempty"` PerformerID string `json:"performer_id,omitempty"`
RequesterName string `json:"requester_name,omitempty"` RequesterName string `json:"requester_name,omitempty"`
PerformerName string `json:"performer_name,omitempty"` PerformerName string `json:"performer_name,omitempty"`
Status string `json:"status,omitempty" binding:"omitempty,oneof=draft active on-hold revoked completed entered-in-error unknown"` Status string `json:"status,omitempty" binding:"omitempty,oneof=draft active on-hold revoked completed entered-in-error unknown"`
Intent string `json:"intent,omitempty" binding:"omitempty,oneof=proposal plan directive order original-order reflex-order filler-order instance-order option"` Intent string `json:"intent,omitempty" binding:"omitempty,oneof=proposal plan directive order original-order reflex-order filler-order instance-order option"`
Code string `json:"code,omitempty"` Code []string `json:"code,omitempty"`
System string `json:"system,omitempty"` System string `json:"system,omitempty"`
Display string `json:"display,omitempty"` Display string `json:"display,omitempty"`
AuthoredOn time.Time `json:"authored_on,omitempty"` AuthoredOn time.Time `json:"authored_on,omitempty"`
} }
type ServiceRequestPatchRequest []map[string]interface{} type ServiceRequestPatchRequest []map[string]interface{}
@@ -27,7 +27,7 @@ func MapRequestToFHIR(req ServiceRequestRequest) satusehat.FHIRPayload {
payload.Set("intent", req.Intent) payload.Set("intent", req.Intent)
} }
if req.Code != "" { if len(req.Code) > 0 {
system := "http://snomed.info/sct" system := "http://snomed.info/sct"
if req.System != "" { if req.System != "" {
system = req.System system = req.System