Merge branch 'main' of https://git.rssa.top/meninjar/service-satusehat
This commit is contained in:
+786
-131
File diff suppressed because it is too large
Load Diff
@@ -27,15 +27,33 @@ 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"`
|
||||||
SpecimenIDs []string `json:"specimen_ids,omitempty"`
|
ResultObservationSystem []string `json:"result_observation_system,omitempty"`
|
||||||
BasedOnIDs []string `json:"based_on_service_request_ids,omitempty"`
|
ResultObservationCode []string `json:"result_observation_code,omitempty"`
|
||||||
ImagingStudyIDs []string `json:"imaging_study_ids,omitempty"`
|
ResultObservationDisplay []string `json:"result_observation_display,omitempty"`
|
||||||
|
|
||||||
|
SpecimenIDs []string `json:"specimen_ids,omitempty"`
|
||||||
|
SpecimenSystem []string `json:"specimen_system,omitempty"`
|
||||||
|
SpecimenCode []string `json:"specimen_code,omitempty"`
|
||||||
|
SpecimenDisplay []string `json:"specimen_display,omitempty"`
|
||||||
|
|
||||||
|
BasedOnIDs string `json:"based_on_service_request_ids,omitempty"`
|
||||||
|
BasedOnSystem []string `json:"based_on_service_request_system,omitempty"`
|
||||||
|
BasedOnCode []string `json:"based_on_service_request_code,omitempty"`
|
||||||
|
BasedOnDisplay []string `json:"based_on_service_request_display,omitempty"`
|
||||||
|
|
||||||
|
ImagingStudyIDs []string `json:"imaging_study_ids,omitempty"`
|
||||||
|
ImagingStudySystem []string `json:"imaging_study_system,omitempty"`
|
||||||
|
ImagingStudyCode []string `json:"imaging_study_code,omitempty"`
|
||||||
|
ImagingStudyDisplay []string `json:"imaging_study_display,omitempty"`
|
||||||
|
|
||||||
ConclusionCodeSystem string `json:"conclusion_code_system,omitempty"`
|
ConclusionCodeSystem string `json:"conclusion_code_system,omitempty"`
|
||||||
ConclusionCode string `json:"conclusion_code,omitempty"`
|
ConclusionCode string `json:"conclusion_code,omitempty"`
|
||||||
ConclusionCodeDisplay string `json:"conclusion_code_display,omitempty"`
|
ConclusionCodeDisplay string `json:"conclusion_code_display,omitempty"`
|
||||||
Conclusion string `json:"conclusion,omitempty"`
|
Conclusion string `json:"conclusion,omitempty"`
|
||||||
|
|
||||||
|
ObservationID string `json:"observation_id,omitempty"`
|
||||||
|
ServiceRequestID string `json:"service_request_id,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DiagnosticReportPatchRequest []map[string]interface{}
|
type DiagnosticReportPatchRequest []map[string]interface{}
|
||||||
@@ -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 {
|
||||||
@@ -120,5 +116,13 @@ func MapRequestToFHIR(req DiagnosticReportRequest) satusehat.FHIRPayload {
|
|||||||
payload.Set("conclusion", req.Conclusion)
|
payload.Set("conclusion", req.Conclusion)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if req.ObservationID != "" {
|
||||||
|
payload.Set("observation", map[string]interface{}{"reference": "Observation/" + req.ObservationID})
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.ServiceRequestID != "" {
|
||||||
|
payload.Set("serviceRequest", map[string]interface{}{"reference": "ServiceRequest/" + req.ServiceRequestID})
|
||||||
|
}
|
||||||
|
|
||||||
return payload
|
return payload
|
||||||
}
|
}
|
||||||
@@ -55,6 +55,13 @@ type ObservationRequest struct {
|
|||||||
ReferenceRangeHighValue *float64 `json:"reference_range_high_value,omitempty"`
|
ReferenceRangeHighValue *float64 `json:"reference_range_high_value,omitempty"`
|
||||||
ReferenceRangeUnit string `json:"reference_range_unit,omitempty"`
|
ReferenceRangeUnit string `json:"reference_range_unit,omitempty"`
|
||||||
ReferenceRangeText string `json:"reference_range_text,omitempty"`
|
ReferenceRangeText string `json:"reference_range_text,omitempty"`
|
||||||
|
|
||||||
|
ServiceRequestID string `json:"service_request_id,omitempty"`
|
||||||
|
|
||||||
|
ResultObservationIDs []string `json:"result_observation_ids,omitempty"`
|
||||||
|
ResultObservationSystem []string `json:"result_observation_system,omitempty"`
|
||||||
|
ResultObservationCode []string `json:"result_observation_code,omitempty"`
|
||||||
|
ResultObservationDisplay []string `json:"result_observation_display,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ObservationPatchRequest []map[string]interface{}
|
type ObservationPatchRequest []map[string]interface{}
|
||||||
@@ -95,6 +95,12 @@ func MapRequestToFHIR(req ObservationRequest) satusehat.FHIRPayload {
|
|||||||
payload.Set("bodySite", map[string]interface{}{"coding": []map[string]interface{}{coding}})
|
payload.Set("bodySite", map[string]interface{}{"coding": []map[string]interface{}{coding}})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if req.ServiceRequestID != "" {
|
||||||
|
payload.Set("basedOn", []map[string]interface{}{
|
||||||
|
{"reference": "ServiceRequest/" + req.ServiceRequestID},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
case req.ValueQuantityValue != nil:
|
case req.ValueQuantityValue != nil:
|
||||||
sys := req.ValueQuantitySystem
|
sys := req.ValueQuantitySystem
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user