Tuesday, October 24, 2006

New Edge Networks DSL

When I walked over to configure our newly installed DSL line from New Edge Networks, I noticed that the WAN light on our modem was blinking orange. This gave me the chance to call their Customer Support line and see how well they perfumed.

After 20 minutes of being on hold, I got a chance to talk with one of their support techs, who informed me that the line had actually been down about three days, and prior to that it had been going up and down since it was installed. After about 25 minutes of testing, it appeared that we had ADSL crosstalk on the line, and needed an at&t / sbc representative to come out and check out the line. It was also recommended to drop the line speed down to 192K/192K (from 400/400).

Less than 24-hours later, John, from the local telco was in my office working on the line. He was able to get it to sync at 400K/400K, at a cost of approximately $129 / month from New Edge Networks. However, we need much closer to actual T1 speeds.

NTS Communications, which I've written about before, is actually laying Optical Fiber to most of the Lubbock area, including many of the business areas of town. However, they likely will not be in our area for at 1 - 2 years.

Their fiber is priced at $100 per MegaBit, and they can provide up to 12 MegaBits up and 12 MegaBits down. That's the equivalent of 8 T1's! We can get a single dedicated T1 from them for around $300 / month, including the router, and managed monitoring. I suppose if I ever needed 8 T1's, it would be cheaper to lease a closet from someone in their fiber area of town than to actually get 8 T1's.

I signed up on Friday, and we are expecting an installation date within the next 2 - 3 weeks.

Sunday, October 22, 2006

PgPool Two

We are within a few weeks of being done with the entire conversion, and we have found a weak link in our application stack; the actual load balancer, pgpool.

Testing pgpool began in March 2006, and we found it to be of an adequate speed running inside of our Virtual test environment (using the excellent and free VMware Server) for most of our database queries. But when it was placed onto a live-almost-production server, we quickly discovered that using pgpool 3.1.1 is our limiting factor.

Our aging Informix server (almost 5 years old), and Informix 7.3 database (almost 10 years old!), logging into one of the information portals takes about 15 seconds. This normally would be unacceptable for a "simple" login, but this login process actually runs about 2,000 different queries, and the timeframe is within reason for the customer. Using the new PostgreSQL / enterpriseDB configuration, with pgpool 3.1.1 as the load balancer, across three very fast servers (less than 4 months old, and significantly more powerful than the 5 year old machine), the same login procedure takes almost 75 seconds! Something is wrong.

After spending a full day checking indexes and query paths, we found out that each of the 2,000 queries was taking about 2.88ms. Using Google's calculator, we know that 1 second = 1000 ms. So, 2000 queries taking 2.88 ms, we can do (2000 * 2.88) / 1000 = seconds. Almost 3x as fast as the old Informix system, and 13x faster than the pgpool was behaving.

We decided to pull out pgpool and query the database directly: six seconds.

Unfortunately, a load balancer is part of our implementation plan, and pgpool 3.1.1 is unacceptable for our performance requirements. Luckily, the pgpool developers have put out pgpool II, an almost complete rewrite of the pgpool engine. We have been having some difficulties making it compile with enterpriseDB, on Fedora Core 5, 64-bit, as it relies heavily on PostgreSQL's native pq library.

In the meantime, we are hoping to bring up the application within the next two weeks using replication at the database layer, but having to "cold swap" at the application layer....

Saturday, October 21, 2006

Load Balancing PostgreSQL or EnterpriseDB

We have been working on a large project since March, converting a client off of Informix to a modern version of PostgreSQL. For various reasons, we chose to use the enterpriseDB version of PostgreSQL, which packages the latest version of the core database with tools to do replication (Slony-I) and management (DBA Management). Just recently, I purchased Silver level tech support for our project, priced at a very reasonable $1,000 per CPU.

Our goal for the conversion was to change the core of the application (almost 275,000 lines of Java code) as little as possible. Of course, we are re-architecting some aspects of the application to increase redundancy and performance while we were migrating the database. One aspect of improvement is migrating from a single server to three different servers. Each server has a replicated database copy running on it, and we would like to use a load-balancer between the three (pgpool). To ensure that the web application (Java running inside of Tomcat) was not the single point of failure, we are replicating the web application on all three as well, using a firewall appliance to choose between the three application layers.

Additionally, we have rewrite more than 80 reports from Informix's 4GL to Crystal Reports and Jasper Reports (we use both) and handle minor differences between the two database backends (including datetime differences).

Sunday, October 15, 2006

New Edge Networks

Several weeks ago, I wrote about some of our ongoing experiences with at&t / SBC. The series of incidents left us unhappy with them (they actually are trying to bill us for being down for 5 days), and we decided to go looking for a better Internet service provider.

After a few weeks of calling around and discovering our options (we called SuddenLink, at&t [just to be thorough], SpeakEasy, NTS Communications, and Xanadoo), we settled on New Edge Networks, who claimed to be able to bring us a 1.1/1.1Mbps (roughly 137.5K / sec up AND down) SDSL line. In fact, we could get up to 2.3/2.3Mbps (287K / sec !!!).

They sent me their SLA, and we started the sign up process. David, our account representative, claimed that they should be able to get the install done in just a few weeks.

I paid for a few extra IP addresses to ensure that we'd be OK in the future, and we waited, getting updates from New Edge Networks as the installation process went forward (line was installed, then provisioned, etc....). Last Thursday, our installer showed up, and actually setup the router. Which is when things got interesting......

He asked me to sign off on the paperwork.
I asked "Does it work?".
He said "Yes, of course."
The moment I signed the papers, he exclaimed, "Oh, I am supposed to tell you, the setup was for 1.1/1.1, but we couldn't get it to sync any faster than 400/400K. I hope that's OK."
I didn't really know what to say, other than "No."

He claimed to be only the "install guy", and that I'd need to call New Edge Network to get them to fix it. Lovely. David gave me a status update on Friday and there is an open ticket with the telco (at&t): Until the ticket is resolved 400/400 is the fastest that New Edge would be able to do.

Apparently, we're almost 15,400 feet away from the Point Of Presence. To get 1.1/1.1Mbps, we must be closer than 7500 feet (that's about 1.5 miles). To get 768/768Kbps, we must be closer than 15,000 feet (that's about 3 miles). SBC / at&t can get us 2.8Mbps down, and 500Kbps up without any problems.

If they are able to fix it, we'll be great.
If they are not, we'll be looking for another provider.

Again.

Saturday, October 14, 2006

Student Athlete of the Week on YouTube

My cousin was the student athlete of the week last week. Her enterprising father managed to snap up the feed and put it on YouTube. Check it out here.

Friday, October 13, 2006

Which EMR System? (Part Five)

I mentioned Fred Trotter previously, because he's all over the Open Source world in regard to EMR and PM solutions. His comments can be found in the forums of most of the Open Source software we reviwed, and his resume shows that he worked on the FreeB, FreeMED, and ClearHealth software projects. He recently appeared to "fork" the ClearHealth platform into his own project, MirrorMED.

However, MirrorMED's first forum post was in December of 2005, which would have been while he was still employed by Uversa (his resume was last updated in Feb, 2006, and shows him to be employed by Uversa, the developers of ClearHealth, through at least February of 2006). As such, we're not really sure if MirrorMED is a fork by Fred for his company's purpose (SynSeer), or if it's a fork by Uversa for marketing purposes.

More confusing than Fred's involvement with ClearHealth / MirrorMED is the PhoenixPM project, and the difference between it and the PhoenixEMR project. I'm not sure if they are similar projects, or if they just chose bad names. Developers from Uversa appear / claim to be involved with the PhoenixPM project, and PhoenixEMR is based off of the OpenEMR code base. I haven't been able to get a straight answer out of anyone about which is which.

Thursday, October 12, 2006

Which EMR System? (Part Four)

ClearHealth, a package produced by Uversa, Inc. was our third software package to review. Although they have the best User Interface available, the software is poorly documented from a developer perspective. The forums, while available, are mostly user-centric, and I gather that it's almost impossible to actually make changes to the source code. [This implies to us that the source code is released as Open Source as more of a marketing ploy, than any desire to actually benefit from Open Source development methodologies.]

This product uses a FreeB version 2 (rewritten in PHP), as well as PHP4 and MySQL 4. We were unsuccessful in getting RC2 to work, but RC3 does work (with a few bugs). Commercial support is $688 per incident, or $4,400 per year. A complete customized installation appears to be around $30,000.

Wednesday, October 11, 2006

Which EMR System? (Part Three)

OpenEMR is probably our favorite package of the three, but the User Interface is almost impossible to navigate. OpenEMR uses FreeB version 1, which they have brought in-house and maintain (to some degree) as part of OpenEMR. The main developers, including Rod Roark of Sunset System, are quite helpful on the message boards, and the project is based on PHP4 (moving to PHP5) and MySQL 4 or 5. The software is hosted at SourceForge, and integrates seamlessly with SQL-Ledger.

However, after a few weeks of working with OpenEMR, we could not get used to the Interface, and FreeB would not connect to the database, so we were not able to actually perform any billing functions. I'm not sure what commercial support from one of the developers would cost, but Rod's pricing appears reasonable.

Tuesday, October 10, 2006

Which EMR System? (Part Two)

FreeMED, which has a decent interface, is a fairly complete software package which appeared to meet all of our qualifications. However, the user community is a bit lacking, and the company which supports it, Unified Medical Informatics, didn't respond to any of our requests for information.

Interestingly enough, this project appears to have been greatly influenced by Fred Trotter (more on him shortly), though it includes the REMITT billing software, which was built by someone who was hired to work on FreeB (another billing software package). The developer of REMITT is B-MAS, and B-MAS is actually the "parent" company of Unified Medical Informatics. FreeMED is based on older versions of PHP (version 4) and MySQL (version 4). We were unable to establish what commercial support would cost.

Monday, October 09, 2006

Which EMR System? (Part One)

Several Resolution developers spent about four weeks evaluating the available Open Source software solutions to install and setup the Lubbock Children's Health Clinic. I'm providing this information, hoping it helps anyone who may end up confused by the twisted world of Open Source medical solutions.

The most compelling options are:
All three are viable solutions, and all three of them have clinics using them. Furthermore, they are all somewhat related. More on that later....

Thursday, October 05, 2006

The Lubbock Children's Health Clinic

Several weeks ago, I was asked to become involved in working with a great Lubbock non-profit company, the Lubbock Children's Health Clinic (formerly known as Well Baby Clinic). Two friends of mine, Mike Phelps (at Peoples Bank of Lubbock) and Susan Skipper, are both board members, and outstanding Lubbock citizens.

When I became involved a few weeks ago, they had been significantly overcharged for a drop-sold Dell workstation, and were looking at options for Electronic Medical Record (EMR) and Physician Management (PM) systems for their two clinic locations.

We had several meetings with LCHC and determined that the infrastructure required for most of the typical EMR and PM systems (including Medisoft, Lytec, SOAPWare, DoctorsPartner, eMDs, and others) was more than LCHC was probably ready for. Instead, we agreed to build them two networks, connected via Virtual Private Networking, and host their servers at our location. We'll be taking care of their backups, upgrades, and software management from our offices, and they only have one provider to worry about for their entire system .... Resolution Software.

On Thursday, we finished setting up their first network, including three networked printers, five different workstations, bridged wireless networks, and more. The installation went off without a hitch, except for a small issue with Southwestern Bell Communications (now at&t).