Разработка информационной системы медицинского учреждения. Модуль "Диспансеризация"

Создание информационной системы (ИС) медицинского учреждения с программным модулем "Диспансеризация". Формирование требований к ИС, ее внедрение. Организация взаимодействия персонала с ИС и модулем. Повышение качества и скорости обслуживания пациента.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 20.03.2017
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Label9: TLabel;

Panel1: TPanel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

Bevel1: TBevel;

Label1: TLabel;

Label2: TLabel;

Bevel2: TBevel;

Label3: TLabel;

DBEdit4: TDBEdit;

Label5: TLabel;

DBEdit6: TDBEdit;

Panel3: TPanel;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

DBGrid1: TDBGrid;

Button2: TButton;

RadioGroup1: TRadioGroup;

RadioGroup2: TRadioGroup;

DBGrid3: TDBGrid;

Button1: TButton;

Button3: TButton;

procedure RadioGroup1Click (Sender: TObject);

procedure DBGrid1CellClick (Column: TColumn);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form8: TForm8;

implementation

uses Unit3, Unit1;

{$R *. dfm}

procedure TForm8. RadioGroup1Click (Sender: TObject);

var

years, i,d,n, KolvoStrokDiag: integer;

Clwhere2,x,ClwhereOcenka,ClWherePZ, NowYear: string;

x1,x2,x3,x4,x5,proverka: real;

mas: array [1.27] of integer;

begin

Form8. Series1. Clear;

proverka: =0;

x5: =0;

// Label3. Caption: =DBText2. Caption+' '+DBText3. Caption+' '+DBText4. Caption;

DM1. QueryVozrastMedmer. Close;

Label2. Font. Color: =clRed;

// Label4. Visible: =true;

mas [1]: =21;

for i: =2 to 27 do

mas [i]: =mas [i-1] +3;

years: = YearsBetween (Date,DM1. QueryPacienty. FieldByName ('Дата рождения'). AsDateTime);

label2. Caption: =IntToStr (years);

for i: =1 to 27 do

begin

if years=mas [i] then

begin

// Label4. Visible: =false;

Label2. Font. Color: =clBlack;

x: =IntToStr (years);

if RadioGroup1. ItemIndex = 0 then

begin

DM1. QueryVozrastMedmer. SQL. Text: = ('SELECT id_medmer, МедМероприятие FROM vozrast_medmer WHERE vozrast_medmer. '+ x + '=1' + ' and vozrast_medmer. Этап=1');

DM1. QueryVozrastMedmer. Open;

ClWhere: =Form1. DBGrid2. DataSource. DataSet. Fields [0]. AsString;

Clwhere2: =DBGrid1. DataSource. DataSet. Fields [1]. AsString;

DM1. ZQuery8. Close;

DM1. ZQuery8. SQL. Text: = ('SELECT DISTINCT * FROM diagnozy WHERE diagnozy. id_pz='+clWhere+' and diagnozy. МедМероприятие='+#39+ClWhere2+#39);

DM1. ZQuery8. Open;

proverka: =1;

end

else

begin

DM1. QueryVozrastMedmer. SQL. Text: = ('SELECT id_medmer, МедМероприятие FROM vozrast_medmer WHERE vozrast_medmer. '+ x + '=1');

DM1. QueryVozrastMedmer. Open;

Clwhere: =Form1. DBGrid2. DataSource. DataSet. Fields [0]. AsString;

Clwhere2: =DBGrid1. DataSource. DataSet. Fields [1]. AsString;

DM1. ZQuery8. Close;

DM1. ZQuery8. SQL. Text: = ('SELECT DISTINCT * FROM diagnozy WHERE diagnozy. id_pz='+clWhere+' and diagnozy. МедМероприятие='+#39+ClWhere2+#39);

DM1. ZQuery8. Open;

proverka: =1;

end;

end;

end;

{Диаграмма}

If proverka=1 then

begin

NowYear: = FormatDateTime ('yyyy', Now);

ClwherePZ: =Form1. DBGrid2. DataSource. DataSet. Fields [0]. AsString;

{оценка Норма}

ClwhereOcenka: ='Норма';

DM1. QueryDiagnozyGraphik. Close;

DM1. QueryDiagnozyGraphik. SQL. Text: = ('SELECT DISTINCT * FROM diagnozy WHERE diagnozy. id_pz='+clWherePZ+' and diagnozy. ОценкаПоказателей='+#39+ClWhereOcenka+#39+' and YEAR (Дата) =' + NowYear);

DM1. QueryDiagnozyGraphik. Open;

x2: =DM1. QueryDiagnozyGraphik. RecordCount;

{оценка Небольшие отклонения}

ClwhereOcenka: ='Небольшие отклонения';

DM1. QueryDiagnozyGraphik. Close;

DM1. QueryDiagnozyGraphik. SQL. Text: = ('SELECT DISTINCT * FROM diagnozy WHERE diagnozy. id_pz='+clWherePZ+' and diagnozy. ОценкаПоказателей='+#39+ClWhereOcenka+#39+' and YEAR (Дата) =' + NowYear);

DM1. QueryDiagnozyGraphik. Open;

x3: =DM1. QueryDiagnozyGraphik. RecordCount;

{оценка Серьезные отклонения}

ClwhereOcenka: ='Серьезные отклонения';

DM1. QueryDiagnozyGraphik. Close;

DM1. QueryDiagnozyGraphik. SQL. Text: = ('SELECT DISTINCT * FROM diagnozy WHERE diagnozy. id_pz='+clWherePZ+' and diagnozy. ОценкаПоказателей='+#39+ClWhereOcenka+#39+' and YEAR (Дата) =' + NowYear);

DM1. QueryDiagnozyGraphik. Open;

x4: =DM1. QueryDiagnozyGraphik. RecordCount;

{Не пройдено}

x1: =DM1. QueryVozrastMedmer. RecordCount-x2-x3-x4;

{передача параметров}

if x1>=1 then Form8. Series1. Add (x1, 'Не пройдено', clWhite);

if x2>=1 then Form8. Series1. Add (x2, 'Норма', clGreen);

if x3>=1 then Form8. Series1. Add (x3, 'Небольшие отклонения', clYellow);

if x4>=1 then Form8. Series1. Add (x4, 'Серьезные отклонения', clRed);

end;

// Процент прохождения мед. мероприятий

try

Form8. Label9. Visible: =True;

x5: =0;

x5: =x1+x2+x3+x4;

x5: =100-x1/x5*100;

Form8. label10. Caption: = (FormatFloat ('0.0', x5));

except

end;

// завершение

end;

procedure TForm8. DBGrid1CellClick (Column: TColumn);

var

Clwhere2: string;

begin

Clwhere: =DM1. QueryPacienty. FieldByName ('id_pz'). AsString;

Clwhere2: =DM1. QueryVozrastMedmer. FieldByName ('МедМероприятие'). AsString;

DM1. ZQuery8. Close;

DM1. ZQuery8. SQL. Text: = ('SELECT DISTINCT * FROM diagnozy WHERE diagnozy. id_pz='+clWhere+' and diagnozy. МедМероприятие='+#39+ClWhere2+#39);

DM1. ZQuery8. Open;

Form5. Show;

end;

end.

7) Форма авторизации;

unit Unit4;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, ExtCtrls, Grids, DBGrids, TeeProcs, TeEngine,

Chart, DbChart, StdCtrls, DateUtils, DBCtrls, Series, Mask, jpeg;

type

TPasswordDlg = class (TForm)

img1: TImage;

lbl1: TLabel;

btnOKBtn: TButton;

btnCancelBtn: TButton;

edt1: TEdit;

edt2: TEdit;

Label1: TLabel;

Label2: TLabel;

Image1: TImage;

DBText1: TDBText;

Button1: TButton;

procedure btnOKBtnClick (Sender: TObject);

procedure btnCancelBtnClick (Sender: TObject);

procedure Image1Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

PasswordDlg: TPasswordDlg;

dostup: integer;

implementation

uses Unit1, Unit7, Unit5, Unit3;

{$R *. dfm}

procedure TPasswordDlg. btnOKBtnClick (Sender: TObject);

var

x1,x2: string;

begin

DM1. QueryUsers. Close;

DM1. QueryUsers. SQL. Text: = 'Select * from users where login = '

+ #39 + edt1. Text + #39+ ' and password = ' + #39 + edt2. Text + #39;

DM1. QueryUsers. Open;

dostup: =0;

x2: =DM1. QueryUsers. FieldByName ('password'). AsString;

x1: =DM1. QueryUsers. FieldByName ('login'). AsString;

if x1=Edt1. Text then

if x2=Edt2. Text then

dostup: =DM1. QueryUsers. FieldByName ('dostup'). AsInteger;

Case dostup of

0: begin

ShowMessage ('Ошибка: проверьте правильность данных. ');

end;

1: // Терапевт

begin

Form1. Show;

Form1. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

PasswordDlg. Visible: =False;

end;

2: // Главврач

begin

Form1. Show;

Form1. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

PasswordDlg. Visible: =False;

end;

3: // Акушер/Гинеколог

begin

Form2. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

Form2. Show;

DM1. QueryVozrastMedmer. SQL. Text: = ('Select МедМероприятие from vozrast_medmer where id_medmer IN (11,29,9) ');

DM1. QueryVozrastMedmer. Open;

PasswordDlg. Visible: =False;

end;

5: // Лаборант

begin

Form2. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

Form2. Show;

DM1. QueryVozrastMedmer. SQL. Text: = ('Select МедМероприятие from vozrast_medmer where id_medmer IN (2,3,4,5,12,13,14,15,16,17) ');

DM1. QueryVozrastMedmer. Open;

PasswordDlg. Visible: =False;

end;

6: // Диагност

begin

Form2. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

Form2. Show;

DM1. QueryVozrastMedmer. SQL. Text: = ('Select МедМероприятие from vozrast_medmer where id_medmer IN (10,18,23,24,28,30) ');

DM1. QueryVozrastMedmer. Open;

PasswordDlg. Visible: =False;

end;

7: // Невролог

begin

Form2. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

Form2. Show;

DM1. QueryVozrastMedmer. SQL. Text: = ('Select МедМероприятие from vozrast_medmer where id_medmer IN (32) ');

DM1. QueryVozrastMedmer. Open;

PasswordDlg. Visible: =False;

end;

8: // Окулист

begin

Form2. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

Form2. Show;

DM1. QueryVozrastMedmer. SQL. Text: = ('Select МедМероприятие from vozrast_medmer where id_medmer IN (31, 19) ');

DM1. QueryVozrastMedmer. Open;

PasswordDlg. Visible: =False;

end;

9: // Хирург

begin

Form2. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

Form2. Show;

DM1. QueryVozrastMedmer. SQL. Text: = ('Select МедМероприятие from vozrast_medmer where id_medmer IN (25,26,27) ');

DM1. QueryVozrastMedmer. Open;

PasswordDlg. Visible: =False;

end;

10: // Кардиолог

begin

Form2. Caption: =DM1. QueryUsers. FieldByName ('Должность'). AsString + ': ' + DM1. QueryUsers. FieldByName ('ФИО'). AsString;

Form2. Show;

DM1. QueryVozrastMedmer. SQL. Text: = ('Select МедМероприятие from vozrast_medmer where id_medmer IN (6,7,8) ');

DM1. QueryVozrastMedmer. Open;

PasswordDlg. Visible: =False;

end;

end;

end;

procedure TPasswordDlg. btnCancelBtnClick (Sender: TObject);

begin

application. Terminate;

end;

procedure TPasswordDlg. Image1Click (Sender: TObject);

begin

Application. Terminate;

end;

procedure TPasswordDlg. Button1Click (Sender: TObject);

var x1,x2: string;

dostup: integer;

begin

DM1. QueryUsers. Close;

DM1. QueryUsers. SQL. Text: = 'Select * from users where login = '

+ #39 + edt1. Text + #39+ ' and password = ' + #39 + edt2. Text + #39;

DM1. QueryUsers. Open;

dostup: =0;

x2: =DM1. QueryUsers. FieldByName ('password'). AsString;

x1: =DM1. QueryUsers. FieldByName ('login'). AsString;

if x1=Edt1. Text then

if x2=Edt2. Text then

dostup: =DM1. QueryUsers. FieldByName ('dostup'). AsInteger;

if dostup > 0 then

begin

Label1. Visible: =False;

Label2. Visible: =False;

lbl1. Visible: =False;

btnOKBtn. Visible: =True;

edt1. Visible: =False;

edt2. Visible: =False;

DBText1. Visible: =True;

btnCancelBtn. Visible: =True;

Button1. Visible: =False;

end

else

showmessage ('Доступа нет');

end;

end.

Приложение 4

Приложение № 1 к приказу Министерства здравоохранения Российской Федерации от 6 марта 2016 г. № 87н

Медицинская документация Учетная форма № 131/у Утверждена приказом Минздрава России от 6 марта 2016 г. № 87н

Карта учета диспансеризации (профилактических медицинских осмотров)

Дата начала диспансеризации (профилактического медицинского осмотра)

1. Фамилия, имя, отчество

2. Пол: муж. - 1, жен. - 2,

3. Дата рождения: число, месяц, год, полных лет

4. Местность: городская - 1, сельская - 2

5. Место регистрации: субъект Российской Федерации, район, город, населенный пункт, улица, дом, корпус, кв.

6. Код категории льготы

7. Принадлежность к коренным малочисленным народам Севера, Сибири и Дальнего Востока Российской Федерации: да - 1; нет - 2

8. Занятость: 1 - работает; 2 - не работает; 3 - обучающийся в образовательной организации по очной форме.

9. Диспансеризация (профилактический медицинский осмотр) проводится мобильной медицинской бригадой: да - 1; нет - 2

10. Проведение первого этапа диспансеризации (профилактического медицинского осмотра):

Осмотр, исследование, иное медицинское мероприятие Далее - медицинское мероприятие. первого этапа диспансеризации

№ строки

Дата проведения

Выявлено отклонение (+/-)

Примечание (отказ (дата); проведено ранее (дата))

Опрос (анкетирование) на выявление хронических неинфекционных заболеваний, факторов риска их развития, потребления наркотических средств и психотропных веществ без назначения врача

1

Х

Антропометрия (измерение роста стоя, массы тела, окружности талии), расчет индекса массы тела

2

Измерение артериального давления

3

Определение уровня общего холестерина в крови

4

Определение уровня глюкозы в крови экспресс-методом

5

Определение относительного суммарного сердечно-сосудистого риска

6

Определение абсолютного суммарного сердечно-сосудистого риска

7

Электрокардиография (в покое)

8

Осмотр фельдшером (акушеркой), включая взятие мазка (соскоба) с поверхности шейки матки (наружного маточного зева) и цервикального канала на цитологическое исследование

9

Флюорография легких

10

Маммография обеих молочных желез

11

Клинический анализ крови

12

Клинический анализ крови развернутый

13

Анализ крови биохимический общетерапевтический

14

Общий анализ мочи

15

Исследование кала на скрытую кровь иммунохимическим методом

16

Ультразвуковое исследование (УЗИ) на предмет исключения новообразований органов брюшной полости, малого таза

17

Ультразвуковое исследование (УЗИ) в целях исключения аневризмы брюшной аорты

18

Измерение внутриглазного давления

19

Прием (осмотр) врача-терапевта Врач-терапевт здесь и далее включает врача-терапевта, врача-терапевта участкового, врача-терапевта цехового врачебного участка, врача общей практики (семейного врача).

20

Х

11. Проведение второго этапа диспансеризации

Медицинское мероприятие второго этапа диспансеризации

№ строки

Дата

Выявлено отклонение (+/-)

Примечание (отказ (дата); проведено ранее (дата))

направления

проведения

1

2

3

4

5

6

Дуплексное сканирование брахицефальных артерий

1

Осмотр (консультация) врачом-неврологом

2

Эзофагогастродуоденоскопия

3

Осмотр (консультация) врачом-хирургом или врачом-урологом

4

Осмотр (консультация) врачом-хирургом или врачом-колопроктологом

5

Колоноскопия или ректороманоскопия

6

Определение липидного спектра крови

7

Спирометрия

8

Осмотр (консультация) врачом-акушером-гинекологом

9

Определение концентрации гликированного гемоглобина в крови или тест на толерантность к глюкозе

10

Осмотр (консультация) врачом-оториноларингологом

11

Анализ крови на уровень содержания простатспецифического антигена

12

Осмотр (консультация) врачом-офтальмологом

13

Индивидуальное углубленное профилактическое консультирование

14

Х

Групповое профилактическое консультирование (школа пациента)

15

Х

Прием (осмотр) врача-терапевта

16

Х

12. Выявленные при проведении диспансеризации (профилактического медицинского осмотра) факторы риска развития хронических неинфекционных заболеваний в соответствии с кодами МКБ-10:

Факторы риска (код МКБ-10)

R03.0

R73.9

R63.5

Z72.0

Z72.1

Z72.2

Z72.3

Z72.4

Z80, Z82.3, Z82.4, Z82.5, Z83.3

Выявлен фактор риска, нет (-), да (дата выявления)

14. Относительный суммарный сердечно-сосудистый риск по шкале SCORE:

низкий

высокий

15. Абсолютный суммарный сердечно-сосудистый риск по шкале SCORE:

высокий

очень высокий

16. Группа состояния здоровья

I группа;

II группа;

IIIa группа;

IIIб группа

17. Назначено лечение: да - 1; нет - 2

18. Дано направление на дополнительное обследование, не входящее в объем диспансеризации (профилактического медицинского осмотра): да - 1; нет - 2

18.1 Дано направление к врачу-сердечно-сосудистому хирургу: да - 1; нет - 2

18.2 Дано направление к врачу-психиатру (врачу-психиатру-наркологу): да - 1; нет - 2

19. Направлен для получения специализированной, в том числе высокотехнологичной, медицинской помощи: да - 1; нет - 2

20. Направлен на санаторно-курортное лечение: да - 1; нет - 2

Ф. И.О. и подпись врача (фельдшера), ответственного за проведение диспансеризации (профилактического медицинского осмотра)

Дата окончания диспансеризации (профилактического медицинского осмотра)

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.