cheminfo / cheminfo/nmrium

auto processing workflows

Open
#3,614 7 comments 0 reactions 1 assignee Claimed by @hamed-musallam View on GitHub
Dominant language
TypeScript
Stars
80
Forks
34
Avg merge
2d 8h
Merged PRs (30d)
37

Description

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')

```TS
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.

```TS
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 */ ]
}
]
}

```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.