Welcome to LinuxMedNews
 up a level
 post article
 search
 admin
 Contact
 main
 parent
 thread


Re: Consolidation Proposal: ClearHealth, FreeMED a
by Tim Cook on Tuesday June 14, 2005 @ 04:13 PM
Hi Rod,

The Yahoo Group join requirement is just to reduce spam. It is really worthwhile joining and there are multiple moderators in order to reduce turnaround time. Just put in a short blurb so they know you are a person and not a bot.

Anyway, as requested:
----------------------------------------------------------------------------------------------------------------------
On Mon, 2005-06-13 at 19:49, Fred Trotter wrote:
> This message is being cross posted on all the relevant forums.

I only have access to openhealth at yahoogroups.com so maybe someone wants to pass this along?

> > As a result of the fact that Josh and David are first class architects,
> and David and I have a deep background in the current architecture of FreeMED and OpenEMR, I feel ClearHealth has the cleanest layout and most
> progressive core features of any of the three projects.

Since I have no interest in any of the projects mentioned I would like to address this paragraph.

I do not know Josh or David beyond what I've read on the web. But,it would seem that I should be able to extrapolate the above paragraph into; "ClearHealth has a great architecture".

If I am correct can David and Josh please address these issues:

1) describe how you developed your data model.

2) where is your data model documented?

3) do you allow any nulls in your database?

4) could I produce a view of the patient record that gives me thecondition of the patient at a specific point in time (1 month or 1 year ago) maintaining the complete context of the patient condition asrecorded in the database?

5) how does your sessioning machinery guarantee that I write data to thecorrect patient record when I have multiple patient records open on thesame workstation at the same time?

6) have you performed clinical audit and data quality testing of several(10 - 20) thousand records?

7) is all clinical data coded? If so which vocabularies or standardsare allowed/provided for?

8) do you have a dynamic security model that allows various roles thatare implementation specific?

9) do you provide E&M calculation/classification for notes? (this is a US specific feature)

10) how do you handle allergies and drug interactions duringprescribing?

Of course OpenEMR and FreeMED developers are ENCOURAGED to address these issues also.

My reason for asking these question are that no matter how fancy your scheduler or glitzy your templates. If you can't absolutely guarantee to return the context of my clinical patient data in 5, 50 or 100 years then you have a broken model. (HINT: I am a proponent of the openEHR two level modeling approach).

If you allow nulls anywhere in your database you run the risk of queries returning incorrect information.

If you allow nulls in your database you now allow a three valued logic and are no longer faithful to the relational model as defined by E.F. Codd and refined by others.

If your server can't distinguish between data write operations onseparate patient records coming from the same workstation then you have a VERY serious issue (yes, this was (is?) characteristic of at least one of the mentioned applications).

Is that enough to start up a technical dialog? I believe the level to which each application addresses these issues will help establish a baseline for your consolidation.

Cheers,
Tim Cook
  Related Links
  • Articles on ClearHealth
  • Also by Tim Cook
  • Contact author
  • The Fine Print: The following comments are owned by whoever posted them.
    ( Reply )

    Re: Consolidation Proposal: ClearHealth, FreeMED a
    by Fred Trotter on Tuesday June 14, 2005 @ 07:05 PM

    MSgt Cook,
    This is a technical response to your last question from some quick conversations with Josh. There were even some cases where I knew the answer myself :)

    Answers throughout.


    >
    > 1) describe how you developed your data model.

    We use the some of the more modern OOP capabilities in PHP 4, as well as some object persistence code and data abstraction code. These were previously written by Uversa for other carrier-grade software projects.
    We bundle this code into a library called Cellini, which is some of our own code, but mostly the most useful third party php systems, such as Smarty templating system, PEAR, and ADOdb for DB abstraction.

    > 2) where is your data model documented?

    We have some DB structure documents available on the Wiki. We also have a basic data dictionary built using the tools built into phpMyAdmin, but we haven't had a chance to update things based on the many recent changes. Eventually we will be using UML for usecases and DB structure.

    > 3) do you allow any nulls in your database?
    Yes but only for optional relationships

    > 4) could I produce a view of the patient record that gives me the
    > condition of the patient at a specific point in time (1 month or 1 year
    > ago) maintaining the complete context of the patient condition as
    > recorded in the database?

    I believe so all encounter information is created in seperate entires with timestamps. We would have to generate a report we do not yet have, but the data is there.


    > 5) how does your sessioning machinery guarantee that I write data to the
    > correct patient record when I have multiple patient records open on the
    > same workstation at the same time?
    Session data isn't used for updating information, the forms contains the id of the record your editing so having multiple patients open won't
    effect that.
    There are some features that might run into problems such as the current selected patient quick view that could be messed up by this, but thats not a data loss issue just a usability one.


    > 6) have you performed clinical audit and data quality testing of several
    > (10 - 20) thousand records?
    One of our customers is working on this now.

    > 7) is all clinical data coded? If so which vocabularies or standards
    > are allowed/provided for?
    Currently just billing codes. The current system is targeted to be a good EMR for Practice Management for now, moving towards a great EMR for everything later.


    > 8) do you have a dynamic security model that allows various roles that
    > are implementation specific?

    We use Generic Access Controls for our security model. Specific user actions are checked based on:
    An enitity (like the calendar, or even a specific patient record)
    An action (mostly generic ones like read,update,delete,add)
    A user (whoever is logged in)

    An acl applied these 3 items then allows or denies the action.

    This is actually synergy between all three projects since I think everyone is using the excellent PHPGacl.


    > 9) do you provide E&M calculation/classification for notes? (this is a
    > US specific feature)
    Not yet


    > 10) how do you handle allergies and drug interactions during
    > prescribing?
    No prescription module at all yet.


    > Of course OpenEMR and FreeMED developers are ENCOURAGED to address these
    > issues also.
    >
    > My reason for asking these question are that no matter how fancy your
    > scheduler or glitzy your templates. If you can't absolutely guarantee to
    > return the context of my clinical patient data in 5, 50 or 100 years
    > then you have a broken model. (HINT: I am a proponent of the openEHR
    > two level modeling approach).

    josh said: I haven't reviewed openEHR's data model so I don't any basis of comparison.

    Fred: Until we feel like we have Practice Management EMR in hand, we will not be looking at this. However, rapidly after that, it will become
    a concern. In general, we will be hoping to work with openEHR, since I understand it is Free Software friendly.

    > If you allow nulls anywhere in your database you run the risk of queries
    > returning incorrect information. If you allow nulls in your database
    > you now allow a three valued logic and are no longer faithful to the
    > relational model as defined by E.F. Codd and refined by others.

    I have database design classes and read the arguments over null, I would agree they can make things more complicated but, they are the only way to allow for optional relationships or data in a
    relational databases, so they are used sparingly but when needed.

    > If your server can't distinguish between data write operations on
    > separate patient records coming from the same workstation then you have
    > a VERY serious issue (yes, this was (is?) characteristic of at least one
    > of the mentioned applications).
    Updates are always done using specific ids either built into the url
    (most cases) or passed in the form. I can't think of any place where we make an update based on the last id you selected in your session.

    In summary, these questions point out some of the major issues with the LAMP development model. However, since all three projects are LAMP, the
    only real question is who handling these issues best, given that they are often an issue with the architecture. Even if there is no consolidation possible, it would be interesting to compare and contrast between the three projects on this issue. I can say that if anybody is handling this better, ClearHealth will be the first to move to an
    improved design.

    Fred Trotter
    [ Reply to this ]
    The Fine Print: The following comments are owned by whoever posted them.
    ( Reply )


     
    Google
     
    www.linuxmednews.com Web
    Advertisement: CCHIT certified EMR and Medical Practice Management Software from Medical Software Associates makes patient management easy. Free practice management and medical billing software demo available.
    All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest ©2000-2006 Ignacio Valdes, MD, MS.