In the world of Free and Open Source projects it is easy to slip under the wire. I suppose that there could be a project, that no one knows about that meets the Big Five requirements for a Medical Practice Management system, besides ClearHealth. But besides that remote possiblity, ClearHealth is the first.
FreeMED is the only other GPL Practice Management system that has a robust medical billing engine, which has been discussed before. It stands to reason that FreeMED was the first to meet the Big Five, contrary to our press release. However, FreeMED lacks a Medical Accounts Receivable System, which is why it was not the first.
During my tenure as a FreeMED developer I did extensive work with FreeMEDs AR code. I funded Jeff to write a AR reporting system. I wrote a EOB entry wizard, and I designed the billing control form (which jeff made functional). So I have an unfortunatley intimate relationship with the FreeMED AR system.
The FreeMED AR system was originally contributed by Fred Forester. When he contributed it, it was a major step forward in functionality. Sadly, this system was never really integrated into FreeMED. While this does not decrease the signifigance of Fred's contribution, it does make progress difficult.
The file in question is the monolithic modules/payment.emr.module.php. The file is 1416 lines long. Where a typical complex class would be split into several functions, the programing flow of this file is dominated by eight complicated switch statements. Over time, this system has been contored well beyond its original purpose, which was a simple web form. Because of this lineage there is no seperation between the GUI and the business logic. The code that runs the AR systems and the web form are one and the same.
This file is so unmanageable that, in order to extend the AR functionality, Jeff and I had to write to the AR database directly. As a result, FreeMED does not actually have an AR system. Rather it has three or four totally independant account function code bases that happen to access the same database. This is a classic example of what happens when OOP principles are ignored.
On the other hand, the ClearHealth system is entirely OOP. Any portion of the system that needs to access the AR functionality does so through the AR objects. Only the AR Objects write to the database directly. When ClearHealth adds new non-AR related features, no AR related changes will be nessecary. When the AR system is updated, no non-AR features will need to be updated.
FreeMED has AR functions, but because that system cannot be relied upon for further development, it does not count as a big five core requirement. What is possible with ClearHealth, which was impossible before ClearHealth is that further functionality can be added to the system. There is a foundation on which further development is possible. That is what we mean by a "core" feature.
Thanks,
Fred Trotter
ClearHealth Project Manager
Uversa
|