Hi! I have to anonymize HL7 file (replace all personal data with x). How can i process an uploaded file "on the fly". This is what i've tried (when it runs it actually saves the original file content, not the processed)
*# Model* db.define_table('filetypes', Field('filetype','string'), Field('seperator','string'), Field('omit','string'), format='%(filetype)s' ) db.define_table('anonymize', Field('filetype','reference filetypes'), Field('uploaded_file','upload') ) *# Controller* def index(): """ example action using the internationalization operator T and flash rendered by views/default/index.html or views/generic.html if you need a simple wiki simple replace the two lines below with: return auth.wiki() """ form = SQLFORM(db.anonymize) data = '' import re hl7 = {'PID':{'pattern':'PID\|','separator':'|','omit':(0,1,2,3)},'NK1':{'pattern':'NK1\|','separator':'|','omit':(0,)},'PV1':{'pattern':'PV1\|','separator':'|','omit':(0,)},'IN1':{'pattern':'IN1\|','separator':'|','omit':(0,)}} if request.vars.uploaded_file != None and request.vars.uploaded_file.filename != '': if re.search('|'.join([hl7[k]['pattern'] for k in hl7]), request.vars.uploaded_file.value): for line in request.vars.uploaded_file.value.splitlines(): replaced_text = '' for k in hl7: replaced_text = '|'.join([len(val) * 'x' if idx not in hl7[k]['omit'] else val for idx, val in enumerate([splitted_text for splitted_text in line.split(hl7[k]['separator'])])]) if re.search(hl7[k]['pattern'],line) else replaced_text data += (replaced_text if replaced_text != '' else line) + '\n' request.vars.uploaded_file.value = data else: data = 'No HL7 Format' else: data = u'No file chosen' if form.process().accepted: response.flash = 'form accepted' elif form.errors: response.flash = 'form has errors' return locals() I thought that the line request.vars.uploaded_file.value = data replaces the original data of the uploaded file, so that the form.process() processes the new (replaced) value What i am doing wrong here? Thanks, Gerd -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.