55from pynetdicom .sop_class import ModalityPerformedProcedureStep # pyright: ignore[reportAttributeAccessIssue]
66
77from services .dicom import DUPLICATE_SOP_INSTANCE , INVALID_ATTRIBUTE , MISSING_ATTRIBUTE , PROCESSING_FAILURE , SUCCESS
8+ from services .mwl import MWLStatus
89from services .storage import MWLStorage
910
1011logger = logging .getLogger (__name__ )
1112
12- UNKNOWN = "UNKNOWN"
13-
1413
1514class NCreate :
1615 def __init__ (self , storage : MWLStorage ):
@@ -31,11 +30,14 @@ def call(self, event: Event) -> tuple[int, Dataset | None]:
3130 return DUPLICATE_SOP_INSTANCE , None
3231
3332 attr_list = event .attribute_list
33+ status = getattr (attr_list , "PerformedProcedureStepStatus" , None )
3434
35- if "PerformedProcedureStepStatus" not in attr_list :
35+ if not status :
36+ logger .warning ("MPPS N-CREATE: Missing PerformedProcedureStepStatus in request" )
3637 return MISSING_ATTRIBUTE , None
3738
38- if attr_list .PerformedProcedureStepStatus .upper () != "IN PROGRESS" :
39+ if status .upper () != MWLStatus .IN_PROGRESS .value :
40+ logger .warning ("MPPS N-CREATE: Invalid PerformedProcedureStepStatus value: %s" , status )
3941 return INVALID_ATTRIBUTE , None
4042
4143 ds .SOPClassUID = ModalityPerformedProcedureStep
@@ -50,20 +52,22 @@ def call(self, event: Event) -> tuple[int, Dataset | None]:
5052 sps = attr_list .ScheduledStepAttributesSequence [0 ]
5153 accession_number = sps .get ("AccessionNumber" )
5254
53- logger .info ("MPPS N-CREATE: Started procedure for Accession Number: %w " , accession_number )
55+ logger .info ("MPPS N-CREATE: Started procedure for Accession Number: %s " , accession_number )
5456
5557 if not accession_number :
5658 logger .warning ("MPPS N-CREATE: Missing Accession Number in ScheduledStepAttributesSequence" )
5759 return MISSING_ATTRIBUTE , None
5860
59- source_message_id = self .storage .update_status (accession_number , "IN_PROGRESS" , ds .SOPInstanceUID )
61+ source_message_id = self .storage .update_status (
62+ accession_number , MWLStatus .IN_PROGRESS .value , ds .SOPInstanceUID
63+ )
6064 if source_message_id :
61- logger .info (f "Worklist item updated: { accession_number } -> IN_PROGRESS" )
65+ logger .info ("Worklist item updated: %s -> %s" , accession_number , MWLStatus . IN_PROGRESS . value )
6266 else :
63- logger .warning (f "Could not find accession { accession_number } in database" )
67+ logger .warning ("Could not find accession %s in database" , accession_number )
6468
6569 except Exception as e :
66- logger .error (f "Error in handle_create: { str (e )} " , exc_info = True )
70+ logger .error ("Error in handle_create: %s" , str (e ), exc_info = True )
6771 return PROCESSING_FAILURE , None
6872
6973 # Success - return the created dataset
0 commit comments