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

📄 ufrmcellmarrow.pas

📁 一个简单得医院图像管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
end;

procedure TfrmCellMarrowMain.SelectPicture;
begin
  FPicture.SelectTestResultByPatientID(FPatient.PatientID);
end;

procedure TfrmCellMarrowMain.SetInitPath;
var
  InitPath:TIniFile;
begin
  InitPath:=TIniFile.Create('.\startpath.ini');
  frmSetPictureInputPath:=TfrmSetPictureInputPath.Create(nil);
try
  frmSetPictureInputPath.ShowModal;
  if frmSetPictureInputPath.ReturnPath.Succeed then
  begin
    InitPath.WriteString('startpath','CellMarrow',frmSetPictureInputPath.ReturnPath.Path);
  end;
finally
  InitPath.Free;
  frmSetPictureInputPath.Free;
end;
end;


procedure TfrmCellMarrowMain.SetPicturePrinted;
begin
  FPicture.SetPicturePrinted;
  pnlPrintedInf.Caption:=FPicture.GetPrintedPicture;
end;

procedure TfrmCellMarrowMain.SetPictureUnprinted;
begin
  FPicture.SetPictureUnprinted;
  pnlPrintedInf.Caption:=FPicture.GetPrintedPicture;
end;

procedure TfrmCellMarrowMain.WriteReport;
begin
  with FPatient do
  begin
    if (Query.Active=False)and(Query.RecordCount<1)then Exit;
    Query.FieldByName('OutOrIn').ASString:=cboOutOrIn.Text;
    Query.FieldByName('PatientCode').ASString:=edtCaseCode.Text;
    Query.FieldByName('PatientName').ASString:=edtName.Text;
    Query.FieldByName('sex').ASString:=cboSex.Text;
    Query.FieldByName('Birthday').ASString:=edtBirthdayCount.Text;
    Query.FieldByName('BirthdayUnit').ASString:=cboBirthdayUnit.Text;
    Query.FieldByName('Department').ASString:=cboDepartment.Text;
    Query.FieldByName('SickSection').ASString:=cboSicknessSection.Text;
    Query.FieldByName('BedCode').ASString:=edtSicknessBed.Text;
    Query.FieldByName('Diagnositic').ASString:=cboDiagnosis.Text;
    Query.FieldByName('TestNumber').ASString:=edtTestNo.Text;

    Query.FieldByName('SampleSource').ASString:=cboSampleSource.Text;

    Query.FieldByName('SendDoctor').ASString:=cboSendDoctor.Text;
    Query.FieldByName('TestDoctor').ASString:=cboTestDoctor.Text;
    Query.FieldByName('TestDate').AsDateTime:=DateOf(dtpTestDate.Date);
    Query.FieldByName('SendDate').AsDateTime:=DateOf(dtpSendDate.Date);
    Query.FieldByName('ReportDate').AsDateTime:=DateOf(dtpReportDate.Date);
    Query.FieldByName('ReportMemo').ASString:=memReport.Text;

    Query.FieldByName('Advice').ASString:=memAdvice.Text;
    Query.FieldByName('TestResult').ASString:=memTestResult.Text;
  end;
end;

procedure TfrmCellMarrowMain.FormCreate(Sender: TObject);
begin
  FBlank:=False;
  FPatient:=TCellMarrowPatient.Create;
  FPicture:=TCellMarrowPicture.Create;

  FAdvice:=TCellAdviceTemplet.create;
  FTestResult:=TCellTestResult.Create;

  //加载数据
  LoadTodayData;

  //字典
  FTestDoctor:=TDictionary.Create('TAB_M_TEST_DOCTOR');
  FSicknessSection:=TDictionary.Create('TAB_M_SICKNESS_SECTION');
  FDiagnostic:=TDictionary.Create('TAB_M_DIAGNOSIS');
  FDepartment:=TDictionary.Create('TAB_M_DEPARTMENT');
  FSendDoctor:=tdictionary.Create('TAB_M_SEND_DOCTOR');

  //加载字典
  LoadDictionaryToCombox;

  //显示报告
  ReadReport;

  //绑定 数据源
  BindDataSource;

end;

procedure TfrmCellMarrowMain.FormDestroy(Sender: TObject);
begin
  FPatient.Free;
  FPicture.Free;

  FAdvice:=TCellAdviceTemplet.create;
  FTestResult:=TCellTestResult.Create;

  //以下为字典对象
  FTestDoctor.Free;
  FSicknessSection.Free;
  FDiagnostic.Free;
  FDepartment.Free;
  FSendDoctor.Free;

 // FTemplet.Free;
end;

procedure TfrmCellMarrowMain.ToolButton2Click(Sender: TObject);
begin
  if (FBlank=False)and(pgcPatient.ActivePageIndex=1) then
  begin
    InitialReport;
    edtCaseCode.SetFocus;
    FBlank:=True;
    Exit;
  end;

  if pgcPatient.ActivePageIndex=0 then
  begin
   InitialReport;
  end;

  AddReport;
end;

procedure TfrmCellMarrowMain.ToolButton3Click(Sender: TObject);
begin
  DeleteReport;
end;

procedure TfrmCellMarrowMain.ToolButton1Click(Sender: TObject);
begin
  SaveReport;
end;

procedure TfrmCellMarrowMain.ToolButton4Click(Sender: TObject);
begin
  MoveFirst;
end;

procedure TfrmCellMarrowMain.ToolButton5Click(Sender: TObject);
begin
  MovePriview;
end;

procedure TfrmCellMarrowMain.ToolButton6Click(Sender: TObject);
begin
  MoveNext;
end;

procedure TfrmCellMarrowMain.ToolButton7Click(Sender: TObject);
begin
  MoveLast;
end;

procedure TfrmCellMarrowMain.ToolButton13Click(Sender: TObject);
begin
  LoadTodayData;
  ReadReport;
end;

procedure TfrmCellMarrowMain.ToolButton17Click(Sender: TObject);
begin
  AddPicture;
end;

procedure TfrmCellMarrowMain.ToolButton18Click(Sender: TObject);
begin
  DeletePicture;
end;

procedure TfrmCellMarrowMain.ToolButton19Click(Sender: TObject);
begin
  SetPicturePrinted;
end;

procedure TfrmCellMarrowMain.ToolButton20Click(Sender: TObject);
begin
  SetPictureUnprinted;
end;

procedure TfrmCellMarrowMain.ToolButton21Click(Sender: TObject);
begin
  SetInitPath;
end;

procedure TfrmCellMarrowMain.cboDepartmentExit(Sender: TObject);
begin
  LookUpByName(cboDepartment,FDepartment);
end;

procedure TfrmCellMarrowMain.cboSicknessSectionExit(Sender: TObject);
begin
   LookUpByName(cboSicknessSection,FSicknessSection);
end;

procedure TfrmCellMarrowMain.cboDiagnosisExit(Sender: TObject);
begin
  LookUpByName(cboDiagnosis,FDiagnostic);
end;

procedure TfrmCellMarrowMain.cboTestDoctorExit(Sender: TObject);
begin
  LookUpByName(cboTestDoctor,FTestDoctor);
end;


procedure TfrmCellMarrowMain.cboSendDoctorExit(Sender: TObject);
begin
  LookUpByName(cboSendDoctor,FSendDoctor);
end;

procedure TfrmCellMarrowMain.dbiLiveMarrowDblClick(Sender: TObject);
begin
  if FPicture.Query.Active=False then Exit;
  if FPicture.Query.RecordCount<1 then Exit;
  TBlobField(FPicture.Query.FieldByName('picture')).SaveToFile('tem.jpeg');
  frmZoom:=TfrmZoom.Create(nil);
  frmZoom.Image1.Picture.LoadFromFile('tem.jpeg');
  frmZoom.Caption:='当前显示为第'+IntToStr(FPicture.Query.RecNo)+'幅图片';
  frmZoom.ShowModal;
  frmZoom.Free;
  FPicture.Query.DisableControls;
  FPicture.Query.EnableControls;
end;

procedure TfrmCellMarrowMain.ToolButton8Click(Sender: TObject);
var
  frmQuery:TfrmCellMarrowQuery;
begin
  frmQuery:=TfrmCellMarrowQuery.Create(nil);
try
  frmQuery.TestDoctor:=FTestDoctor;
  frmQuery.SicknessSection:=FSicknessSection;
  frmQuery.Diagnostic:=FDiagnostic;
  frmQuery.Department:=FDepartment;
  frmQuery.SendDoctor:=FSendDoctor;
  frmQuery.LoadDictionary;
  frmQuery.cboSampleSource.Items.Text:=cboSampleSource.Items.Text;
  frmQuery.ShowModal;

  if frmQuery.QueryReturn.Succeed then
  begin
      Screen.Cursor:=crHourGlass;
      try
        LoadDataByCondition(frmQuery.QueryReturn.SQL);
        ReadReport;
      finally
        Screen.Cursor:=crDefault;
      end;
  end;
finally
  frmQuery.Free;
end;
end;

procedure TfrmCellMarrowMain.ToolButton12Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmCellMarrowMain.dbgLiveMarrowKeyUp(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if Key in [37..40] then ReadReport;
end;

procedure TfrmCellMarrowMain.dbgLiveMarrowMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Button in [mbLeft,mbRight] then ReadReport;
end;

procedure TfrmCellMarrowMain.memTestResultDblClick(Sender: TObject);
var
  tem:TPoint;
begin
  frmAdviceTemplet:=TfrmAdviceTemplet.Create(nil);
  frmAdviceTemplet.Advice:=memTestResult;
  frmAdviceTemplet.LMAT:=FTestResult;
  frmAdviceTemplet.DataSource1.DataSet:=FTestResult.Query;
  tem:=ClientToScreen(Point(Panel2.Left,Panel2.Top));
  frmAdviceTemplet.Top:=tem.Y-70;
  frmAdviceTemplet.Left:=tem.X;
  frmAdviceTemplet.Caption:='诊断模板';
  frmAdviceTemplet.ShowModal;

  if frmAdviceTemplet.Succeed then
  begin
    if (FTestResult.Query.Active=False)or(FTestResult.Query.RecordCount<1) then Exit;
    memTestResult.Text:=TBasoUtils.GetDataFromField(FTestResult.Query,'Advice','');
  end;

  frmAdviceTemplet.Free;

end;

procedure TfrmCellMarrowMain.memAdviceDblClick(Sender: TObject);
var
  tem:TPoint;
begin
  frmAdviceTemplet:=TfrmAdviceTemplet.Create(nil);
  frmAdviceTemplet.Advice:=memAdvice;
  frmAdviceTemplet.LMAT:=FAdvice;
  frmAdviceTemplet.DataSource1.DataSet:=FAdvice.Query;
  tem:=ClientToScreen(Point(Panel2.Left,Panel2.Top));
  frmAdviceTemplet.Top:=tem.Y+40;
  frmAdviceTemplet.Left:=tem.X;
  frmAdviceTemplet.Caption:='意见模板';
  frmAdviceTemplet.ShowModal;

  if frmAdviceTemplet.Succeed then
  begin
    if (FAdvice.Query.Active=False)or(FAdvice.Query.RecordCount<1) then Exit;
    memAdvice.Text:=TBasoUtils.GetDataFromField(FAdvice.Query,'Advice','');
  end;

  frmAdviceTemplet.Free;

end;

procedure TfrmCellMarrowMain.LoadReportInfToTemplet(Cell:TCell);

procedure SetReportInf(col:Integer;row:Integer;svalue:string);
var
  sOrigin:string;
begin
   sOrigin:=Cell.GetCellString(col,row,0);
   Cell.SetCellString(col,row,0,sOrigin+svalue);
end;

procedure SetReportPicture;
var
  i:integer;
  count:integer;
  OriginBookMark:string;
begin
  if (FPicture.Query.Active=False)or(FPicture.Query.RecordCount<1) then Exit;
  OriginBookMark:=FPicture.Query.Bookmark;
  FPicture.Query.DisableControls;
try
  FPicture.Query.First;
  count:=0;
  for i:=1 to FPicture.Query.RecordCount do
  begin
    if count>=2 then Break;
    if FPicture.Query.FieldByName('Printed').AsInteger=1 then
    begin
      TBlobField(FPicture.Query.FieldByName('Picture')).SaveToFile('cellmarrow.jpg');
      count:=count+1;
      if count=1 then
      begin
        Cell.SetCellImage(2,9,0,Cell.AddImage('cellmarrow.jpg'),1,1,1);

      end else if count=2 then
      begin
        Cell.SetCellImage(7,9,0,Cell.AddImage('cellmarrow.jpg'),1,1,1);
      end;
    end;
    FPicture.Query.Next;
  end;
finally
  FPicture.Query.Bookmark := OriginBookMark;
  FPicture.Query.EnableControls;
end;

end;


begin
  if Assigned(Cell)=False then Exit;
  if (FPatient.Query.Active=False)or(FPatient.Query.RecordCount<1) then Exit;
  //加载病人信息
  SetReportInf(1,3,TBasoUtils.GetDataFromField(FPatient.Query,'PatientName',''));
  SetReportInf(3,3,TBasoUtils.GetDataFromField(FPatient.Query,'Sex',''));
  SetReportInf(5,3,TBasoUtils.GetDataFromField(FPatient.Query,'Birthday','')+
                   TBasoUtils.GetDataFromField(FPatient.Query,'BirthdayUnit',''));
  SetReportInf(7,3,TBasoUtils.GetDataFromField(FPatient.Query,'OutOrIn','')+
                   TBasoUtils.GetDataFromField(FPatient.Query,'PatientCode',''));
  SetReportInf(9,3,TBasoUtils.GetDataFromField(FPatient.Query,'TestNumber',''));
  SetReportInf(1,5,TBasoUtils.GetDataFromField(FPatient.Query,'SampleSource',''));
  SetReportInf(1,4,TBasoUtils.GetDataFromField(FPatient.Query,'Department',''));
  SetReportInf(3,4,TBasoUtils.GetDataFromField(FPatient.Query,'SickSection',''));
  SetReportInf(5,4,TBasoUtils.GetDataFromField(FPatient.Query,'BedCode',''));
  SetReportInf(7,4,TBasoUtils.GetDataFromField(FPatient.Query,'SendDoctor',''));
  SetReportInf(9,4,DateToStr(TBasoUtils.GetDataFromField(FPatient.Query,'SendDate',Today)));
  SetReportInf(7,5,TBasoUtils.GetDataFromField(FPatient.Query,'Diagnositic',''));
  SetReportInf(2,27,TBasoUtils.GetDataFromField(FPatient.Query,'TestResult',''));
  SetReportInf(2,38,TBasoUtils.GetDataFromField(FPatient.Query,'Advice',''));
  SetReportInf(8,53,TBasoUtils.GetDataFromField(FPatient.Query,'TestDoctor',''));
  SetReportInf(8,54,DateToStr(TBasoUtils.GetDataFromField(FPatient.Query,'TestDate',Today)));
  //加载图片信息
  SetReportPicture;

end;

procedure TfrmCellMarrowMain.ToolButton10Click(Sender: TObject);
begin
  frmCellMarrowPrint:=TfrmCellMarrowPrint.Create(nil);
  frmCellMarrowPrint.LoadTemplet;
  LoadReportInfToTemplet(frmCellMarrowPrint.Cell1);
  frmCellMarrowPrint.PriviewReport;
  frmCellMarrowPrint.Free;
end;

procedure TfrmCellMarrowMain.ToolButton9Click(Sender: TObject);
begin
  frmCellMarrowPrint:=TfrmCellMarrowPrint.Create(nil);
  frmCellMarrowPrint.LoadTemplet;
  LoadReportInfToTemplet(frmCellMarrowPrint.Cell1);
  frmCellMarrowPrint.PrintReport;
  frmCellMarrowPrint.Free;
end;

end.

⌨️ 快捷键说明

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