File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -194,6 +194,22 @@ def dc_info_to_detectorclass(
194194 elif template .endswith (".cbf" ):
195195 return "pilatus"
196196
197+ def dc_info_to_detectorname (
198+ self , dc_info , session : sqlalchemy .orm .session .Session
199+ ):
200+ ## Get a detector name if it is one of a set of allowed values for fast feedback service.
201+ det_id = dc_info .get ("detectorId" )
202+ if det_id is not None and (det := crud .get_detector (det_id , session )):
203+ if det .detectorModel == "Eiger2 XE 16M" :
204+ return "Eiger16M"
205+ elif det .detectorModel == "Eiger2 X 4M" :
206+ return "Eiger4M"
207+ elif det .detectorModel == "Eiger2 X CdTe 9M" :
208+ return "Eiger9MCdTe"
209+
210+ # Not one of the set of detectors allowed for fast feedback service.
211+ return None
212+
197213 def get_sample_group_dcids (
198214 self ,
199215 ispyb_info ,
@@ -847,6 +863,7 @@ def ispyb_filter(
847863 parameters ["ispyb_beamline" ] = i .get_beamline_from_dcid (dc_id , session )
848864
849865 parameters ["ispyb_detectorclass" ] = i .dc_info_to_detectorclass (dc_info , session )
866+ parameters ["ispyb_detectorname" ] = i .dc_info_to_detectorname (dc_info , session )
850867 parameters ["ispyb_dc_info" ] = dc_info
851868 parameters ["ispyb_dc_info" ]["gridinfo" ] = i .get_gridscan_info (
852869 dc_info .get ("dataCollectionId" ), dc_info .get ("dataCollectionGroupId" ), session
Original file line number Diff line number Diff line change @@ -362,6 +362,16 @@ def test_filter_function(db_session):
362362 param = {"ispyb_dcid" : ds ["i19_screening" ]}
363363 msg , param = ispyb_filter (msg , param , db_session )
364364
365+ def test_get_detectorname (db_session ):
366+ test_data = {
367+ "i03" : {"dcid" : 19714078 , "expected" : "Eiger16M" },
368+ "i24" : {"dcid" : 16030696 , "expected" : "Eiger9MCdTe" }
369+ }
370+ for d in test_data .values ():
371+ message = {}
372+ parameters = {"ispyb_dcid" : d ["dcid" ]}
373+ message , parameters = ispyb_filter (message , parameters , db_session )
374+ assert parameters ["ispyb_detectorname" ] == d ["expected" ]
365375
366376def test_filter_function_with_load_config_file_timeout (monkeypatch , db_session ):
367377 def mock_load_config_file (* args , ** kwargs ):
You can’t perform that action at this time.
0 commit comments