44from pynetdicom .events import Event
55from pynetdicom .sop_class import ModalityPerformedProcedureStep # pyright: ignore[reportAttributeAccessIssue]
66
7- from services .dicom import PROCESSING_FAILURE , SUCCESS , UNKNOWN_SOP_INSTANCE
7+ from services .dicom import INVALID_ATTRIBUTE , MISSING_ATTRIBUTE , PROCESSING_FAILURE , SUCCESS , UNKNOWN_SOP_INSTANCE
8+ from services .mwl import MWLStatus
89from services .storage import MWLStorage
910
1011logger = logging .getLogger (__name__ )
@@ -18,24 +19,30 @@ def call(self, event: Event) -> tuple[int, Dataset | None]:
1819 try :
1920 req = event .request
2021 requested_sop_instance_uid = getattr (req , "RequestedSOPInstanceUID" , None )
21- logger .info (f "MPPS N-SET: Received request for SOP Instance UID: { requested_sop_instance_uid } " )
22+ logger .info ("MPPS N-SET: Received request for SOP Instance UID: %s" , requested_sop_instance_uid )
2223
2324 mod_list = event .attribute_list
2425 status = mod_list .get ("PerformedProcedureStepStatus" )
2526 if not status :
2627 logger .warning ("MPPS N-SET: Missing PerformedProcedureStepStatus in request" )
27- return PROCESSING_FAILURE , None
28+ return MISSING_ATTRIBUTE , None
29+
30+ if status not in [MWLStatus .COMPLETED .value , MWLStatus .DISCONTINUED .value ]:
31+ logger .warning ("MPPS N-SET: Invalid PerformedProcedureStepStatus: %s" , status )
32+ return INVALID_ATTRIBUTE , None
2833
2934 worklist_item = self .storage .get_worklist_item_by_mpps_instance_uid (requested_sop_instance_uid )
3035 if not worklist_item :
31- logger .warning (f"MPPS N-SET: No worklist item found for SOP Instance UID: { requested_sop_instance_uid } " )
36+ logger .warning (
37+ "MPPS N-SET: No worklist item found for SOP Instance UID: %s" , requested_sop_instance_uid
38+ )
3239 return UNKNOWN_SOP_INSTANCE , None
3340
3441 accession_number = worklist_item .accession_number
3542
3643 source_message_id = self .storage .update_status (accession_number , status )
3744 if source_message_id :
38- logger .info (f "Database updated: { accession_number } -> { status } " )
45+ logger .info ("Database updated: %s -> %s" , accession_number , status )
3946
4047 ds = Dataset ()
4148 ds .SOPClassUID = ModalityPerformedProcedureStep
@@ -48,5 +55,5 @@ def call(self, event: Event) -> tuple[int, Dataset | None]:
4855 logger .warning ("MPPS N-SET: Failed to update database with new status" )
4956 return PROCESSING_FAILURE , None
5057 except Exception as e :
51- logger .error (f "Error in handle_set: { str (e )} " , exc_info = True )
58+ logger .error ("Error in handle_set: %s" , str (e ), exc_info = True )
5259 return PROCESSING_FAILURE , None
0 commit comments