It's hard to answer your question without more details about your class definition, but in general, you'd create an instance of your class, then just use the typical dot-separated syntax. So if your instance was called "MyTask" you should be able to use MyTask.Patient.FirstName to refer to the FirstName property of your patient.

If you want to be able to call that method without first creating an instance of your class, you need to define the method as a Class Method, not just a Method. Add "Class" before Method on that function definition and recompile your class, and it will probably work.

Otherwise, like Marc said, you'll have to instantiate the class then call the method on that instance.

I think you can accomplish this is $LISTFIND. It searches a list for a value, and returns its position in the list. If the item isn't found in the list, it will return a 0. For example, if you've got a list of colors called colorlist you'd use "where $LISTFIND(colorlist,'blue') > 0" in your SQL predicate to only include rows that have "blue" in their list. If the list contained "red", "blue", and "green" in that order, the $LISTFIND would return a 2. If the list contained "orange", "yellow", "taupe", the $LISTFIND would return a 0 because "blue" wasn't found and that row would be excluded.

Neither of the previous replies did exactly what I wanted to do, but action set to "New Window", filled the URL box with the URL but putting $$$VALUELIST where I needed that value to be, and set the "Active When" drop down to "1 Listing Item Selected". I set the Type to "Button" and gave it a label.

Now when you view listings in this dashboard and select one, you can click that button at the top to navigate where you need to go. That works for my purposes!