FIFO Splits for Provider
Posted: Wed Jan 02, 2008 7:24 pm
I had a discussion with Dr Sparks about FIFO Splits. We talked at length about what to do and what not to do. My main problem with how it is now that I cannot expect my employees to reasonable determine how payments should be split for providers or otherwise. I have code that allocates Payments to providers based on a when a payment was received irrespective of whether it was attached to an EOB. There is a problem with injecting the philosophy into the main part of the payment structure. It would require massive amounts of code change. My solution would be to add a separate table for AllocationSplits. The entries in this table would be very similar to the PaySplit table. The entries would have a marker for the type of split or philosophy used for the split. Using the marker you can pull the splits that are allocated based on the rules assigned in the split methodology. There would be a hook in the program that will be called just after to the payment creation, modification, and deletion, and patient moving (from account to account). Also when a charge item is entered/modified/deleted there will need to be a check to see if there is any part of a payment that is unallocated. Putting these values in a separate table allows for the generation of split payment data.
-The allocation logic would be hardcoded so that simple users cannot alter the allocation.
-Creation of this split data would be only for reporting purposes to develop a FIFO split for provider revenues.
-The design of the allocation is to make the data immutable for the most part, but since payments move when transferred from guarantor to guarantor this will have to be dealt with. Perfect immutability may not be achievable with current setup.
-There will be a preference setting to turn on/or off this feature
General Programming Philosophy is to create an interface for an Allocator Object. The interface will mandate that the Allocator object will have two methods. Paymt_Allocator Paymt_Deallocator. So when a payment is altered the deallocator is called and the the Allocator is called when payment is created or solidified. The deallocator will likely just delete all the splits assigned to the Allocator object and expect the Allocator to be realled to re-run the logic of allocation.
I will post a second post to outline the Logic for choosing how the splits will be allocated in the next post. The idea is to generate code that if someone wants a different allocation it can be done.
-The allocation logic would be hardcoded so that simple users cannot alter the allocation.
-Creation of this split data would be only for reporting purposes to develop a FIFO split for provider revenues.
-The design of the allocation is to make the data immutable for the most part, but since payments move when transferred from guarantor to guarantor this will have to be dealt with. Perfect immutability may not be achievable with current setup.
-There will be a preference setting to turn on/or off this feature
General Programming Philosophy is to create an interface for an Allocator Object. The interface will mandate that the Allocator object will have two methods. Paymt_Allocator Paymt_Deallocator. So when a payment is altered the deallocator is called and the the Allocator is called when payment is created or solidified. The deallocator will likely just delete all the splits assigned to the Allocator object and expect the Allocator to be realled to re-run the logic of allocation.
I will post a second post to outline the Logic for choosing how the splits will be allocated in the next post. The idea is to generate code that if someone wants a different allocation it can be done.