gnumed-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnumed-devel] GNUmed support for coding systems


From: Karsten Hilbert
Subject: Re: [Gnumed-devel] GNUmed support for coding systems
Date: Wed, 4 May 2011 13:30:32 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, May 04, 2011 at 01:05:07PM +0200, Eric MAEKER wrote:

> Some codes (ICD10) are interdependent:
> 
>       - some needs others
>       - some associations are mandatory
>       - some associations are simply not possible (exclusions)
>       - codes have a date of release (for update calculations)
>       - some codes includes multiple labels
>       - association order is important (dag first, star associated)

Sure, but those are *rules* upon the *usage* of the codes,
not facts (as in codes) themselves.

Hence they are best expressed at the level of usage, not at
the level of fact storage.

Such rules typically depend on the amount of jet lag a WHO
executive comes under when travelling from Cairo to Delhi.
Oh, maybe the thickness of butter on the sandwich plays a
role, too.

If one really wants to enforce such rules at the database
level the enforcement must be:

        - dependant on some configuration item
        - at the level of actually linking EMR items
          (narrative, episodes, RFE, AOE, issues) to
          individual codes

Those tables weren't even mentioned in the ones I attached
(see below).

That's also why I thought GNUmed could use FreeCodeBrowser
as a helper application:

- hand it a term
- return a set of codes conceptually consistent
  with application of a certain set of rules

Karsten

> > Sure. Our structure for storing reference data on coding
> > systems goes like this:
> > 
> > create table ref.data_source (
> >     pk serial
> >             primary key,
> >     name_long text
> >             not null,
> >     name_short text
> >             not null,
> >     version text
> >             not null,
> >     description text,
> >     source text
> >             not null,
> >     unique(version, name_long),
> >     unique(version, name_short)
> > ) inherits (audit.audit_fields);
> > 
> > 
> > create table ref.coding_system_root (
> >     pk_coding_system serial
> >             primary key,
> >     code text
> >             not null,
> >     term text
> >             not null,
> >     fk_data_source integer
> >             not null
> >             references ref.data_source(pk)
> >             on update cascade
> >             on delete restrict,
> >     comment text,
> >     unique(fk_data_source, code),
> >     unique(fk_data_source, term)
> > );
> > 
> >     -> all coding system tables inherit from this one


-- 
GPG key ID E4071346 @ gpg-keyserver.de
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346



reply via email to

[Prev in Thread] Current Thread [Next in Thread]