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

📄 patientlist.~pas

📁 某疗养院动脉硬化管理系统
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
  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 + -