📄 unit6.pas
字号:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, StrUtils;
type
TfrmSaveDICOM = class(TForm)
Label1: TLabel;
edtSrcImageFile: TEdit;
GroupBox1: TGroupBox;
leSOPCUID: TLabeledEdit;
leSOPIUID: TLabeledEdit;
leICUID: TLabeledEdit;
leIVName: TLabeledEdit;
leSAET: TLabeledEdit;
Button1: TButton;
Button2: TButton;
Bevel1: TBevel;
Bevel2: TBevel;
leStudyDate: TLabeledEdit;
leSeriesDate: TLabeledEdit;
leImageDate: TLabeledEdit;
leImageTime: TLabeledEdit;
leSeriesTime: TLabeledEdit;
leStudyTime: TLabeledEdit;
leModality: TLabeledEdit;
leManufacturer: TLabeledEdit;
leInstitutionName: TLabeledEdit;
leCityName: TLabeledEdit;
leRPName: TLabeledEdit;
leStudyDescription: TLabeledEdit;
lePName: TLabeledEdit;
lePID: TLabeledEdit;
lePDOB: TLabeledEdit;
lePSex: TLabeledEdit;
leStudyIUID: TLabeledEdit;
leSeriesIUID: TLabeledEdit;
leStudyID: TLabeledEdit;
leSeriesNumber: TLabeledEdit;
leImageNumber: TLabeledEdit;
Label2: TLabel;
edtSaveFileName: TEdit;
cbGrayScale: TCheckBox;
btnAddFile: TButton;
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure btnAddFileClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmSaveDICOM: TfrmSaveDICOM;
implementation
uses Unit1, Unit9;
{$R *.dfm}
procedure TfrmSaveDICOM.Button2Click(Sender: TObject);
begin
frmSaveDICOM.Close;
end;
procedure TfrmSaveDICOM.FormShow(Sender: TObject);
begin
Button1.SetFocus;
end;
procedure TfrmSaveDICOM.Button1Click(Sender: TObject);
var
i : Integer;
sFN,sTFN : String;
begin
if (edtSaveFileName.Text<>'') and (edtSrcImageFile.Text<>'') then
begin
//Set Information for DICOM File
Form1.DICOMX1.DICOMSOPClassUID := leSOPCUID.Text;
Form1.DICOMX1.DICOMSOPInstanceUID := leSOPIUID.Text;
Form1.DICOMX1.DICOMImplementationClassUID := leICUID.Text;
Form1.DICOMX1.DICOMImplementationVersionName := leIVName.Text;
Form1.DICOMX1.DICOMSourceApplicationEntityTitle := leSAET.Text;
Form1.DICOMX1.DICOMStudyDate := leStudyDate.Text;
Form1.DICOMX1.DICOMSeriesDate := leSeriesDate.Text;
Form1.DICOMX1.DICOMImageDate := leImageDate.Text;
Form1.DICOMX1.DICOMStudyTime := leStudyTime.Text;
Form1.DICOMX1.DICOMSeriesTime := leSeriesTime.Text;
Form1.DICOMX1.DICOMImageTime := leImageTime.Text;
Form1.DICOMX1.DICOMModality := leModality.Text;
Form1.DICOMX1.DICOMManufacturer := leManufacturer.Text;
Form1.DICOMX1.DICOMInstitutionName := leInstitutionName.Text;
Form1.DICOMX1.DICOMCityName := leCityName.Text;
Form1.DICOMX1.DICOMRefPhyName := leRPName.Text;
Form1.DICOMX1.DICOMStudyDescrp := leStudyDescription.Text;
Form1.DICOMX1.DICOMPatientName := lePName.Text;
Form1.DICOMX1.DICOMPatientID := lePID.Text;
Form1.DICOMX1.DICOMPatientBirthDate := lePDOB.Text;
Form1.DICOMX1.DICOMPatientSex := lePSex.Text;
Form1.DICOMX1.DICOMStudyInstanceUID := leStudyIUID.Text;
Form1.DICOMX1.DICOMSeriesInstanceUID := leSeriesIUID.Text;
Form1.DICOMX1.DICOMStudyID := leStudyID.Text;
try
Form1.DICOMX1.DICOMSeriesNumber := StrToInt(leSeriesNumber.Text);
Form1.DICOMX1.DICOMImageNumber := StrToInt(leImageNumber.Text);
except
Form1.DICOMX1.DICOMSeriesNumber := 1;
Form1.DICOMX1.DICOMImageNumber := 1;
end;
//Pixel Space
Form1.DICOMX1.DICOMPixelSpaceHeight := 1;
Form1.DICOMX1.DICOMPixelSpaceWidth := 1;
if Pos('*',edtSrcImageFile.Text)<>0 then
begin
sTFN := '';
sFN := edtSrcImageFile.Text + '*';
//Add files to the list
for i := 1 to Length(sFN) do
begin
if MidBStr(sFN,i,1)='*' then
begin
if FileExists(sTFN) then
Form1.DICOMX1.ImageMultiListAppend(sTFN);
sTFN := '';
end
else
begin
sTFN := sTFN + MidBStr(sFN,i,1);
end;
end;
if cbGrayScale.Checked then
//Start to save GrayScale Multi Slice DICOM file
Form1.DICOMX1.ImageMultiListConvertToFileAsGray(edtSaveFileName.Text)
else
//Start to save RGB Multi Slice DICOM file
Form1.DICOMX1.ImageMultiListConvertToFile(edtSaveFileName.Text)
end
else
begin
if Form1.OpenDialog1.FileName<>edtSrcImageFile.Text then
begin
//Start to save DICOM File
if cbGrayScale.Checked then
//Save as GrayScale DICOM File
Form1.DICOMX1.ImageSaveToDICOMasGray := edtSaveFileName.Text
else
//Save as RGB DICOM File
Form1.DICOMX1.ImageSaveToDICOM := edtSaveFileName.Text;
end
else
begin
//Start to Convert Image File to DICOM file
if cbGrayScale.Checked then
begin
//Convert to GrayScale DICOM File
if Form1.DICOMX1.ConvertFileToDICOMasGray(Form1.OpenDialog1.FileName, Form1.SaveDialog1.FileName) = True then
Showmessage('Convert Image to DICOM File Success !')
else
Showmessage('Convert Image to DICOM File Failed !');
end
else
begin
//Convert to RGB DICOM File
if Form1.DICOMX1.ConvertFileToDICOM(Form1.OpenDialog1.FileName, Form1.SaveDialog1.FileName) = True then
Showmessage('Convert Image to DICOM File Success !')
else
Showmessage('Convert Image to DICOM File Failed !');
end;
end;
end;
//Close Window
frmSaveDICOM.Close;
end;
end;
procedure TfrmSaveDICOM.btnAddFileClick(Sender: TObject);
begin
frmAddImageFile.ShowModal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -