@@ -233,6 +233,7 @@ class ProvidedProcessingParameters(BaseModel):
233233 particle_diameter : Optional [float ] = None
234234 symmetry : str = "C1"
235235 eer_fractionation : int = 20
236+ run_class3d : bool = True
236237
237238
238239@router .post ("/sessions/{session_id}/provided_processing_parameters" )
@@ -241,13 +242,26 @@ async def pass_proc_params_to_instrument_server(
241242):
242243 session = db .exec (select (Session ).where (Session .id == session_id )).one ()
243244
244- session_processing_parameters = SessionProcessingParameters (
245- session_id = session_id ,
246- dose_per_frame = proc_params .dose_per_frame ,
247- gain_ref = session .current_gain_ref ,
248- symmetry = proc_params .symmetry ,
249- eer_fractionation = proc_params .eer_fractionation ,
250- )
245+ existing_parameters = db .exec (
246+ select (SessionProcessingParameters ).where (
247+ SessionProcessingParameters .session_id == session_id
248+ )
249+ ).all ()
250+ if not existing_parameters :
251+ session_processing_parameters = SessionProcessingParameters (
252+ session_id = session_id ,
253+ dose_per_frame = proc_params .dose_per_frame ,
254+ gain_ref = session .current_gain_ref ,
255+ symmetry = proc_params .symmetry ,
256+ eer_fractionation = proc_params .eer_fractionation ,
257+ run_class3d = proc_params .run_class3d ,
258+ )
259+ else :
260+ session_processing_parameters = existing_parameters [0 ]
261+ session_processing_parameters .dose_per_frame = proc_params .dose_per_frame
262+ session_processing_parameters .eer_fractionation = proc_params .eer_fractionation
263+ session_processing_parameters .symmetry = proc_params .symmetry
264+ session_processing_parameters .run_class3d = proc_params .run_class3d
251265 db .add (session_processing_parameters )
252266 db .commit ()
253267
0 commit comments