Technical changes:

When an injection is being created, we also pass postprocessing for all channels:

{
  "D": [{}, {}, {}, {}, {}, {}], // 6 postprocessings
  "D1": [],
  "AD": []
}

Then, on the backend side, we link postprocessings with measurements.

Then, the scheduler finds uncompleted postprocessings for finished injections and runs them.

We need to add a status field for postprocessing to implement the above.