Proposal: ClearHealth, FreeMED and OpenEMR

synseer wrote on Wednesday, June 15, 2005:

Porting complex features to ClearHealth

In another thread securitygeek mentioned that the things he would want to take from OpenEMR to ClearHealth were more complex then a simply tracking extra data.

In order to port complex features, all that is needed is to actually create a new PHP class. As long as the class inherits from the base Cellini class, persistence will be handeled automatically (although the persistence method can be overridden for spefific behaviors) All feature functionality should go in a data class. Using those classes in particular ways is done with a Controller object. The GUI display for a Controller object is handled by Smarty.

Except for future core features (like perscriptions etc…) adding classes like this will not interfere with the core code.

-FT

drbowen wrote on Wednesday, June 15, 2005:

1)Track our AR
2)Transfer billing information directly from OpenEMR
3)Allow entering data from the EOB’s.

These questions are intimately tied up in the problem of AR management in a medical practice.  They actually quite complex.  Clearly Ezybiz is no where close to being adequate.  SQL-Ledger does what it was intended to do quite well but it is not intended for AR management in a medical practice.

1)Errors in calculations. These should be easily repairable.
2)Difficulty of entering data: this is more complex, as the EOB’s could be entered but only one line item at a time, making the completion of an EOB a significant number of steps.

We enter EOB’s one line at a time.  Insurance companies routinely lump multiple patient payments into one check with each CPT on a line.  They also cheat you one line at a time by down coding, paying wrong amounts and lumping services together.  I not sure if this will ever be solved in a practical fashion.

Due to these, we did not reach a point that we could successfully catch up our AR or produce a bill for our patients. At that point we contracted our billing to a company that we could export our data to, and they would manage our AR, and billing. To be fair, OpenEMR is not advertised with the functionality to track AR, and our inability to do so was due mostly to my inexperience.

It takes a couple of years of practice start learning the ins and outs of AR management.  My best advice is to hire the most experienced medical billing clerk you can find (or as you did hire it out).

The limitations of OpenEMR are a bit more subtle. Some of them can be easily worked around. Some of these limitations are significant, and pervasive to the design of OpenEMR.
1)Open EMR has only two security settings, authorized, and unauthorized. Authorized users can do anything, and are listed on the calendar. They have the ability to access the practice settings, and database settings without limitations. Unauthorized users all have to have any action with the exception of appointments approved by an authorized users. These authorizations all appear in the bottom in the scheduling screen after logging in. These unfortunately are not just for the logged in provider, but lists all providers. The name of the provider is listed on my system, but I added that functionality and submitted it back to OpenEMR.org for addition into the source.

Clearly security with OpenEMR has been a big problem.  We have recently implemented access control lists through phpGACL that give the administrator fine grained control over access. There is still some learning curve involved but this dramatically improves the ability to control security.

2)There is no way to currently track open encounters, or to finalize encoutners. This means that all encoutners are only accessible through the daily calendar. Billing is submitted as soon as it is entered, and if an encoutner is not completed, there is no reminder that it has not been finished.

This is a problem that has not been addressed. 

3)OpenEMR is not thread safe. This is by far the most fatal flaw of OpenEMR. What this means is that when an patient account is open a browser window(1), if a new window(2) is opened, and you go to a different patient account, if you go back to the first window and save any data, it will be saved to the patient account or encounter open in window(2). This does not occur if you are on a different machine, or if you use a different browser. I have been told that this may be a limitation of PHP, but I have not verified that yet.

I think this occurs because of the nature of the web-based interaction between the browser, and the OpenEMR.  As the browser opens a session it shares session information with the server.  The browser stores information about the sessions as cookies.  Netscape, Mozilla, and Firefox do not maintain separate cookies for each open window. As you open the second window the browser uses the last stored cookies.  So when you go back to the first browser tab the browser still remembers the second window.

I have not tested this behavior extensively across different browsers but it seems to happen only in the tab style browsers such as Netscape, Mozilla, and Firefox. This is the reason that when you you do line banking you should explicitly open a new copy of the browser not just another tab.  It allows a type of cross scripting attack from another open tab.

So I don’t think this is actually an OpenEMR bug but really a bug in Netscape, Mozilla and Firefox.  We handle this here through behavioral modification.  Many of our staff use MS Internet Explorer where the problem doesn’t exist.  Most of the rest don’t know how to open a second tab.  For the ones who do I simply explain the problem and it it solved by maintaining one open connection to the server with a single open window.  Not an ideal solution but it works.

4)No Login tracking. If you do not log out at the end of a session, the session will time out, but the screen will not reload to the log in screen. Also, if you are entering a long note, and go beyond the time allotted for the session, it will expire, and will go to the log in screen when you submit the note. This results in the loss of the note.

Again, this a function of the stateless client-server architecture.  There have been some ways proposed to solve this on the client side.  Unfortunately it would likely require hacking a specific browser and then mandating  this same browser which have not wanted to do.

Again I handle this through setting the time-out for as long as possible and then we do frequent saves during the visits to avoid the timeouts.

5)There is no easy way to set the billing date on submitted billable codes. For example, if you see a patient on Friday, but do not enter your billing till Monday, the billing will be submitted with the date of service of Monday. Also, if you add a form to an encoutner, then the date of the encoutner will be changed to the date the last addition to the chart was made.

This feature has already been added by Rod Roark.

Sam Bowen, MD

sunsetsystems wrote on Wednesday, June 15, 2005:

Sam, you may want to check my previous posting on this topic.  It looks like a couple of things have been resolved that you are not yet aware of.  In particular you might want to look at the new features for EOB entry, patient statements, etc (requires SQL-Ledger).

– Rod <rod at sunsetsystems dot com>

synseer wrote on Wednesday, June 15, 2005:

(1) Tracking Medical AR.
Yep, this is why we are developing medical AR system from scratch. For now it does everything it has to, but soon it will have more things intended to accelerate medical AR workflows.

(2) EOBs
We do have a wizard system for this. It allows for quick searching of the claims and then accelerates the data entry, this is intended to specifically accelerate this workflow. This is working now.

(3) Security.
phpGacl does address this issue. But you are also right, it is not intuitive at all. We will be developing a custom interface to phpGacl which will allow us to think in terms that make sense, like patients, users, user types. Rather than having to expose and end administrator to ACOs etc. etc.

(4) Tracking Encounters.
ClearHealth allows you to close an encounter. This freezes its billing coding and is required before claims can be created. Once the claim has been created however, all the values in the claim can be modified before the claim can be sent. Further, the original encounter generated version of the claim is saved in the claim version archive. Encounter freezing is part of ClearHealth, but should you integrate with FreeB2 you should get the other features as well.

(5) Thread Safe data access.
This is not working in the current version of ClearHealth either.  But we are discussing solutions to the problem. However once it is fixed it will allow for mulitple window/tab access to the patient database. The app itself will keep people from overwriting incorrectly.

(6) Session timeouts.
We have not decided what our default policy will be regarding this, but when we do it will end up at the login screen

(7) Billing Dates
No comment…

-Fred Trotter

openemr wrote on Wednesday, June 15, 2005:

Hi Fred,
      Looked at your demo of clearhealth… liked the visual metaphor. I am currently installing it on an OpenBSD-current host for testing. Any install gotchas I should know about since the clearhealth forums seem to return a 404 at present?

   an OpenEMR User

openemr wrote on Wednesday, June 15, 2005:

Hi Fred,
      Have installed clearhealth. Immediately noticed the lack of PHPMyadmin(which I suspect had to go because of HIPAA compliance :frowning: . Will be looking at your database table structure and deciding how complex it will be to maintain an interface to your system also.

   more later
    and now a OpenEMR/Clearhealth user.
ps my table conversion routines from the clients access database were dependent on magic quotes… :((we had a couple of MS-DOS pathnames in the old table, with 42k rows :frowning: Oh well will implement around this. I also depend on the
document table as well as well as the fixdates function…

openemr wrote on Wednesday, June 15, 2005:

Hi Fred,
      Have installed clearhealth. Immediately noticed the lack of PHPMyadmin(which I suspect had to go because of HIPAA compliance :frowning: . Will be looking at your database table structure and deciding how complex it will be to maintain an interface to your system also.

   more later
    and now a OpenEMR/Clearhealth user.
ps my table conversion routines from the clients access database were dependent on magic quotes… :((we had a couple of MS-DOS pathnames in the old table, with 42k rows :frowning: Oh well will implement around this. I also depend on the
document table as well as well as the fixdates function…
it does look promising however

synseer wrote on Wednesday, June 15, 2005:

Sorry about the 404. This was due to a faulty site update. Should work now.

-FT

andres_paglayan wrote on Thursday, June 16, 2005:

The following reflects only my opinion. Please forgive the lack of style since this looks more like a stream of consciousness.

My background includes, but it is not limited to: IT Director of Women’s Health Services, a Federally designated Community Center of Excellence; Apache, PHP & MySQL Instructor at the UNM; -the only- trainer and consultant to the Judicial Information Division of the Supreme Court of New Mexico in the use of open source tools for web based applications, including migration to LAMP.

My primary intention was remaining aside of this thread. But I felt compeled to write, mostly because the nature of OpenEMR, which is to be 100% open in all its aspects. Therefore, I think of this writing more as an obligation towards developers, current users, and those who are considering to use it.

I see Uversa only as a for profit company, which has to do what is best for its business. This is absolutely fine within that context, but it doesn’t fit at all what it is my understanding of a truly Open Source development with community support. A difference has to be mentioned when referring to Pennfirm. Walt had spent from his company resources to set an enricher relationship with users and developers.

Uversa invitation to join, is an invitation to trash OpenEMR, and to have their community of users and developers giving free support to ClearHealth users through forums or email lists as we daily do with OpenEMR users. I insist, I only see it as a business maneuver.

If joining and opening the participation were true offerings, a mean to do so would have been placed beforehand. At this point its only plan is to mirror, some day in the future,  their in-house svn repository, so people can download, no comments yet about commit privileges. This can only be translated as an eternal fork, a private branch, and  public one, to be used a sandbox to take what it is convenient from it.

OpenEMR does all its coding and talking in sourceforge, open to all, all time. Any coder -with soft-, any user -with documentation- has the right to be part and soul of the project. Since it was never closed to anybody, there is no special need of inviting, everyone was, and is always invited.

I won’t write on coding details since many opinions were already posted. I mostly agree with Rod, Sunset and Sam’s comments. And even if I could partially agree with the relatively better architectural design of ClearHealth, Instead of expending any time porting OpenEMR to ClearHealth, I will rather use it to cure OpenEMR from things such as Smarty, -good for other things, but not for this-, and  postnuke calendar; and of course, do my best to raise OpenEMR to the next level.

synseer wrote on Thursday, June 16, 2005:

Andres,

Your comments start>
If joining and opening the participation were true offerings, a mean to do so would have been placed beforehand. At this point its only plan is to mirror, some day in the future, their in-house svn repository, so people can download, no comments yet about commit privileges. This can only be translated as an eternal fork, a private branch, and public one, to be used a sandbox to take what it is convenient from it.
<Your comments end

I am sorry for not being clearer about this. ClearHealth is not Uversas only business. There are many codebases on the private subversion server that have no relationship to ClearHealth. Often they include software that we do not own, and do not have the right to release publically.

You are right, our development proccess is not yet open. But you assume that when I say public/private split between our subversion servers you assume a master slave relationship with the private server as a master and the public server as the slave. In reality they should be peers, with new code moving in both directions. I am quite sure that some developer on OpenEMR has a private CVS or subversion server that they use to hold thier private code, before it has been developed enough for public consumption. Please allow us the same privilege.

As for write access, this is also not far. It is generally not usefully to have a publically writable repository, and writing to the OpenEMR codebase is limited to certain parties too. Both projects will have to continue to make the always difficult decision about who to allow write access to. So far, no one has requested write access to ClearHealth, and when they do I hope that I will consider the request with the same fairness that the OpenEMR development community would.

All in all we are slowly replicating and often extending every capability that sourceforge has. We would be happy to use sourceforge too, but we really need to have subversion, which makes architecture changes much simpler.

Looking at the OpenEMR sourceforge site. So far we have replicated all of the ticketing systems using Mantis. We are offering our own downloads, (mirrored through sourceforge). We are using subversion internally and are working diligently to open that up. In short we are very close to replicating everything available to the community from sourceforge.

Notably, we have all of the documentation that we have generated available on our wiki, under a Creative Commons license. So far I have been unable to find any manuals for OpenEMR available under any of the Free Document license. Pennfirm does have an OpenEMR manual, which can be purchased for a considerable sum of money. Once we have made our repository public we will already be donating more resources to ClearHealth then are currently available for OpenEMR.

Further, even in the abscense of consolidation, we will designed our billing engine so that OpenEMR can use it, and releasing it early at the request of the OpenEMR community. Also remember that I have already coded the original FreeB, so anyone who is billing with OpenEMR is using code that I donated, and that I have never received a dime for from the OpenEMR community. I am not complaining, I am thrilled that you are using my software (and I apologize again for its low quality, I think we have done a much better job with the second version)

Alot of people have been very concerned that we, as a for-profit company, will do something sneaky to benifit from ClearHealth without contributing to the community around it. But please remember that it is profit that is allowing us to provide the OpenEMR community with a new choice with regards to its billing system, and it is profit that is allowing us to already begin surpassing OpenEMR in terms of the resources available to the community. While I understand the concern, please help us to prove ourselves to the community by showing ourselves to be trustworthy. Already Rod has requested a timely release of FreeB2. So we have put resources into the work needed to make a standalone release and we will be able to release early at his request. You have mentioned that we need to have an open code repository, and that is also on the fast track.

Let me know what else we can do.

Thanks,
Fred Trotter

markleeds wrote on Thursday, June 16, 2005:

I vote for Rod Roark as project director if one is needed.  He is an excellent programmer, software designer, and is very involved.

I vote no to joining OpenEMR with any other project.

I agree that coding standards would be a good addition to OpenEMR.  There are existing standards for other projects that could be adopted.

For the most part, the code in OpenEMR is not that complex.  Anyone with motivation and a few good PHP/MySQL/Apache/Linux books can catch on pretty quickly.  The parts of the code that are not so easy should be replaced in the future.

andres_paglayan wrote on Thursday, June 16, 2005:

>I vote for Rod Roark as project director if one is needed.  >He is an excellent
>programmer, software designer, and is very involved.

Agreed, Rod is the most active coder and the one who did most fixes.

>I vote no to joining OpenEMR with any other project.

Agreed, I won’t, but anyone who wants to take this way is more than free to do its.

>I agree that coding standards would be a good addition >to OpenEMR.  There are
>existing standards for other projects that could be >adopted.

Agreed,

>For the most part, the code in OpenEMR is not that >complex.  Anyone with motivation
>and a few good PHP/MySQL/Apache/Linux books can >catch on pretty quickly.  The
>parts of the code that are not so easy should be >replaced in the future.

synseer wrote on Thursday, June 16, 2005:

>I vote for Rod Roark as project director

I think Rod is an excellent choice. What is his role now.

>I vote no to joining OpenEMR with any other project.

I don’t think anyone ever seriously considered this. The question is regarding codebases not projects. Fedora and Debian are quite different projects but the work with the same code base.

>I agree that coding standards would be a good addition to OpenEMR. There are existing standards for other projects that could be adopted.

This would really help.  Any consistent coding pattern would make movement between the projects much easier.

-FT

sunsetsystems wrote on Thursday, June 16, 2005:

Wow, thanks for all the votes of confidence!

My role: I’ve been a consultant and software developer for more years than I care to admit.  Recently I seem to be the most active OpenEMR developer, due to representing the interests of two clients who wanted a large number of fixes and improvements made.

I expect to have more such clients and to continue to be involved with the project, and with other aspects of medical practice software.

– Rod <rod at sunsetsystems dot com>

sankar1234 wrote on Tuesday, May 02, 2006:

Where are we in this merger? Is it on the table?

markleeds wrote on Tuesday, May 02, 2006:

I think it is way off the table right now.  Check out MirrorMed.  It looks like they are opening up the ClearHealth project.

sankar1234 wrote on Wednesday, May 03, 2006:

What do you mean by opening up? 

drbowen wrote on Wednesday, May 03, 2006:

Would you guys put this on a separate thread so that all these old posts won’t keep coming up?

Thanks,

Sam Bowen

synseer wrote on Tuesday, May 09, 2006:

An update. FreeMED has flat refused any project merger offer. I am no longer employed by Uversa, so I cannot use the trademark "ClearHealth". This is where MirrorMed comes from. So generally FreeMED OpenEMR and ClearHealth is a dead idea, but MirrorMed/OpenEMR is a possibility. Look for the new thread.