Форум сайта python.su
Добрый день, подскажите как передать значение локальной переменной в кортеж?
Имею код:
import os from pydicom.filewriter import write_file_meta_info from pynetdicom import (AE, debug_logger, evt, AllStoragePresentationContexts, ALL_TRANSFER_SYNTAXES) debug_logger() def handle_store(event, storage_dir): """Handle EVT_C_STORE events.""" global Nam ds = event.dataset PatientName = str(ds.PatientName) PatientName = PatientName.replace(".","") PatientName = PatientName.replace(" ","_") PatientName = PatientName.replace("/","_") PatientName = PatientName.replace("*","+") PatientName = PatientName.replace(".","") PatientID = ds.PatientID PatientID = PatientID.replace("/","_") Nam = PatientName + "_" + PatientID try: os.makedirs(storage_dir, exist_ok=True) except: # Unable to create output dir, return failure status return 0xC001 # We rely on the UID from the C-STORE request instead of decoding fname = os.path.join(storage_dir, event.request.AffectedSOPInstanceUID) with open(fname, 'wb') as f: # Write the preamble, prefix and file meta information elements f.write(b'\x00' * 128) f.write(b'DICM') write_file_meta_info(f, event.file_meta) # Write the raw encoded dataset f.write(event.request.DataSet.getvalue()) return 0x0000 handlers = [(evt.EVT_C_STORE, handle_store, ["OUT"])] ae = AE(ae_title=b"MY_AE_TITLE") ae.maximum_pdu_size = 0 storage_sop_classes = [cx.abstract_syntax for cx in AllStoragePresentationContexts] for uid in storage_sop_classes: ae.add_supported_context(uid, ALL_TRANSFER_SYNTAXES) ae.start_server(('192.168.1.1', 104), evt_handlers=handlers)
PatientName = str(ds.PatientName) PatientName = PatientName.replace(".","") PatientName = PatientName.replace(" ","_") PatientName = PatientName.replace("/","_") PatientName = PatientName.replace("*","+") PatientName = PatientName.replace(".","") PatientID = ds.PatientID PatientID = PatientID.replace("/","_") Nam = PatientName + "_" + PatientID
handlers = [(evt.EVT_C_STORE, handle_store, ["OUT"])]
handlers = [(evt.EVT_C_STORE, handle_store (Nam))]
handlers = [(evt.EVT_C_STORE, handle_store, ["OUT"])]
Отредактировано zfoxx (Май 27, 2021 14:52:31)
Офлайн
zfoxx см подпись.
[code python][/code]
Отредактировано PEHDOM (Май 27, 2021 14:20:44)
Офлайн
PEHDOMБольшое спасибо за подсказку, поправил.
zfoxx см подпись.
Отредактировано zfoxx (Май 27, 2021 14:54:48)
Офлайн
zfoxxОна то обьявлена, но только внутри вашей функции, это собвтенно указание для интрпретатора что переменную нужно искать в globals а не в locals.
хотя Nam объявлена как глобальная переменна global Nam
Nam=''
handlers = [(evt.EVT_C_STORE, handle_store (Nam))]
[code python][/code]
Отредактировано PEHDOM (Май 27, 2021 15:15:48)
Офлайн