To support more flexible auto-processing workflows from the processing panel, we need to refactor the existing structure.
The old structure of the auto processing filters is based on the nucleus type ('1H', '13C')
onLoadProcessing: {
autoProcessing: true,
filters: {
'1H': [ /* array of filters */ ],
'13C': [ /* array of filters */ ],
}
}
The new format introduces a flat list of workflow, where:
- Each item has a condition (jpath and value)
- Workflow items are linked using
id and parentId to form a hierarchical tree. The system traverses this tree sequentially, performing a value match for each specified jpath. Filters are applied only when they have matching conditions.
onLoadProcessing: {
autoProcessing: true,
workflows: [
{
id: '1',
parentId: null,
jpath: ['info','nucleus'],
value: '1H',
enabled: true,
filters: [ /* array of filters */ ]
},
{
id: '2',
parentId: '1',
jpath:['info','x'],
value: '298K',
enabled: true,
filters:[ /* array of filters */ ]
},
{
id: '3',
parentId: '2',
jpath: ['info','y'],
value: 1002,
enabled: true,
filters: [ /* array of filters */ ]
}
]
}
To support more flexible auto-processing workflows from the processing panel, we need to refactor the existing structure.
The old structure of the auto processing filters is based on the nucleus type ('1H', '13C')
The new format introduces a flat list of workflow, where:
idandparentIdto form a hierarchical tree. The system traverses this tree sequentially, performing a value match for each specified jpath. Filters are applied only when they have matching conditions.