Hi Mark,

Mark Alan wrote:
> Taken from the notes of someone who knows the Care2x project far better 
> than what I was able to learn up until know:
>
> 1. Reduce from 144 tables to no more 70;
>    RATIONALE: Clinical data is, by nature, hierarchical. To represent it 
> by a relational DBMS model some kind of semantic losses must be 
> accepted. If the relational DBMS model needs to be bended in the 
> process, so be it. We need a lot less tables in order to keep the 
> project manageable.
>   
on the clinical side, i completely agree..on the coding side..the 
majority of them are needed
- to ease report development
- to ease the life  of the programmer..
some very deep improvements are required here.. 
> 2. Aggregate the care_billing_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above. If dificult, drop the care_billing_* 
> tables and modules altogether, they aren't doing much anyway and a 
> simple interface to a proper ERP would most probably be of much greater 
> value.
>   
all this is going to be handled by weberp..so they can be completely 
removed
> 3. Drop care_cafe_* tables and supporting code
>    RATIONALE: see point 1. and 2. above.
>   
maybe move them to some sort of utility module..
> 4. Aggregate the care_category_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above.
>   
same as point 1
> 5. Aggregate the care_class_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above.
>   
same as point 1
> 6. Drop care_currency table and supporting code, or integrate them in 
> care_billing_*
>    RATIONALE: see point 1. and 2. above.
>   
see point 2
> 7. Aggregate the care_drg_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above.
>   
agree completely on that
> 8. Aggregate the care_encounter_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above.
>   
see point 1
> 9. Aggregate the care_icd10_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above. The ICD codes are by definition 
> universal. There is a localization component that mus be addressed. 
> Ideally it should be addressed by gettext (or gettext-like) mechanism. 
> Given the right few lines of code any set of localized ICD text could be 
> properly imported and inserted in the general ICD data table.
>   
or much better, install only the needed one.
the problem here is that the majority of the countries adapt the icd to 
they're needs.
a better idea should be maybe, have them as a plugin(?) and  provide a 
sort of
online editor ..

> 10. Drop care_mail_* tables and supporting code
>    RATIONALE: see point 1. A simple interface to the server's/OS email 
> subsystem  would be far better. The email subsystem is now a potential 
> dangerous piece of code and should be considered serious enough to be 
> dealt by specialized, properly maintained and widely available applications.
>
>   
because they're completely useless..although internal messaging is 
needed..external module
supporting jabber ?
> 11. Aggregate the care_med_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above.
>   
my idea here is to rewrite completely that part...med's flow and
properties should be rethought ...

> 12. Aggregate the care_ops301_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see points 1. and 9. above.
>   
see point 9...a lot of countries don't use or have ops as an standart..
> 13. Aggregate the care_person_* and care_role_person tables in 2 tables: 
> one to keep DBMS architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above. ALSO: there is no such thing as a 
> person and a person from the personnel (staff). At any given moment any 
> staff member may become ill and become a person (patient).
>   
another idea should be to rethink all that part..manage all the hr side 
in a separate
module..should have more sense this way..
> 14. Aggregate the care_pharma_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above.
>   
see point 11
> 15. Drop care_tech_* tables and supporting code
>    RATIONALE: see point 1. A simple interface to a proper ticketing 
> system would be far more effective. Give the user a screen to enter the 
> event/malfunction/accident data and let a simple routine to wrap that 
> into code that a proper external ticketing system can understand. The 
> same to show the status of the reported event. Or better yet let the 
> ticket subsystem talk with the email subsystem and address all these 
> matters by simple emails.
>   
external module...maybe integrate with some sort of jabber module..could 
be much more
useful
> 14. Aggregate the care_test_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above. Be careful with this one: Lab, Pat and 
> Radio data are different things. Radiology data is usually dealt by a 
> separate subsystem (PACS), not because it is significantly different, 
> but because CAT, EMR, 3DSonography tend to saturate networking resources 
> and to black hole use huge resources of storage hardware.
>   
again here the idea of having separate modules makes much more sense.
as an example the chem lab has more types of data entry than a simple
textbox..so it will need a more sophisticated analysis description
( i'm working on this, i'll soon publish on the svn what i've done so far )
on the radiology side, i think having a RIS integration here would
make more sense
> 15. Aggregate the care_type_* tables in 2 tables: one to keep DBMS 
> architectural definitions and the other to keep the data.
>    RATIONALE: see point 1. above.
>   
as a programmer i disagree here.. it is one of the few pieces of code 
that is in
3NF :)
> 16. Is it really needed separate tables for care_type_unit_measurement 
> and care_unit_measurement?
>
>   
it is complete nonsense in fact
> 17. Is it really needed to have a care_version table to keep the current 
> program version?
>
>   
a simple file is much much better
> Extracted from original work by J. Antas
>
> M.
>
>   
this kind of critics is very appreciated. it helps thinking of the 
project on a different perspective.
as you have noticed, i've replied to your question on my point of view 
as a programmer which
tries to solve concrete problems. and on the practical side, 3NF is very 
very helpful when
you need reports, parameterizing..and helps a lot in improving db speed.

on the clinical side, an option would be to start having some simple 
semantic web features in
c2x...you can find some interesting experiments here : 
http://www.w3.org/2001/sw/hcls/

well, there is obviously more to discuss here..those were just some 
simple and
short answers..
 

gj.

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Care2002-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/care2002-developers

Reply via email to