@@ -476,8 +476,11 @@ def fill_extraction_qc_plate(
476476
477477 def attach_plate_well_data (self , request : PlateWellDataRequest ) -> dict [str , Any ]:
478478 mappings : list [dict [str , Any ]] = []
479+ plate_euids : set [str ] = set ()
479480 for record in request .records :
480481 well = self ._well_for_data_record (record )
482+ if record .plate_euid :
483+ plate_euids .add (record .plate_euid )
481484 target = well if record .target == "well" else self ._well_content (well )
482485 data = self ._create_by_code (
483486 request .data_template_code ,
@@ -493,6 +496,7 @@ def attach_plate_well_data(self, request: PlateWellDataRequest) -> dict[str, Any
493496 mappings .append (
494497 {
495498 "well_euid" : well .euid ,
499+ "plate_euid" : record .plate_euid ,
496500 "target_euid" : target .euid ,
497501 "data_euid" : data .euid ,
498502 "relationship_type" : request .relationship_type ,
@@ -505,7 +509,10 @@ def attach_plate_well_data(self, request: PlateWellDataRequest) -> dict[str, Any
505509 member_euids = [item ["data_euid" ] for item in mappings ],
506510 )
507511 self .bdb .session .commit ()
512+ sorted_plate_euids = sorted (plate_euids )
508513 return {
514+ "plate_euid" : sorted_plate_euids [0 ] if len (sorted_plate_euids ) == 1 else None ,
515+ "plate_euids" : sorted_plate_euids ,
509516 "run_set_euid" : run_set .euid if run_set is not None else None ,
510517 "mappings" : mappings ,
511518 }
0 commit comments