📄 patientlist.~pas
字号:
//时间设置尚未事项
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 + -