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

📄 unit1.pas

📁 Dicom Delphi code 看DICOM图像
💻 PAS
📖 第 1 页 / 共 4 页
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, OleCtrls, ExtCtrls, StrUtils, IniFiles,
  Menus, AxCtrls, ActiveX, DICOMax_TLB, ImgList, ToolWin;

const
  sVer = '1.01';

type
  TForm1 = class(TForm)
    tmrPlaySlice: TTimer;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    MainMenu1: TMainMenu;
    F1: TMenuItem;
    T1: TMenuItem;
    I1: TMenuItem;
    M1: TMenuItem;
    O1: TMenuItem;
    O2: TMenuItem;
    N1: TMenuItem;
    S1: TMenuItem;
    N2: TMenuItem;
    X1: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N501: TMenuItem;
    N1001: TMenuItem;
    N1501: TMenuItem;
    N2001: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    N33: TMenuItem;
    N901: TMenuItem;
    N902: TMenuItem;
    N34: TMenuItem;
    N35: TMenuItem;
    N37: TMenuItem;
    N38: TMenuItem;
    N39: TMenuItem;
    N40: TMenuItem;
    N41: TMenuItem;
    N1FPS1: TMenuItem;
    N2FPS1: TMenuItem;
    N5FPS1: TMenuItem;
    N10FPS1: TMenuItem;
    N15FPS1: TMenuItem;
    N20FPS1: TMenuItem;
    N42: TMenuItem;
    N43: TMenuItem;
    N2X21: TMenuItem;
    N2X31: TMenuItem;
    N3X31: TMenuItem;
    N3X41: TMenuItem;
    N4X41: TMenuItem;
    N44: TMenuItem;
    N45: TMenuItem;
    N46: TMenuItem;
    N47: TMenuItem;
    N48: TMenuItem;
    DICOM2: TMenuItem;
    N49: TMenuItem;
    N50: TMenuItem;
    N51: TMenuItem;
    N52: TMenuItem;
    N53: TMenuItem;
    N56: TMenuItem;
    N57: TMenuItem;
    N58: TMenuItem;
    N59: TMenuItem;
    N60: TMenuItem;
    N61: TMenuItem;
    N2X1: TMenuItem;
    N4X1: TMenuItem;
    N6X1: TMenuItem;
    DICOM3: TMenuItem;
    DICOM4: TMenuItem;
    N62: TMenuItem;
    N63: TMenuItem;
    N64: TMenuItem;
    Cardiac1: TMenuItem;
    Flow1: TMenuItem;
    GEColor1: TMenuItem;
    Gold1: TMenuItem;
    HotIron1: TMenuItem;
    NIH1: TMenuItem;
    NIHFire1: TMenuItem;
    NIHIce1: TMenuItem;
    RainRamp1: TMenuItem;
    Spectrum1: TMenuItem;
    XHot1: TMenuItem;
    XRain1: TMenuItem;
    N65: TMenuItem;
    N66: TMenuItem;
    N67: TMenuItem;
    N68: TMenuItem;
    DICOMA2: TMenuItem;
    N69: TMenuItem;
    DICOM6: TMenuItem;
    N70: TMenuItem;
    N71: TMenuItem;
    BMPJPGDICOM1: TMenuItem;
    N72: TMenuItem;
    DICOMX1: TDICOMX;
    N73: TMenuItem;
    DICOMDirR1: TMenuItem;
    N74: TMenuItem;
    N75: TMenuItem;
    N76: TMenuItem;
    N77: TMenuItem;
    N78: TMenuItem;
    N79: TMenuItem;
    N80: TMenuItem;
    N81: TMenuItem;
    N82: TMenuItem;
    N83: TMenuItem;
    N84: TMenuItem;
    N85: TMenuItem;
    N86: TMenuItem;
    N87: TMenuItem;
    N88: TMenuItem;
    N89: TMenuItem;
    N90: TMenuItem;
    N91: TMenuItem;
    N92: TMenuItem;
    N93: TMenuItem;
    N94: TMenuItem;
    N95: TMenuItem;
    N96: TMenuItem;
    N97: TMenuItem;
    N98: TMenuItem;
    N110: TMenuItem;
    N111: TMenuItem;
    N99: TMenuItem;
    N100: TMenuItem;
    N101: TMenuItem;
    N102: TMenuItem;
    N103: TMenuItem;
    N104: TMenuItem;
    N105: TMenuItem;
    N106: TMenuItem;
    N107: TMenuItem;
    N108: TMenuItem;
    N109: TMenuItem;
    N112: TMenuItem;
    N36: TMenuItem;
    N113: TMenuItem;
    N114: TMenuItem;
    N115: TMenuItem;
    DICOMC1: TMenuItem;
    N116: TMenuItem;
    N117: TMenuItem;
    N118: TMenuItem;
    N119: TMenuItem;
    Measurements1: TMenuItem;
    Filter1: TMenuItem;
    N120: TMenuItem;
    N121: TMenuItem;
    About1: TMenuItem;
    N54: TMenuItem;
    N122: TMenuItem;
    N123: TMenuItem;
    AboutApplication1: TMenuItem;
    N124: TMenuItem;
    tbMain: TToolBar;
    ImageList1: TImageList;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton23: TToolButton;
    ToolButton24: TToolButton;
    ToolButton25: TToolButton;
    ToolButton26: TToolButton;
    ToolButton29: TToolButton;
    ToolButton31: TToolButton;
    pmScheme: TPopupMenu;
    Gray1: TMenuItem;
    N55: TMenuItem;
    FireLUT1: TMenuItem;
    BlackBody1: TMenuItem;
    Done1: TMenuItem;
    Cardiac2: TMenuItem;
    Flow2: TMenuItem;
    GEColor2: TMenuItem;
    Gold2: TMenuItem;
    HotIron2: TMenuItem;
    NIH2: TMenuItem;
    NIHFire2: TMenuItem;
    NIHIce2: TMenuItem;
    RainRamp2: TMenuItem;
    Spectrum2: TMenuItem;
    XRain2: TMenuItem;
    ToolButton33: TToolButton;
    ToolButton34: TToolButton;
    ShowRuler1: TMenuItem;
    ToolButton35: TToolButton;
    ToolButton36: TToolButton;
    ToolButton37: TToolButton;
    tbMeasurement: TToolBar;
    ToolButton45: TToolButton;
    CoolBar1: TCoolBar;
    ToolButton46: TToolButton;
    ToolButton47: TToolButton;
    ToolButton48: TToolButton;
    ToolButton49: TToolButton;
    ToolButton50: TToolButton;
    ToolButton51: TToolButton;
    ToolButton52: TToolButton;
    ToolButton53: TToolButton;
    ToolButton54: TToolButton;
    ToolButton55: TToolButton;
    ToolButton56: TToolButton;
    ToolButton57: TToolButton;
    tbMultiSlice: TToolBar;
    ToolButton58: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    tbOrientation: TToolBar;
    ToolButton12: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    pmCine: TPopupMenu;
    N1FPS2: TMenuItem;
    N2FPS2: TMenuItem;
    N5FPS2: TMenuItem;
    N10FPS2: TMenuItem;
    N15FPS2: TMenuItem;
    N20FPS2: TMenuItem;
    N125: TMenuItem;
    Stop1: TMenuItem;
    pmMosaic: TPopupMenu;
    N2X22: TMenuItem;
    N2X32: TMenuItem;
    N3X32: TMenuItem;
    N3X42: TMenuItem;
    N4X42: TMenuItem;
    N126: TMenuItem;
    UserDefine1: TMenuItem;
    N127: TMenuItem;
    Cancel1: TMenuItem;
    pnlMain: TPanel;
    CoolBar2: TCoolBar;
    oolBars1: TMenuItem;
    MainTool1: TMenuItem;
    Orientation1: TMenuItem;
    MultiSliceTool1: TMenuItem;
    Measurements2: TMenuItem;
    psMain: TPageScroller;
    XRain3: TMenuItem;
    ToolButton13: TToolButton;
    pmZoom: TPopupMenu;
    ToolButton17: TToolButton;
    N502: TMenuItem;
    N1002: TMenuItem;
    N1502: TMenuItem;
    N2002: TMenuItem;
    N128: TMenuItem;
    Fit1: TMenuItem;
    MouseWheel1: TMenuItem;
    EnableScrollforMultiSlice1: TMenuItem;
    DisableScrollforMultiSlice1: TMenuItem;
    StatusBar1: TStatusBar;
    N4002: TMenuItem;
    N4001: TMenuItem;
    ToolButton18: TToolButton;
    ToolButton19: TToolButton;
    M50: TMenuItem;
    M60: TMenuItem;
    M80: TMenuItem;
    M100: TMenuItem;
    M120: TMenuItem;
    N129: TMenuItem;
    ToolButton20: TToolButton;
    WindowingPreset1: TMenuItem;
    FS1: TMenuItem;
    ToolButton21: TToolButton;
    ToolButton22: TToolButton;
    pmExitFS: TPopupMenu;
    ExitFullScreenMode1: TMenuItem;
    N130: TMenuItem;
    ShowMainToolBar1: TMenuItem;
    ShowOToolBar1: TMenuItem;
    ShowCineToolBar1: TMenuItem;
    ShowMeasureMentToolBar1: TMenuItem;

    procedure FSShowToolBar(Sender: TObject);
    procedure InitialDInfoSaveValue;
    procedure RefreshPreview;
    procedure InitialMenuItem;
    procedure ReadIniSetting;
    procedure EnableMultiSlice(Value : Boolean);

    procedure MenuMScrollClick(Sender: TObject);
    procedure MenuToolBarClick(Sender: TObject);
    procedure ToolBtnRotateClick(Sender: TObject);
    procedure ToolBtnDICOMToolClick(Sender: TObject);
    procedure MenuDICOMToolClick(Sender: TObject);
    procedure MenuDICOMMSizeClick(Sender: TObject);
    procedure MenuDICOMMRatioClick(Sender: TObject);
    procedure MenuDICOMSEClick(Sender: TObject);
    procedure MenuPlaySliceClick(Sender: TObject);
    procedure MenuFlipSliceClick(Sender: TObject);
    procedure MenuRotateClick(Sender: TObject);
    procedure MenuProcessIMGClick(Sender: TObject);
    procedure MenuOverlayLanguageClick(Sender: TObject);
    procedure MenuOverlayColorClick(Sender: TObject);
    procedure MenuZoomIMGClick(Sender: TObject);
    procedure MenuLUTClick(Sender: TObject);
    procedure IMeasureColorClick(Sender: TObject);
    procedure MenuOCXLanguageClick(Sender: TObject);

    procedure tmrPlaySliceTimer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure O2Click(Sender: TObject);
    procedure S1Click(Sender: TObject);
    procedure X1Click(Sender: TObject);
    procedure N22Click(Sender: TObject);
    procedure N23Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N40Click(Sender: TObject);
    procedure N41Click(Sender: TObject);
    procedure N48Click(Sender: TObject);
    procedure DICOM2Click(Sender: TObject);
    procedure DICOM3Click(Sender: TObject);
    procedure N53Click(Sender: TObject);
    procedure DICOM4Click(Sender: TObject);
    procedure N72Click(Sender: TObject);
    procedure DICOM6Click(Sender: TObject);
    procedure N80Click(Sender: TObject);
    procedure N110Click(Sender: TObject);
    procedure N111Click(Sender: TObject);
    procedure N100Click(Sender: TObject);
    procedure N109Click(Sender: TObject);
    procedure N112Click(Sender: TObject);
    procedure N85Click(Sender: TObject);
    procedure N86Click(Sender: TObject);
    procedure DICOMDirR1Click(Sender: TObject);
    procedure N114Click(Sender: TObject);
    procedure N113Click(Sender: TObject);
    procedure N115Click(Sender: TObject);
    procedure DICOMC1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ShowRuler1Click(Sender: TObject);
    procedure pnlMainResize(Sender: TObject);
    procedure ToolButton36Click(Sender: TObject);
    procedure ToolButton23Click(Sender: TObject);
    procedure ToolButton31Click(Sender: TObject);
    procedure ToolButton13Click(Sender: TObject);
    procedure ToolButton9Click(Sender: TObject);
    procedure ToolButton58Click(Sender: TObject);
    procedure AboutApplication1Click(Sender: TObject);
    procedure DICOMX1DCMmouseMove(ASender: TObject; X, Y, Button, Shift: Integer);
    procedure ToolButton24Click(Sender: TObject);
    procedure DICOMX1DCMmouseUp(ASender: TObject; X, Y, Button, Shift: Integer);
    procedure ToolButton18Click(Sender: TObject);
    procedure DICOMA2Click(Sender: TObject);
    procedure BMPJPGDICOM1Click(Sender: TObject);
    procedure WindowingPreset1Click(Sender: TObject);
    procedure ToolButton21Click(Sender: TObject);
    procedure ExitFullScreenMode1Click(Sender: TObject);
  private
    { Private declarations }
    procedure UnCheckImageTool;
    procedure UnCheckImageZoom;
    procedure UnCheckSlicePlay;
    procedure UnCheckSliceFlip;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

  gsOpenFileName : String;

  giEnableErrorReport, giEnableMouseWheel, giMagRadious, giMagSize, giEnableSmooth,
  giOCXLanguage, giOverlayLanguage, giOverlayColor, giOverlayShowRuler, giMSItemCount,
  giMSATextColor, giMSATextSize, giMSRTextColor, giMSRTextSize, giMSLineColor, giAssociateFile : Integer;
//  giShowOverlay, giImageZoom, giImageTool : Integer;

  giFormPrvLeft,giFormPrvTop,giFormPrvWidth,giFormPrvHeight : Integer;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit7, Unit8, Unit6, Unit9, Unit10;

{$R *.dfm}

procedure TForm1.FSShowToolBar(Sender: TObject);
var
  iTag : Integer;
  bEnable : Boolean;
begin

  iTag := (Sender as TMenuItem).Tag;
  bEnable := not (Sender as TMenuItem).Checked;
  (Sender as TMenuItem).Checked := bEnable;
  Case iTag of
    1:
      begin
        if bEnable then
          CoolBar1.Visible := True;
        CoolBar1.Bands[0].Visible := bEnable;
      end;
    2:
      begin
        if bEnable then
          CoolBar1.Visible := True;
        CoolBar1.Bands[1].Visible := bEnable;
      end;
    3:
      begin
        if bEnable then
          CoolBar1.Visible := True;
        CoolBar1.Bands[2].Visible := bEnable;
      end;
    4:
      CoolBar2.Visible := bEnable;
  end;
  if (CoolBar1.Bands[0].Visible=False) and (CoolBar1.Bands[1].Visible=False) and (CoolBar1.Bands[2].Visible=False) then
    CoolBar1.Visible := False; 
end;

procedure TForm1.InitialDInfoSaveValue;
begin
    //Set DICOM Information
    frmSaveDICOM.leSOPCUID.Text := '1.2.840.10008.5.1.4.1.1.7';
    frmSaveDICOM.leSOPIUID.Text := '1.2.7.3.8.2007.10.15.23.00.00.1';
    frmSaveDICOM.leICUID.Text := '1.2.7.3.8.2007.10.15.23.00.00.3';
    frmSaveDICOM.leIVName.Text := 'DICOM3AX_V1.90';
    frmSaveDICOM.leSAET.Text := 'Source_AET';

    frmSaveDICOM.leStudyDate.Text := FormatDateTime('YYYYMMDD', Now);
    frmSaveDICOM.leSeriesDate.Text := FormatDateTime('YYYYMMDD', Now);
    frmSaveDICOM.leImageDate.Text := FormatDateTime('YYYYMMDD', Now);
    frmSaveDICOM.leStudyTime.Text := FormatDateTime('HHMMSS.000000', Now);
    frmSaveDICOM.leSeriesTime.Text := FormatDateTime('HHMMSS.000000', Now);
    frmSaveDICOM.leImageTime.Text := FormatDateTime('HHMMSS.000000', Now);

    frmSaveDICOM.leModality.Text := 'OT';
    frmSaveDICOM.leManufacturer.Text := 'DICOM3CN';
    frmSaveDICOM.leInstitutionName.Text := 'http://www.dicom3.cn';
    frmSaveDICOM.leCityName.Text := 'NJ';
    frmSaveDICOM.leRPName.Text := 'Dr.Lee';
    frmSaveDICOM.leStudyDescription.Text := 'Image to DICOM File Demo!';

    frmSaveDICOM.lePName.Text := 'PtName';
    frmSaveDICOM.lePID.Text := '200802280001';
    frmSaveDICOM.lePDOB.Text := '19900101';
    frmSaveDICOM.lePSex.Text := 'M';

    frmSaveDICOM.leStudyIUID.Text := '1.2.7.3.8.' + FormatDateTime('YYYY.MM.DD',Now) + '.' + FormatDateTime('HH.MM.SS',Now) + '.101';
    frmSaveDICOM.leSeriesIUID.Text := '1.2.7.3.8.' + FormatDateTime('YYYY.MM.DD',Now) + '.' + FormatDateTime('HH.MM.SS',Now) + '.201';
    frmSaveDICOM.leStudyID.Text := '200802286001';
    frmSaveDICOM.leSeriesNumber.Text := '1';
    frmSaveDICOM.leImageNumber.Text := '1';
end;

procedure TForm1.RefreshPreview;
begin
  //Refesh Preview Image
  if N18.Checked then
    MenuZoomIMGClick(N18);
  if N501.Checked then
    MenuZoomIMGClick(N501);
  if N1001.Checked then
    MenuZoomIMGClick(N1001);
  if N1501.Checked then
    MenuZoomIMGClick(N1501);
  if N2001.Checked then
    MenuZoomIMGClick(N2001);
  if N4001.Checked then
    MenuZoomIMGClick(N4001);
  if N20.Checked then
    MenuZoomIMGClick(N20);
end;

procedure TForm1.InitialMenuItem;
begin
  //Error Report
  if giEnableErrorReport=1 then
    MenuDICOMSEClick(N62)
  else
    MenuDICOMSEClick(N63);

⌨️ 快捷键说明

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