PROIECT BAZE DE DATE - BEBE
Cuprins:
1. Tabelul firme.
2. Tabelul firme_detalii_plati.
3. Tabelul medici.
4. Tabelul arhiva_cnas_mf.
5. Tabelul asigurati.
6. Tabelul arhiva_asig_ang.
7. Tabelul arhiva_asig_mf.
8. Tabelul asigurati_detalii_medicale.
9. Tabelul farmacii.
10. Tabelul farm_contract_cnas.
11. Tabelul arhiva_ctr_farm_cnas.
12. Tabelul retete.
13. Tabelul retete_arhiva.
14. Tabelul retete_eliberate.
15. Tabelul
16. Tabelul
17. Tabelul
18. Tabelul
19. Tabelul
20. Tabelul
21. Tabelul
22. Tabelul
23. Tabelul
24. Tabelul
25. Tabelul
26. Tabelul
27. Tabelul
28. Tabelul
29. Tabelul
30. Tabelul
31. Tabelul
32. Tabelul
33. Tabelul
34. Tabelul
35. Tabelul
36. Tabelul
Tabelul firme retine informatii despre firmele aflate in relatie cu CNAS adica cele care platesc asigurarile medicale pentru angajatii lor.
Structura tabelului firme:
Cheile:
Am definit cheia primara cod_firma_pk pe colana cod_firma. Acest camp se completeaza automat cu ajutorului triggerului trg_firme_ins_befo_row:
create or replace trigger trg_firme_ins_befo_row -- cream un declansator care sa actioneza
before insert on bebec.firme -- inainte de a insera o inregistrare
for each row -- pentru fiecare inregistrare introdusa
declare
codfirma bebec.firme.cod_firma%type -- declaram variabilele
UTILIZATOR VARCHAR2
begin
select max(bebec.firme.cod_firma) into codfirma from bebec.firme;
new.cod_firma:=nvl(codfirma, -- completeaza automat cu numere crescatoare campul cod_firma
NEW.CREATION_DATE:=SYSDATE -- data crearii se stabileste ca fiind data curenta
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.CREATED_BY:=UTILIZATOR; --cel ce creaza inregistrarea este utilizatorul curent
end trg_firme_ins_befo_row;
Tot acest declansator (trigger) completeaza automat campurile standard created_by si creation_date cu numele utilizatorului care creaza inregistrarea respective cu data curenta (sysdate) in care este creata inregistrarea.
Am mai creat un trigger care sa actioneze cand se fac update-uri pe tabela firme si anume completeaza automat campurile standard last_update_date si updated_by cu data ultimei modificari a inregistrarii, data sistemului (sysdate), respectiv cu numele utilizatorului care efectueaza modificarea :
create or replace trigger trg_firme_UPD_befo_row
before UPDATE on bebec.firme
for each row
declare
UTILIZATOR VARCHAR2
begin
NEW.LAST_UPDATE_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.LAST_UPDATED_BY:=UTILIZATOR;
end trg_firme_UPD_befo_row;
Crearea tabelului firme se realizeaza cu scriptul:
-- Create table
create table FIRME
COD_FIRMA NUMBER not null
COD_FISCAL VARCHAR2 not null
DENUMIRE VARCHAR2 not null
JUDET VARCHAR2 not null
TIP_LOCALITATE VARCHAR2
LOCALITATE VARCHAR2
STRADA VARCHAR2
NUMAR NUMBER
ALTE_ADRESA VARCHAR2
TEL_FIX VARCHAR2
TEL_MOBIL VARCHAR2
FAX VARCHAR2
EMAIL VARCHAR2
WEB VARCHAR2
NR_ANG NUMBER
CREATION_DATE DATE
CREATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
LAST_UPDATED_BY VARCHAR2
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the table
comment on table FIRME
is 'TABELA CONTINE FIRMELE PENTRU CARE LUCREAZA ASIGURATII '
-- Add comments to the columns
comment on column FIRME.COD_FIRMA
is 'NUMAR UNIC DE IDENTIFICARE A UNEI FIRME'
comment on column FIRME.COD_FISCAL
is 'COD UNIC ASOCIAT FIRMELOR DE MINISTERUL DE FINANTE'
comment on column FIRME.DENUMIRE
is 'DENUMIREA (NUMELE) FIRMEI'
comment on column FIRME.JUDET
is 'JUDET ADRESA'
comment on column FIRME.TIP_LOCALITATE
is 'TIP LOCALITATE ADRESA'
comment on column FIRME.LOCALITATE
is 'LOCALITATE ADRESA'
comment on column FIRME.STRADA
is 'STRADA ADRESA'
comment on column FIRME.NUMAR
is 'NUMAR ADRESA'
comment on column FIRME.ALTE_ADRESA
is 'ALTE DETALII ADRESA'
comment on column FIRME.TEL_FIX
is 'TELEFON FIX'
comment on column FIRME.TEL_MOBIL
is 'TELEFON MOBIL'
comment on column FIRME.FAX
is 'NUMAR DE FAX'
comment on column FIRME.EMAIL
is 'ADRESA DE EMAIL '
comment on column FIRME.WEB
is 'ADRESA SITE WEB '
comment on column FIRME.NR_ANG
is 'NUMAR ANGAJATI'
comment on column FIRME.CREATION_DATE
is 'DATA CREARII INREGISTRARII'
comment on column FIRME.CREATED_BY
is 'USERUL CARE A CREAT INREGISTRAREA'
comment on column FIRME.LAST_UPDATE_DATE
is 'DATA ULTIMEI MODIFICARI ASUPRA INREGISTRARII'
comment on column FIRME.LAST_UPDATED_BY
is 'USERUL CARE A FACUT ULTIMA MODIFICARE'
-- Create/Recreate primary, unique and foreign key constraints
alter table FIRME
add constraint COD_FIRMA_PK primary key (COD_FIRMA)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
alter table FIRME
add constraint COD_FISCAL_UN unique (COD_FISCAL)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select insert update delete on FIRME to SCOTT;
grant references alter index on FIRME to SCOTT with grant option
Tabelul firme_detalii_plati contine detalierea platilor efectuate de catre firme spre CNAS.
Structura tabelului firme_detalii_plati:
Cheile:
Am definit cheia primara cod_plata_pk pe colanele cod_plata, cod_firma. Campul cod_plata se completeaza automat cu ajutorului triggerului trg_fir_det_plat_ins_befo_row:
create or replace trigger trg_fir_det_plat_ins_befo_row -- cream un trigger care sa traga
before insert on bebec.firme_detalii_plati -- inainte de inserarea in tabel a
for each row --oricarei inregistrari
declare -- declaram variabilele folosite in corpul triggerului
codplata bebec.firme_detalii_plati.cod_plata%type
UTILIZATOR VARCHAR2
begin
select max(bebec.firme_detalii_plati.cod_plata) into codplata from bebec.firme_detalii_plati
where bebec.firme_detalii_plati.cod_firma=:new.cod_firma;
new.cod_plata:=nvl(codplata,
NEW.CREATION_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.CREATED_BY:=UTILIZATOR;
end trg_fir_det_plat_ins_befo_row;
Am mai creat un trigger care sa actioneze cand se fac update-uri pe tabela firme_detalii_plati si anume completeaza automat campurile standard last_update_date si updated_by cu data ultimei modificari a inregistrarii, data sistemului (sysdate), respectiv cu numele utilizatorului care efectueaza modificarea :
create or replace trigger trg_firme_det_pl_UPD_befo_row
before UPDATE on bebec.firme_detalii_plati
for each row
declare
UTILIZATOR VARCHAR2
begin
NEW.LAST_UPDATE_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.LAST_UPDATED_BY:=UTILIZATOR;
end trg_firme_det_pl_UPD_befo_row;
Crearea tabelei firme-detalii_plati se realizeaza cu scriptul:
-- Create table
create table FIRME_DETALII_PLATI
COD_PLATA NUMBER not null
COD_FIRMA NUMBER not null
AN NUMBER not null
LUNA VARCHAR2 not null
SUMA_PLATITA NUMBER not null
REST_PLATA NUMBER
DATA_PLATII DATE not null
CREATION_DATE DATE
CREATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
LAST_UPDATED_BY VARCHAR2
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the table
comment on table FIRME_DETALII_PLATI
is 'DETALII DESPRE PLATILE FIRMELOR CATRE CNAS'
-- Add comments to the columns
comment on column FIRME_DETALII_PLATI.COD_PLATA
is 'NUMAR UNIC DE IDENTIFICARE A INREGISTRARII DIN TABEL'
comment on column FIRME_DETALII_PLATI.COD_FIRMA
is 'NUMAR CARE IDENTIFICA FIRMA '
comment on column FIRME_DETALII_PLATI.AN
is 'ANUL PENTRU CARE SE EFECTUEAZA PLATA'
comment on column FIRME_DETALII_PLATI.LUNA
is 'LUNA PENTRU CARE SE EFECTUEAZA PLATA'
comment on column FIRME_DETALII_PLATI.SUMA_PLATITA
is 'SUMA PLATITA'
comment on column FIRME_DETALII_PLATI.REST_PLATA
is 'REST RAMAS DE PLATA PENTRU LUNA RESPECTIVA'
comment on column FIRME_DETALII_PLATI.DATA_PLATII
is 'DATA LA CARE SE EFECTUEAZA PLATA'
comment on column FIRME_DETALII_PLATI.CREATION_DATE
is 'data la care a fost creata inregistrarea'
comment on column FIRME_DETALII_PLATI.CREATED_BY
is 'utilizatorul care a creat inregistrarea'
comment on column FIRME_DETALII_PLATI.LAST_UPDATE_DATE
is 'data la care s-a facut ultima modificare'
comment on column FIRME_DETALII_PLATI.LAST_UPDATED_BY
is 'utilizatorul care a efectuat ultima modificare'
-- Create/Recreate primary, unique and foreign key constraints
alter table FIRME_DETALII_PLATI
add constraint COD_PLATA_PK primary key (COD_PLATA, COD_FIRMA)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select insert update delete on FIRME_DETALII_PLATI to SCOTT;
Tabela medici contine informatii despre medicii aflati in contract cu CNAS; este populata cu date reale preluate de pe site-urile judetene ale CNAS.
Structura tabelului medici:
Cheie primara cod_medic si cheie unica parafa:
Triggeri:
Inainte de inserare inregistrare:
create or replace trigger trg_MEDICI_ins_befo_row
before insert on bebec.MEDICI
for each row
declare
codMEDIC bebec.MEDICI.cod_MEDIC%type
UTILIZATOR VARCHAR2
begin
select max(bebec.MEDICI.cod_MEDIC) into codMEDIC from bebec.MEDICI;
new.cod_MEDIC:=nvl(codMEDIC,
NEW.CREATION_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.CREATED_BY:=UTILIZATOR;
end TRG_MEDICI_INS_BEFO_ROW;
Inainte de updatare inregistrare:
create or replace trigger trg_medici_UPD_befo_row -- cream un trigger care sa se declanseze
before UPDATE on bebec.medici -- inainte de a se face un update pe tabela medici
for each row -- pentru fiecare rand
declare -- declaram variabiliele locale
UTILIZATOR VARCHAR2
begin
NEW.LAST_UPDATE_DATE:=SYSDATE -- setam data ultimului update la sysdate
SELECT USER INTO UTILIZATOR FROM DUAL;-- retinem utilizatorul in variabila utilizator
NEW.LAST_UPDATED_BY:=UTILIZATOR;-- setam userul la utilizatorul curent
insert into arhiva_cnas_mf values -- inseram in tabela arhiva_cnas_mf
-- vechile valori ale inregistrarii
-- din tabela medici
-- cod din tabela arhiva_cnas_mf; putem pune orice se calculeaza automat
-- de un trigger before insert pe tabela arhiva_cnas_mf
old.cod_medic,
old.parafa,
old.nume,
old.m_valid_de_la,
old.m_valid_pana_la,
old.tip_medic,
old.specialitatea,
old.casa_as,
old.tip_contract,
old.nr_contract,
old.c_valid_de_la,
old.c_valid_pana_la,
utilizator, -- created_by din tabela arhiva_cnas_mf
sysdate -- creation_date din tabela arhiva_cnas_mf
null -- last_updated_by din tabela arhiva_cnas_mf
null -- last_update_date din tabela arhiva_cnas_mf
end trg_medici_UPD_befo_row;
Creare tabela medici
-- Create table
create table MEDICI
COD_MEDIC NUMBER not null
PARAFA VARCHAR2 not null
NUME VARCHAR2 not null
M_VALID_DE_LA DATE
M_VALID_PANA_LA DATE
TIP_MEDIC VARCHAR2
SPECIALITATEA VARCHAR2
CASA_AS VARCHAR2
TIP_CONTRACT VARCHAR2
NR_CONTRACT VARCHAR2
C_VALID_DE_LA DATE
C_VALID_PANA_LA DATE
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column MEDICI.COD_MEDIC
is 'COD MEDIC NUMAR UNIC ALOCAT DE SISTEM'
comment on column MEDICI.PARAFA
is 'COD UNIC ALOCAT DE MINISTERUL SANATATII'
comment on column MEDICI.NUME
is 'NUMELE MEDICULUI'
comment on column MEDICI.M_VALID_DE_LA
is 'DATA DE LA CARE ESTE VALID MEDICUL'
comment on column MEDICI.M_VALID_PANA_LA
is 'DATA PANA LA CARE ESTE VALID MEDICUL'
comment on column MEDICI.TIP_MEDIC
is 'TIPUL MEDICULUI '
comment on column MEDICI.SPECIALITATEA
is 'SPECIALITATEA MEDICULUI'
comment on column MEDICI.CASA_AS
is 'CASA AIGURARILOR DE SANATATE CU CARE MEDICUL ARE INCHEIAT CONTRACT'
comment on column MEDICI.TIP_CONTRACT
is 'TIPUL CONTRACTULUI MEDICULUI CU CASA ASIGURARILOR DE SANATATE'
comment on column MEDICI.NR_CONTRACT
is 'NUMARUL CONTRACTULUI MEDICULUI CU CNAS'
comment on column MEDICI.C_VALID_DE_LA
is 'DATA DE LA CARE MEDICUL ESTE IN CONTRACT CU CNAS'
comment on column MEDICI.C_VALID_PANA_LA
is 'DATA PANA LA CARE MEDICUL ESTE IN CONTRACT CU CNAS'
comment on column MEDICI.CREATED_BY
is 'UTILIZATORUL CARE A CREAT INREGISTRAREA'
comment on column MEDICI.CREATION_DATE
is 'DATA LA CARE A FOST CREATA INREGISTRAREA'
comment on column MEDICI.LAST_UPDATED_BY
is 'UTILIZATORUL CARE A EFECTUAT ULTIMA MODIFICARE'
comment on column MEDICI.LAST_UPDATE_DATE
is 'DATA LA CARE S-A EFECTUAT ULTIMA ACTUALIZARE'
-- Create/Recreate primary, unique and foreign key constraints
alter table MEDICI
add constraint COD_MEDIC_PK primary key (COD_MEDIC)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
alter table MEDICI
add constraint PARAFA_UN unique (PARAFA)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select insert update delete on MEDICI to SCOTT;
Apoi am demarat actiunea de populare a tabelei. Deoarece tabela in DETALII_MEDICI_GJ apareau medicii de cate doua ori am creat o noua tabela DETALII_MEDICI_GJ1 executand o grupare dupa parafa (stencil)
Folosind aceasta noua tabela am inserat in tabela MEDICI
declare
cursor insert_medici is SELECT
-- am creat un cursor cu inregistrarile pe care doresc sa le
cod_medic, -- inserez in tabela MEDICI
tmr.STENCIL parafa,
tmr.NAME nume,
tmr.VALIDFROM m_valid_de_la,
tmr.VALIDTO m_valid_pana_la,
dmg.PHYSICIANTYPE tip_medic,
dmg.SPECIALITYCODE specialitatea,
dmg.INSURANCEHOUSE casa_as,
dmg.CONTRACTTYPE tip_contract,
dmg.CONTRACTNO nr_contract,
dmg.VALIDFROM c_valid_de_la,
dmg.VALIDTO c_valid_pana_la,
NULL created_by,
NULL creation_date,
NULL last_updated_by,
NULL last_update_date
FROM TOTI_MEDICII_ROM TMR, DETALII_MEDICI_GORJ1 DMG
WHERE TMR.STENCIL=DMG.STENCIL;
inregistrare insert_medici%rowtype
-- am creat o variabila de tipul unei inregistrari din cursor
begin
for inregistrare in insert_medici loop
-- atata timp cat avem inregistrari in cursorul insert_medici
INSERT INTO MEDICI--inseram in tabela MEDICI
(cod_medic,
parafa,
nume,
m_valid_de_la,
m_valid_pana_la,
tip_medic,
specialitatea,
casa_as,
tip_contract,
nr_contract,
c_valid_de_la,
c_valid_pana_la,
created_by,
creation_date,
last_updated_by,
last_update_date)
values -- valorile inregistrarii
inregistrare.cod_medic,
inregistrare.parafa,
inregistrare.nume,
inregistrare.m_valid_de_la,
inregistrare.m_valid_pana_la,
inregistrare.tip_medic,
inregistrare.specialitatea,
inregistrare.casa_as,
inregistrare.tip_contract,
inregistrare.nr_contract,
inregistrare.c_valid_de_la,
inregistrare.c_valid_pana_la,
inregistrare.created_by,
inregistrare.creation_date,
inregistrare.last_updated_by,
inregistrare.last_update_date);
end loop
end
Tabelul arhiva_cnas_mf contine inregistrarile vechi cu privire la medicii de familie aflati in contract cu CNAS. Acest tabel se completeaza automat cu inregistrarile care se modifica in sensul ca inregistrarile vechi se muta in acest tabel. Acest tabel este folositor pentru a vedea istoricul relatiei CNAS – medici de familie; spre exemplu putem vedea in acest tabel contractul unui medic de familie si valoarea acestuia pentru un an anterior.
Structura tabelului arhiva_cnas_mf:
Cheile:
Triggeri:
Inainte de inserare inregistrare:
create or replace trigger trg_arhiva_cnas_mf_ins_bef_rw--aloca numere pentru cod
before insert on bebec.arhiva_cnas_mf --numararea se face pentru fiecare medic
for each row
declare
cod bebec.arhiva_cnas_mf.cod%type
begin
select max(bebec.arhiva_cnas_mf.cod) into cod from bebec.arhiva_cnas_mf
where bebec.arhiva_cnas_mf.cod_medic=:new.cod_medic;
new.cod:=nvl(cod,
end trg_arhiva_cnas_mf_ins_bef_rw;
Inainte de modificare inregistrare:
create or replace trigger trg_ah_cnas_mf_upd_befo_row -- acest trigger se declanseaza
before UPDATE on bebec.arhiva_cnas_mf -- inainte de modificarea unei inregistrari
for each row -- din tabel
declare -- si completeaza automat coloanele
UTILIZATOR VARCHAR2 -- last_update_date si last_updated_by
begin
NEW.LAST_UPDATE_DATE:=SYSDATE -- cu data curenta si utilizatorul curent
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.LAST_UPDATED_BY:=UTILIZATOR;
end trg_ah_cnas_mf_upd_befo_row;
Crearea tabelului:
-- Create table
create table ARHIVA_CNAS_MF
COD NUMBER not null
COD_MEDIC NUMBER not null
PARAFA VARCHAR2 not null
NUME VARCHAR2 not null
M_VALID_DE_LA DATE
M_VALID_PANA_LA DATE
TIP_MEDIC VARCHAR2
SPECIALITATEA VARCHAR2
CASA_AS VARCHAR2
TIP_CONTRACT VARCHAR2
NR_CONTRACT VARCHAR2
C_VALID_DE_LA DATE
C_VALID_PANA_LA DATE
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column ARHIVA_CNAS_MF.COD
is 'numara modificarile pentru fiecare cod_medic'
comment on column ARHIVA_CNAS_MF.COD_MEDIC
is 'codul medicului la care se refera inregistrarea'
comment on column ARHIVA_CNAS_MF.PARAFA
is 'parafa medicului'
comment on column ARHIVA_CNAS_MF.NUME
is 'numele si prenumele medicului'
comment on column ARHIVA_CNAS_MF.M_VALID_DE_LA
is 'data de la care este valid medicul'
comment on column ARHIVA_CNAS_MF.M_VALID_PANA_LA
is 'data pana la care este valid medicul'
comment on column ARHIVA_CNAS_MF.TIP_MEDIC
is 'tipul medicului'
comment on column ARHIVA_CNAS_MF.SPECIALITATEA
is 'specialitatea medicului'
comment on column ARHIVA_CNAS_MF.CASA_AS
is 'casa de asigurari cu care medicul are contract'
comment on column ARHIVA_CNAS_MF.TIP_CONTRACT
is 'tipul contractului medicului cu CNAS'
comment on column ARHIVA_CNAS_MF.NR_CONTRACT
is 'numarul contractului'
comment on column ARHIVA_CNAS_MF.C_VALID_DE_LA
is 'data de la care este valid contractul'
comment on column ARHIVA_CNAS_MF.C_VALID_PANA_LA
is 'data pana la care este valid contractul'
comment on column ARHIVA_CNAS_MF.CREATED_BY
is 'utilizatorul care a creat inregistrarea'
comment on column ARHIVA_CNAS_MF.CREATION_DATE
is 'data la care a fost creata inregistrarea'
comment on column ARHIVA_CNAS_MF.LAST_UPDATED_BY
is 'utilizatorul care a efectuat ultima modificare'
comment on column ARHIVA_CNAS_MF.LAST_UPDATE_DATE
is 'data la care s-a efectuat ultima modificare'
-- Create/Recreate primary, unique and foreign key constraints
alter table ARHIVA_CNAS_MF
add constraint ARH_CNAS_MF_PK primary key (COD, COD_MEDIC)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
alter table ARHIVA_CNAS_MF
add constraint MEDICI_FK foreign key (COD_MEDIC)
references MEDICI (COD_MEDIC)
disable
-- Grant/Revoke object privileges
grant select insert update delete on ARHIVA_CNAS_MF to SCOTT;
Tabelul asigurati contine date despre persoanele care beneficiaza de servicii medicale.
Structura tabelului asigurati:
Chei:
Triggeri:
Inainte de inserare inregistrare:
create or replace trigger trg_asigurati_ins_befo_row-- aloca automat numere pentru
before insert on bebec.asigurati -- cod asigurat (pk)
for each row -- completeaza automat
declare -- created_by si creation date cu
codasig bebec.asigurati.cod_asigurat%type -- numele utilizatorului
UTILIZATOR VARCHAR2 -- respectiv data sistemului
begin
select max(bebec.asigurati.cod_asigurat) into codasig from bebec.asigurati;
new.cod_asigurat:=nvl(codasig,
NEW.CREATION_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.CREATED_BY:=UTILIZATOR;
end TRG_asigurati_INS_BEFO_ROW;
Inainte de modificare inregistrare:
create or replace trigger trg_asigurati_upd_befo_row -- cream un trigger care sa se declanseze
before UPDATE on bebec.asigurati -- inainte de a se face un update pe tabela asigurati
for each row -- pentru fiecare rand
declare -- declaram variabiliele locale
UTILIZATOR VARCHAR2
begin
NEW.LAST_UPDATE_DATE:=SYSDATE -- setam data ultimului update la sysdate
SELECT USER INTO UTILIZATOR FROM DUAL;-- retinem utilizatorul in variabila utilizator
NEW.LAST_UPDATED_BY:=UTILIZATOR;-- setam userul la utilizatorul curent
if old.cod_firma<>:new.cod_firma -- cand angajut isi schimba locul de munca
and old.data_angajarii<>:new.data_angajarii then
insert into arhiva_asig_ang values -- inseram in tabela arhiva_asig_ang
-- vechile valori ale inregistrarii
-- din tabela asigurati
-- cod din tabela arhiva_asig_ang; putem pune orice se calculeaza automat
-- de un trigger before insert pe tabela arhiva_asig_ang
old.cod_asigurat,
old.cod_firma,
old.data_angajarii,
nvl(:old.data_demisie,:new.data_angajarii),
utilizator, -- created_by din tabela arhiva_cnas_mf
sysdate -- creation_date din tabela arhiva_cnas_mf
null -- last_updated_by din tabela arhiva_cnas_mf
null
new.data_demisie:=null -- last_update_date din tabela arhiva_cnas_mf
end if
if new.data_demisie is not null -- cand angajut isi da demisia fara a se angaja imediat
then
begin
insert into arhiva_asig_ang values -- inseram in tabela arhiva_asig_ang
-- vechile valori ale inregistrarii
-- din tabela asigurati
-- cod din tabela arhiva_asig_ang; putem pune orice se calculeaza automat
-- de un trigger before insert pe tabela arhiva_asig_ang
old.cod_asigurat,
old.cod_firma,
old.data_angajarii,
new.data_demisie,
utilizator, -- created_by din tabela arhiva_cnas_mf
sysdate -- creation_date din tabela arhiva_cnas_mf
null -- last_updated_by din tabela arhiva_cnas_mf
null -- last_update_date din tabela arhiva_cnas_mf
new.cod_firma:=null
new.data_angajarii:=null
new.data_demisie:=null
end
end if
if new.cod_med_fam<>:old.cod_med_fam
and new.data_inscr_mf<>:old.data_inscr_mf
then
insert into arhiva_asig_mf values -- inseram in tabela arhiva_asig_mf
-- vechile valori ale inregistrarii
-- din tabela asigurati
-- cod din tabela arhiva_asig_mf; putem pune orice se calculeaza automat
-- de un trigger before insert pe tabela arhiva_asig_mf
old.cod_asigurat,
old.cod_med_fam,
old.data_inscr_mf,
new.data_inscr_mf,
utilizator, -- created_by din tabela arhiva_cnas_mf
sysdate -- creation_date din tabela arhiva_cnas_mf
null -- last_updated_by din tabela arhiva_cnas_mf
null
end if -- last_update_date din tabela arhiva_cnas_mf
if new.data_plecare is not null
then
insert into arhiva_asig_mf values -- inseram in tabela arhiva_asig_mf
-- vechile valori ale inregistrarii
-- din tabela asigurati
-- cod din tabela arhiva_asig_mf; putem pune orice se calculeaza automat
-- de un trigger before insert pe tabela arhiva_asig_mf
old.cod_asigurat,
old.cod_med_fam,
old.data_inscr_mf,
new.data_plecare,
utilizator, -- created_by din tabela arhiva_cnas_mf
sysdate -- creation_date din tabela arhiva_cnas_mf
null -- last_updated_by din tabela arhiva_cnas_mf
null
new.cod_med_fam:=null
new.data_inscr_mf:=null
new.data_plecare:=null
end if
end trg_asigurati_upd_befo_row;
end trg_asigurati_upd_befo_row;
Tabelul arhiva_asig_ang retine informatii despre relatia asigurati angajatori. Tabelul este completat automat in momentul modificarii datelor din tabelul asigurati. Aici putem vedea locurile de munca pe care le-a avut un asigurat de-a lungul timpului practice cine a platit pentru el asigurarea de sanatate.
Structura tabelului arhiva_asig_ang:
Cheile:
Triggeri:
Inainte de inserare inregistrare:
create or replace trigger trg_ah_asig_ang_ins_befo_row
before insert on bebec.arhiva_asig_ang
for each row
declare
cod bebec.arhiva_asig_ang.cod%type
UTILIZATOR VARCHAR2
begin
select max(bebec.arhiva_asig_ang.cod) into cod
from bebec.arhiva_asig_ang
where bebec.arhiva_asig_ang.cod_asigurat=:new.cod_asigurat;
new.cod:=nvl(cod,
NEW.CREATION_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.CREATED_BY:=UTILIZATOR;
end trg_ah_asig_ang_ins_befo_row;
Inainte de updatare inregistrare:
create or replace trigger trg_ah_asig_ang_upd_befo_row
before UPDATE on bebec.arhiva_asig_ang
for each row
declare
UTILIZATOR VARCHAR2
begin
NEW.LAST_UPDATE_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.LAST_UPDATED_BY:=UTILIZATOR;
end trg_ah_asig_ang_upd_befo_row;
Crearea tabelului arhiva_asig_ang:
-- Create table
create table ARHIVA_ASIG_ANG
COD NUMBER not null
COD_ASIGURAT NUMBER not null
COD_FIRMA NUMBER not null
DATA_ANG DATE not null
DATA_PLE DATE not null
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column ARHIVA_ASIG_ANG.COD
is 'NUMAR UNIC PENTRU FIECARE ASIGURAT'
comment on column ARHIVA_ASIG_ANG.COD_ASIGURAT
is 'IDENTIFICA ASIGURATUL'
comment on column ARHIVA_ASIG_ANG.COD_FIRMA
is 'IDENTIFICA FIRMA'
comment on column ARHIVA_ASIG_ANG.DATA_ANG
is 'DATA ANGAJARII'
comment on column ARHIVA_ASIG_ANG.DATA_PLE
is 'DATA PLECARII'
comment on column ARHIVA_ASIG_ANG.CREATED_BY
is 'utilizatorul care a creat inregistrarea'
comment on column ARHIVA_ASIG_ANG.CREATION_DATE
is 'data la care a fost creata inregistrarea'
comment on column ARHIVA_ASIG_ANG.LAST_UPDATED_BY
is 'utilizatorul care a efectuat ultima actualizare a inregistrarii'
comment on column ARHIVA_ASIG_ANG.LAST_UPDATE_DATE
is 'data la care s-a efectuat ultima actualizare a inregistrarii'
-- Create/Recreate primary, unique and foreign key constraints
alter table ARHIVA_ASIG_ANG
add constraint COD_PK1 primary key (COD, COD_ASIGURAT)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
minextents
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select insert update delete on ARHIVA_ASIG_ANG to SCOTT;
grant references alter index on ARHIVA_ASIG_ANG to SCOTT with grant option
Tabelul arhiva_asig_mf retine istoricul relatiei asigurat - medic de familie.
Structura tabelului arhiva_asig_mf:
Cheile:
Triggeri:
Inainte de inserare inregistrare:
create or replace trigger trg_ah_asig_mf_ins_befo_row
before insert on bebec.arhiva_asig_mf
for each row
declare
cod bebec.arhiva_asig_mf.cod%type
UTILIZATOR VARCHAR2
begin
select max(bebec.arhiva_asig_mf.cod) into cod
from bebec.arhiva_asig_mf
where bebec.arhiva_asig_mf.cod_asig=:new.cod_asig;
new.cod:=nvl(cod,
NEW.CREATION_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.CREATED_BY:=UTILIZATOR;
end trg_ah_asig_mf_ins_befo_row;
Inainte de updatare inregistrare:
create or replace trigger trg_ah_asig_mf_upd_befo_row
before UPDATE on bebec.arhiva_asig_mf
for each row
declare
UTILIZATOR VARCHAR2
begin
NEW.LAST_UPDATE_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.LAST_UPDATED_BY:=UTILIZATOR;
end trg_ah_asig_mf_upd_befo_row;
Crearea tabelului arhiva_asig_mf:
-- Create table
create table ARHIVA_ASIG_MF
COD NUMBER not null
COD_ASIG NUMBER not null
COD_MEDIC NUMBER
DATA_INSCR DATE
DATA_PLE DATE
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column ARHIVA_ASIG_MF.COD
is 'NUMAR UNIC DE IDENTIFICARE PENTRU INREGISTRARILE DIN TABEL'
comment on column ARHIVA_ASIG_MF.COD_ASIG
is 'IDENTIFICA ASIGURATUL'
comment on column ARHIVA_ASIG_MF.COD_MEDIC
is 'IDENTIFICA MEDICUL'
comment on column ARHIVA_ASIG_MF.DATA_INSCR
is 'DATA INSCRIERII LA MEDICUL DE FAMILIE'
comment on column ARHIVA_ASIG_MF.DATA_PLE
is 'DATA PLECARII DE LA MEDICUL DE FAMILIE'
comment on column ARHIVA_ASIG_MF.CREATED_BY
is 'utilizatorul care a creat inregistrarea'
comment on column ARHIVA_ASIG_MF.CREATION_DATE
is 'data la care a fost creata inregistrarea'
comment on column ARHIVA_ASIG_MF.LAST_UPDATED_BY
is 'utilizatorul care a efectuat ultima actualizare a inregistrarii'
comment on column ARHIVA_ASIG_MF.LAST_UPDATE_DATE
is 'data la care s-a efectuat ultima actualizare a inregistrarii'
-- Create/Recreate primary, unique and foreign key constraints
alter table ARHIVA_ASIG_MF
add constraint COD_PK2 primary key (COD, COD_ASIG)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select insert update delete on ARHIVA_ASIG_MF to SCOTT;
Tabelul retine detalii despre consultatiile medicale, diagnosticele puse si investigatiile facute asiguratilor.
Structura tabelului asigurati_detalii_medicale :
Cheile:
Triggeri:
Inainte de inserare inregistrare noua:
create or replace trigger trg_asig_detal_ins_befo_row
before insert on bebec.asigurati_detalii_medicale
for each row
declare
cod bebec.asigurati_detalii_medicale.cod%type
UTILIZATOR VARCHAR2
begin
select max(bebec.asigurati_detalii_medicale.cod) into cod
from bebec.asigurati_detalii_medicale
where bebec.asigurati_detalii_medicale.cod_asigurat=:new.cod_asigurat;
new.cod:=nvl(cod,
NEW.CREATION_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.CREATED_BY:=UTILIZATOR;
end trg_asig_detal_ins_befo_row;
Inainte de modificare inregistrare:
create or replace trigger trg_as_det_med_upd_befo_row -- acest trigger se declanseaza
before UPDATE on bebec.asigurati_detalii_medicale -- inainte de modificarea unei inregistrari
for each row -- din tabel
declare -- si completeaza automat coloanele
UTILIZATOR VARCHAR2 -- last_update_date si last_updated_by
begin
NEW.LAST_UPDATE_DATE:=SYSDATE -- cu data curenta si utilizatorul curent
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.LAST_UPDATED_BY:=UTILIZATOR;
end trg_as_det_med_upd_befo_row;
Crearea tabelului asigurati_detalii_medicale:
-- Create table
create table ASIGURATI_DETALII_MEDICALE
COD NUMBER not null
COD_ASIGURAT NUMBER not null
DATA_CONSULT DATE not null
COD_MEDIC NUMBER not null
SIMPTOME VARCHAR2
DIAGNOSTIC VARCHAR2
TRIM_AN VARCHAR2
COD_TRIM_AN VARCHAR2
TRIM_SP VARCHAR2
COD_TRIM_SP VARCHAR2
RETETA VARCHAR2
COD_RETETA VARCHAR2
BILET_TRIM_SP VARCHAR2
DATA_BILET_TRIM_SP DATE
DETALII VARCHAR2
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column ASIGURATI_DETALII_MEDICALE.COD
is 'IDENTIFICA FIECARE INREGISTRARE pentru un asigurat'
comment on column ASIGURATI_DETALII_MEDICALE.COD_ASIGURAT
is 'IDENTIFICA ASIGURATUL PENTRU CARE SUNT SALVATE DETALII FK'
comment on column ASIGURATI_DETALII_MEDICALE.DATA_CONSULT
is 'DATA CONSULTATIEI'
comment on column ASIGURATI_DETALII_MEDICALE.COD_MEDIC
is 'CODUL MEDICULUI CARE A EFECTUAT CONSULTATIA FK'
comment on column ASIGURATI_DETALII_MEDICALE.SIMPTOME
is 'SIMPTOMELE PREZENTATE DE PACIENT'
comment on column ASIGURATI_DETALII_MEDICALE.DIAGNOSTIC
is 'DIAGNOSTICUL PUS DE MEDIC'
comment on column ASIGURATI_DETALII_MEDICALE.TRIM_AN
is 'DA SAU NU; DACA SE ELIBEREAZA SAU NU O TRIMITERE PENTRU ANALIZE'
comment on column ASIGURATI_DETALII_MEDICALE.COD_TRIM_AN
is 'CODUL TRIMITERII LA ANALIZE'
comment on column ASIGURATI_DETALII_MEDICALE.TRIM_SP
is 'DA SAU NU ; DACA SE ELIBEREAZA SAU NU O TRIMITERE CATRE SPECIALIST'
comment on column ASIGURATI_DETALII_MEDICALE.COD_TRIM_SP
is 'CODUL TRIMITERII CATRE SPECIALIST'
comment on column ASIGURATI_DETALII_MEDICALE.RETETA
is 'DA SAU NU; DACA SE ELIBEREAZA SAU NU RETETA'
comment on column ASIGURATI_DETALII_MEDICALE.COD_RETETA
is 'CODUL RETETEI'
comment on column ASIGURATI_DETALII_MEDICALE.BILET_TRIM_SP
is 'BILET DE TRIMITERE IN BAZA CARUIA SE FACE CONSULTATIA SPECIALISTULUI'
comment on column ASIGURATI_DETALII_MEDICALE.DATA_BILET_TRIM_SP
is 'DATA IN CARE A FOST ELIBERAT BILETUL DE TRIMITERE'
comment on column ASIGURATI_DETALII_MEDICALE.DETALII
is 'ALTE DETALII DESPRE PACIENT'
comment on column ASIGURATI_DETALII_MEDICALE.CREATED_BY
is 'UTILIZATORUL CARE A CREAT INREGISTRAREA'
comment on column ASIGURATI_DETALII_MEDICALE.CREATION_DATE
is 'DATA LA CARE A FOST CREATA INREGISTRAREA'
comment on column ASIGURATI_DETALII_MEDICALE.LAST_UPDATED_BY
is 'UTILIZATORUL CARE A EFECTUAT ULTIMA MODIFICARE'
comment on column ASIGURATI_DETALII_MEDICALE.LAST_UPDATE_DATE
is 'DATA LA CARE A FOST EFECTUATA ULTIMA MODIFICARE'
-- Create/Recreate primary, unique and foreign key constraints
alter table ASIGURATI_DETALII_MEDICALE
add constraint COD_PK primary key (COD, COD_ASIGURAT)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select insert update delete on ASIGURATI_DETALII_MEDICALE to SCOTT;
Tabelul farmacii contine informatii despre sediile sociale ale firmelor ce detin farmacii.
Structura tabelului farmacii:
Cheile:
Triggeri:
Inainte de inserare inregistrare:
create or replace trigger trg_farmacii_ins_befo_row -- cream un declansator care sa actioneza
before insert on bebec.farmacii -- inainte de a insera o inregistrare
for each row -- pentru fiecare inregistrare introdusa
declare
codfarmacie bebec.farmacii.cod_farmacie%type -- declaram variabilele
UTILIZATOR VARCHAR2
begin
select max(bebec.farmacii.cod_farmacie) into codfarmacie from bebec.farmacii;
new.cod_farmacie:=nvl(codfarmacie, completeaza automat cu numere crescatoare campul cod_farmacie
NEW.CREATION_DATE:=SYSDATE -- data crearii se stabileste ca fiind data curenta
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.CREATED_BY:=UTILIZATOR; --cel ce creaza inregistrarea este utilizatorul current
end trg_farmacii_ins_befo_row;
Inainte de updatare modificare:
create or replace trigger trg_farmacii_upd_befo_row
before UPDATE on bebec.farmacii
for each row
declare
UTILIZATOR VARCHAR2
begin
NEW.LAST_UPDATE_DATE:=SYSDATE
SELECT USER INTO UTILIZATOR FROM DUAL;
NEW.LAST_UPDATED_BY:=UTILIZATOR;
end trg_farmacii_upd_befo_row;
Creare tabel farmacii:
-- Create table
create table FARMACII
COD_FARMACIE NUMBER not null
DENUMIRE_FARMACIE VARCHAR2
JUDET VARCHAR2
TIP_LOCALITATE VARCHAR2
LOCALITATE VARCHAR2
STRADA VARCHAR2
NR NUMBER
COD_POSTAL NUMBER
ALTE_ADRESA VARCHAR2
TEL_FIX NUMBER
TEL_MOBIL NUMBER
FAX NUMBER
EMAIL VARCHAR2
PAGINA_WEB VARCHAR2
FARMACIST_SEF VARCHAR2
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column FARMACII.COD_FARMACIE
is 'IDENTIFICA UNIC INREGISTRARILE DIN TABEL'
comment on column FARMACII.DENUMIRE_FARMACIE
is 'NUMELE FARMACIEI'
comment on column FARMACII.JUDET
is 'JUDETUL IN CARE ISI ARE SEDIUL SOCIETATEA'
comment on column FARMACII.TIP_LOCALITATE
is 'TIPLUL LOCALITATII'
comment on column FARMACII.LOCALITATE
is 'LOCALITATEA IN CARE ISI ARE SEDIUL SOCIAL FIRMA'
comment on column FARMACII.STRADA
is 'STRADA PE CARE ESTE SITUAT SEDIUL SOCIAL AL FIRMEI'
comment on column FARMACII.NR
is 'NUMARUL'
comment on column FARMACII.COD_POSTAL
is 'CODUL POSTAL'
comment on column FARMACII.ALTE_ADRESA
is 'ALTE DETALII DESPRE ADRESA SEDIULUI SOCIAL'
comment on column FARMACII.TEL_FIX
is 'NUMAR TELEFON FIX'
comment on column FARMACII.TEL_MOBIL
is 'NUMAR TELEFON MOBIL'
comment on column FARMACII.FAX
is 'NUMAR DE FAX'
comment on column FARMACII.EMAIL
is 'ADRESA DE MAIL'
comment on column FARMACII.PAGINA_WEB
is 'PAGINA WEB'
comment on column FARMACII.FARMACIST_SEF
is 'NUMELE FARMACISTULUI SEF'
comment on column FARMACII.CREATED_BY
is 'UTILIZATORUL CARE A CREAT INREGISTRAREA'
comment on column FARMACII.CREATION_DATE
is 'DATA CREARII INREGISTRARII'
comment on column FARMACII.LAST_UPDATED_BY
is 'UTILIZATORUL CARE A EFECTUAT ULTIMUL UPDATE'
comment on column FARMACII.LAST_UPDATE_DATE
is 'DATA LA CARE S-A FACUT ULTIMA MODIFICARE'
-- Create/Recreate primary, unique and foreign key constraints
alter table FARMACII
add constraint COD_FARMACIE_PK primary key (COD_FARMACIE)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select insert update delete on FARMACII to SCOTT;
Tabelul farm_contract_cnas contine informatii despre contractele farmaciilor cu CNAS.
Structura tabelului farm_contract_cnas:
Chei:
Triggeri:
Inainte de inserare inregistrare:
Inainte de updatare modificare:
Creare tabel farm_contract_cnas:
-- Create table
create table FARMACII_CONTRACT_CNAS
COD_FARMACIE NUMBER not null
CNAS_CU_CARE_ARE_CTR VARCHAR2
CONTRACT_CNAS VARCHAR2
VALID_DE_LA DATE
VALID_PANA_LA DATE
VALOARE_CONTRACT NUMBER
UTILIZAT_LA_ZI_FARM NUMBER
DIFERENTA_DE_UTILIZAT NUMBER
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column FARMACII_CONTRACT_CNAS.COD_FARMACIE
is 'CODUL FARMACIEI'
comment on column FARMACII_CONTRACT_CNAS.CNAS_CU_CARE_ARE_CTR
is 'NUMELE CASEI CU CARE ARE CONTRACT'
comment on column FARMACII_CONTRACT_CNAS.CONTRACT_CNAS
is 'NUMARUL CONTRACTULUI CU CNAS'
comment on column FARMACII_CONTRACT_CNAS.VALID_DE_LA
is 'DATA DE LA CARE ESTE VALID CONTRACTUL'
comment on column FARMACII_CONTRACT_CNAS.VALID_PANA_LA
is 'DATA PANA LA CARE ESTE VALID CONTRACTUL'
comment on column FARMACII_CONTRACT_CNAS.VALOARE_CONTRACT
is 'VALOAREA CONTRACTULUI'
comment on column FARMACII_CONTRACT_CNAS.UTILIZAT_LA_ZI_FARM
is 'VALOAREA UTILIZATA LA ZI DIN CONTRACT PE FARMACIE'
comment on column FARMACII_CONTRACT_CNAS.DIFERENTA_DE_UTILIZAT
is 'VALOAREA RAMASA DE UTILIZAT DIN CONTRACT'
comment on column FARMACII_CONTRACT_CNAS.CREATED_BY
is 'UTILIZATORUL CARE A CREAT INREGISTRAREA'
comment on column FARMACII_CONTRACT_CNAS.CREATION_DATE
is 'DATA CREARII INREGISTRARII'
comment on column FARMACII_CONTRACT_CNAS.LAST_UPDATED_BY
is 'UTILIZATORUL CARE A EFECTUAT ULTIMUL UPDATE'
comment on column FARMACII_CONTRACT_CNAS.LAST_UPDATE_DATE
is 'DATA LA CARE S-A FACUT ULTIMA MODIFICARE'
Tabelul arhiva_ctr_farm_cnas detine informatii despre contractele vechi dintre farmacii si CNAS.
Structura tabelului arhiva_ctr_farm_cnas:
Chei:
Triggeri:
Inainte de inserare inregistrare:
Inainte de updatare modificare:
Creare tabel:
-- Create table
create table ARHIVA_CTR_FARM_CNAS
COD NUMBER not null
COD_FARMACIE NUMBER
CNAS_CU_CARE_ARE_CTR VARCHAR2
CONTRACT_CNAS VARCHAR2
VALID_DE_LA DATE
VALID_PANA_LA DATE
VALOARE_CONTRACT NUMBER
UTILIZAT_FARMACIE NUMBER
NEUTILIZAT_DIN_CONTRACT NUMBER
DEPASIRE_CONTRACT NUMBER
DATA_FINALIZARII DATE
MOD_INCHEIERE_CONTRACT VARCHAR2
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column ARHIVA_CTR_FARM_CNAS.COD
is 'IDENTIFICA UNIC LINIILE DIN TABEL'
comment on column ARHIVA_CTR_FARM_CNAS.COD_FARMACIE
is 'CODUL FARMACIEI'
comment on column ARHIVA_CTR_FARM_CNAS.CNAS_CU_CARE_ARE_CTR
is 'CASA CU CARE S-A DESFASURAT CONTRACTUL'
comment on column ARHIVA_CTR_FARM_CNAS.CONTRACT_CNAS
is 'NUMARUL CONTRACTULUI'
comment on column ARHIVA_CTR_FARM_CNAS.VALID_DE_LA
is 'DATA DE LA CARE A INCEPUT CONTRACTUL'
comment on column ARHIVA_CTR_FARM_CNAS.VALID_PANA_LA
is 'DATA PANA LA CARE A FOST VALABIL CONTRACTUL'
comment on column ARHIVA_CTR_FARM_CNAS.VALOARE_CONTRACT
is 'VALOAREA CONTRACTULUI'
comment on column ARHIVA_CTR_FARM_CNAS.UTILIZAT_FARMACIE
is 'VALAORE CONTRACT UTILIZATA DE FARMACIE'
comment on column ARHIVA_CTR_FARM_CNAS.NEUTILIZAT_DIN_CONTRACT
is 'VALOARE RAMASA DE UTILIZAT DIN CONTRACT'
comment on column ARHIVA_CTR_FARM_CNAS.DEPASIRE_CONTRACT
is 'VALOARE DEPASIRE CONTRACT'
comment on column ARHIVA_CTR_FARM_CNAS.DATA_FINALIZARII
is 'DATA LA CARE S-A INCHEIAT CONTRACTUL'
comment on column ARHIVA_CTR_FARM_CNAS.MOD_INCHEIERE_CONTRACT
is 'MODUL IN CARE S-A INCHEIAR CONTRACTUL'
comment on column ARHIVA_CTR_FARM_CNAS.CREATED_BY
is 'UTILIZATORUL CARE A CREAT INREGISTRAREA'
comment on column ARHIVA_CTR_FARM_CNAS.CREATION_DATE
is 'DATA LA CARE A FOST CREATA INRGISTRAREA'
comment on column ARHIVA_CTR_FARM_CNAS.LAST_UPDATED_BY
is 'UTILIZATORUL CARE A EFECTUAT ULTIMA MODIFICARE'
comment on column ARHIVA_CTR_FARM_CNAS.LAST_UPDATE_DATE
is 'DATA LA CARE S-A EFECTUAT ULTIMA MODIFICARE'
-- Create/Recreate primary, unique and foreign key constraints
alter table ARHIVA_CTR_FARM_CNAS
add constraint AH_FARM_CTR_PK primary key (COD)
using index
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select insert update delete on ARHIVA_CTR_FARM_CNAS to SCOTT;
Tabelul retete detine informatii despre retetele eliberate de medici.
Structura tabelului:
Chei:
Triggeri:
Inainte de inserare inregistrare:
Inainte de updatare modificare:
Creare tabel
-- Create table
create table RETETE
COD_MEDIC NUMBER
COD_RETETA NUMBER
COD_ASIGURAT NUMBER
DATA_ELIB DATE
DIAGNOSTIC VARCHAR2
COD_BOALA VARCHAR2
TIP_DIAGNOSTIC VARCHAR2
TIP_RETETA VARCHAR2
SUBSTANTA_ACTIVA VARCHAR2
FORMA_FARMACEUTICA VARCHAR2
CONCENTRATIA VARCHAR2
LISTA_MEDICAMENTE VARCHAR2
COMPENSARE NUMBER
DOZA_ZILNICA NVARCHAR2
CANTITATE NUMBER
DATA_EXPIR DATE
ELIBERATA VARCHAR2
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column RETETE.COD_MEDIC
is 'codul medicului care creaza reteta'
comment on column RETETE.COD_RETETA
is 'codul retetei '
comment on column RETETE.COD_ASIGURAT
is 'codul asiguratului care primeste reteta'
comment on column RETETE.DATA_ELIB
is 'data eliberarii retetei'
comment on column RETETE.DIAGNOSTIC
is 'diagnosticul pus de medic'
comment on column RETETE.COD_BOALA
is 'codul bolii'
comment on column RETETE.TIP_DIAGNOSTIC
is 'tipul diagnosticului'
comment on column RETETE.TIP_RETETA
is 'tipul retetei'
comment on column RETETE.SUBSTANTA_ACTIVA
is 'substanta activa prescrisa'
comment on column RETETE.FORMA_FARMACEUTICA
is 'forma farmaceutica'
comment on column RETETE.CONCENTRATIA
is 'concentratia'
comment on column RETETE.LISTA_MEDICAMENTE
is 'incadrarea pe lista de medicamente (A, B, C1, C2, C3)'
comment on column RETETE.COMPENSARE
is 'procent compensare'
comment on column RETETE.DOZA_ZILNICA
is 'doza zilnica'
comment on column RETETE.CANTITATE
is 'cantitatea prescrisa'
comment on column RETETE.DATA_EXPIR
is 'data expirarii retetei'
comment on column RETETE.ELIBERATA
is 'stadiul retetei'
comment on column RETETE.CREATED_BY
is 'utilizatorul care a creat inregistrarea'
comment on column RETETE.CREATION_DATE
is 'data la care a fost creata inregistrarea'
comment on column RETETE.LAST_UPDATED_BY
is 'utilizatorul care a efectuat ultima modificare'
comment on column RETETE.LAST_UPDATE_DATE
is 'data la care s-a efectuat ultima modificare'
Tabelul retete_arhiva contine informatii despre retetele care au fost eliberate sau care nu mai pot fi liberate (anulate, expirate)
Structura tabelului retete_arhiva:
Chei:
Triggeri:
Inainte de inserare inregistrare:
Inainte de updatare modificare:
Creare tabel
-- Create table
create table RETETE_ARHIVA
COD_MEDIC NUMBER
COD_RETETA NUMBER
COD NUMBER
COD_ASIGURAT NUMBER
DATA_PRESCRIERE DATE
DIAGNOSTIC VARCHAR2
COD_BOALA VARCHAR2
TIP_DIAGNOSTIC VARCHAR2
TIP_RETETA VARCHAR2
SUBSTANTA_ACTIVA VARCHAR2
FORMA_FARMACEUTICA VARCHAR2
CONCENTRATIA VARCHAR2
LISTA_MEDICAMENTE VARCHAR2
COMPENSARE NUMBER
DOZA_ZILNICA NVARCHAR2
CANTITATE NUMBER
DATA_EXPIR DATE
ELIBERATA VARCHAR2
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column RETETE_ARHIVA.COD_MEDIC
is 'codul medicului care creaza reteta'
comment on column RETETE_ARHIVA.COD_RETETA
is 'codul retetei '
comment on column RETETE_ARHIVA.COD
is 'numara transele in care s-a eliberat reteta'
comment on column RETETE_ARHIVA.COD_ASIGURAT
is 'codul asiguratului care primeste reteta'
comment on column RETETE_ARHIVA.DATA_PRESCRIERE
is 'data prescrierii retetei'
comment on column RETETE_ARHIVA.DIAGNOSTIC
is 'diagnosticul pus de medic'
comment on column RETETE_ARHIVA.COD_BOALA
is 'codul bolii'
comment on column RETETE_ARHIVA.TIP_DIAGNOSTIC
is 'tipul diagnosticului'
comment on column RETETE_ARHIVA.TIP_RETETA
is 'tipul retetei'
comment on column RETETE_ARHIVA.SUBSTANTA_ACTIVA
is 'substanta activa prescrisa'
comment on column RETETE_ARHIVA.FORMA_FARMACEUTICA
is 'forma farmaceutica'
comment on column RETETE_ARHIVA.CONCENTRATIA
is 'concentratia'
comment on column RETETE_ARHIVA.LISTA_MEDICAMENTE
is 'incadrarea pe lista de medicamente (A, B, C1, C2, C3)'
comment on column RETETE_ARHIVA.COMPENSARE
is 'procent compensare'
comment on column RETETE_ARHIVA.DOZA_ZILNICA
is 'doza zilnica'
comment on column RETETE_ARHIVA.CANTITATE
is 'cantitatea prescrisa'
comment on column RETETE_ARHIVA.DATA_EXPIR
is 'data expirarii retetei'
comment on column RETETE_ARHIVA.ELIBERATA
is 'stadiul retetei'
comment on column RETETE_ARHIVA.CREATED_BY
is 'utilizatorul care a creat inregistrarea'
comment on column RETETE_ARHIVA.CREATION_DATE
is 'data la care a fost creata inregistrarea'
comment on column RETETE_ARHIVA.LAST_UPDATED_BY
is 'utilizatorul care a efectuat ultima modificare'
comment on column RETETE_ARHIVA.LAST_UPDATE_DATE
is 'data la care s-a efectuat ultima modificare'
Tabelul retete_eliberate detine informatii despre retetele care au fost eliberate total sau partial.
Structura tabelului
Chei:
Triggeri:
Inainte de inserare inregistrare:
Inainte de updatare modificare:
Creare tabel
-- Create table
create table RETETE_ELIBERATE
COD_MEDIC NUMBER
COD_RETETA NUMBER
COD NUMBER
COD_FARMACIE NUMBER
COD_PUNCT_DE_LUCRU NUMBER
DATA_ELIBERARII DATE
COD_MEDICAMENT VARCHAR2
CANTITATE_ELIBERATA NUMBER
PRET_AMAN_UT NUMBER
PRET_REFER_UT NUMBER
VALOARE_AMAN NUMBER
VALOARE_COMP NUMBER
CONTRIBUTIE_ASIG NUMBER
BON_FISCAL VARCHAR2
CREATED_BY VARCHAR2
CREATION_DATE DATE
LAST_UPDATED_BY VARCHAR2
LAST_UPDATE_DATE DATE
tablespace USERS_CNL
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Add comments to the columns
comment on column RETETE_ELIBERATE.COD_MEDIC
is 'codul medicului care creaza reteta'
comment on column RETETE_ELIBERATE.COD_RETETA
is 'codul retetei '
comment on column RETETE_ELIBERATE.COD
is 'numara transele in care s-a eliberat reteta'
comment on column RETETE_ELIBERATE.COD_FARMACIE
is 'codul farmaciei care elibereaza reteta'
comment on column RETETE_ELIBERATE.COD_PUNCT_DE_LUCRU
is 'codul punctului de lucru unde s-a eliberat reteta'
comment on column RETETE_ELIBERATE.DATA_ELIBERARII
is 'data eliberarii retetei'
comment on column RETETE_ELIBERATE.COD_MEDICAMENT
is 'codul medicamentului eliberat'
comment on column RETETE_ELIBERATE.CANTITATE_ELIBERATA
is 'cantitatea eliberata'
comment on column RETETE_ELIBERATE.PRET_AMAN_UT
is 'pretul cu amanuntul pe unitate terapeutica'
comment on column RETETE_ELIBERATE.PRET_REFER_UT
is 'pretul de referinta pe unitate terapeutica'
comment on column RETETE_ELIBERATE.VALOARE_AMAN
is 'valoare cu amanuntul'
comment on column RETETE_ELIBERATE.VALOARE_COMP
is 'valoare platita CNAS'
comment on column RETETE_ELIBERATE.CONTRIBUTIE_ASIG
is 'valoare platita asigurat'
comment on column RETETE_ELIBERATE.BON_FISCAL
is 'numar bon fiscal'
comment on column RETETE_ELIBERATE.CREATED_BY
is 'utilizatorul care a creat inregistrarea'
comment on column RETETE_ELIBERATE.CREATION_DATE
is 'data la care a fost creata inregistrarea'
comment on column RETETE_ELIBERATE.LAST_UPDATED_BY
is 'utilizatorul care a efectuat ultima modificare'
comment on column RETETE_ELIBERATE.LAST_UPDATE_DATE
is 'data la care s-a efectuat ultima modificare'
Pasii urmariti in descrierea fiecarui tabel:
Tabelul
Structura tabelului
Chei:
Triggeri:
Inainte de inserare inregistrare:
Inainte de updatare modificare:
Creare tabel
|