КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функции элементов окна информации о пациенте
Описание окна информации о пациенте. Форма содержит следующие элементы: o 8 элементов редактирования и взаимодействия с БД (DBEdit); o 3 элемента редактирования (Edit); o 1 элемент вывода и редактирования текста (Memo); o 1 элемент редактирования и вывода текста, а так же взаимодействия с базой данных (DBMemo); o 2 кнопки (Button): o кнопка «Обновить данные о пациенте», при нажатии на которую выполняется обновление данных пациента; o кнопка «Выйти», при нажатии на которую выполняется закрытие формы. При активации окна происходит выполнение следующего кода: procedure TPacientInfo.FormActivate(Sender: TObject); begin ADOQuery1.Parameters.Refresh; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('execute spInfoPacient '''+idi+''' '); ADOQuery1.Open; Edit1.Text:=ADOQuery1.Fields[0].AsString; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('execute spInfoPacientLech '''+idi+''' '); ADOQuery1.Open; Memo1.Lines.Text:=ADOQuery1.Fields[0].AsString; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('execute spInfoPacientData '''+idi+''' '); ADOQuery1.Open; Edit2.Text:=ADOQuery1.Fields[0].AsString; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('execute spInfoPacientDoctor '''+idi+''' '); ADOQuery1.Open; Edit3.Text:=ADOQuery1.Fields[0].AsString; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('execute spInfoEpikriz '''+idi+''' '); ADOQuery1.Open; DBMemo1.Lines.Values[ADOQuery1.Fields[0].AsString]; DBMemo1.DataSource.DataSet.Edit; end; Код означает следующее: при нажатии на кнопку производится выполнение ряда команд, затрагивающих различные данные. Результаты выполнения команд выводятся в соответствующие элементы, позволяющие удобно рассортировать получаемую информацию. Здесь используется переменная idi, значение которой было присвоено при двойном нажатии на DBGrid. В команде используются следующие запросы: o spInfoPacient ALTER PROCEDURE [dbo].[spInfoPacient] @idi integer out AS BEGIN select Diagnoz from Diagnoz d INNER JOIN Pacient p ON p.idDiagnoz = d.idDiagnoz where d.idDiagnoz=@idi END Запрос позволяет выбрать (select) название диагноза (Diagnoz), путем объединения (INNER JOIN) двух таблиц Diagnoz и Pacient по ключевому полю (ON) idDiagnoz, где условием (where) будет являться столбец idDiagnoz из таблицы Diagnoz, соответствующий переменной @idi. В результате запроса мы получим ответ сервера, как, например, «Простуда». Результат команды заносится в свойство Text элемента редактирования Edit1. o spInfoPacientLech ALTER PROCEDURE [dbo].[spInfoPacientLech] @idi integer out AS BEGIN select KursLech from Diagnoz d INNER JOIN Pacient p ON p.idDiagnoz = d.idDiagnoz where d.idDiagnoz=@idi END Запрос позволяет выбрать (select) текстовый вариант курса лечения (KursLech), путем объединения (INNER JOIN) двух таблиц Diagnoz и Pacient по ключевому полю (ON) idDiagnoz, где условием (where) будет являться столбец idDiagnoz из таблицы Diagnoz, соответствующий переменной @idi. В результате запроса мы получим ответ сервера, как, например, «Либексин, по 1 таблетке 2 раза в день». Результат команды заносится в свойство Lines.Text элемента вывода данных Memo1. o spInfoPacientData ALTER PROCEDURE [dbo].[spinfoPacientData] @idi integer out AS BEGIN select DataOsmotr from MedKarta m INNER JOIN Pacient p ON p.idDiagnoz = m.idDiagnoz where m.idDiagnoz=@idi END Запрос позволяет выбрать (select) дату осмотра (DataOsmotr), путем объединения (INNER JOIN) двух таблиц MedKarta и Pacient по ключевому полю (ON) idDiagnoz, где условием (where) будет являться столбец idDiagnoz из таблицы Diagnoz, соответствующий переменной @idi. В результате запроса мы получим ответ сервера, как, например, «08.03.2012». Результат команды заносится в свойство Text элемента редактирования Edit2. o spInfoPacientDoctor ALTER PROCEDURE [dbo].[spInfoPacientDoctor] @idi integer out AS BEGIN select surName+' '+firstName+' '+lastName as FIO from Doctor d INNER JOIN MedKarta m ON d.idDoctor=m.idDoctor where m.idDiagnoz = @idi END Запрос позволяет выбрать (select) отчество (surName), имя (firstName) и фамилию (lastName), путем объединения (INNER JOIN) двух таблиц Doctor и MedKarta по ключевому полю (ON) idDoctor, где условием (where) будет являться столбец idDiagnoz из таблицы MedKarta, соответствующий переменной @idi. В результате запроса мы получим ответ сервера, как, например, «Тихомиров Алексей Владимирович». Результат команды заносится в свойство Text элемента редактирования Edit3. o spInfoEpikriz ALTER PROCEDURE [dbo].[spInfoEpikriz] @idi integer out AS BEGIN select epikriz from Pacient where idPacient=@idi END Запрос позволяет выбрать (select) данные эпикриза (epikriz) пациента из (from) таблицы Pacient, где условием (where) будет являться столбец idPacient, соответствующий переменной @idi. В результате запроса мы получим ответ сервера, как, например, «09.11.2011 – рак поджелудочной железы». Результат команды заносится в значение Values свойства Lines элемента вывода данных DBMemo1. При закрытии формы (FormClose) выполняется следующий код: procedure TPacientInfo.FormClose(Sender: TObject; var Action: TCloseAction); begin Kart.ADOQuery1.Active:=false; Kart.ADOQuery1.Active:=true; end; Код означает следующее: при закрытии формы свойству Active элемента ADOQuery1, находящегося на форме Kart, присваеваем сначала значение false (ложь), т.е. отключаем этот элемент, а потом снова включаем, присваивая свойству значение true (правда). Это сделано с целью предотвращения ошибки обновления данных «Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения». Элементы DBEdit. Значения в DBEdit'ы вводятся автоматически при активации формы. Это было достигнуто путем выбора в свойстве DataSource элемента управления данными DataSource1, находящегося на форме Kart. Также необходимо было в свойстве DataField выбрать столбик, требуемый для отображения. В итоге, выбирая строку в DBGrid и подставляя нужный столбец, мы получаем ячейку, выводимую в DBEdit. Кнопка «Обновить данные о пациенте». Выполняет команду обновления данных о пациенте. Данные для запроса берутся из соответствующих DBEdit'ов и переменной bi2. Код команды приведен ниже: procedure TPacientInfo.Button2Click(Sender: TObject); begin ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('execute spUpdInfo '''+bi2+''', '''+dbEdit4.Text+''', '''+dbEdit3.Text+''', '''+dbEdit2.Text+''', '''+dbEdit5.Text+''', '''+dbEdit6.Text+''', '''+dbEdit8.Text+''', '''+dbEdit7.Text+''', '''+dbEdit9.Text+''' '); ADOQuery2.ExecSQL; ShowMessage('Обновление выполнено'); end; Код означает следующее: при нажатии на кнопку выполняется очистка данных в свойстве SQL элемента управления ADOQuery2 и добавляется команда для выполнения. После это команда выполняется (ExecSQL). В конце выводится сообщение о выполнении команды «Обновление выполнено». В коменде используется хранимая на сервере процедура spUpdInfo, код которой приведен ниже: ALTER PROCEDURE [dbo].[spUpdInfo] @id int out, @sur varchar(15), @first varchar(15), @last varchar(15), @birth varchar(12), @addr varchar(50), @pol nchar(7), @svid nchar(14), @inn nchar(12) AS BEGIN update Pacient set surName=@sur, firstName=@first, lastName=@last, Birthday=@birth, [Address]=@addr, Polis=@pol, StrahSvid=@svid, INN=@inn where idPacient = @id END Процедура означает следующее: нужно обновить (update) данные (set) таблицы Pacient, где (where) условием будет ячейка столбца idPacient, соответствующая переменной @id. Результатом команды будет обновление строки с соответствующим идентификатором. Кнопка «Выйти». Выполняет команду закрытия формы. Код кнопки представлен ниже: procedure TPacientInfo.Button1Click(Sender: TObject); begin PacientInfo.Close; end; Код означает следующее: при нажатии на кнопку выполняется закрытие (Close) формы PacientInfo. 6. ЗАКЛЮЧЕНИЕ. Автоматизированная информационная система как нельзя лучше подходит к условиям нынешних реалий. Темп жизни растет с каждым днем и такая система крайне важна для предприятий, желающих выстоять в жесткой конкуренции. Автоматизированная информационная система позволяет ускорить обработку поступающей информации и наладить взаимодействие между предприятием и клиентами. Помимо прочего, автоматизированная информационная система позволяет, при должной ее эксплуатации, надежно хранить данные, агрессивно противодействуя любым попыткам ее модификации, удаления или копирования. Автоматизированная информационная система позволяет использовать различные модули, добавляющие в систему новые функции или источники информации. Также замечательным свойством автоматизированной информационной системы является ее централизованность, что исключает всякие попытки потери или спутывания информации. 7. СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ.
Дата добавления: 2014-12-07; Просмотров: 334; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |