网学网为广大网友收集整理了,DELPHI医院B超图像处理系统的设计,希望对大家有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.5 数据库 3.5.1数据库E—R图 图3 数据库E-R图 病人,医生,图片是E-R图中的三个实体。病人有编号,姓名,年龄,性别,门诊号,住院号,联系电话这七个属性;医生有代码,姓名,科室名称这三个属性;图片有文件名,生成时间,生成日期,检查项目这四个属性。病人和医生两个实体间是看病的关系,其中一个医生可以诊治多个病人,病人和图片之间的关系是产生,其中一个病人可以拥有多张图片。 3.5.2数据表结构 表2 病人信息表
表3 医生信息表
表4 图片信息表
表5 检查项目表
4.重要代码的实现 Delphi 1.在B超预览单元里,显示动态图像和捕捉静态图像的截图 图4 显示动态图像和捕捉静态图像的截图 public picWidth, PicHeight: Integer; CurPanel, CurPic: Integer; PicEdited: Integer; ImageEdited: Integer; BitBMP: array [1..5] of TBitMap; (1)对图像的捕捉 procedure TVideoFrame.CapPic(Sender: TObject); var BMPFileName: String; ss,temp: String; date: SYSTEMTIME; BMPFile: TBitMap; begin btCapPic.Enabled:= false; cdCapPic.Enabled:= false; BMPFileName:= ss + ''.bmp''; if fmECHO.PicFileName[CurPic]='''' then begin BitBMP[CurPic]:= TBitMap.Create; CheckListBox1.Items.Add(''第'' + IntToStr(CurPic) + ''幅''); end; fmECHO.PicFileName[CurPic]:= BMPFileName; CapSetSingleImageFileName(BMPFileName); CapGrabSingleFrame; BMPFile:= TBitMap.Create; try BMPFile.LoadFromFile(BMPFileName); BitBMP[CurPic].PixelFormat:= BMPFile.PixelFormat; BitBMP[CurPic].Width:= PicWidth; BitBMP[CurPic].Height:=round(BitBMP[CurPic].Width*BMPFile.Height/BMPFile.Width); BitBMP[CurPic].Canvas.StretchDraw(Bounds(0,0,BitBMP[CurPic].Width,BitBMP[CurPic].Height),BMPFile); if CurPanel > 3 then begin CurPanel:= 3; if CurPic <= 5 then begin RadioButton1.Caption:= IntToStr( StrToInt(RadioButton1.Caption)+1 ); RadioButton2.Caption:= IntToStr( StrToInt(RadioButton2.Caption)+1 ); RadioButton3.Caption:= IntToStr( StrToInt(RadioButton3.Caption)+1 ); Image2.Picture.BitMap:= BitBMP[StrToInt(RadioButton1.Caption)]; Image3.Picture.BitMap:= BitBMP[StrToInt(RadioButton2.Caption)]; end; Image4.Picture.BitMap:= BitBMP[CurPic]; CurPanel:= CurPanel + 1; CurPic:= CurPic + 1; End else case CurPanel of 1: begin Image2.Picture.BitMap:= BitBMP[CurPic]; RadioButton2Click(Sender); end; 2: begin Image3.Picture.BitMap:= BitBMP[CurPic]; RadioButton3Click(Sender); end; 3: begin Image4.Picture.BitMap:= BitBMP[CurPic]; CurPanel:= CurPanel + 1; CurPic:= CurPic + 1; end; end; (2)实现图像的前翻操作 procedure TVideoFrame.BitBtn1Click(Sender: TObject); //向前翻一幅 begin RadioButton1.Caption:= IntToStr( StrToInt(RadioButton1.Caption)-1 ); RadioButton2.Caption:= IntToStr( StrToInt(RadioButton2.Caption)-1 ); RadioButton3.Caption:= IntToStr( StrToInt(RadioButton3.Caption)-1 ); if fmECHO.PicFileName[StrToInt(RadioButton1.Caption)]='''' then Image2.Picture:= Nil else Image2.Picture.BitMap:= BitBMP[StrToInt(RadioButton1.Caption)]; if fmECHO.PicFileName[StrToInt(RadioButton2.Caption)]='''' then Image3.Picture:= Nil else Image3.Picture.BitMap:= BitBMP[StrToInt(RadioButton2.Caption)]; if fmECHO.PicFileName[StrToInt(RadioButton3.Caption)]='''' then Image4.Picture:= Nil else Image4.Picture.BitMap:= BitBMP[StrToInt(RadioButton3.Caption)]; CurPanel:= CurPanel - 1; if CurPanel = 0 then CurPanel:= 1; Image2.Refresh; Image3.Refresh; Image4.Refresh; btBack.Enabled:= true; //重新确定后翻权限 if StrToInt(RadioButton1.Caption) = 1 then //重新确定前翻权限 BitBtn1.Enabled:= false; end; 1. 图片管理单元里,对图像进行修改操作的截图 图 5 图像进行修改操作的截图 (3)放大图像 Type RulerCBox: TComboBox; Public ToAct_bl: Integer; //ToAct_bl是相对于原始大小的比例 PicShow: TBitMAP; PicNormal: TBitMAP; PicPreWidth: Integer; procedure TfmPicManager.btToLargeClick(Sender: TObject); begin case ToAct_bl of 50 : begin PicLargeChange(150); ToAct_bl:= 75; RulerCBox.ItemIndex:= 5; end; 75 : begin PicLargeChange(133); ToAct_bl:= 100; RulerCBox.ItemIndex:= 4; end; 100: begin PicLargeChange(150); ToAct_bl:= 150; RulerCBox.ItemIndex:= 3; end; 150: begin PicLargeChange(134); ToAct_bl:= 200; RulerCBox.ItemIndex:= 2; end; 200: begin PicLargeChange(125); ToAct_bl:= 250; RulerCBox.ItemIndex:= 1; end; 250: begin PicLargeChange(120); ToAct_bl:= 300; RulerCBox.ItemIndex:= 0; end; end; end; procedure TfmPicManager.PicLargeChange(bl: Integer); begin PicShow.PixelFormat:= PicNormal.PixelFormat ; PicShow.Width:= round(PicPreWidth * bl / 100); //根据比例来确定图片的大小 PicShow.Height:= round(PicShow.Width * PicNormal.Height/PicNormal.Width); PicShow.Canvas.StretchDraw(Bounds(0, 0, PicShow.Width, PicShow.Height), PicNormal); PicPreWidth:= PicShow.Width; ForeImage.Picture.Bitmap:= PicShow; BackImage.Picture.Bitmap:= PicShow; 结 论 通过本次的课题设计,设计出了一个可以帮助医生管理B超图像的系统,在医疗事业日益发展的今天,这样的系统是非常需要的.这次设计完成了最初的目的,可以对病人的资料进行修改,查询,可以动态地呈现图像并对重要的画面进行捕捉,对捕捉到的静态图像进行放大,缩小等操作,实现了一个病例保存多幅图像的功能,并且界面友好,同时易于操作. 计算机这十年来飞速发展,几乎走进了家家户户,社会也更需要以来计算机来完成一些人们难以完成的工作.医疗事业与人们的生活息息相关,对这类实用软件系统的需求会越来越多,编程者们将会投入大量精力来设计这类软件,有了它们的帮助,相信我国的医疗事业将会蓬勃发展,为全社会的人谋求更多的福利. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本文选自计算机毕业设计http://myeducs.cn |