Файл: Р азработка информационного комплекса для лечебного учреждения.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 424
Скачиваний: 1
СОДЕРЖАНИЕ
2.1. Технологии применения специализированных программных продуктов.
2. 2. Основные топологии локальных вычислительных сетей (ЛВС).
2. 4. Базовые сетевые протоколы.
2. 5. Операционные системы для локальных вычислительных сетей.
3. РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ ИНФОРМАЦИОННОГО КОМПЛЕКСА
3. 3. 1. Выбор топологии сети.
3. 3. 2. Выбор операционной системы.
3. 3. 3. Используемые протоколы для локальной вычислительной сети.
3. 3. 4. Электропитание локальной вычислительной сети.
3. 3. 5. Резервное копирование.
4. РАЗРАБОТКА СИСТЕМЫ ОБЕСПЕЧЕНИЯ ВНЕШНИХ ТЕЛЕКОММУНИКАЦИЙ
4. 1. Виды телекоммуникационных систем.
4. 2. Варианты доступа в Internet.
4. 3. Применение технологии Internet в системе.
5. АДАПТАЦИЯ И ВНЕДРЕНИЕ ПРИКЛАДНОГО СПЕЦИАЛИЗИРОВАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
5. 1. Использование структур-форм документов.
5. 3. Разработка программы аналитической обработки информации «Флюоротека».
5. 4. Возможность получения отчетов.
5. 5. Структура баз данных в программе «Флюоротека».
6. РАЗРАБОТКА ТЕХНОЛОГИИ ЭЛЕКТРОННОГО ДОКУМЕНТООБОРОТА В ЛЕЧЕБНОМ УЧРЕЖДЕНИИ
6. 1. Основные принципы электронного документооборота.
6. 2. Оценка объемов документооборота.
6. 3. Возможности электронного документооборота в лечебном учреждении.
7. 1. Конфигурирование комплекса.
7. 2. Администрирование комплекса.
8. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТАЛЬНЫХ ИССЛЕДОВАНИЙ
9. 2. Эргономика и проектирование рабочего места.
9. 3. Требования к помещениям для эксплуатации мониторов и ПЭВМ.
9. 4. Требования к микроклимату, содержанию аэроинов и вредных химических
веществ в воздухе помещений эксплуатации мониторов и ПЭВМ.
9. 5. Требования к освещению помещений и рабочих мест.
9. 6. Требования к шуму и вибрации.
9. 7. Расчет освещенности помещения.
ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКИЙ РАЗДЕЛ
10. ЦЕЛЕСООБРАЗНОСТЬ РАЗРАБОТКИ С ЭКОНОМИЧЕСКОЙ ТОЧКИ ЗРЕНИЯ. РАСЧЕТ СТОИМОСТИ СЕТЕВОГО КОМПЛЕКСА
10. 1. Целесообразность разработки с экономической точки зрения.
10. 2. Расчет стоимости комплекса.
+"Направлено к онкологу - "+LTRIM(STR(fact))+lf;
+SPACE(15)+"Дообследовано у онколога ..... - "+LTRIM(STR(t3))+lf;
+SPACE(15)+"Выявлено онкобольных ......... - "+LTRIM(STR(t4))+lf
//SETCOLOR("W/B")
//@ 24,0 CLEAR TO 24,79
//@ 24, 1 SAY '"Esc" - выход; F5 - печать'
//SETCOLOR("W/BR")
blank=str+lf+lf
flag=0
DO WHILE flag != 2
SETCOLOR("W/B")
@ 24,0 CLEAR TO 24,79
@ 24, 1 SAY '"Esc" - выход; F5 - печать'
SETCOLOR("W/BR")
@ 0,0 TO 23,79
str=MEMOEDIT(str,1,1,22,78,.F.,"BRO")
IF flag = -4
DO PRINTER // печатать бланк
flag=1
ENDIF
ENDDO
SET FILTER TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
RETURN
PROCEDURE LABOR_N
LOCAL buf, s_c, alt, i, str, itogs, itogp
buf=SAVESCREEN(0,0,24,79)
s_c=SETCOLOR("W+/BG+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
KEYBOARD CHR(1)
INKEY(0)
SETCOLOR("W/B")
//@ 24,0 CLEAR TO 24,79
//@ 24, 1 SAY '"Esc" - выход'
//SETCOLOR("W/BR")
SELECT 5
SET FILTER TO !DELETED() .AND. "LABORANT" $ GROUP
COUNT TO ndra
IF ndra = 0
SETCOLOR("W+/B")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
@ 12, 20 SAY 'Выберите пункт "НАСТРОЙКА" в главном меню'
@ 13, 19 SAY ' и заполните список "ЛАБОРАНТЫ" '
INKEY(delay)
flag=2
SETCOLOR("W+/BG")
SET FILTER TO
RETURN
ENDIF
PUBLIC codeC[ndra], nameC[ndra], snim[ndra], pati[ndra]
GOTO TOP
FOR i=1 TO ndra
codeC[i]=CODE
nameC[i]=NAME
snim[i]=0
pati[i]=0
SKIP
NEXT
SELECT 3
SET FILTER TO !DELETED() .AND. FLUO_DATE >= datBeg;
.AND. FLUO_DATE <= datEnd
GOTO TOP
itogs=0
itogp=0
DO WHILE !EOF()
i=ASCAN(codeC, LABORANT)
IF i != 0
snim[i]=snim[i]+QUAL
pati[i]=pati[i]+1
itogs=itogs+QUAL
itogp=itogp+1
ENDIF
SKIP
ENDDO
str=SPACE(35)+hosp+" "+addr+lf+lf;
+"О Т Ч Е Т "+'"'+ALLTRIM(aid1[alt_rep])+'"'+" "+lf;
+SPACE(24)+"за период с "+DTOC(datBeg)+" по "+DTOC(datEnd)+lf+lf;
+"Ф.И.О. лаборанта "+SPACE(33)+" Число "+" Число"+lf;
+SPACE(51)+"снимков"+" обращений"+lf
FOR i=1 TO ndra
str=str+SUBSTR(nameC[i],1,50)+" "+ALLTRIM(STR(snim[i]));
+SPACE(9-LEN(ALLTRIM(STR(snim[i]))));
+ALLTRIM(STR(pati[i]));
+SPACE(9-LEN(ALLTRIM(STR(pati[i]))))+lf
NEXT
str=str+"‚‘…ѓЋ:"+SPACE(45)+ALLTRIM(STR(itogs));
+SPACE(9-LEN(ALLTRIM(STR(itogs))));
+ALLTRIM(STR(itogp));
+SPACE(9-LEN(ALLTRIM(STR(itogp))))
blank=str+lf+lf
flag=0
DO WHILE flag != 2
SETCOLOR("W/B")
@ 24,0 CLEAR TO 24,79
@ 24, 1 SAY '"Esc" - выход; F5 - печать'
SETCOLOR("W/BR")
@ 0,0 TO 23,79
str=MEMOEDIT(str,1,1,22,78,.F.,"BRO")
IF flag = -4
DO PRINTER
flag=1
ENDIF
ENDDO
SET FILTER TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
RETURN
PROCEDURE CATEGOR
LOCAL buf, s_c, alt, i, str, ndra, ndra1, n, j, row, maxLen, maxS
PRIVATE sum, podsum, proco
buf=SAVESCREEN(0,0,24,79)
s_c=SETCOLOR("W+/BR+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
SELECT 13
USE citycont
SELECT 5
SET FILTER TO GROUP="CONTING" .AND. !DELETED()
COUNT FOR GROUP="CONTING" .AND. !DELETED() TO ndra
GOTO TOP
IF ndra = 0
SETCOLOR("W+/B")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
INKEY(delay)
flag=2
SET FILTER TO
SETCOLOR("W+/BG")
RETURN
ENDIF
PUBLIC codeC[ndra], nameC[ndra], podl[ndra], wos[ndra], procent[ndra]
FOR i=1 TO ndra
codeC[i]=CODE
nameC[i]=NAME
SKIP
NEXT
SET FILTER TO GROUP="CITY" .AND. !DELETED()
COUNT FOR GROUP="CITY" .AND. !DELETED() TO ndra1
GOTO TOP
IF ndra1 = 0
SETCOLOR("W+/B")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
INKEY(delay)
flag=2
SET FILTER TO
SETCOLOR("W+/BG")
RETURN
ENDIF
n=ndra1+1
PUBLIC cit_name[n], cit_code[n]
cit_name[1]="Всего по району"
cit_code[1]=0
FOR i=2 TO n
cit_name[i]=NAME
cit_code[i]=CODE
SKIP
NEXT
maxLen=LEN(NAME)
SELECT 3
SET FILTER TO !DELETED() .AND. FLUO_DATE >= datBeg;
.AND. FLUO_DATE <= datEnd
SET RELATION TO STR(ID,6) INTO passport
i=0
DO WHILE .T.
GOTO TOP
SETCOLOR("W/B+")
CLEAR TYPEAHEAD
maxS=IF(8+n<22, 8+n, 22)
@ 7,9 CLEAR TO maxS,10+maxLen
@ 7,9 TO maxS,10+maxLen
i = ACHOICE(8,10,maxS-1,9+maxLen,cit_name,.T.,"USE_PASS",i)
IF i = 0
EXIT
ENDIF
SETCOLOR("W+/B+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
SETCOLOR("W+/BR+")
@ 24,0 CLEAR TO 24,79
@ 24, 1 SAY 'введите число подлежавших осмотру; "Esc" - отказ'
SETCOLOR("W+/B+")
SELECT 13
GOTO TOP
FOR j=1 TO ndra
IF cit_code[i] != 0
LOCATE FOR CODE_CONT = codeC[j] .AND. CODE_CITY = cit_code[i]
IF FOUND()
podl[j]=QUAL
ELSE
podl[j]=0
ENDIF
ELSE
SET FILTER TO CODE_CONT = codeC[j]
GOTO TOP
podl[j]=0
DO WHILE !EOF()
podl[j]=podl[j]+QUAL
SKIP
ENDDO
SET FILTER TO
ENDIF
@ 1, 1 SAY cit_name[i]
row=IF(j+1 < 22, j+1, 22)
@ 22,1 CLEAR TO 22,78
@ row, 1 SAY TRIM(SUBSTR(nameC[j],1,48));
+REPLICATE(".", IF(55-LEN(TRIM(nameC[j]))>0;
,55-LEN(TRIM(nameC[j])), 7));
+" подлежало" GET podl[j]
wos[j]=0
NEXT
SELECT 3
SET KEY 27 TO ESC_GETA
flag=0
READ
SET KEY 27 TO
IF flag = 2
SET RELATION TO
SET FILTER TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
KEYBOARD CHR(1)
RETURN
ENDIF
IF cit_code[i] != 0
SELECT 13
FOR j=1 TO ndra
LOCATE FOR CODE_CONT = codeC[j] .AND. CODE_CITY = cit_code[i]
IF FOUND()
REPLACE QUAL WITH podl[j]
ELSE
APPEND BLANK
REPLACE CODE_CITY WITH cit_code[i], CODE_CONT WITH codeC[j], QUAL WITH podl[j]
ENDIF
NEXT
COMMIT
ENDIF
SELECT 3
DO WHILE !EOF()
IF cit_code[i] != 0
IF 1->CITY = cit_code[i]
j=ASCAN(codeC,1->CONTING)
IF j != 0
wos[j]=wos[j]+1
ENDIF
ENDIF
ELSE
j=ASCAN(codeC,1->CONTING)
IF j != 0
wos[j]=wos[j]+1
ENDIF
ENDIF
SKIP
ENDDO
str=SPACE(35)+hosp+" "+addr+lf+lf;
sum=0
podsum=0
FOR j=1 TO ndra
sum=sum+wos[j]
podsum=podsum+podl[j]
IF podl[j] != 0
procent[j]=(wos[j]/podl[j])*100
ELSE
procent[j]=0
ENDIF
str=str+SUBSTR(nameC[j],1,54)+" подлежало "+LTRIM(STR(podl[j]))+lf;
+SUBSTR(nameC[j],55)+SPACE(55-LEN(SUBSTR(nameC[j],55)));
+" прошли"+LTRIM(STR(wos[j]))+lf;
+SPACE(51)+"процент охвата - "+LTRIM(STR(procent[j]))+"%"+lf+lf
NEXT
IF podsum != 0
proco=(sum/podsum)*100
ELSE
proco=0
ENDIF
str=str+"‚‘…ѓЋ"+SPACE(49)+" подлежало "+LTRIM(STR(podsum))+lf;
+SPACE(55)+" прошли"+LTRIM(STR(sum))+lf;
+SPACE(51)+"процент охвата "+LTRIM(STR(proco))+"%"+lf+lf
blank=str+lf+lf
flag=0
DO WHILE flag != 2
SETCOLOR("W/B")
@ 24,0 CLEAR TO 24,79
@ 24, 1 SAY '"Esc" - выход; F5 - печать'
SETCOLOR("W/BR")
@ 0,0 TO 23,79
str=MEMOEDIT(str,1,1,22,78,.F.,"BRO")
IF flag = -4
DO PRINTER
flag=1
ENDIF
ENDDO
ENDDO
SELECT 13
USE
SELECT 3
SET FILTER TO
SET RELATION TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
RETURN
PROCEDURE CATEGOR
LOCAL buf, s_c, alt, i, str, ndra, ndra1, n, j, row, maxLen, maxS
PRIVATE sum, podsum, proco, rr
buf=SAVESCREEN(0,0,24,79)
s_c=SETCOLOR("W+/BR+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
SELECT 13
USE citycont
SELECT 5
SET FILTER TO GROUP="CONTING" .AND. !DELETED()
COUNT FOR GROUP="CONTING" .AND. !DELETED() TO ndra
GOTO TOP
IF ndra = 0
SETCOLOR("W+/B")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
INKEY(delay)
flag=2
SET FILTER TO
SETCOLOR("W+/BG")
RETURN
ENDIF
PUBLIC codeC[ndra], nameC[ndra], podl[ndra], wos[ndra], procent[ndra]
FOR i=1 TO ndra
codeC[i]=CODE
nameC[i]=NAME
SKIP
NEXT
SET FILTER TO GROUP="CITY" .AND. !DELETED()
COUNT FOR GROUP="CITY" .AND. !DELETED() TO ndra1
GOTO TOP
IF ndra1 = 0
SETCOLOR("W+/B")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
INKEY(delay)
flag=2
SET FILTER TO
SETCOLOR("W+/BG")
RETURN
ENDIF
n=ndra1+1
PUBLIC cit_name[n], cit_code[n]
cit_name[1]="всего по району"
cit_code[1]=0
FOR i=2 TO n
cit_name[i]=NAME
cit_code[i]=CODE
SKIP
NEXT
maxLen=LEN(NAME)
SELECT 3
// SET FILTER TO !DELETED() .AND. FLUO_DATE >= datBeg;
// .AND. FLUO_DATE <= datEnd
SET RELATION TO STR(ID,6) INTO passport
i=0
DO WHILE .T.
GOTO TOP
SETCOLOR("W/B+")
CLEAR TYPEAHEAD
maxS=IF(8+n<22, 8+n, 22)
@ 7,9 CLEAR TO maxS,10+maxLen
@ 7,9 TO maxS,10+maxLen
i = ACHOICE(8,10,maxS-1,9+maxLen,cit_name,.T.,"USE_PASS",i)
IF i = 0
EXIT
ENDIF
SETCOLOR("W+/B+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
SETCOLOR("W+/BR+")
@ 24,0 CLEAR TO 24,79
SETCOLOR("W+/B+")
SELECT 13
GOTO TOP
rr=0
@ 1, 1 SAY cit_name[i]
FOR j=1 TO ndra
rr=rr+1
IF cit_code[i] != 0
LOCATE FOR CODE_CONT = codeC[j] .AND. CODE_CITY = cit_code[i]
IF FOUND()
podl[j]=QUAL
ELSE
podl[j]=0
ENDIF
ELSE
SET FILTER TO CODE_CONT = codeC[j]
GOTO TOP
podl[j]=0
DO WHILE !EOF()
podl[j]=podl[j]+QUAL
SKIP
ENDDO
SET FILTER TO
ENDIF
IF rr = 22
rr=1
SET KEY 27 TO ESC_GETA
flag=0
READ
@ 2,1 CLEAR TO 22,78
SET KEY 27 TO
IF flag = 2
SET RELATION TO
SET FILTER TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
KEYBOARD CHR(1)
RETURN
ENDIF
ENDIF
@ 22,1 CLEAR TO 22,78
@ rr+1, 1 SAY TRIM(SUBSTR(nameC[j],1,48));
+REPLICATE(".", IF(48-LEN(TRIM(nameC[j]))>0;
,55-LEN(TRIM(nameC[j])), 7));
+" подлежало" GET podl[j]
wos[j]=0
NEXT
SET KEY 27 TO ESC_GETA
flag=0
READ
SET KEY 27 TO
IF flag = 2
SET RELATION TO
SET FILTER TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
KEYBOARD CHR(1)
RETURN
ENDIF
SELECT 3
IF cit_code[i] != 0
SELECT 13
FOR j=1 TO ndra
LOCATE FOR CODE_CONT = codeC[j] .AND. CODE_CITY = cit_code[i]
IF FOUND()
REPLACE QUAL WITH podl[j]
ELSE
APPEND BLANK
REPLACE CODE_CITY WITH cit_code[i], CODE_CONT WITH codeC[j], QUAL WITH podl[j]
ENDIF
NEXT
COMMIT
ENDIF
SELECT 3
GOTO TOP
DO WHILE !EOF()
IF !DELETED() .AND. FLUO_DATE >= datBeg;
.AND. FLUO_DATE <= datEnd
IF cit_code[i] != 0
IF 1->CITY = cit_code[i]
j=ASCAN(codeC,1->CONTING)
IF j != 0
wos[j]=wos[j]+1
ENDIF
ENDIF
ELSE
j=ASCAN(codeC,1->CONTING)
IF j != 0
wos[j]=wos[j]+1
ENDIF
ENDIF
ENDIF
SKIP
ENDDO
ENDDO
SELECT 13
USE
SELECT 3
SET FILTER TO
SET RELATION TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
RETURN
PROCEDURE CITY
LOCAL buf, s_c, alt, i, str, ndra, ndra1, n, j, row, maxLen, maxS
PRIVATE sum, podsum, proco, rr
buf=SAVESCREEN(0,0,24,79)
s_c=SETCOLOR("W+/BR+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
SELECT 13
USE citycont
SELECT 5
SET FILTER TO GROUP="CONTING" .AND. !DELETED()
COUNT FOR GROUP="CONTING" .AND. !DELETED() TO ndra
GOTO TOP
IF ndra = 0
SETCOLOR("W+/B")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
INKEY(delay)
flag=2
SET FILTER TO
SETCOLOR("W+/BG")
RETURN
ENDIF
PUBLIC codeC[ndra], nameC[ndra], podl[ndra], wos[ndra], procent[ndra]
FOR i=1 TO ndra
codeC[i]=CODE
nameC[i]=NAME
SKIP
NEXT
SET FILTER TO GROUP="CITY" .AND. !DELETED()
COUNT FOR GROUP="CITY" .AND. !DELETED() TO ndra1
GOTO TOP
IF ndra1 = 0
SETCOLOR("W+/B")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
INKEY(delay)
flag=2
SET FILTER TO
SETCOLOR("W+/BG")
RETURN
ENDIF
n=ndra1
PUBLIC cit_name[n], cit_code[n]
FOR i=1 TO n
cit_name[i]=NAME
cit_code[i]=CODE
SKIP
NEXT
maxLen=LEN(NAME)
SELECT 3
//SET FILTER TO !DELETED() .AND. FLUO_DATE >= datBeg;
// .AND. FLUO_DATE <= datEnd
SET RELATION TO STR(ID,6) INTO passport
i=0
DO WHILE .T.
GOTO TOP
SETCOLOR("W/B+")
CLEAR TYPEAHEAD
maxS=IF(8+ndra<22, 8+ndra, 22)
@ 7,9 CLEAR TO maxS,10+maxLen
@ 7,9 TO maxS,10+maxLen
i = ACHOICE(8,10,maxS-1,9+maxLen,nameC,.T.,"USE_PASS",i)
IF i = 0
EXIT
ENDIF
SETCOLOR("W+/B+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
SETCOLOR("W+/BR+")
@ 24,0 CLEAR TO 24,79
SETCOLOR("W+/B+")
SELECT 13
GOTO TOP
rr=0
@ 1, 1 SAY nameC[i]
FOR j=1 TO ndra1
rr=rr+1
IF codeC[i] != 0
LOCATE FOR CODE_CONT = codeC[i] .AND. CODE_CITY = cit_code[j]
IF FOUND()
podl[j]=QUAL
ELSE
podl[j]=0
ENDIF
ELSE
SET FILTER TO CODE_CONT = codeC[i]
GOTO TOP
podl[j]=0
DO WHILE !EOF()
podl[j]=podl[j]+QUAL
SKIP
ENDDO
SET FILTER TO
ENDIF
IF rr = 22
rr=1
SET KEY 27 TO ESC_GETA
flag=0
READ
@ 2,1 CLEAR TO 22,78
SET KEY 27 TO
IF flag = 2
SET RELATION TO
SET FILTER TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
KEYBOARD CHR(1)
RETURN
ENDIF
ENDIF
@ 22,1 CLEAR TO 22,78
@ rr+1, 1 SAY TRIM(SUBSTR(cit_name[j],1,48));
+REPLICATE(".", IF(55-LEN(TRIM(cit_name[j]))>0;
,55-LEN(TRIM(cit_name[j])), 7));
+"подлежало" GET podl[j]
wos[j]=0
NEXT
SET KEY 27 TO ESC_GETA
flag=0
READ
SET KEY 27 TO
IF flag = 2
SET RELATION TO
SET FILTER TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
KEYBOARD CHR(1)
RETURN
ENDIF
SELECT 3
IF codeC[i] != 0
SELECT 13
FOR j=1 TO ndra1
LOCATE FOR CODE_CONT = codeC[i] .AND. CODE_CITY = cit_code[j]
IF FOUND()
REPLACE QUAL WITH podl[j]
ELSE
APPEND BLANK
REPLACE CODE_CITY WITH cit_code[j], CODE_CONT WITH codeC[i], QUAL WITH podl[j]
ENDIF
NEXT
COMMIT
ENDIF
SELECT 3
GOTO TOP
DO WHILE !EOF()
IF !DELETED() .AND. FLUO_DATE >= datBeg;
.AND. FLUO_DATE <= datEnd
IF codeC[i] != 0
IF 1->CONTING = codeC[i]
j=ASCAN(cit_code,1->CITY)
IF j != 0
wos[j]=wos[j]+1
ENDIF
ENDIF
ELSE
j=ASCAN(cit_code,1->CITY)
IF j != 0
wos[j]=wos[j]+1
ENDIF
ENDIF
ENDIF
SKIP
ENDDO
str=SPACE(35)+hosp+" "+addr+lf+lf;
+"О Т Ч Е Т "+'"'+ALLTRIM(aid1[alt_rep])+'"'+" "+lf;
+SPACE(24)+"за период с "+DTOC(datBeg)+" по "+DTOC(datEnd)+lf;
+SPACE(14)+"Категория контингента "+nameC[i]+lf+lf
sum=0
podsum=0
FOR j=1 TO ndra1
sum=sum+wos[j]
podsum=podsum+podl[j]
IF podl[j] != 0
procent[j]=(wos[j]/podl[j])*100
ELSE
procent[j]=0
ENDIF
str=str+SUBSTR(cit_name[j],1,54)+"подлежало "+LTRIM(STR(podl[j]))+lf;
+SUBSTR(cit_name[j],55)+SPACE(55-LEN(SUBSTR(cit_name[j],55)));
+" прошли "+LTRIM(STR(wos[j]))+lf;
+SPACE(51)+"процент охвата "+LTRIM(STR(procent[j]))+"%"+lf+lf
NEXT
IF podsum != 0
proco=(sum/podsum)*100
ELSE
proco=0
ENDIF
str=str+"ВСЕГО"+SPACE(49)+" подлежало "+LTRIM(STR(podsum))+lf;
+SPACE(55)+" прошли - "+LTRIM(STR(sum))+lf;
+SPACE(51)+"процент охвата "+LTRIM(STR(proco))+"%"+lf+lf
blank=str+lf+lf
flag=0
DO WHILE flag != 2
SETCOLOR("W/B")
@ 24,0 CLEAR TO 24,79
@ 24, 1 SAY '"Esc" - выход; F5 - печать'
SETCOLOR("W/BR")
@ 0,0 TO 23,79
str=MEMOEDIT(str,1,1,22,78,.F.,"BRO")
IF flag = -4
DO PRINTER
flag=1
ENDIF
ENDDO
ENDDO
SELECT 13
USE
SELECT 3
SET FILTER TO
SET RELATION TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
RETURN
PROCEDURE LISTING
PRIVATE ndra1, i, nn, alt
buf=SAVESCREEN(0,0,24,79)
s_c=SETCOLOR("W+/BR+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
SELECT 3
SET FILTER TO
SELECT 5
SET FILTER TO GROUP="CITY" .AND. !DELETED()
COUNT FOR GROUP="CITY" .AND. !DELETED() TO ndra1
GOTO TOP
IF ndra1 = 0
SETCOLOR("W+/B")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
@ 12, 20 SAY 'Выберите пункт "НАСТРОЙКА" в главном меню'
@ 13, 25 SAY 'и заполните список «ГОРОДА/СЕЛА»"'
INKEY(delay)
flag=2
SET FILTER TO
SETCOLOR("W+/BG")
RETURN
ENDIF
PUBLIC cit_name[ndra1], cit_code[ndra1]
FOR i=1 TO ndra1
cit_name[i]=ALLTRIM(NAME)
cit_code[i]=CODE
SKIP
NEXT
maxLen=LEN(NAME)
alt=0
DO WHILE .T.
GOTO TOP
SETCOLOR("W+/BR+")
@ 0,0 CLEAR TO 24,79
@ 0,0 TO 23,79
SETCOLOR("W/B+")
CLEAR TYPEAHEAD
maxS=IF(8+ndra1<22, 8+ndra1, 22)
@ 7,9 CLEAR TO maxS,10+maxLen
@ 7,9 TO maxS,10+maxLen
alt = ACHOICE(8,10,maxS-1,9+maxLen,cit_name,.T.,"USE_PASS",alt)
IF alt = 0
EXIT
ENDIF
str=SPACE(25)+hosp+" "+addr+lf+lf;
+SPACE(10)+"СПИСОК НЕ ПРОШЕДШИХ ОБСЛЕДОВАНИЕ по н/п";
+cit_name[alt]+lf;
+SPACE(25)+"за период с "+DTOC(datBeg)+" по "+DTOC(datEnd)+lf+lf;
+"N "+"Ф. И. О."+SPACE(37)+"Дата рожд. "+"Последнее;
+SPACE(62)+"обслед."+lf+lf
SETCOLOR("W+/BG")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
@ 12, 29 SAY 'Идет составление списка '
@ 13, 33 SAY 'Подождите . . .'
PUBLIC adoc:={}
SELECT 1
SET FILTER TO !DELETED() .AND. CITY = cit_code[alt]
SET RELATION TO STR(ID,6) INTO fluoteka
GOTO TOP
i=0
DO WHILE !EOF()
nn=ID
k=0
SELECT 3
DO WHILE 3->ID = nn
IF !DELETED() .AND. FLUO_DATE >= datBeg;
.AND. FLUO_DATE <= datEnd
k=1
EXIT
ENDIF
SKIP
ENDDO
IF k = 0
i=i+1
SELECT 2
SEEK STR(nn,6)
k=SUBSTR(TRIM(2->L_NAME)+" "+TRIM(+2->F_NAME)+" ";
+TRIM(2->S_NAME), 1, 43)
AADD(adoc, k+SPACE(43-LEN(k))+" ";
+DTOC(2->BR_DATE)+" "+DTOC(2->LAST_DATE))
IF i >= 4000 // иначе переполнение массива – надо задать период МЕНЬШЕ!!!
EXIT
ENDIF
ENDIF
SELECT 1
SKIP
ENDDO
ASORT(adoc)
ns=0
kk=0
FOR j=1 TO i
str=str+ALLTRIM(STR(j))+"."+SPACE(6-LEN(ALLTRIM(STR(i))));
+adoc[j]+lf
IF kk < 299
kk=kk+1
ns=0
ELSE
kk=0
ns=1
DO LIST_OUT
SETCOLOR("W+/BG")
@ 10,10 CLEAR TO 15,70
@ 10,10 TO 15,70
@ 12, 29 SAY 'Идет составление списка'
@ 13, 33 SAY 'Подождите . . .'
str=""
ENDIF
NEXT
IF ns = 0
DO LIST_OUT
ENDIF
ENDDO
SELECT 3
SET FILTER TO
SELECT 1
SET FILTER TO
SET RELATION TO
SETCOLOR(s_c)
RESTSCREEN(0,0,24,79,buf)
RETURN
PROCEDURE LIST_OUT
PRIVATE s_c
flag=0
// DO WHILE flag < 2
DO WHILE .T.
s_c=SETCOLOR("W/BG+")
@ 24,0 CLEAR TO 24,79
@ 24, 1 SAY '"Esc" - продолжение; F5 - печать'
SETCOLOR("W/B+")
@ 0,0 CLEAR TO 23,79
@ 0,0 TO 23,79
CLEAR TYPEAHEAD
str=MEMOEDIT(str,1,1,22,78,.F.,"BRO")
blank=str+lf+lf
DO CASE
CASE flag = -4
DO PRINTER
flag=1
CASE flag = 2 .AND. LASTKEY() = 27
EXIT
ENDCASE
ENDDO
SETCOLOR(s_c)
RETURN
PROCEDURE QULIT