6. properties

Last updated: Sep 26, 2025
DEVELOPER
IMPLEMENTATION
HEALTH TECH VENDOR

Definition

In a config modifier schema, use properties to define individual properties to construct an object in the processed payload.

Nesting level

This keyword executes at the following nesting level:

  1. omit
  2. constant
  3. references
  4. use
  5. get
  6. properties or if or concat or switch or pipe or merge
  7. default
  8. plugin

Example

In this example, you have an HL7v2 RDE message that gets mapped to the Redox Medication data model, which doesn't include an Order.ClinicalInfo array.

Example: properties input
json
1
{
2
...,
3
"ORDER": [
4
{
5
...
6
"OBSERVATION": [
7
{
8
"OBX": {
9
"1": "1",
10
"2": "ST",
11
"3": {
12
"1": "12260968",
13
"2": "Specify type of feeding"
14
},
15
"5": [
16
"Infant Bolus"
17
]
18
}
19
}
20
]
21
}
22
]
23
}

However, the destination wants each OBX segment in the HL7v2 message and decides they want it to come through a ClinicalInfo array under Order.

The following schema ensures the order remains unchanged. It creates a new ClinicalInfo array by iterating over the initial message’s ORDER[0].OBSERVATION array and getting a specific OBX component.

Each ClinicalInfo requires the following properties:

  • Code
  • Description
  • Value
  • Units
  • Codeset

These fields must be nested under the ClinicalInfo array property name.

Example: Properties selector
json
1
$.Order
Example: Config modifier with properties keyword
yaml
1
merge:
2
- {}
3
- properties:
4
ClinicalInfo:
5
use: initialPayload
6
get: ORDER[0].OBSERVATION
7
items:
8
properties:
9
Code:
10
get: OBX.3.1
11
Description:
12
get: OBX.3.2
13
Value:
14
get: OBX.5[0]
15
Units:
16
get: OBX.6.1
17
Codeset:
18
get: OBX.2

Given that, the output would be:

Example: Properties output
json
1
{
2
...,
3
"Order": {
4
"ClinicalInfo": [
5
{
6
"Code": "12260968",
7
"Codeset": "ST",
8
"Description": "Specify type of feeding",
9
"Value": "Infant Bolus"
10
}
11
],
12
...
13
}
14
}