openEPRS Project Update

It was over two years ago that I embarked on creating an open source electronic medical record. Today I have decided to discontinue work on openEPRS. This rise of other open source projects such as Medsphere put openEPRS at a competitive disadvantage. The complexity and scope of building an EMR is beyond the capabilities of a single developer. That is not to say definitively that it is impossible. However, by the time a single person could complete such a project, it would be obsolete.

In retrospect, the project was not a complete failure. openEPRS was a great opportunity for learning Ruby on Rails which helped me become a better developer. Now, on to the next challenge!

KB: Running Cruise behind Apache with SSL on Ubuntu

Configuration guide for running Cruise behind Apache with SSL on Ubuntu Linux. Read the rest of this entry »

Cruise and Ubuntu System Wide Environment Settings

I discovered a strange little problem the other day. I just completed my install of ThoughtWorks Cruise on a server running Ubuntu 8.04 LTS. In case you haven’t heard of it, Cruise is a continuous integration and release management system. Everything appeared to be running correctly; so I proceeded to setup a pipeline for an Android project I was working on.

Android uses Ant to build and manage a project outside an IDE such as Eclipse. This looked like a no brainer using Cruise’s <ant> task. I had Ant 1.7.1 installed with the following lines in my server’s /etc/environment file: Read the rest of this entry »

KB: Running Mingle behind Apache with SSL on Ubuntu

Configuration guide for running Mingle behind Apache with SSL on Ubuntu Linux. Read the rest of this entry »

KB: Secure WordPress Administration on Ubuntu

Configuration guide for the administration of WordPress over SSL on Ubuntu Linux. Read the rest of this entry »

KB: Hard Drive Cloning on Ubuntu

Guide for hard drive cloning on Ubuntu Linux. Read the rest of this entry »

ASP.NET MVC and Tabs

Recently I have been spending time creating a batch application for SQL Server Reporting Services. During the day, I work for a third-party administrator (TPA). Part of the business involves the payment of medical, vision and dental claims on the behalf of our clients. Periodically we need to print the check registers on the accounts from which the claims payments are made. A data driven subscription alone is not flexible enough. Running the report on demand for each date and client would take too long.

To make it easy for the accounting department to run these reports, I created a web application using ASP.NET MVC that allows the user to search for check runs by date and then select which registers to print from the search results. The selection is used to populate a parameter table followed by the application executing a SQL Agent job associated with a standard data driven subscription for the check register report. Now that the background is out of the way, on to the problem and solution.

The default ASP.NET MVC application layout is a simple master page with a “MainContent” place holder. The master page provides a menu located above the content place holder. The menu is a basic unordered list formatted to look like a series of tabs. Each tab contains an ActionLink helper that ties it to a specific controller and action. This works great except that there is no support for identifying and maintaining the currently selected tab.

Default ASP.NET MVC Layout
Read the rest of this entry »

Plug-ins, Security and Frustration

Really nothing to post on except my increasing level of frustration with Rails security plug-ins and my domain model. This shouldn’t be that difficult given:

  • There are multiple clinical facilities
  • Users can belong to more than one facility
  • Users can have different roles at each facility
  • The application supports an HTML interface as well as a REST API

Authentication was easy, I used the restful_authentication plug-in. It is easy to customize and works great with HTTP basic authentication and SSL for securing the REST API. The only modification I made to the plug-in was changing from SHA1 to SHA512 for the password hashes. Read the rest of this entry »

KB: WEBrick SSL Configuration

WEBrick SSL Configuration Read the rest of this entry »

The Prodigal Developer Returns to Rails

It has been two days since I posted an article on auditing data modifications using the Zend Framework. I have recently published a number of other articles on Zend in general. I noticed a recurring statement that forced me to rethink the pursuit of using alternative frameworks for openEPRS:

“X is easier with Ruby on Rails than it is with (insert language and/or framework)”

When I started openEPRS in 2007, Ruby on Rails was the chosen platform. I liked it because it was easy to learn, concise and held close DRY development principles. It really is an amazing framework, one that is truly a disruptive platform. Read the rest of this entry »