⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 patientlist.~pas

📁 某疗养院动脉硬化管理系统
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
//时间设置尚未事项
unit PatientList;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzTabs, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter,
  cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses,
  cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxGrid, StdCtrls, Buttons, ImgList, Menus, IniFiles,
  ADODB, ComCtrls;

type
  TFrmPatientList = class(TForm)
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    cxGrid2: TcxGrid;
    cxGridDBTableView1: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    TabSheet3: TRzTabSheet;
    Panel1: TPanel;
    cxGrid3: TcxGrid;
    cxGridDBTableView2: TcxGridDBTableView;
    cxGridLevel2: TcxGridLevel;
    Splitter1: TSplitter;
    Panel2: TPanel;
    Panel4: TPanel;
    BitBtn4: TBitBtn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ImageList1: TImageList;
    cxGridDBTableView1PatientID: TcxGridDBColumn;
    cxGridDBTableView1PatientName: TcxGridDBColumn;
    cxGridDBTableView1Gender: TcxGridDBColumn;
    cxGridDBTableView1DateOfBirth: TcxGridDBColumn;
    cxGridDBTableView1SysBP: TcxGridDBColumn;
    cxGridDBTableView1DiaBP: TcxGridDBColumn;
    cxGridDBTableView1PulsedBP: TcxGridDBColumn;
    cxGridDBTableView1R_CR_PWV: TcxGridDBColumn;
    cxGridDBTableView1R_CF_PWV: TcxGridDBColumn;
    cxGridDBTableView1R_CD_PWV: TcxGridDBColumn;
    cxGridDBTableView1HeartRate: TcxGridDBColumn;
    cxGridDBTableView1EstCenteralPulsedBP: TcxGridDBColumn;
    BitBtn5: TBitBtn;
    cxGridDBTableView2INHOSPNO: TcxGridDBColumn;
    cxGridDBTableView2NAME: TcxGridDBColumn;
    cxGridDBTableView2SEX: TcxGridDBColumn;
    cxGridDBTableView2IDCARD: TcxGridDBColumn;
    cxGridDBTableView2BIRTHDAY: TcxGridDBColumn;
    cxGridDBTableView2TELPHONE: TcxGridDBColumn;
    cxGridDBTableView2BEDNO: TcxGridDBColumn;
    cxGridDBTableView2GROUPNO: TcxGridDBColumn;
    cxGridDBTableView2SERIALNO: TcxGridDBColumn;
    cxGridDBTableView2ITEMCODE: TcxGridDBColumn;
    cxGridDBTableView2ITEMNAME: TcxGridDBColumn;
    cxGridDBTableView2EXECUTEDATE: TcxGridDBColumn;
    cxGridDBTableView2DEPTCODE: TcxGridDBColumn;
    cxGridDBTableView2DEPTNAME: TcxGridDBColumn;
    cxGridDBTableView2COMPANYNAME: TcxGridDBColumn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    EdtNO: TEdit;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit3: TEdit;
    Label5: TLabel;
    Edit4: TEdit;
    Label6: TLabel;
    Edit5: TEdit;
    Label7: TLabel;
    Edit6: TEdit;
    Label8: TLabel;
    Edit7: TEdit;
    Label9: TLabel;
    Edit8: TEdit;
    Label10: TLabel;
    Edit9: TEdit;
    Label11: TLabel;
    Edit10: TEdit;
    Label12: TLabel;
    Edit11: TEdit;
    Label13: TLabel;
    Edit12: TEdit;
    dsView: TDataSource;
    dsUnWrite: TDataSource;
    cxGrid1: TcxGrid;
    cxGridDBTableView3: TcxGridDBTableView;
    cxGridLevel3: TcxGridLevel;
    Panel5: TPanel;
    BitBtn6: TBitBtn;
    BitBtn1: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    Edit16: TEdit;
    Label21: TLabel;
    Edit20: TEdit;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    EdtCF: TEdit;
    EdtCD: TEdit;
    EdtCR: TEdit;
    EdtHeart: TEdit;
    EdtCentralBP: TEdit;
    BitBtn10: TBitBtn;
    BitBtn11: TBitBtn;
    BitBtn12: TBitBtn;
    BitBtn13: TBitBtn;
    cxGridDBTableView3PatientID: TcxGridDBColumn;
    cxGridDBTableView3PatientName: TcxGridDBColumn;
    cxGridDBTableView3Gender: TcxGridDBColumn;
    cxGridDBTableView3DateOfBirth: TcxGridDBColumn;
    cxGridDBTableView3SysBP: TcxGridDBColumn;
    cxGridDBTableView3DiaBP: TcxGridDBColumn;
    cxGridDBTableView3PulsedBP: TcxGridDBColumn;
    cxGridDBTableView3R_CR_PWV: TcxGridDBColumn;
    cxGridDBTableView3R_CF_PWV: TcxGridDBColumn;
    cxGridDBTableView3R_CD_PWV: TcxGridDBColumn;
    cxGridDBTableView3HeartRate: TcxGridDBColumn;
    cxGridDBTableView3EstCenteralPulsedBP: TcxGridDBColumn;
    BitBtn14: TBitBtn;
    BitBtn15: TBitBtn;
    Label18: TLabel;
    EdtID: TEdit;
    SpeedButton1: TSpeedButton;
    TabSheet4: TRzTabSheet;
    dsComplete: TDataSource;
    BitBtn17: TBitBtn;
    cxGridDBTableView3DBColumn1: TcxGridDBColumn;
    LstPDF: TListBox;
    Memo1: TMemo;
    ADOQuery1: TADOQuery;
    Panel3: TPanel;
    cxGrid4: TcxGrid;
    cxGridDBTableView4: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridDBColumn11: TcxGridDBColumn;
    cxGridDBColumn12: TcxGridDBColumn;
    cxGridDBTableView4DBColumn1: TcxGridDBColumn;
    cxGridLevel4: TcxGridLevel;
    GroupBox1: TGroupBox;
    Label19: TLabel;
    GroupBox2: TGroupBox;
    Label20: TLabel;
    GroupBox3: TGroupBox;
    Label27: TLabel;
    D1: TDateTimePicker;
    Label28: TLabel;
    D2: TDateTimePicker;
    BitBtn16: TBitBtn;
    BitBtn18: TBitBtn;
    BitBtn19: TBitBtn;
    EditID: TEdit;
    EditName: TEdit;
    BitBtn20: TBitBtn;
    BitBtn21: TBitBtn;
    GroupBox4: TGroupBox;
    Label29: TLabel;
    Edit17: TEdit;
    BitBtn22: TBitBtn;
    GroupBox5: TGroupBox;
    Label30: TLabel;
    Edit18: TEdit;
    BitBtn23: TBitBtn;
    r1: TRadioButton;
    r2: TRadioButton;
    r3: TRadioButton;
    r4: TRadioButton;
    r7: TRadioButton;
    r8: TRadioButton;
    r5: TRadioButton;
    r6: TRadioButton;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure dsViewDataChange(Sender: TObject; Field: TField);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn10Click(Sender: TObject);
    procedure BitBtn11Click(Sender: TObject);
    procedure BitBtn12Click(Sender: TObject);
    procedure BitBtn13Click(Sender: TObject);
    procedure dsUnWriteDataChange(Sender: TObject; Field: TField);
    procedure BitBtn14Click(Sender: TObject);
    procedure EdtIDChange(Sender: TObject);
    procedure BitBtn16Click(Sender: TObject);
    procedure BitBtn17Click(Sender: TObject);
    procedure cxGridDBTableView4DblClick(Sender: TObject);
    procedure BitBtn18Click(Sender: TObject);
    procedure BitBtn19Click(Sender: TObject);
    procedure BitBtn20Click(Sender: TObject);
    procedure BitBtn21Click(Sender: TObject);
    procedure BitBtn22Click(Sender: TObject);
    procedure BitBtn23Click(Sender: TObject);
    procedure EdtIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    DBView:string;
    //尚未书写,最近完成,PDFPath,BakPath
    ReportDay,CompleteDay,PDFPath,BakPath,PDFFile:string;
    PulsedBP,FileName,ID,LastName,Sex,FirstName,BornDate,SysBP,DiaBP,CR,CR_PWV,CF,CF_PWV,CD,CD_PWV,HeartRate,EstCenteralPulsedBP:string;
    //解析PDF
    procedure ExamPDF;
    procedure ScanFile(AStrings:TStrings;ASourFile:string);
    procedure WriteDB;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmPatientList: TFrmPatientList;

implementation

uses DataModule, PubFunction, ExamResult, PatientDataM, CheckItem,
  PatientResult;

{$R *.dfm}

//分离字符串
function SplitText(Memo:TMemo;Text1,Text2:string):string;
var str:string;
    strpos1,strpos2:integer;
begin
  //Memo.Lines.LoadFromFile(FileName);
  str:=Trim(Memo.Lines.Text);
  //ShowMessage(str);
  Memo.Lines.Text :=Trim(str);
  strpos1:=pos(Text1,str);
  //ShowMessage(IntToStr(strpos1));
  Delete(str,1,strpos1-1+Length(Text1));
  Memo.Lines.Text :=str;
  str:=Trim(str);
  //ShowMessage(str);
  strpos2:=pos(Text2,str);
  //ShowMessage(IntToStr(strpos2));
  Result:=Trim(Copy(str,1,strpos2-1));
end;
//分离PWV
function SplitPWV(Memo:TMemo;Text1,Text2:string):string;
var PWV:string;
begin
  PWV:='';
  PWV:=SplitText(Memo,Text1,Text2);
  Result:=PWV;
end;

procedure TFrmPatientList.ExamPDF;
var StrPos,i:integer;
    sUserPassword,sOwnerPassword,sFileName:string;
    lHandle:LongInt;
begin
  //扫描PDF
  ScanFile(LstPDF.Items,PDFPath+'\*.pdf');
  for i:=0 to LstPDF.Items.Count-1 do
  begin
    //移动文件
    FileName:=BakPath+'\'+GenFileID+'.PDF';
    MoveFile(PChar(LstPDF.Items.Strings[i]),PChar(FileName));
    //转化文件
    pdfOpenPDF(PChar(FileName),True,PChar(sUserPassword),PChar(sOwnerPassword),lHandle);
    pdfConvertPDFToTextFile(1,1,lHandle,PChar(FileName+'.txt'));
    pdfClose(lHandle);
    //解析文件*****************************************************
    Memo1.Lines.LoadFromFile(FileName+'.txt');
    LastName:=Trim(SplitText(Memo1,'Last name:','Gender:'));
    Sex:=Trim(SplitText(Memo1,'Gender:','Weight:'));
    FirstName:=' '+Trim(SplitText(Memo1,'First name:','Date of Birth:'));
    BornDate:=Trim(SplitText(Memo1,'Date of Birth:','Height:'));
    ID:=Trim(SplitText(Memo1,'ID:','BMI:'));
    PatientID:=ID;
    SysBP:=Trim(SplitText(Memo1,'Sys BP / Dia BP','/'));
    DiaBP:=Trim(SplitText(Memo1,'/','(mmHg)'));
    PulsedBP:=Trim(SplitText(Memo1,'Pulsed BP:','(mmHg)'));
    //CR
    CR:=SplitPWV(Memo1,'Carotid-radial (C-R)','bpm');
    StrPos:=Pos(' ',CR);
    Delete(CR,1,StrPos-1);
    CR:=Trim(CR);
    StrPos:=Pos(' ',Trim(CR));
    CR_PWV:=Copy(CR,1,StrPos-1);
    //HeartRate
    HeartRate:=Trim(Copy(CR,StrPos,Length(CR)));
    //CF
    CF:=SplitPWV(Memo1,'Carotid-femoral (C-F)','Est. central pulsed BP:');
    StrPos:=Pos(' ',CF);
    Delete(CF,1,StrPos-1);
    CF_PWV:=Trim(CF);
    //CD
    CD:=SplitPWV(Memo1,'Carotid-distal (C-D)','(mmHg)');
    StrPos:=Pos(' ',CD);
    Delete(CD,1,StrPos-1);
    CD:=Trim(CD);
    StrPos:=Pos(' ',Trim(CD));
    CD_PWV:=Copy(CD,1,StrPos-1);
    //EstCenteralPulsedBP
    Delete(CD,1,StrPos-1);
    EstCenteralPulsedBP:=Trim(CD);
    //写入数据库
    WriteDB;
  end;
end;

procedure TFrmPatientList.FormCreate(Sender: TObject);
var IniFile:TIniFile;
begin
  //Oracle设置

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -