I am relatively new to Drools (have done a POC), using Drools 4.0.7, and the client I am currently working with has adopted the Spreadsheet management approach to their business rules. I am in the process of implementing the business rules using the Decision Trees and have come up with the following challenges:
 
   The Scenario: A patient visits a physician and they are given a diagnosis for which there can <1:M> procedures given (i.e. Head Catscan, Colonoscopy, & EKG performed as part of annual physical). So I now have a patient record for which I need to authorize payment to the physician for all of these procedures, based on the following:
 
   1.) If the patient is over 50 years old, we will automatically pay for all procedures, set status to APPROVED. (this is an easy one and I know how to check it)
 
   2.) If the patient is less than 50, but the diagnosis code matches one in a list AND the procedure code(s) ALL match values in a list then set status to APPROVED.
 
       Diagnosis Codes = 70450, 70460, 70470, 70480, 70481, 70482, 70486, 70487, 70488
       Procedure Codes = 784.0, 346.20, 346.21, 346.10, 346.11, 346.00, 346., 346.80, 346.81, 346.90, 346.91, V70.0, V70.1, V70.2, V70.3
   
       This is the piece I have questions about, does the Decision Table API provide functions for matching a list of values from a record (i.e. a
       Patient Bean) against the list of values in a SINGLE spreadsheet cell or is there a better way to do this without having to enter all possible
       permuations of Diagnosis Code to Procedure Code (what I have included above is just a subset of a bigger list)? I know I can write a
       method on my bean to check my list of procedure codes against the list in the spreadsheet, but wanted to see if Droosl already provides
       something to help with this. If the best way to do this is in a single cell and write my own code, how have folks gotten around the
       limitations of the amount of data in a single cell? I did think about splitting the procedure codes into multiple rows, however, what would I
       do if some of the patients procedure code values are in one row and some in another row, when I am looking for an all or nothing condition
       (i.e. all procedures codes must match what is in the spreadsheet or it will need to be manually approved).
 
  3.) Else mark set status = MANUAL APPROVAL (I also know how to do this)
 
I appreciate any light anyone can shed on this situation, and if anyone has any example spreadsheets that may match what I am trying to do and you can share them, that would be awesome.
 
Also, if you need me to clarify anything I have listed here, please don't hesitate to contact me.
Ian E