LICEUL TEORETIC BICAZ
PROFILUL: INFORMATICĂ
ATESTAT LA INFORMATICĂ
CU TEMA:
"EVIDENŢA PACIENŢILOR ĪNTR-O CIRCĂ MEDICALĂ"
REALIZATOR: TARĪŢA VITALI
PROF. COORD.: VANCEA ION
CUPRINS:
INTRODUCERE
PREZENTARE
PROGRAM
COMENZI SI FUNCTII
FOXPRO
Calculatoarele electronice au aparut din necesitatea stocarii si prelucrarii cāt mai rapide a informatiilor. La īnceput sistemele electronice de calcul ocupau camere īntregi fiind capabile sa memoreze si sa prelucreze o cantitate mica de informatii. Pe masura ce tehnica de calcul a evoluat, calculatoarele au devenit din ce īn ce mai performante, aceasta īnsemnānd o crestere a capacitatii de memorare si o mai mare viteza de prelucrare a datelor.
Sistemul FOXPRO constituie īn prezent un produs informatic cu o larga utilizare pentru elaborarea de aplicatii īn care informatia care se prelucreaza este structurata, de regula, sub forma de baze de date - structurile de tip baza de date fiind adecvate pentru domenii diverse de prelucrari de date: economice, lingvistice,statistice, e.t.c.
Sistemele de Gestiune a Bazelor de Date, pe scurt SGBD, (prescurtare care este īntālnita foarte des īn literatura de specialitate), reprezinta sisteme informatice (soft) specializate īn stocarea si prelucrarea unui volum mare de date. Termenul de "baza de date" se refera la datele de prelucrat , la modul de organizare a acestora pe suportul fizic de memorat, iar termenul de "gestiune" se refera la actiunea de memorare si prelucrare a acestor date.
Un SGBD trebuie sa asigure urmatoarele functii elementare, referitoare la bazele de date:
-definirea bazei de date,
-introducerea datelor (adaugarea de noi date la baza de date),
-modificarea unor date existente īn baza de date,
-stergerea unor date,
-extragerea informatiilor stocate īn baza de date,
-generare de rapoarte,
-modalitati noi de interogare a bazei de date,
-noi tipuri de organizare a bazei de date si noi tipuri de acces (accesul indexat e.t.c.
SGBD - urile rationale sunt prevazute cu posibilitatea realizarii de legaturi īntre doua sau mai multe baze de date, legaturi care permit accesarea simultana a unor date, care se afla īntr-o anumita relatie, din baze de date diferite.
Astfel programatorul este eliberat de sarcina de a cauta īn toate bazele de date acele date care corespund unor date de referinta, aceasta operatie fiind realizata automat de catre SGBD. Programul trebuie doar ca la īnceput sa defineasca relatiile īntre bazele de date, urmānd ca gasirea anumitor informatii īntr-o baza de date de referinta sa determine gasirea automata a informatiilor corespunzatoare din celelalte baze de date, aflate īn relatie cu aceasta.
Structurile de program si de date , mediul de programare, mijloacele de editare si de depanare a programelor, precum si celelalte facilitati oferite de sistemul FOXPRO raspund exigentelor actuale din domeniul sistemelor de dezvoltare de programe.
Complexitatea sistemului FOXPRO, numarul mare de comenzi si functii predefinite pe care le contine fac ca asimilarea lui sa prezinte si un anumit grad de dificultate. Tot o dificultate , īn faza initiala de utilizare a acestui limbaj de programare, poate sa o reprezinte caracterul de relativa noutate a unor elemente ale sale. Astfel, spre deosebire de limbajul PASCAL-reprezentativ pentru limbajele moderne-, īn FOXPRO majoritatea controalelor care se fac asupra expresiilor sunt dinamice (īn executie), iar tipul si vizibilitatea numelorsunt determinate de fluxul executiei.
Cu toate dificultatile sale, sistemul FOXPRO se remarca prin performantele produselor realizate prin intermediul lui si de aceea am ales sa realizez lucrarea de atestat, utilizāndu-l.
EVIDENTA PACIENTILOR
INTR-O CIRCA MEDICALA
-prezentare-
In ultimul deceniu, informatica din tara noastra a facut un spectaculos salt atat pe plan cantitativ, prin infiintarea de noi centre de calcul si atragerea de noi forte de munca in acest domeniu, cat si pe plan calitativ prin abordarea unor probleme din ce in ce mai subtile.
In etapa actuala de dezvoltare a informaticii se observa o crestere insemnata a importantei sistemelor de operare.
Bazele de date constituie un element des intalnit in viata noastra de toate zilele; un dictionar, o carete de telefoane, etc. sunt baze de date folosite din ce in ce mai des, de aceea este necesara optimizarea folosirii acestora cu ajutorul calculatorului.
O baza de date reprezinta un amsamblu de date integrat anume, structurat si dotat cu o descriere la aceste structuri. Descrierea poarta numele de dictionar de date sau meto-date si creaza o independenta intre datele propriuzise si programe.
Tema acestui atestat, "EVIDENTA PACIENTILOR INTR-O CIRCA MEDICALA", a fost inspirata de necesitatea optimizarii accesului rapid la anumite date despre pacientii si medicii unor clinici medicale, precum si adaugarea rapida de noi pacienti in baza.
Acest program vine in sprijinul medicilor de familie ce doresc o mai buna evidenta a activitatii lor medicale, in cadrul clinicilor. Programul preia de la tastatura numele, varsta, adresa, numele parintilor si boala de care sufera un pacient si le memoreaza intr-o baza de date.Pe baza acestor date programul poate afisa lista celor aflati in evidenta in mai multe moduri cum ar fi : lista alfabetica, dupa diagnostic sau dupa numarul de telefon.
Programul permite cautarea unui pacient in functie de nume, adresa, nume parinti, sau numarul de telefon. O facilitate deosebita acestui program este aceea ca, permite calcularea punctajului aferent unui medic existent in baza. Punctajul unui medic se foloseste pentru a permite deducerea rapida venitului doctorului in functie de numarul de pacienti. In calcularea punctajului s-au evidentiat 3 categorii de pacienti, cu 3 punctaje diferite in functie de varsta acestora. Astfel
a) 0-18 ani 10 puncte
b) 19-70 ani 5 puncte
c) peste 71 ani 7 puncte
Programul foloseste o baza de date numita CIRCA .DBF si apeleaza la un meniu orizontal cu diverse optiuni, ce permit la randul lor diverse operatii asupra evidentei pacientilor si verificarea rapida a punctajului medicilor. Campurile acestei baze de date sunt prezentate mai jos. (Aceasta baza de date contine inregistrari fictive.)
NUME C25 |
VARSTA N2 |
ADRESA M |
BOALA C25 |
MEDIC C25 |
TELEFON N6 |
NUME_ MAMA C25 |
NUME_ TATA C25 |
Programul cupride urmatoarele optiuni:
Opratii baza:> -Adaugare - se adauga de la tastatura: numele, varsta,adresa, boala,medicul,telefon, nume-mama, nume-tata. Programul va modifica baza de date numita circa.dbf adaugand astfel un nou intrat in clinica.
-Modificare - la accesarea acestei cai a programului, ne va aparea pe monitor intreaga lista a bolnavilor alaturi de datele de la inscriere.
-Afisare:> -Nume prenume - ne va aparea pe ecran lista bolnavilor in ordine alfabetica.
-Nr. Tel. - ne va apatea pe ecran lista bolnavilor in ordinea cifrelor.
-Boli - ne va aparea pe ecran lista bolnavilor in ordinea alfabetica a numelui bolii de care sufera.
Cautare:> -Nume prenume - cauta pacientul in baza de date dupa nume
-Nume mama - cauta pacientul in baza de date dupa numele mamei
-Nume tata - cauta pacientul in baza de date dupa numele tatalui
-Adresa - cauta pacientul in baza de date dupa adresa
-Nr. tel. - cauta pacientul in baza de date dupa numarul de telefon
Utilitare:> -Calcul punctaj - la accesarea acestei cai, von introduce de la tastatura numele doctorului a carui punctaj vrem sa-l aflam
-Despre
Terminare:> -Foxpro
-Nc
Optiunea "OPERATII BAZA" apeleaza la 3 proceduri pentru a inlesni utilizatorului lucrul cu baza de date.
Prima procedura se numeste 'Adaugare' si cu ajutorul acesteia se pot adauga in baza noi pacienti, luarea acestora in evidenta facandu-se dupa nume, prenume, varsta, adresa, boala, medicul, telefonul si numele parintilor.
Cea de-a doua procedura se numeste 'Modificare' si cu ajutorul acesteia se pot face cu usurinta modificari in interiorul bazei de date.
A treia procedura se numeste 'Afisare' si prin intermediul acesteia se pot efectua cautari rapide ale persoanelor din baza in functie de nume, telefon sau boala acestora.
Optiunea "CAUTARE" permite cautarea rapida a unui pacient in functie de numele si prenumele persoanei, adresa, varsta, medicul, boala, numarul de telefon sau numele parintilor.
Optiunea "UTILITARE" permite utilizatorului sa afle cu usurinta punctajul unui medic din baza, apeland procedura 'Calcul punctaj'. Tot aici apeland 'Despre' utilizatorul, poate afla date despre continutul programului.
Optiunea "TERMINARE" permite iesirea rapida a utilizatorului direct in FOXPRO sau in Nc.
Programul este prezentat in continuare:
set talk off
set safety off
set default to c:\circa
set exact off
set cursor on
clear
DEFI WIND F FROM 0 TO 24,79 NONE
ACTI WIND F
DEFI WIND F1 FROM 0 TO 6,79 NONE
ACTI WIND F1
BOX REPLICATE(CHR(221),9)
TEXT
ENDTEXT
FOR i = 1 TO 10
READ timeout 0.1
MOVE window f1 by 3
ENDFOR
MOVE window F1 TO 0
READ TIMEOUT 2.0
DEAC WIND F1
DEAC WIND F2
DEAC WIND F3
DEAC WIND F4
CLOSE ALL
CLEAR
DEAC WIND ALL
a=10
FOR I=1 TO 18
DEFINE WINDOW ECRAN FROM I TO I+3,40
ACTIVATE WINDOW ECRAN
@ 0 SAY "PROFESOR COORDONATOR:"
@ 1 SAY "PROF. VANCEA ION
READ TIMEOUT(0.01)
ENDFOR
FOR I=1 TO 30
DEFINE WINDOW ECRAN1 FROM 20,I TO 23,I+45
ACTIVATE WINDOW ECRAN1
@ 0 SAY " GRUP SCOLAR BICAZ "
@ 1 SAY " 2003-2004 "
ENDFOR
READ TIMEOUT 4.0
DEAC WIND ALL
CLOSE ALL
defi menu CIRCA
defi pad opt1 of CIRCA prompt "\<Operatii baza"
defi pad opt2 of CIRCA prompt "\<Cautare"
defi pad opt3 of CIRCA prompt "\<Utilitare"
defi pad opt4 of CIRCA prompt "\<Terminare"
defi popup BAZA
defi bar 1 of BAZA prompt "\<Adaugare"
defi bar 2 of BAZA prompt "\<Modificare"
defi bar 3 of BAZA prompt "\<Afisare"
defi popup CAUT
defi bar 1 of CAUT prompt "\<Nume prenume"
defi bar 2 of CAUT prompt "N\<ume mama"
defi bar 3 of CAUT prompt "Nu\<me tata"
defi bar 4 of CAUT prompt "\<Adresa"
defi bar 5 of CAUT prompt "Numar \<Telefon"
defi popup afisare
defi bar 1 of afisare prompt "\<Nume prenume"
defi bar 2 of afisare prompt "Numar \<telefon"
defi bar 3 of afisare prompt "\<Boli"
defi popup util
defi bar 1 of util prompt "\<Calcul punctaj"
defi bar 2 of util prompt "\<Despre"
defi popup TER
defi bar 1 of TER prompt "\<Foxpro"
defi bar 2 of TER prompt "\<Nc"
on pad opt1 of CIRCA acti popup BAZA
on pad opt2 of CIRCA acti popup CAUT
on pad opt3 of CIRCA acti popup util
on pad opt4 of CIRCA acti popup TER
on sele bar 1 of BAZA do adaugare
on sele bar 2 of BAZA do modificare
on bar 3 of BAZA acti popup afisare
on sele bar 1 of util do punctaj
on sele bar 2 of util modi file despre.prg
on sele popup CAUT do cautare
on sele popup afisare do afisare
on sele popup TER do terminare
acti menu CIRCA
procedure adaugare
hide menu circa
hide popup all
clear
defi wind f from 5,15 to 16,60 title "Adaugare date"
acti wind f
wnume =" "
wvarsta =0
wadresa =" "
wmedic =" "
wtelefon =0
wmama =" "
wtata =" "
wboala =" "
@ 2 say "Nume =" get wnume
@ 3 say "Varsta =" get wvarsta
@ 4 say "Adresa =" get wadresa
@ 5 say "Boala =" get wboala
@ 6 say "Medic =" get wmedic
@ 7 say "Telefon =" get wtelefon
@ 8 say "Nume-mama=" get wmama
@ 9 say "Nume-tata=" get wtata
read
use circa
append blank
replace nume_p with wnume
replace vir with wvarsta
replace adresa with wadresa
replace medic with wmedic
replace nr_tel with wtelefon
replace nume_mama with wmama
replace nume_tata with wtata
replace boli with wboala
deac wind f
clear wind
show menu circa
show popup baza
return
procedure modificare
hide menu circa
hide popup all
clear
defi wind f from 2,2 to 22,78 title "Modificare date"
acti wind f
use circa
brow nodelete noappend nomenu
use
deac wind f
clear wind
show menu circa
show popup baza
return
procedure terminare
hide menu circa
hide popup all
clear
do case
case bar()=1
@ 17 TO 23,65 DOUBLE
@ 18 SAY 'VA MULTUMESC '
@ 19 SAY 'PENTRU '
@ 20 SAY 'ATENTIA ACORDATA !'
@ 22 SAY 'LA REVEDERE !'
wait ''
clear
cancel
case bar()=2
@ 17 TO 23,65 DOUBLE
@ 18 SAY 'VA MULTUMESC '
@ 19 SAY 'PENTRU '
@ 20 SAY 'ATENTIA ACORDATA !'
@ 22 SAY 'LA REVEDERE !'
wait ''
clear
quit
endcase
deac menu circa
deac popup all
procedure afisare
hide menu circa
hide popup all
clear
use circa
do case
case bar()=1
defi wind f from 2,2 to 22,78 double title "Afisare alfabetica"
acti wind f
index on nume_p to nume
brow noedit nodelete in window f
deac wind f
case bar()=2
defi wind f from 2,2 to 22,78 title "Afisare dupa telefon" double
acti wind f
index on nr_tel to tel
brow field nume_p,nr_tel,vir,adresa,medic,boli,nume_mama,nume_tata noedit nodelete for nr_tel<>0 in wind f
deac wind f
case bar()=3
defi wind f from 2,2 to 22,78 title "Afisare dupa boli" double
acti wind f
index on boli to boli
brow field nume_p,boli,nr_tel,vir,adresa,medic,nume_mama,nume_tata noedit nodelete in wind f
deac wind f
endcase
clear
use
show menu circa
show popup afisare
return
procedure cautare
hide menu circa
hide popup caut
clear
use circa
do case
case bar()=1
defi wind f from 2,2 to 22,78 title "Cautare nume"
acti wind f
wn space(18)
@ 1 say "Introduceti numele " get wn pict "! ! !!!!"
read
wn upper(alltrim(wn))
go top
locate for nume_p=wn
if found()
brow for nume_p=wn
else
@ 2 say "Acest nume nu exista in baza"
wait 'Apasa orice tasta!'
endif
use
deac wind f
case bar()=2
defi wind f from 2,2 to 22,78 title "Cautare nume mama"
acti wind f
wn space(18)
@ 1 say "Introduceti numele " get wn pict "! ! !!!!"
read
wn upper(alltrim(wn))
go top
locate for nume_mama=wn
if found()
brow for nume_mama=wn
else
@ 2 say "Acest nume nu exista in baza"
wait 'Apasa orice tasta!'
endif
use
deac wind f
case bar()=3
use circa
defi wind f from 5,15 to 20,60
acti wind f
use circa
wn space(10)
@ 1 say "Introduceti numele " get wn pict "! !!!"
read
go top
locate for nume_tata=wn
if found()
brow for nume_tata=wn
else
wait window "Acest nume nu exista in baza"
endif
use
deac wind f
clear wind
case bar()=4
use circa
defi wind f from 5,15 to 20,60
acti wind f
use circa
wn space(20)
@ 1 say "Introduceti adresa " get wn
read
go top
locate for adresa=upper(alltrim(wn))
if found()
brow for adresa=alltrim(wn)
else
wait window "Aceasta adresa nu exista in baza"
endif
use
deac wind f
clear wind
case bar()=5
use circa
defi wind f from 5,15 to 20,60
acti wind f
use circa
wn 0
@ 1 say "Introduceti numarul de telefon " get wn pict "999999"
read
go top
locate for nr_tel=wn
if found()
brow for nr_tel=wn
else
wait window "Acest numar de telefon nu exista in baza"
endif
use
deac wind f
clear wind
endcase
clear
show menu circa
show popup caut
return
procedure punctaj
use circa
define wind f from 5,5 to 15,75 double title "Calcul punctaj doctor"
acti wind f
@ 1 say "Doctor=" get wdoctor default space(25)
read
wdoctor upper(alltrim(wdoctor))
locate for medic=wdoctor
if found()
count for (vir<=18)and(medic=wdoctor) to p18
count for (vir>=18)and(vir<=70)and(medic=wdoctor) to p33
count for (vir>70)and(medic=wdoctor) to p70
s1=10
s2=5
s3=7
punctaj =s1*p18+s2*p33+s3*p70
clear
@ 1 say "pacienti intre 0-18 ani "
say p18
@ 2 say "pacienti intre 18-70 ani "
say p33
@ 3 say "pacienti > 70 ani "
say p70
@ 4 say "punctaj doctor ="
say punctaj
wait window "Apasa orice tasta!"
else
wait windo "Acest medic nu exista in baza!"
endif
DEAC WIND F
Return
Comenzi si functii
FOXPRO
USE<NUME> -DESCHIDE O BAZA DE DATE CU NUMELE <NUME>;
USE -INCHIDE BAZA DE DATE CURENTA;
APPEND -ADAUGA INREGISTRARI IN BAZA DE DATE CURENTA;
REPLACE -INLOCUIESTE CAMPURI IN BAZA DE DATE;
SET COLOR OF SCHEME -SPECIFICA CULORILE DINTR-O SCHEMA DE . CULOARE;
SET SAFETY ON\OFF -GESTIONEAZA MECANISMUL DE PROTECTIE A . FISIERELOR;
SET TALK ON\OFF -ACTIVEAZA SAU DEZACTIVEAZA AFISAREA
INFORMATIILOR IN CURSUL PRELUCRARII;
SHOW MENU -AFISEAZA UN MENIU DEFINIT IN PREALABIL;
SHOW POPUP-AFISEAZA UN MENIU POPUP;
SKIP -MUTA INDICATORUL DE ARTICOL;
SORT TO -SORTEAZA O BAZA DE DATE;
DELETE -MARCHEAZA PENTRU STERGERE INREGISTRARI DIN BAZA DE DATE ACTIVA;
DEFINE MENU -CREAZA UN MENIU LINIE;
DEFINE POPUP-CREAZA UN MENIU POPUP;
BIBLIOGRAFIE
"FOXPRO" -MICROINFORMATICA
"COMENZI SI FUNCTII FOXPRO" -TEORA
"CULEGERE DE PROBLEME FOXPRO"
"BAZE DE DATE" -MICROINFORMATICA
CURSURI
|