📄 patientlist.~pas
字号:
IniFile:=TIniFile.Create(ExtractFilePath(paramstr(0))+'OracleSet.ini');
try
with IniFile do
begin
DBView:=ReadString('View','View','REDH.HVS_DMYHPATINFO');
RoomCode:=ReadString('Room','Room','301002');
end;
finally
IniFile.Free;
end;
//天数设置
IniFile:=TIniFile.Create(ExtractFilePath(paramstr(0))+'TimeSet.ini');
try
with IniFile do
begin
ReportDay:=ReadString('ReportDay','ReportDay','1');
CompleteDay:=ReadString('CompleteDay','Complete','1');
end;
finally
IniFile.Free;
end;
//路径配置
IniFile:=TIniFile.Create(ExtractFilePath(paramstr(0))+'Config.ini');
try
with IniFile do
begin
PDFPath:=ReadString('SourcePDFPath','SourcePDFPath','C:\CompliorPDF');
BakPath:=ReadString('BackupPDFPath','BackupPDFPath','C:\BackPDF');
end;
finally
IniFile.Free;
end;
ExamPDF;
Left:=(Screen.Width-Width)div 2;
Top:=(Screen.Height-Height)div 2;
end;
procedure TFrmPatientList.ScanFile(AStrings:TStrings;ASourFile:string);
var sour_path,sour_file:string;
TmpList:TStringList;
FileRec:TSearchrec;
begin
sour_path:=ExtractFilePath(ASourFile);
sour_file:=ExtractFileName(ASourFile);
//判断文件夹是否存在
if not DirectoryExists(sour_path) then
begin
AStrings.Clear;
exit;
end;
//创建StringList
TmpList:=TStringList.Create;
TmpList.Clear;
//查找文件
if FindFirst(sour_path+sour_file,faAnyfile,FileRec)=0 then
repeat
if((FileRec.Attr and faDirectory)=0)then
begin
TmpList.Add(sour_path+FileRec.Name)
end;
until FindNext(FileRec)<>0;
//关闭Rec
SysUtils.FindClose(FileRec);
AStrings.Assign(TmpList);
TmpList.Free;
end;
//书写诊断报告
procedure TFrmPatientList.BitBtn1Click(Sender: TObject);
begin
if PatientDM.ADQUnWrite.IsEmpty then
exit;
No:=PatientDM.ADQUnWrite.FieldByName('ID').AsString;
PicPath:=PatientDM.ADQUnWrite.FieldByName('FileName').AsString;
CR_V:='(C-R)上肢脉搏波速度:'+EdtCR.Text;
CF_V:='(C-F)主动脉脉搏波速度:'+EdtCF.Text;
CD_V:='(C-D)下肢脉搏波速度:'+EdtCD.Text;
PatientID:=Edit14.Text;
PatientName:=Edit15.Text;
ReportSender:='未完成';
TFrmPatientResult.Create(application).ShowModal;
//刷新
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=0 AND '+''''+FormatDateTime('yyyy-mm-dd',now())+''''+'-CreateDate<'+ReportDay,'ID');
end;
procedure TFrmPatientList.FormShow(Sender: TObject);
begin
EdtID.SetFocus;
ShowRecord(PatientDM.ADQView,'*',DBView,'CURENO');
//尚未书写诊断报告
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=0 AND '+''''+FormatDateTime('yyyy-mm-dd',now())+''''+'-CreateDate<'+ReportDay,'ID');
//最近完成
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=1 AND '+''''+FormatDateTime('yyyy-mm-dd',now())+''''+'-CreateDate<'+CompleteDay,'ID');
end;
procedure TFrmPatientList.BitBtn5Click(Sender: TObject);
begin
if PatientDM.ADQView.IsEmpty then
begin
application.MessageBox('现在没有病人!','提示',mb_ok+mb_iconinformation);
exit;
end;
PatientID:=PatientDM.ADQView.FieldByName('CURENO').AsString;
if not (FeeInput(PChar(PatientID),PChar(UserID),StrToInt(RoomCode))) then
begin
application.MessageBox('收费失败!请重新确认收费。','警告',mb_ok+mb_iconwarning);
exit;
end;
//刷新
ShowRecord(PatientDM.ADQView,'*',DBView,'CURENO');
end;
procedure TFrmPatientList.BitBtn2Click(Sender: TObject);
begin
ExamPDF;
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=0 AND '+''''+FormatDateTime('yyyy-mm-dd',now())+''''+'-CreateDate<'+ReportDay,'ID');
end;
procedure TFrmPatientList.dsViewDataChange(Sender: TObject; Field: TField);
begin
EdtNO.Text:=PatientDM.ADQView.FieldByName('SERIALNO').AsString;
Edit1.Text:=PatientDM.ADQView.FieldByName('INHOSPNO').AsString;
Edit2.Text:=PatientDM.ADQView.FieldByName('NAME').AsString;
Edit3.Text:=PatientDM.ADQView.FieldByName('SEX').AsString;
Edit4.Text:=PatientDM.ADQView.FieldByName('GROUPNO').AsString;
Edit5.Text:=PatientDM.ADQView.FieldByName('IDCARD').AsString;
Edit6.Text:=PatientDM.ADQView.FieldByName('BEDNO').AsString;
Edit7.Text:=PatientDM.ADQView.FieldByName('BIRTHDAY').AsString;
Edit8.Text:=PatientDM.ADQView.FieldByName('TELPHONE').AsString;
Edit9.Text:=PatientDM.ADQView.FieldByName('EXECUTEDATE').AsString;
Edit10.Text:=PatientDM.ADQView.FieldByName('DEPTCODE').AsString;
Edit11.Text:=PatientDM.ADQView.FieldByName('DEPTNAME').AsString;
Edit12.Text:=PatientDM.ADQView.FieldByName('COMPANYNAME').AsString;
end;
procedure TFrmPatientList.BitBtn3Click(Sender: TObject);
begin
PatientDM.ADQView.First;
end;
procedure TFrmPatientList.BitBtn7Click(Sender: TObject);
begin
PatientDM.ADQView.Prior;
end;
procedure TFrmPatientList.BitBtn8Click(Sender: TObject);
begin
PatientDM.ADQView.Next;
end;
procedure TFrmPatientList.BitBtn9Click(Sender: TObject);
begin
PatientDM.ADQView.Last;
end;
procedure TFrmPatientList.BitBtn10Click(Sender: TObject);
begin
PatientDM.ADQUnWrite.First;
end;
procedure TFrmPatientList.BitBtn11Click(Sender: TObject);
begin
PatientDM.ADQUnWrite.Prior;
end;
procedure TFrmPatientList.BitBtn12Click(Sender: TObject);
begin
PatientDM.ADQUnWrite.Next;
end;
procedure TFrmPatientList.BitBtn13Click(Sender: TObject);
begin
PatientDM.ADQUnWrite.Last;
end;
procedure TFrmPatientList.dsUnWriteDataChange(Sender: TObject;
Field: TField);
begin
Edit14.Text:=PatientDM.ADQUnWrite.FieldByName('PatientID').AsString;
Edit15.Text:=PatientDM.ADQUnWrite.FieldByName('PatientName').AsString;
Edit16.Text:=PatientDM.ADQUnWrite.FieldByName('Gender').AsString;
Edit20.Text:=PatientDM.ADQUnWrite.FieldByName('DateOfBirth').AsString;
EdtCR.Text:=PatientDM.ADQUnWrite.FieldByName('R_CR_PWV').AsString;
EdtCF.Text:=PatientDM.ADQUnWrite.FieldByName('R_CF_PWV').AsString;
EdtCD.Text:=PatientDM.ADQUnWrite.FieldByName('R_CD_PWV').AsString;
EdtHeart.Text:=PatientDM.ADQUnWrite.FieldByName('HeartRate').AsString;
EdtCentralBP.Text:=PatientDM.ADQUnWrite.FieldByName('EstCenteralPulsedBP').AsString;
end;
procedure TFrmPatientList.BitBtn14Click(Sender: TObject);
begin
close;
end;
procedure TFrmPatientList.EdtIDChange(Sender: TObject);
begin
ShowRecord(PatientDM.ADQView,'*',DBView+' WHERE INHOSPNO='+''''+Copy(EdtID.Text,1,10)+'''','CURENO');
if EdtID.Text='' then
ShowRecord(PatientDM.ADQView,'*',DBView,'CURENO');
end;
procedure TFrmPatientList.BitBtn16Click(Sender: TObject);
begin
if r6.Checked then
ShowRecord(PatientDM.ADQComplete,'*','CompliorResult Where Status=0 AND PatientID='+''''+EditID.Text+'''','ID');
if r5.Checked then
ShowRecord(PatientDM.ADQComplete,'*','CompliorResult Where Status=0 AND PatientID like '+''''+'%'+EditID.Text+'%'+'''','ID');
end;
procedure TFrmPatientList.BitBtn17Click(Sender: TObject);
var tmp:tadoquery;
begin
tmp:=tadoquery.Create(nil);
tmp.Connection :=DM.ADOCn;
DM.ADOCn.BeginTrans;
try
with tmp do
begin
sql.Clear;
sql.Add('INSERT INTO ExamReport (PatientID,PatientName,PicDesc,ExamDesc,Advice)');
sql.Add(' VALUES (:v1,:v2,:v3,:v4,:v5)');
Parameters.ParamByName('v1').Value :=Edit14.Text;
Parameters.ParamByName('v2').Value :=Edit15.Text;
Parameters.ParamByName('v3').Value :=Desc;
Parameters.ParamByName('v4').Value :=Conclusion;
Parameters.ParamByName('v5').Value :=Advice;
ExecSql;
end;
DM.ADOCn.CommitTrans;
except
DM.ADOCn.RollbackTrans;
raise;
application.MessageBox('保存失败!','警告',mb_ok+mb_iconinformation);
end;
if not SaveReport(PChar(PatientID),PChar(DEP),PChar(UserID),PChar(UserName),now(),PChar(UserID),PChar(UserName),now(),PChar(Desc),PChar(Advice),PChar(Conclusion),PChar(Yangxing),PChar(DiagNoseCode),IsHealthy) then
application.MessageBox('数据保存至HIS数据库成功!','提示',mb_ok+mb_iconinformation)
else
application.MessageBox('数据保存至HIS数据库失败!','警告',mb_ok+mb_iconwarning);
end;
procedure TFrmPatientList.WriteDB;
begin
DM.ADOCn.BeginTrans;
try
with adoquery1 do
begin
sql.Clear;
sql.Add('INSERT INTO CompliorResult (PatientID,PatientName,Gender,DateOfBirth,SysBP,DiaBP,PulsedBP,R_CR_PWV,R_CF_PWV,R_CD_PWV,HeartRate,EstCenteralPulsedBP,FileName)');
sql.Add(' VALUES (:v1,:v2,:v3,:v4,:v5,:v6,:v7,:v8,:v9,:v10,:v11,:v12,:v13)');
parameters.ParamByName('v1').Value :=PatientID;
parameters.ParamByName('v2').Value :=FirstName+LastName;
parameters.ParamByName('v3').Value :=Sex;
parameters.ParamByName('v4').Value :=BornDate;
parameters.ParamByName('v5').Value :=SysBP;
parameters.ParamByName('v6').Value :=DiaBP;
parameters.ParamByName('v7').Value :=PulsedBP;
parameters.ParamByName('v8').Value :=CR_PWV;
parameters.ParamByName('v9').Value :=CF_PWV;
parameters.ParamByName('v10').Value :=CD_PWV;
parameters.ParamByName('v11').Value :=HeartRate;
parameters.ParamByName('v12').Value :=EstCenteralPulsedBP;
parameters.ParamByName('v13').Value :=FileName;
ExecSql;
end; //with
DM.ADOCn.CommitTrans;
except
DM.ADOCn.RollbackTrans;
Application.MessageBox('写入本地数据库失败,请重试!','提示',mb_ok+mb_iconinformation);
end;
end;
procedure TFrmPatientList.cxGridDBTableView4DblClick(Sender: TObject);
begin
if PatientDM.ADQComplete.IsEmpty then
exit;
PicPath:=PatientDM.ADQComplete.FieldByName('FileName').AsString;
PatientID:=PatientDM.ADQComplete.FieldByName('PatientID').AsString;
PatientName:=PatientDM.ADQComplete.FieldByName('PatientName').AsString;
ReportSender:='已完成';
TFrmPatientResult.Create(application).ShowModal;
//刷新
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=0 AND '+''''+FormatDateTime('yyyy-mm-dd',now())+''''+'-CreateDate<'+CompleteDay,'ID');
end;
procedure TFrmPatientList.BitBtn18Click(Sender: TObject);
begin
if r8.Checked then
ShowRecord(PatientDM.ADQComplete,'*','CompliorResult Where Status=1 AND PatientID='+''''+EditName.Text+'''','ID');
if r7.Checked then
ShowRecord(PatientDM.ADQComplete,'*','CompliorResult Where Status=1 AND PatientID like '+''''+'%'+EditName.Text+'%'+'''','ID');
end;
procedure TFrmPatientList.BitBtn19Click(Sender: TObject);
begin
with PatientDM.ADQComplete do
begin
sql.Clear;
sql.Add('SELECT * FROM CompliorResult Where Status=1 WHERE CreateDate>'+''''+FormatDateTime('yyyy-mm-dd',D1.DateTime)+''''+' AND CreateDate<'+''''+FormatDateTime('yyyy-mm-dd',D2.DateTime)+'''');
//ShowMessage(sql.Text);
open;
end;
end;
procedure TFrmPatientList.BitBtn20Click(Sender: TObject);
begin
ShowRecord(PatientDM.ADQComplete,'*','CompliorResult Where Status=1 AND '+''''+FormatDateTime('yyyy-mm-dd',now())+''''+'-CreateDate<'+CompleteDay,'ID');
end;
procedure TFrmPatientList.BitBtn21Click(Sender: TObject);
begin
close;
end;
procedure TFrmPatientList.BitBtn22Click(Sender: TObject);
begin
if r2.Checked then
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=0 AND PatientID='+''''+Edit17.Text+'''','ID');
if r1.Checked then
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=0 AND PatientID like '+''''+'%'+Edit17.Text+'%'+'''','ID');
end;
procedure TFrmPatientList.BitBtn23Click(Sender: TObject);
begin
if r4.Checked then
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=1 AND PatientID='+''''+Edit18.Text+'''','ID');
if r3.Checked then
ShowRecord(PatientDM.ADQUnWrite,'*','CompliorResult Where Status=1 AND PatientID like '+''''+'%'+Edit18.Text+'%'+'''','ID');
end;
procedure TFrmPatientList.EdtIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_Return then
EdtID.Text:=Copy(EdtID.Text,1,10);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -