CATEGORII DOCUMENTE |
EXEMPLUL 1:
Creati o baza de date in care sa inregistrati datele din triajul unui spital, si anume:
numele pacientilor
varsta pacientilor
sexul
domiciliul (rural sau urban)
judetul de unde provin
afectiuni anterioare
diagnosticul la internare
data internarii
numarul de zile de spitalizare
numarul de zile de concediu medical acordate.
Descrieti structura bazei de date si inregistrati 10 pacienti.
Apoi raspundeti la urmatoarele intrebari (scrieti comenzile FOX necesare):
REZOLVARE:
Sugeram urmatoarea structura a bazei de date TRIAJ.DBF:
NUME |
C | ||
VARSTA |
N | ||
SEX |
C |
(M - masculin, F - feminin) sau se poate codifica Numeric - 1 : 1 - masculin, 2 - feminin |
|
DOMICILIU |
C |
(U - urban, R - rural) sau se poate codifica Numeric - 1: 1 - urban, 2 - rural |
|
JUDET |
C |
Se pun indicativele automobilistice ale fiecarui judet |
|
AF_ANT |
C | ||
DG_INT |
C | ||
DATA_I |
D |
Data calendaristica |
|
NR_SPIT |
N | ||
NR_CM |
N |
Comenzile FOXPRO prin care se raspunde la intrebari vor fi:
1. LIST NUME, VARSTA, DG_INT
sau, echivalent,
DISP ALL NUME, VARSTA, DG_INT
2. LIST NUME, NR_SPIT FOR SEX = 'M' AND DOMICILIU = 'R'
sau, pentru codificare numerica:
LIST NUME, NR_SPIT FOR SEX = 1 AND DOMICILIU = 2
3. COUNT FOR YEAR(DATA_I) = 2000 TO X
? X
4. COUNT FOR SEX = 'F' AND VARSTA >= 45 TO X
? X
sau, pentru codificare numerica:
COUNT FOR SEX = 2 AND VARSTA >= 45 TO X
? X
5. LIST DG_INT FOR 'CARDIAC' $ AF_ANT
LIST DG_INT FOR 'DIABET' $ AF_ANT
6. CALCULATE AVG(NR_SPIT) FOR YEAR(DATA_I) = 2000
CALCULATE AVG(NR_SPIT) FOR YEAR(DATA_I) = 2000 AND 'CARDIAC' $ AF_ANT
CALCULATE AVG(NR_SPIT) FOR YEAR(DATA_I) = 2000 AND 'DIABET' $ AF_ANT
7. CALCULATE MIN(NR_CM)
CALCULATE MAX(NR_CM)
CALCULATE AVG(NR_CM)
CALCULATE MIN(NR_CM) FOR 'CARDIAC' $ AF_ANT
CALCULATE MAX(NR_CM) FOR 'CARDIAC' $ AF_ANT
CALCULATE AVG(NR_CM) FOR 'CARDIAC' $ AF_ANT
8. Mai intai, se determina lista tuturor judetelor din baza de date. Pentru a afisa toate judetele, dar repetate numai o singura data, baza de date trebuie indexata dupa campul JUDET, cu parametrul UNIQUE:
INDEX ON JUDET TO ID1 UNIQUE
LIST JUDET
(si se noteaza valorile obtinute; presupunem ca se gaseste IS, VS, SV, BC, NT)
CLOSE INDEXES
COUNT FOR JUDET= 'IS' TO V1
COUNT FOR JUDET= 'VS' TO V2
COUNT FOR JUDET= 'SV' TO V3
COUNT FOR JUDET= 'BC' TO V4
COUNT FOR JUDET= 'NT' TO V5
? V1, V2, V3, V4, V5
9. INDEX ON NUME TO ID1
DISP ALL NUME, NR_SPIT, NR_CM
10. INDEX ON NR_SPIT TO ID2
DISP ALL NUME, NR_SPIT, NR_CM
11. INDEX ON NR_CM TO ID2
DISP ALL NUME, NR_SPIT, NR_CM
12. GO 3
DISP NUME, DG_INT
DISP NEXT 4 NUME, DG_INT
13. DELETE FOR SEX='F' AND VARSTA > 55
PACK
14. COPY TO D:TEST1 FOR JUDET='VS'
USE D:TEST1
DISP ALL
15. USE D:TEST1
APPEND FROM D:TRIAJ FOR JUDET='SV' AND DOMICILIU='R'
EXEMPLUL 2:
Creati o baza de date despre activitatea unei sali de operatii, care sa contina urmatoarele informatii:
Codul operatiei (un numar de ordine al acesteia)
Data la care este programata operatia
Durata operatiei (in minute)
Numele pacientului operat
Varsta pacientului operat
Sexul pacientului operat
Diagnosticul pacientului operat
Numele medicului care opereaza.
Descrieti structura bazei de date si inregistrati 10 operatii.
Apoi raspundeti la urmatoarele intrebari (scrieti comenzile FOX necesare):
REZOLVARE:
Sugeram urmatoarea structura a bazei de date SALAOP.DBF:
CODOP |
N | ||
DATAOP |
D |
Data calendaristica |
|
DURATA |
N |
(In minute) |
|
NUME_P |
C | ||
VARSTA_P |
N | ||
SEX_P |
C |
(M - masculin, F - feminin) sau se poate codifica Numeric - 1 : 1 - masculin, 2 - feminin |
|
DIAGN |
C | ||
NUME_M |
N |
Comenzile FOXPRO prin care se raspunde la intrebari vor fi:
1. COUNT FOR MONTH(DATAOP) = 4 TO X
? X
2. CALCULATE AVG(DURATA) FOR DIAGN = 'APENDICITA'
CALCULATE MIN(DURATA) FOR DIAGN = 'APENDICITA'
CALCULATE MAX(DURATA) FOR DIAGN = 'APENDICITA'
3. LIST NUME_M FOR DAY(DATAOP) = 6 AND MONTH(DATAOP) = 5 AND YEAR(DATAOP) = 2000
LIST DIAGN FOR DAY(DATAOP) = 6 AND MONTH(DATAOP) = 5 AND YEAR(DATAOP) = 2000
4. CALCULATE MIN(VARSTA_P) FOR YEAR(DATAOP) = 2000 TO X
DISP NUME_P, DIAGN FOR VARSTA_P = X
CALCULATE MAX(VARSTA_P) FOR YEAR(DATAOP) = 2000 TO Y
DISP NUME_P, DIAGN FOR VARSTA_P = Y
5. COUNT FOR SEX_P='F' AND YEAR(DATAOP) = 2000 TO X
? X
LIST DIAGN FOR SEX_P='F' AND YEAR(DATAOP) = 2000
sau, pentru codificare numerica:
COUNT FOR SEX_P=2 AND YEAR(DATAOP) = 2000 TO X
? X
LIST DIAGN FOR SEX_P=2 AND YEAR(DATAOP) = 2000
6. COUNT FOR NUME_M = 'POPESCU' TO X
? X
7. INDEX ON NUME_M TO ID1
DISP ALL NUME_P, VARSTA_P, DURATA, NUME_M
8. INDEX ON VARSTA_P TO ID2
DISP ALL NUME_P, VARSTA_P, DURATA, NUME_M
9. INDEX ON - DURATA TO ID3
DISP ALL NUME_P, VARSTA_P, DURATA, NUME_M
10. GO 3
DISP NUME_P, DIAGN
DISP NEXT 3 NUME_P, DIAGN
11. DELETE FOR SEX_P='F' AND VARSTA_P >= 55
PACK
12. COPY TO D:TEST1 FOR SEX_P='M' AND 'ULCER' $ DIAGN
USE D:TEST1
DISP ALL
13. USE D:TEST1
APPEND FROM D:SALAOP FOR SEX_P = 'M' AND 'APENDICITA' $ DIAGN
14. LIST STRU
15. COPY STRU TO D:TEST2
USE D:TEST2
LIST STRU
EXEMPLUL 3:
Creati o baza de date in care sa inregistrati medicamentele consumate in farmacia unui spital, pe urmatoarea structura:
numele medicamentului
firma producatoare
substanta activa din fiecare medicament
tipul medicamentului (A - antibiotice, C - tonice cardiace, N - anestezice, G - analgezice, V - vaso-dilatatoare, H - protectoare hepatice, etc.)
data expirarii medicamentului
pretul medicamentului
contraindicatiile medicamentului respectiv
cantitatea existenta in stoc.
Descrieti structura bazei de date si inregistrati 10 medicamente.
Apoi raspundeti la urmatoarele intrebari (scrieti comenzile FOX necesare):
REZOLVARE:
Sugeram urmatoarea structura a bazei de date FARM.DBF:
NUMEM |
C | ||
PROD |
C |
Firma producatoare |
|
SUBSTA |
C |
Substanta activa |
|
TIP |
C |
|
Tipul medicamentului - se codifica: A - antibiotic, C - tonic cardiac, N - anestezic, G - analgezic, V - vaso-dilatator, H - protector hepatic, etc.) |
DATA_EXP |
D | ||
PRET |
N |
Pretul medicamentului |
|
CONTRAIND |
C |
Contraindicatii |
|
CANTIT |
N |
Comenzile FOXPRO prin care se raspunde la intrebari vor fi:
1. LIST FOR PROD='X'
2. LIST PROD FOR TIP='A' AND SUBSTA='X'
3. LIST CONTRAIND FOR TIP='C' AND PROD='Z'
4. COUNT FOR TIP='N' TO X
COUNT FOR TIP='G' TO Y
? X, Y
5. LIST NUMEM FOR YEAR(DATA_EXP) < YEAR(DATE()) OR (YEAR(DATA_EXP) = YEAR(DATE()) AND MONTH(DATA_EXP) < MONTH(DATE()) ) OR (YEAR(DATA_EXP) = YEAR(DATE()) AND MONTH(DATA_EXP) = MONTH(DATE()) AND DAY(DATA_EXP) < DAY(DATE()) )
6. CALC MIN(PRET) FOR TIP='A' TO X
LIST NUMEM FOR PRET=X
CALC MAX(PRET) FOR TIP='A' TO Y
LIST NUMEM FOR PRET=Y
CALC AVG(PRET) TO Z
? Z
7. LIST CONTRAIND FOR SUBSTA='A'
8. INDEX ON NUMEM TO ID1
LIST NUMEM, PRET, CANTIT
9. INDEX ON PRET TO ID2
LIST NUMEM, PRET, CANTIT
10. INDEX ON - CANTIT TO ID3
LIST NUMEM, PRET, CANTIT
11. DELETE FOR CANTIT=0
PACK
12. GO 4
DISP PRET, CANTIT, CONTRAIND
DISP NEXT 4 PRET, CANTIT, CONTRAIND
13. GO BOTTOM
DISP
14. COPY TO D:TEST1 FOR PRET > 300 000
USE D:TEST1
DISP ALL
15. USE D:TEST1
COUNT TO X
? X
CALCULATE AVG(PRET) TO X
LIST TIP, PROD, SUBSTA
EXEMPLUL 4:
Creati o baza de date in care sa inregistrati date despre activitatea unui laborator biochimic, si anume:
numele analizei realizate
valoarea gasita pentru acea analiza
tipul analizei (B - analiza biochimica, H - analiza hepatica, S - analiza sanguina)
data la care s-a efectuat analiza
numele pacientului pentru care s-a efectuat analiza
varsta pacientului pentru care s-a efectuat analiza
domiciliul pacientului pentru care s-a efectuat analiza (R - rural sau U - urban)
numele medicului care a semnat buletinul de analiza
Descrieti structura bazei de date si inregistrati 10 analize.
Apoi raspundeti la urmatoarele intrebari (scrieti comenzile FOX necesare):
REZOLVARE:
Sugeram urmatoarea structura a bazei de date LABCH.DBF:
ANALIZA |
C | ||
VALOARE |
N |
Firma producatoare |
|
TIP |
C |
Tipul analizei - se codifica: B - analiza biochimica, H - analiza hepatica, S - analiza sanguina, etc.) |
|
DATA |
D | ||
NUME_P |
C | ||
VARSTA_P |
N | ||
DOM_P |
C |
(U - urban, R - rural) sau se poate codifica Numeric - 1: 1 - urban, 2 - rural |
|
NUME_M |
C |
Comenzile FOXPRO prin care se raspunde la intrebari vor fi:
1. LIST TIP
2. LIST ANALIZA, VALOARE FOR MONTH(DATA) = 3 AND YEAR(DATA) = 2000
3. COUNT FOR TIP = 'H' AND MONTH(DATA) = 5 AND YEAR(DATA) = 2000
4. CALCULATE AVG(VALOARE) FOR ANALIZA='GLICEMIE'
CALCULATE AVG(VALOARE) FOR ANALIZA='VSH'
CALCULATE MIN(VALOARE) FOR ANALIZA='GLICEMIE'
CALCULATE MIN(VALOARE) FOR ANALIZA='VSH'
CALCULATE MAX(VALOARE) FOR ANALIZA='GLICEMIE'
CALCULATE MAX(VALOARE) FOR ANALIZA='VSH'
5. LIST ANALIZA, TIP, VALOARE FOR NUME_P='POPESCU'
6. COUNT FOR DOM_P='R' TO X
COUNT FOR DOM_P='U' TO Y
? X, Y
sau, pentru codificare numerica:
COUNT FOR DOM_P=2 TO X
COUNT FOR DOM_P=1 TO Y
? X, Y
7. INDEX ON NUME_M TO ID1
LIST ANALIZA, NUME_P, NUME_M
8. INDEX ON NUME_P TO ID2
LIST ANALIZA, NUME_P, NUME_M
9. COPY TO D:TEST1 FOR ANALIZA='VSH'
USE D:TEST1
DISP ALL
10. COUNT TO X
? X
INDEX ON VALOARE TO ID3
DISP ALL ANALIZA, VALOARE
INDEX ON -VALOARE TO ID3
DISP ALL ANALIZA, VALOARE
11. USE D:LABCH
DELETE FOR NUME_P='POPESCU'
PACK
(pentru recuperare, inainte de a folosi PACK, se poate da comanda:
RECALL FOR NUME_P='POPESCU'
12. GO TOP
DISP
13. LIST NUME_M FOR TIP='B'
14. CALCULATE AVG(VARSTA_P) FOR TIP='H'
CALCULATE AVG(VARSTA_P) FOR TIP='B'
15. LIST TIP FOR MONTH(DATA)=12 OR MONTH(DATA)=1 OR MONTH(DATA)=2
EXEMPLUL 5:
Creati o baza de date in care sa inregistrati informatii despre analizele de sange ale unui pacient, si anume:
numele pacientului
varsta pacientului
domiciliul pacientului
grupa de sange
VSH
Hematii
Leucocite
Glicemie
Colesterol
RH (pozitiv sau negativ)
Descrieti structura bazei de date si inregistrati 10 pacienti.
Apoi raspundeti la urmatoarele intrebari (scrieti comenzile FOX necesare):
0 - daca pacientul nu sufera de anemie, adica valoarea din campul HEMATII este mai mare de 8.000.000
1 - daca pacientul este suspect de anemie, adica valoarea din campul HEMATII este mai mica de 8.000.000
REZOLVARE:
Sugeram urmatoarea structura a bazei de date ANALIZE.DBF:
NUME |
C | ||
VARSTA |
N | ||
DOMICILIU |
C |
(U - urban, R - rural) sau se poate codifica Numeric - 1: 1 - urban, 2 - rural |
|
GRSANG |
C |
Se codifica prin valorile: 0, A, B, AB |
|
VSH |
N | ||
HEMATII |
N | ||
LEUCOCITE |
N | ||
GLICEMIE |
N | ||
COLEST |
N | ||
RH |
L |
Poate fi pozitiv sau negativ: se codifica prin valorile: .T. pentru pozitiv, .F. pentru negativ. Sau se poate codifica Numeric - 1: 1 - pozitiv, 0 - negativ. |
Comenzile FOXPRO prin care se raspunde la intrebari vor fi:
1. COUNT FOR VARSTA <= 15 TO X1
COUNT FOR VARSTA > 15 AND VARSTA <=25 TO X2
COUNT FOR VARSTA > 25 AND VARSTA <=40 TO X3
COUNT FOR VARSTA > 40 TO X4
? X1, X2, X3, X4
2. COUNT FOR DOMICILIU ='R' TO X1
COUNT FOR DOMICILIU='U' TO X2
? X1, X2
sau, pentru codificare numerica:
COUNT FOR DOMICILIU =1 TO X1
COUNT FOR DOMICILIU=2 TO X2
? X1, X2
3. CALCULATE MIN(GLICEMIE), MAX(GLICEMIE), AVG(GLICEMIE) FOR DOMICILIU='R'
CALCULATE MIN(GLICEMIE), MAX(GLICEMIE), AVG(GLICEMIE) FOR DOMICILIU='U'
CALCULATE MIN(COLESTEROL), MAX(COLESTEROL), AVG(COLESTEROL) FOR DOMICILIU='R'
CALCULATE MIN(COLESTEROL), MAX(COLESTEROL), AVG(COLESTEROL) FOR DOMICILIU='U'
4. COUNT FOR RH=.T. TO X1
? X1
COUNT FOR RH=.F. TO X2
? X2
sau, pentru codificare numerica:
COUNT FOR RH = 1 TO X1
? X1
COUNT FOR RH = 0 TO X2
? X2
5. LIST VSH, HEMATII, LEUCOCITE FOR VARSTA > 40 AND GRSANG='AB'
6. GO TOP
DISP GRSANG, RH
DISP NEXT 5 GRSANG, RH
7. DELETE FOR GLICEMIE > 13 AND RH=.F.
PACK
sau, pentru codificare numerica:
DELETE FOR GLICEMIE > 13 AND RH = 0
PACK
8. INDEX ON NUME TO ID1
DISP ALL NUME, VARSTA, COLESTEROL
9. INDEX ON VARSTA TO ID2
DISP ALL NUME, VARSTA, COLESTEROL
10. INDEX ON - COLESTEROL TO ID1
DISP ALL NUME, VARSTA, COLESTEROL
11. MODI STRU
si se insereaza (folosind butonul "Insert", un nou camp:
ANEMIE - Numeric, 1)
Se completeaza campul ANEMIE cu valorile corecte, folosind comenzile:
REPLACE ANEMIE WITH 0 FOR HEMATII > 800 000
REPLACE ANEMIE WITH 1 FOR HEMATII < 800 000
12. COPY TO D:TEST1 FOR ANEMIE=1
USE D:TEST1
COUNT TO X
? X
CALCULATE AVG(HEMATII)
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1142
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2025 . All rights reserved