This doesn't seem right.  You are instantiating a new EvaluatedPatientData at the top of the method, and what we are doing here should be populating that.  I think we should handle 2 return types, and throw an explicit exception if something other than these return types come out of the script:
* PatientData (which can just be set on the evaluationResult)
* Map<Integer, Object> (which we can assume is a Map from patientId to data item, and populate the evaluationResult appropriately)
We should not be doing any "return" here, but simply populate the evaluationResult and let the return at the bottom of the method handle returning...