concat

Last updated: Feb 24, 2026
DEVELOPER
IMPLEMENTATION
HEALTH TECH VENDOR

Definition

In a config modifier schema, use concat to create an array by linking defined elements together. Each element under the concat keyword can be composed of any other valid config modifier keywords. Essentially, this creates an array list for a property in the output or a list to be checked during processing.

Exclusive keywords

If properties, if, concat, switch, pipe, merge, prefer, or items are present at the same nesting level, only the first keyword listed will run. We recommend not listing these keywords together at the same nesting level.

Useful expressions for concat

There are a couple of expressions that you should know about when using concat.

  • - : Indicates an array or list item in standard YAML and can still be used that way generally with config modifiers. However, in the context of concat, a hyphen (-) can also indicate one independent value that should be present in an array. Each element in the array should be designated with a - before the key-value pair.
  • {}: Refers to a current value in an array within the initial payload. Use this to retain an original value rather than deleting or overwriting it. To make sure the value appears in a processed payload as-is, add this expression on its own line in the concat object as - {}.

Order of execution

This keyword executes in the following order:

  1. omit
  2. constant
  3. references
  4. use
  5. get
  6. Mutually exclusive keywords at this level:
    • properties
    • if
    • concat
    • switch
    • pipe
    • merge
    • prefer
    • items
  7. default
  8. plugin

Example 1: Join items in one list

You can use concat and - to check for items in an array then joining them in one list rather than checking each item individually.

Example: Observations input from initial payload
json
1
"Observations": [
2
{
3
"AbnormalFlag": null,
4
"Code": "93246-7",
5
...
6
"Status": "Final",
7
"Units": null,
8
"Value": "1",
9
"ValueType": "Coded Entry"
10
},
11
{
12
"AbnormalFlag": null,
13
"Code": "93247-5",
14
...
15
"Status": "Final",
16
"Units": null,
17
"Value": "1",
18
"ValueType": "Coded Entry"
19
},
20
{
21
"AbnormalFlag": null,
22
"Code": "NF1570400181",
23
...
24
"Status": "Final",
25
"Units": null,
26
"Value": "High Risk",
27
"ValueType": "String"
28
},
29
{
30
"AbnormalFlag": null,
31
"Code": "93267-3",
32
...
33
"Status": "Final",
34
"Units": null,
35
"Value": "1",
36
"ValueType": "Coded Entry"
37
},
38
{
39
"AbnormalFlag": null,
40
"Code": "93269-9",
41
...
42
"Status": "Final",
43
"Units": null,
44
"Value": "0",
45
"ValueType": "Coded Entry"
46
},
47
{
48
"AbnormalFlag": null,
49
"Code": "NF1570400504",
50
...
51
"Status": "Final",
52
"Units": null,
53
"Value": "Putting my notes here",
54
"ValueType": "String"
55
}
56
]
Example: Observations selector
json
1
$.Observations
Example: Config modifier with concat and include keywords
yaml
1
items:
2
if:
3
operator: includes
4
terms:
5
- concat:
6
- constant: NF1570400504
7
- constant: NF1570400181
8
- constant: 93374-7
9
- get: Code
10
then:
11
omit: true
12
else:
13
comment: pass observation through
Example: Observations output
json
1
"Observations": [
2
{
3
"AbnormalFlag": null,
4
"Code": "93246-7",
5
...
6
"Status": "Final",
7
"Units": null,
8
"Value": "1",
9
"ValueType": "Coded Entry"
10
},
11
{
12
"AbnormalFlag": null,
13
"Code": "93247-5",
14
...
15
"Status": "Final",
16
"Units": null,
17
"Value": "1",
18
"ValueType": "Coded Entry"
19
},
20
{
21
"AbnormalFlag": null,
22
"Code": "93267-3",
23
...
24
"Status": "Final",
25
"Units": null,
26
"Value": "1",
27
"ValueType": "Coded Entry"
28
},
29
{
30
"AbnormalFlag": null,
31
"Code": "93269-9",
32
...
33
"Status": "Final",
34
"Units": null,
35
"Value": "0",
36
"ValueType": "Coded Entry"
37
}
38
],

Example 2: Add a new item in an array

You can use concat and {} to add a new item to an array that already exists in the payload, rather than replacing it entirely.

Example 2: Concat input
json
1
{
2
"Patient": {
3
"Roles": ["PC"]
4
}
5
}
Example 2: Concat selector
json
1
$.Patient.Roles
Example 2: Config modifier with concat keyword and {}
yaml
1
concat:
2
- {}
3
- constant: SC
Example 2: Concat output
json
1
{
2
"Patient": {
3
"Roles": ["PC", "SC"]
4
}
5
}

FHIR® is a registered trademark of Health Level Seven International (HL7) and is used with the permission of HL7. Use of this trademark does not constitute an endorsement of products/services by HL7®.