######################################################################### ########################### - default.py ############################### ######################################################################### def index(): import webgrid from gluon.tools import Crud crud = Crud(icc_db) grid=webgrid.WebGrid(crud) grid.datasource = icc_db(icc_db.scan.id>0) grid.pagesize = 10 grid.action_links = ['view'] grid.action_headers = ['view'] grid.enabled_rows = ['header','pager','footer'] grid.crud_function = 'viewPatient' return dict(grid=grid()) def viewPatient(): scanId=request.args[2] #ignoring this whilst debugging, and hard-coding scanId=4 below... response.js = \ 'web2py_component("/ICC_Data_Management/default/post.load?scanId=4","patient");' \ % URL('/ICC_Data_Management/default/post.load?scanId=4') def post(): patientId = (icc_db(icc_db.scan.id == request.vars.scanId).select \ (icc_db.scan.patient_fk)[0].patient_fk or -1) patientScanRecs = icc_db(icc_db.patient.id==icc_db.scan.patient_fk) \ (icc_db.scan.patient_fk == patientId).select() scanImageRecs = icc_db(icc_db.patient.id==icc_db.scan.patient_fk) \ (icc_db.scan_image.scan_fk == icc_db.scan.id) \ (icc_db.scan_image.image_fk == icc_db.image.id) \ (icc_db.scan.patient_fk == patientId).select(icc_db.scan.id, \ icc_db.image.title, icc_db.image.id) return dict(patientScanRecs = patientScanRecs, scanImageRecs = scanImageRecs) def show(): image = icc_db(icc_db.image.id==request.args(0)).select().first() return dict(image=image) def download(): return response.download(request, icc_db) ######################################################################### ########################## - layout.html - ############################## ######################################################################### {{=response.title or request.application}} {{ response.files.append(URL('static','css/columns_3_DisplayBoxes.css')) }} {{include 'web2py_ajax.html'}}

{{=response.title or request.application}} Project

{{=grid}}
{{ if request.args: }} {{ =LOAD('default','post.load',ajax=True,target='patient',vars={'scanId':(request.args[2] or 1)}) }} {{ else: }} {{ =LOAD('default','post.load',ajax=True,target='patient',vars={'scanId':1}) }} {{pass}}
######################################################################### ########################### - post.load - ############################### #########################################################################

Patient ID: {{=patientScanRecs[0].patient.id}}

Diagnostic Group: {{=patientScanRecs[0].patient.DiagnosticGroup}}

Source:{{=patientScanRecs[0].patient.Source}}

{{for patient_scan in patientScanRecs:}}

Age at Scan {{=patient_scan.scan.ageAtScan}}

Date of Scan {{=patient_scan.scan.dateOfscan}}

{{for scan_image in scanImageRecs:}}
{{=LI(A(scan_image.image.title, _href=URL("show", extension='html', args=scan_image.image.id)))}}
{{pass}}
{{pass}} ######################################################################### ###### This is what I get when I view Page Source ####################### ###### for the successful opening page ####################### ######################################################################### Icc Data Management

Icc Data Management Project

... [[[[ I've omitted most of the webGrid html, but in the next line, I've left in a call to 'viewPatient()' ]]]]
loading...