From 514beca833e9c5c80d979ca98153aed8e2e5ec44 Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Mon, 13 Apr 2026 08:12:10 +0200 Subject: [PATCH] Correct Parameters.parameter sent as bare object instead of array patchset_resource() was assigning a single Parameter to parameters.parameter, which fhir_models serialized as a bare JSON object. FHIR R4 requires Parameters.parameter to be a JSON array. Build the parameter first then assign as [param]. --- lib/tests/suites/fhir_path_patch_test.rb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/tests/suites/fhir_path_patch_test.rb b/lib/tests/suites/fhir_path_patch_test.rb index 6fe77a3..9fa956e 100644 --- a/lib/tests/suites/fhir_path_patch_test.rb +++ b/lib/tests/suites/fhir_path_patch_test.rb @@ -126,19 +126,20 @@ def resource_format(f) def patchset_resource(op, path, name, value) parameters = get_resource(:Parameters).new - parameters.parameter = new_parameter("operation") - parameters.parameter.part = [ + param = new_parameter("operation") + param.part = [ new_parameter("type"), new_parameter("path"), new_parameter("value") ] - parameters.parameter.part[0].valueCode = op - parameters.parameter.part[1].valueString = path - parameters.parameter.part[2].valueString = value + param.part[0].valueCode = op + param.part[1].valueString = path + param.part[2].valueString = value if !name.nil? - parameters.parameter.part += new_parameter("name") - parameters.parameter.part[3].valueString = name + param.part += [new_parameter("name")] + param.part[3].valueString = name end + parameters.parameter = [param] parameters end