gnumed-devel
[Top][All Lists]
Advanced

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

[Gnumed-devel] removing test data


From: Karsten Hilbert
Subject: [Gnumed-devel] removing test data
Date: Fri, 7 Aug 2009 17:55:06 +0200
User-agent: Mutt/1.5.20 (2009-06-14)

I have added the following script which will enable people
to delete most test data on a stock v11 database. We cannot
add that to the upgrade/bootstrap because it would unfixably
break the data consistency tests. People will have to run it
manually.

I will provide two more scripts: one that drops data for the
"Hilbert" test persons and one that drops Kirk and McCoy.

--- ==============================================================
--- GNUmed database schema change script
--
--- License: GPL
--- Author: address@hidden
--
--- ==============================================================
--- $Id: v11-drop_obsolete_groups-dynamic.sql,v 1.1 2009/08/06 13:55:19 ncq Exp 
$
--- $Revision: 1.1 $

--- --------------------------------------------------------------
\set ON_ERROR_STOP 1

set default_transaction_read_only to off;

--- --------------------------------------------------------------
--- remove unwanted test data
begin;


--- temporary storage
create temporary table persons_to_delete (
        pk_identity integer
                unique
) on commit drop ;


--- gather people to delete
insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Haywood'
                        and
                firstnames = 'Ian'
                        and
                cob = 'UK'
                        and
                gender = 'm'
                        and
                date_trunc('day', dob) = '1977-12-18'::timestamp
));

insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Raby'
                        and
                firstnames = 'Cilla'
                        and
                cob = 'AU'
                        and
                gender = 'f'
                        and
                date_trunc('day', dob) = '1979-02-28'::timestamp
));

insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Herb'
                        and
                firstnames = 'Horst'
                        and
                cob = 'DE'
                        and
                gender = 'm'
                        and
                date_trunc('day', dob) = '1969-12-31'::timestamp
));

insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Terry'
                        and
                firstnames = 'Richard'
                        and
                cob = 'AU'
                        and
                gender = 'm'
                        and
                date_trunc('day', dob) = '1959-12-31'::timestamp
));

insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Berger'
                        and
                firstnames = 'Hilmar'
                        and
                cob = 'DE'
                        and
                gender = 'm'
                        and
                date_trunc('day', dob) = '1973-12-31'::timestamp
));

insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Chapel'
                        and
                firstnames = 'Christine'
                        and
                cob = 'US'
                        and
                gender = 'f'
                        and
                date_trunc('day', dob) = '1932-02-22'::timestamp
));


insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Bashier'
                        and
                firstnames = 'Julian'
                        and
                cob = 'SD'
                        and
                gender = 'm'
                        and
                date_trunc('day', dob) = '1965-11-20'::timestamp
));

insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Testwoman'
                        and
                firstnames = 'Laborata'
                        and
                cob = 'CA'
                        and
                gender = 'f'
                        and
                date_trunc('day', dob) = '1931-03-21'::timestamp
));

insert into persons_to_delete (pk_identity) values ((
        select pk_identity from dem.v_basic_person where
                lastnames = 'Test'
                        and
                firstnames = 'Testdob'
                        and
                gender = 'm'
                        and
                date_trunc('day', dob) = '1978-11-15'::timestamp
));

--- delete data
delete from clin.lab_request where fk_encounter in (
        select pk from clin.encounter where fk_patient in (
                select pk_identity from persons_to_delete
        )
);

--- delete episodes
delete from clin.episode where fk_encounter in (
        select pk from clin.encounter where fk_patient in (
                select pk_identity from persons_to_delete
        )
);

--- delete encounters
delete from clin.encounter where fk_patient in (select pk_identity from 
persons_to_delete);


--- delete names
delete from dem.names where id_identity in (select pk_identity from 
persons_to_delete);

--- delete identities
--- 1) enable dropping of people from dem.identity
drop rule r_del_identity on dem.identity;

--- 2) drop identities
delete from dem.identity where pk in (select pk_identity from 
persons_to_delete);

--- 3) re-disable dropping of people from dem.identity
create rule r_del_identity as
        on delete to dem.identity do instead
                update dem.identity set deleted = True where pk = OLD.pk;

commit;

--- --------------------------------------------------------------
select gm.log_script_insertion('$RCSfile: 
v11-drop_obsolete_groups-dynamic.sql,v $', '$Revision: 1.1 $');

--- ==============================================================
--- $Log: v11-drop_obsolete_groups-dynamic.sql,v $
--- Revision 1.1  2009/08/06 13:55:19  ncq
--- - new
--- 

-- 
GPG key ID E4071346 @ wwwkeys.pgp.net
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346




reply via email to

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