PDA-0539 (Разработка автоматизированной системы учета выбывших из стационара), страница 9
Описание файла
Документ из архива "Разработка автоматизированной системы учета выбывших из стационара", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "PDA-0539"
Текст 9 страницы из документа "PDA-0539"
Работа программы во всех режимах кроме режима настройки детально описана в документе "Руководство оператора". Режим настройки является режимом администратора базы данных и описан в документе "Руководство системного программиста и администратора базы данных" в разделе "Настройка программы".
Исходный текст программы (всех модулей) находится в файле KARTA.PRG. Библиотека функций находится в файле LIB.OBJ. Справочники размещены в файле CODIF.DBF. Для получения загрузочного модуля необходимо набрать на клавиатуре следующую команду:
rtlink fi KARTA, lib lib terminal, clipper, extend, dbfntx
и нажать клавишу ENTER.
3.2 Описание алгоритма программы
Схема алгоритма работы программы представлена на рис. 8.
Для работы с Международным классификатором болезней (МКБ) использовалась функция MKB().
Для работы с каталогом операций использовалась функция CATALOG().
Рис. 8. Схема алгоритма работы программы.
Для работы со справочниками используются следующие функции:
-
codif() - функция выбора альтернативы из вертикального меню, построенного на основе данных справочника.
-
mempro(), codpic(), codtxt() - функции для экранного редактирования МЕМО - полей баз данных.
-
extra() - функция восстановления текста выбранной альтернативы по ее номеру в справочнике.
-
ins_pic() - функция добавления информации в справочник.
-
del_pic() - функция удаления инфомации из справочника.
Для представления текста отчетного документа на экране используется функция viewer().
4. Используемые технические средства
Программа "КАРТА" предназначена для установки на персональных ЭВМ IBM PC XT/AT cо следующим набором периферийных устройств: принтер, дисплей с платой адаптера EGA\VGA, накопитель на жестком диске объемом не менее 80 Мб. Минимальный объем свободной оперативной памяти 540 Кб.
5. Вызов и загрузка
Для вызова программы следует набрать в командной строке:
=>karta
или выбрать файл karta.EXE с помощью «оболочки» типа 'NORTON COMMANDER' и нажать клавишу ENTER.
6. Входные данные
Входной информацией программы является следующая:
-
данные, вводимые пользователем (см. "Руководство оператора");
-
данные, хранящиеся в базе данных по пациентам (см. "Руководство системного программиста");
-
текущая системная дата;
-
данные, хранящиеся в справочных базах данных (см. "Руководство системного программиста").
7. Выходные данные
Выходной информацией программы является следующая:
-
данные, введенные пользователем в базу данных по пациентам (см. "Руководство системного программиста");
-
документы, сформированные по введенным данным(см. "Руководство оператора");
.
Текст программы на языке Clipper Summer'87
Модуль: Karta.prg
*********************************************************************
* Название программы : "KARTA" *
* Дата последних изменений : 23.12.92 *
* Исходный текст : Clipper Summer'87 *
*********************************************************************
SET CONSOLE OFF
SET ESCAPE ON
SET MESSAGE TO 23 CENTER
SET BELL OF
SET DATE GERMAN
SET SCOREBOARD OFF
SET CONFIRM ON
SET WRAP ON
SET KEY -9 TO GO_MAIN && ПО F10 - ВОЗВРАТ В МЕHЮ
SET KEY -29 TO recon
init_lib() && Функция настройки для работы с библиотекой LIB29
t_qwerty=.T.
CLEAR
********************************************
* глобальные переменные программы
*******************************************
PUBLIC edit_index && .T.- редактировать номер ИБ нельзя
&& .F.- можно
edit_index=.F.
PUBLIC gotomain && принудительный возврат в главную процедуру
&& .T.- прервать внутренний цикл и вернуться в MAIN
gotomain=.F.
PUBLIC _today && Текущая дата работы
PUBLIC rec_num && Номер текущей записи
*******************************************
f1 = CHR(218) + CHR(196) + CHR(191) + CHR(179) + ;
CHR(217) + CHR(196) + CHR(192) + CHR(179)
f2 = CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)
f3 = CHR(218) + CHR(196) + CHR(191) + CHR(179) + ;
CHR(180) + CHR(196) + CHR(195) + CHR(179)
f1_fon = CHR(218) + CHR(196) + CHR(191) + CHR(179) + ;
CHR(217) + CHR(196) + CHR(192) + CHR(179) + ;
CHR(178)
f2_fon = CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186) + ;
CHR(178)
dn_s=CHR(198)+CHR(205)+CHR(181)+CHR(179)+; && стыкуется с рамкой
CHR(217)+CHR(196)+CHR(192)+CHR(179) && по верхней границе
fon1=CHR(177)
fon2=CHR(32)
singl=CHR(218)+CHR(196)+CHR(191)+CHR(179)+;
CHR(217)+CHR(196)+CHR(192)+CHR(179)
doubl=CHR(201)+CHR(205)+CHR(187)+CHR(186)+;
CHR(188)+CHR(205)+CHR(200)+CHR(186)
IF .NOT. ISCOLOR()
color1="W+/N,N/W,W+/N,W/N,W/N" && для меню
color2="W/N,W+/N" && для gets
color3="W+/N,N/W" && для кодификаторов
color4="W/N,N/W" && для рамки каталога
color5="W/N,N/W" && для меню при редактировании
color6="W/N,W+/N" && для memed
color7=color2 && для шаблонов
color8="W/N,W+/N,N/W" && для HYPERTEXT 1-го уровня
color9="W/N,W+/N,N/W" && для HYPERTEXT 2-го уровня
ELSE
color1="W+/B,N/G,BG/N,RB+/B,BG/B"
color2="BG/B,GR+/B,BG/B,RB+/B,BG/B"
color3="N/W,W+/GR"
color4="N/GR,W+/GR"
color5="G+/B,N/W,BG/B,RB+/B,+GR/B"
color6="W+/GR,N+/W"
color7="N/GR,+GR/GR"
color8="W+/B,G+/B,N/W"
color9="B/G,W+/G,W+/N"
ENDIF
******************** ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ **********************
PRIVATE _NUM_IB && Номер истории болезни больного
PRIVATE _FAM && Фамилия больного
_FAM=SPACE(25)
PRIVATE _F_S_NAME && Имя,Отчество больного
PRIVATE _DATE_B && Дата рождения больного
PRIVATE time_B && Время рождения
time_B="00.00"
PRIVATE _HOUR_B && Часы рождения
PRIVATE _MINS_B && Минуты рождения
PRIVATE _POL && Пол
PRIVATE _OLD && Возраст на момент поступления
PRIVATE _OLD_D && Возраст на момент смерти
PRIVATE _MASSA && Масса
PRIVATE _PLACE_LIV && Место жительства
PRIVATE _RAION && Район проживания
PRIVATE _CITY_VILL && Городской/сельский житель
PRIVATE _DIRECT1 && Кем направлен
PRIVATE _DIRECT2 && Номер направляющего стационара
PRIVATE _STATE && Название государства
PRIVATE _PLACE && Название области РФ
*PRIVATE _WHY && Причины направления
PRIVATE _DEPARTMENT && Отделение
PRIVATE _KOIKA && Профиль койки
PRIVATE _PASS && Характер поступления (экстренно,не экстренно)
PRIVATE _TIME && Через какое время после заболевания
PRIVATE _DATE_IN && Дата поступления
_DATE_IN=DATE()
PRIVATE time_IN && Время поступления
time_IN="00.00"
PRIVATE _HOUR_IN && Часы поступления
PRIVATE _MINS_IN && Минуты поступления
PRIVATE _END1 && Исход заболевания
PRIVATE _END2 && Причина исхода
PRIVATE _END3 && Если переведен, то куда
PRIVATE _DATE_END && Дата выписки
PRIVATE time_END && Время выписки
time_END="00.00"
PRIVATE _HOUR_END && Часы выписки
PRIVATE _MINS_END && Минуты выписки
PRIVATE _ALL_DAY && Общее количество дней, проведенных в стационаре
PRIVATE _DIA_DIRECT && Диагноз направляющего учреждения
PRIVATE _NUM_COME && Номер поступления
PRIVATE _RW_DATE && Дата анализа на RW
PRIVATE _RW_REZ && Результат анализа
PRIVATE _FAM_DOCTOR && Фамилия лечащего врача
PRIVATE _KOD1 && Клинический диагноз
PRIVATE _KOD2 && Поталого-анатомический диагноз
PRIVATE _SHIFR && Шифр заболевания по МКБ
PRIVATE _SHIFR_ILL && Шифр операции из каталога операций
*********************************************************************
SELECT 0 && БД шифров заболеваний всех больных
USE DIA66 INDEX DIA66 ALIAS DIA66
COPY STRUCTURE TO BUFF.DBF
SELECT 0 && Вспомогательная БД для формирования диагнозов больного
USE BUFF ALIAS BUFF
INDEX ON NUM_IB+KOD2+KOD1 TO BUFF.NTX
SELECT 0 && БД шифров операций всех больных
USE OP66 INDEX OP66 ALIAS OP66
COPY STRUCTURE TO BUFF2.DBF
SELECT 0 && Вспомогательная БД для формирования шифров операций
USE BUFF2 ALIAS BUFF2
INDEX ON NUM_IB TO BUFF2.NTX
SELECT 0 && БД кодификаторов
USE CODIF INDEX CODIF ALIAS CODIF
SELECT 0 && БД с основной информацией о пациентах
USE KARTA66 INDEX KARTA66 ALIAS KARTA
SELECT 0 && БД с шаблонами
USE CODPIC INDEX CODPIC ALIAS CODPIC
SELECT 0 && БД с прототипами
USE CODTXT INDEX CODTXT ALIAS CODTXT
*********************** ОСHОВHАЯ РАМКА ***************************
SET COLOR TO "W+/N"
flop_box('c', 0,0,24,79,doubl+fon1)
saycent(0,0,79," ФОРМА N 66 ")
saycent(24,0,79,' перемещение - выбор F10-меню ')
******************** ВВОД СЕГОДHЯШHЕЙ ДАТЫ ***********************
SET COLOR TO(color2)
_today=DATE()
flop_box('c', 9,25,11,55,singl+fon2)
@ 10,32 SAY "СЕГОДHЯ:" GET _today
READ
_NUM_IB=RIGHT(STR(YEAR(_today)),2)+"00000"
**********************************************************************
* ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ *
**********************************************************************
@ 1,1 CLEAR TO 23,78 && очистка экрана для переменных
SET COLOR TO (color1)
@ 2,1,22,78 BOX f1_fon
choice = 1
PRIVATE screen0
DO WHILE choice # 6
SET COLOR TO (color1)
gotomain=.f.
***************** ВЫВОД ГЛАВНОГО МЕНЮ *********************
@ 1,2 PROMPT "Создание" MESSAGE " ввод новой записи ИБ"
@ 1,12 PROMPT "Удаление" MESSAGE " удаление записи из ИБ"
@ 1,22 PROMPT "Редактирование/Печать" MESSAGE " редактирование записи ИБ "
@ 1,45 PROMPT "Навигатор" MESSAGE "движение по базе данных"
@ 1,56 PROMPT "Отчет" MESSAGE "составление отчетных форм"
@ 1,67 PROMPT " Выход " MESSAGE " выход из программы "
MENU TO choice
SAVE SCREEN TO screen0
DO CASE
CASE choice=1 && Добавления записи
IF( inpindex()=0) && Ввод ключа "НОМЕР ИСТОРИИ БОЛЕЗНИ"
@ 11,18 CLEAR TO 14,62
saycent(12,20,60,"ПОДОЖДИТЕ НЕМНОГО - ИДЕТ ИНИЦИАЛИЗАЦИЯ")
DO edit WITH .T.
ENDIF
CASE choice=2 && Удаление записи
DO del
CASE choice=3 && Изменение записи ИБ
SET COLOR TO(color2)
PRIVATE D1
DO WHILE .T.
D1=det() && Поиск нужной записи
IF D1=1 && Запись найдена
saycent(12,20,60,"ПОДОЖДИТЕ НЕМНОГО - ИДЕТ СЧИТЫВАНИЕ ИЗ БД")
DO edit WITH .T.
EXIT
ELSEIF D1=2 && Запись не найдена
saycent(12,20,60,"ИНФОРМАЦИИ ОБ УКАЗАННОМ БОЛЬНОМ В БД НЕТ ")
INKEY(5)
ELSE
EXIT
ENDIF
ENDDO
RELEASE D1
CASE choice=4 && Движение по БД
DO navy
CASE choice=5 && Составление отчетных документов
rez()
CASE choice=6 && Завершение программы
EXIT
ENDCASE
PRIVATE sel
sel=SELECT()
SELECT BUFF
ZAP
SELECT BUFF2
ZAP
SELECT (sel)
RELEASE sel
RESTORE SCREEN FROM screen0
ENDDO
COMMIT && Сохраняем рабочие области на диске
CLOSE ALL
DELETE FILE BUFF.DBF
DELETE FILE BUFF.DBT
DELETE FILE BUFF.NTX
DELETE FILE BUFF2.DBF
DELETE FILE BUFF2.DBT
DELETE FILE BUFF2.NTX
RETURN
**********************************************************************
* КОHЕЦ ГЛАВHОГО МОДУЛЯ *
**********************************************************************
**********************************************************************
* INPINDEX() - функция ввода номера истории болезни *
**********************************************************************
FUNCTION inpindex
PRIVATE sel,ret,scr