一个小工具

院内感染监控系统

开发工具Delphi7

报表工具FastReport

Delphi 复制代码
unit U_Ymjg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton, ExtCtrls, RzPanel, ImgList, Grids, RzGrids, StdCtrls,
  RzCmboBx, DB, ADODB;

type
  TFrm_ymjg = class(TForm)
    ImageList1: TImageList;
    RzPanel1: TRzPanel;
    RzPanel2: TRzPanel;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    RzBitBtn6: TRzBitBtn;
    Label14: TLabel;
    RzComboBox1: TRzComboBox;
    Label15: TLabel;
    RzComboBox2: TRzComboBox;
    RzPanel3: TRzPanel;
    RzStringGrid4: TRzStringGrid;
    ADOQuery1: TADOQuery;
    procedure FormCreate(Sender: TObject);
    procedure RzBitBtn6Click(Sender: TObject);
    procedure RzBitBtn4Click(Sender: TObject);
    procedure RzStringGrid4SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure RzBitBtn5Click(Sender: TObject);
  private
    pid, id, ymid: string;
  public
    procedure browse(Apid, Aid, Aymid: string);
    procedure textCombox;
    procedure localStringGrid(sg: TRzStringGrid; v: string);
  end;

var
  Frm_ymjg: TFrm_ymjg;

implementation
uses u_dm;
{$R *.dfm}

procedure TFrm_ymjg.browse(Apid, Aid, Aymid: string);

var
  ARow, i, j: integer;
begin
  pid := Apid;
  id := Aid;
  ymid := Aymid;


  for i := 1 to RzStringGrid4.RowCount - 1 do
    for j := 0 to RzStringGrid4.ColCount - 1 do
      RzStringGrid4.Cells[j, i] := '';
  RzStringGrid4.RowCount := 2;
  RzBitBtn4.Enabled := false;
  RzBitBtn5.Enabled := false;
  if (pid = '') or (id = '') or (ymid = '') then
    exit;
  RzBitBtn4.Enabled := true;
  RzBitBtn5.Enabled := true;

  with ADOQuery1 do
    begin
      close;
      sql.Text := 'select [抗生素],[耐药性] from [药敏实验结果] where [住院号]=' + QuotedStr(pid) + ' and [明细序号]=' + id + ' and [药敏序号]=' + ymid;
      open;
      ARow := 0;
      while not eof do
        begin
          inc(ARow);

          for i := 0 to RzStringGrid4.ColCount - 1 do
            begin
              RzStringGrid4.Cells[i, ARow] := Fields[i].AsString;
            end;


          next;
        end;
      close;
      if ARow = 0 then
        RzStringGrid4.RowCount := 2
      else
        RzStringGrid4.RowCount := ARow + 1;

    end;

end;

procedure TFrm_ymjg.FormCreate(Sender: TObject);
begin
  with RzStringGrid4 do
    begin
      Cells[0, 0] := '抗生素';
      Cells[1, 0] := '耐药性';
      ColCount := 2;
      RowCount := 2;
      ColWidths[1] := 100;
      ColWidths[0] := width - 16 - ColWidths[1];
    end;

end;

procedure TFrm_ymjg.RzBitBtn6Click(Sender: TObject);
begin
  CLOSE;
end;

procedure TFrm_ymjg.RzBitBtn4Click(Sender: TObject);
var
  kss: string;
begin
  textCombox;
  kss := RzComboBox1.Text;
  if kss = '' then
    exit;

  dm.ADOConn.Execute('delete * from [药敏实验结果] where [住院号]=' + QuotedStr(pid) + ' and [明细序号]=' + id + ' and [药敏序号]=' + ymid + ' and [抗生素]=' + QuotedStr(kss));

  dm.ADOConn.Execute(format('insert into [药敏实验结果]([住院号],[明细序号],[药敏序号],[抗生素],[耐药性]) values(%s,%s,%s,%s,%s)',
    [QuotedStr(pid), id, ymid, QuotedStr(kss), QuotedStr(Trim(RzComboBox2.Text))]));
  browse(pid, id, ymid);
  localStringGrid(RzStringGrid4, kss);
//
end;

procedure TFrm_ymjg.textCombox;
var
  i, j: integer;
  str: string;
begin
  for i := 0 to Componentcount - 1 do
    if Components[i] is TRzComboBox then
      with TRzComboBox(Components[i]) do
        begin
          text := Trim(Text);
          str := text;
          j := pos('|', str);
          if j > 0 then
            text := copy(str, j + 1, MaxInt);
        end;
end;

procedure TFrm_ymjg.localStringGrid(sg: TRzStringGrid; v: string);
var
  i: integer;
begin
  for i := 1 to sg.RowCount - 1 do
    if sg.Cells[0, i] = v then
      begin
        sg.Row := i;
        exit;
      end;
end;

procedure TFrm_ymjg.RzStringGrid4SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  RzComboBox1.Text := RzStringGrid4.Cells[0, arow];
  RzComboBox2.Text := RzStringGrid4.Cells[1, arow];
end;

procedure TFrm_ymjg.RzBitBtn5Click(Sender: TObject);
var
  kss: string;
begin
  kss := RzStringGrid4.Cells[0, RzStringGrid4.row]; ;
  if kss = '' then
    exit;

  dm.ADOConn.Execute('delete * from [药敏实验结果] where [住院号]=' + QuotedStr(pid) + ' and [明细序号]=' + id + ' and [药敏序号]=' + ymid + ' and [抗生素]=' + QuotedStr(kss));
  browse(pid, id, ymid);
  RzComboBox1.Text := RzStringGrid4.Cells[0, RzStringGrid4.row];
  RzComboBox2.Text := RzStringGrid4.Cells[1, RzStringGrid4.row];


end;

end.

附件

  • 登记表:(感染病历登记表)( 录入)

A、

住院号:______ 姓名:_____ 性别:____ 年龄:___(岁、月、天)

入院日期:________ 出院日期:________ 住院天数:__________

出院诊断:1、______________________________________________(字典调用)

2、______________________________________________

3、______________________________________________

预后:1、治愈 2、好转 3、无变化 4、恶化 5、直接死亡 6、间接死亡 7、与死亡无关

B、

感染日期:___________ 感染部位:__(字典调用) 具体部位:(字典调用)

感染有关因素调查:__________________________________(字典调用)

病原学检查方法:1、镜检 2、培养 3、血清学检查

送检日期:_________________________________________

上报科室:________________(字典调用) 上报时间:_________________(精确到分秒)

上报人:_________________

C、

送检标本来源:________________________________(字典调用)

病原体名称:_________________________________(字典调用)

药敏实验结果:

抗生素(字典调用) 耐药性

备注:

根据登记表的内容,我建议分为三部分,三者的关系如下:A与B是一对多的关系,B与C是一对多的关系(B存在,C不一定存在,只有存在病原学检查方法才有C的存在)

附录:(字典数据)

感染部位:

1、呼吸系统感染:A、上呼吸道感染 B、下呼吸道感染 C、胸膜腔感染

2、心血管系统感染:

A、侵犯心脏瓣膜(包括人工心瓣膜)的心内膜炎

B、心肌炎或心包炎

3、血液系统 :A、血管相关性感染 B、败血症 C、输血相关感染

4、腹部和消化系统: A、感染性腹泻 B、胃肠道感染 C、抗菌药物相关性腹泻

D、病毒性肝炎 E、腹(盆)腔内组织感染 F、腹水感染

5、中枢神经系统:A、细菌性脑膜炎、脑室炎 B、颅内脓舯 C、椎管内感染

6、泌尿系统: A、泌尿器官

7、手术部位:A、表浅手术切口感染 B、深部手术切口感染 C、器官(或腔隙)感染

8、皮肤和软组织: A、皮肤感染 B、软组织感染 C、褥疮感染 D、烧伤感染

E、乳腺脓肿或乳腺炎 F、脐炎 G、婴儿脓疱病

9、骨关节: A、关节和关节囊感染 B、骨髓炎 C、椎间盘感染

10、生殖道: A、外阴切口感染 B、阴道穹隆部感染 C、急性盆腔炎

D、子宫内膜炎 E、男女性生殖道的其它感染

11、口腔:口腔组织

12、其他部位:除上其它器官或组织

病原体:(即微生物中细菌名称,例:变形杆菌、不动杆菌等)(可从微生物系统中倒入)

抗生素:(例:庆大霉素、头孢西丁等)(可从微生物系统中倒入)

科室:(例:消化内科、心内科等)

送检标本来源:(例:血液、痰、尿等)(可从微生物系统中倒入)

出院诊断:(见ICD10 信息)

ICD10编码 char(20)

ICD10名称 varchar(80)

  • 科室每月住院人数登记:( 录入)

月份:______年_____月

|-------------|----------|
| | 住院人数 |
| 心内科 | |
| 普外一 | |
| 普外二 | |
| 呼吸内科 | |
| 消化内科 | |
| | |
| | |

  • 报表:
    1. 每月各科室医院感染发病率

统计月份:2005年6月

|--------|----------|-----------|----------|
| 科室 | 住院人数 | 感染病人数 | 感染率% |
| 心内科 | | | |
| 普外一 | | | |
| 普外二 | | | |
| 呼吸内科 | | | |
| 消化内科 | | | |
| | | | |
| | | | |

    1. 每月住院病人手术切口感染率

(数据来自感染部分为手术部位的病人)

统计月份:2005年6月

|--------|----------|---------------|----------|
| 科室 | 住院人数 | 手术病人切口感染数 | 感染率% |
| 心内科 | | | |
| 普外一 | | | |
| 普外二 | | | |
| 呼吸内科 | | | |
| 消化内科 | | | |
| | | | |
| | | | |

    1. 每月感染部分发病率

统计月份:2005年6月

|-------|------|------|-------|------|---------|--------|------|------|--------|-----|-----|----|------|
| 感染部分 科室 || 呼吸系统 | 心血管系统 | 血液系统 | 腹部和消化系统 | 中枢神经系统 | 泌尿系统 | 手术部位 | 皮肤和软组织 | 骨关节 | 生殖道 | 口腔 | 其他部位 |
| 心 内 科 | 住院人数 | | | | | | | | | | | | |
| 心 内 科 | 感染人数 | | | | | | | | | | | | |
| 心 内 科 | 感染率% | | | | | | | | | | | | |
| 普外一 | 住院人数 | | | | | | | | | | | | |
| 普外一 | 感染人数 | | | | | | | | | | | | |
| 普外一 | 感染率% | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |

    1. 抗菌药物敏感性检测汇总表

医院编号:__________ 检测月份:2005年6月 上报日期:2005年7月1日

|---------|-------|----|---|---|---|---|
| 病原体 | 菌株合计) | 血液 | 痰 | 尿 | | |
| 金黄色葡萄球菌 | | | | | | |
| 表皮葡萄球菌 | | | | | | |
| 不动杆菌属 | | | | | | |
| | | | | | | |

    1. 医院感染常见细菌对抗生素耐药率(%)

统计月份:2005年6月

|---------------|----------|----------|----------|-----------|---|
| 药物 细菌 | 庆大霉素 | 头孢西丁 | 替卡西林 | 氨苄青霉素 | |
| 金黄色葡萄球菌 | 72.2 | 87.3 | 46.8 | 61.2 | |
| 表皮葡萄球菌 | 50 | 0 | 0 | 35.7 | |
| 不动杆菌属 | | | | | |
| | | | | | |

    1. 某一疾病(ICD10)在每月感染率

统计月份:2005年6月 统计疾病:肾综合征出血热

|------|--------|------|------|------|
| || 住院人数 | 感染人数 | 感染率% |
| 呼吸系统 | 上呼吸道感染 | | | |
| 呼吸系统 | 下呼吸道感染 | | | |
| 呼吸系统 | 胸膜腔感染 | | | |
| | | | | |
| | | | | |
| | | | | |

相关推荐
咖猫1 小时前
Guava 提供了集合操作 `List`、`Set` 和 `Map` 三个工具类
windows·list·guava
染指11104 小时前
49.第二阶段x86游戏实战2-鼠标点击call深追二叉树
汇编·c++·windows·游戏安全·反游戏外挂·游戏逆向
hurrycry_小亦5 小时前
(Windows系统)详细介绍Windows系统 含有英文版
windows
网硕互联的小客服6 小时前
如何排查服务器是否有被黑客入侵的迹象?
linux·运维·服务器·windows
阿尔卑斯下的泰戈尔6 小时前
在 Windows 上添加 github SSH 密钥
windows·ssh·github
破局缘6 小时前
apt文件问题ruby.list文件
开发语言·windows·ruby
工业3D_大熊10 小时前
3D可视化引擎HOOPS Visualize与HOOPS Luminate Bridge的功能与应用
linux·前端·c++·windows·macos·3d·c#
工业3D_大熊10 小时前
3D开发工具HOOPS对B-Rep的支持:提升3D建模与可视化的精度与效率
linux·c++·windows·macos·3d·c#·制造
风_流沙11 小时前
java list 和数组互相转换的一些方法
java·windows·list