work_Station 設(shè)計

TODO list

  1. 數(shù)據(jù)庫調(diào)試:一個病人對應(yīng)多條記錄艇肴;
  2. UI調(diào)試华糖;
  3. Dicom打佑汛妗;

廣西那家醫(yī)院現(xiàn)在主要問題是住院報告的問題:
醫(yī)院要求住院的報告補(bǔ)打印
只有報告審核完畢镊掖,發(fā)給我們以后乃戈,才可以打印膠片和報告
做虛擬打印機(jī),pdf的
然后在連一下醫(yī)院的數(shù)據(jù)庫


image.png

住院的那里就是住院號 //住院報告不打印
門診就寫急診號//門診與急診報告打印
只要有與膠片對應(yīng)的報告
都可以打印的情況下亩进,就是相當(dāng)于報告審核好了
比如病人手里有一個條碼 123
我們服務(wù)器里症虑,有一張膠片號碼123 一張報告也是123

修正設(shè)計

數(shù)據(jù)庫連接單獨采用一個form,用于連接與查詢只用镐侯;
提供的接口也對外使用

TADOQuery {
close
SQL.clear
SQL.add('select * from table where study_id');
Open
// SQL.savetofile
// execesql
}
if query.RecordCount > 0
if query.RowsAffected > 0
while not query.eof do
query.fieldbyname('status').AsString <> '已審核' //判斷狀態(tài)
query.next;
//

getpdfreport 讀取數(shù)據(jù)庫中pdf文件并保存到本地

>> 流程

讀取到二維碼侦讨,進(jìn)行查詢打印苟翻;
對設(shè)置項中的數(shù)據(jù)

>> 數(shù)據(jù)庫

數(shù)據(jù)庫操作流程
  1. ViewE_ScreenGroupJobs查詢數(shù)據(jù), 根據(jù)時間從兩個表中讀取時間限制的數(shù)據(jù)韵卤;
  2. 拿到patient_id去PrintJobList查詢膠片,膠片區(qū)分是根據(jù)SessionUID
  3. 去ReportBoxes查詢報告崇猫,一個id可能都會對應(yīng)多個膠片和多個報告沈条,報告區(qū)分是根據(jù)idx
  4. 報告你打印完了修改下ReportBoxes中report_status為1,
  5. 膠片打印前期先這樣做诅炉,你修改PrintJobList中Status=2就行
表結(jié)構(gòu)

Data Source=192.168.206.90
PrintJobList -->


Paste_Image.png

ReportBoxes -->


Paste_Image.png

報告打印

參考:
http://blog.csdn.net/masofeng/article/details/7655031
http://blog.csdn.net/muais/article/details/9812881
https://www.thoughtco.com/print-documents-from-delphi-1057936
http://stackoverflow.com/questions/2055307/delphi-how-to-print-a-pdf-without-showing-it
http://www.2ccc.com/news/Html/?859.html
// wordPro 打印膠片药磺?

if ShellExecute(0, 'open', PChar('WordPro.exe'), nil, nil, SW_SHOW)<=32 then
begin
CXMessage('打印報告失敗对扶!',0);
end
else
begin
// 更新打印狀態(tài)挨措,刷新界面
end;
// word print
Word_Handle, Doc_Handle: OLEVariant;
Word_Handle := CreateOleObject('Word.Application');
//Word_Handle.quit;
Word_Handle.Visible := false; //隱藏Exce窗口
Word_Handle.Documents.open(ExtractFilePath(Application.ExeName)+'模板.doc');
Word_Handle.PrintOut;


//PDF 打印報告?

if ShellExecute(Handle,'print',PChar('.\temp.pdf'),nil,nil,0)<= 32 then


// 使用Printer全局變量進(jìn)行打印操作
gsprint

There are some different possibilities to print PDFs... it depends whether you can require Adobe Reader to be installed (I don't know if you want to distribute your tool or just use it yourself).

  1. It is possible to load the ActiveX control of Adobe Reader and use it for printing
    pdfFile.src := 'filename.pdf'; pdfFile.LoadFile('filename.pdf'); pdfFile.print;
  2. You can print PDFs with Adobe Reader itself (could be done with FoxIt too)
    ShellExecute(0, 'open', 'acrord32', PChar('/p /h ' + FileName), nil, SW_HIDE);
  3. You could also use Ghostview and Ghostprint
    ShellExecute(Handle, 'open', 'gsprint.exe', PChar('"' + filename + '"'), '', SW_HIDE);

我的印象這個問題從90年代以來一直有人在問议纯,究其原因在于不同的繪制表面(GDI所謂的設(shè)備上下文父款,DC)所支持的點陣圖形(windows中稱之為光柵圖,raster)繪制能力不一樣瞻凤,顯示DC或者內(nèi)存DC的支持能力最強(qiáng)憨攒,而打印機(jī)DC經(jīng)常不支持BitBlt、StretchBlt(但是通常會支持DIB復(fù)制StretchDIBits)阀参,你需要用GetDeviceCaps確定一下你的打印機(jī)驅(qū)動所支持的DC繪制能力來決定使用哪個位圖繪制函數(shù)肝集。

消息界面,

彈框出來蛛壳,自動消失

DIComm 發(fā)送圖片數(shù)據(jù)

方案:使用DICOM VCL轉(zhuǎn)換杏瞻;將jpg轉(zhuǎn)換為DICOM數(shù)據(jù)所刀,發(fā)送給膠片機(jī);

DICOM VCL

http://www.dicomvcl.com/cn/product/product-85-696.html
http://download.csdn.net/detail/xing_1988/9560492?web=web
http://download.csdn.net/download/useryanyin/6702353
TDicomImage

DICOM 網(wǎng)絡(luò)通信

ConvertJpegFileToBitmapFile

Paste_Image.png

破解組件

破解DICOM3DSDK

lead tools

DICOM

DICOM3 蠻靠譜

http://www.dicom3.cn/download.htm

DICOMcm_TLB, ExtCtrls, ComCtrls
TDICOMc; //發(fā)送dcm文件
TDICOMaX // 轉(zhuǎn)換jpg文件
echo:
called -> RINGPACS
calling -> DCM_DE

TComm

參考:
http://blog.csdn.net/Tercel99/article/details/46690921
下載一個SPComm控件

SPComm,
cm1: TComm;
cm1.CommName:=port;
cm1.BaudRate:=StrToInt(btl);
cm1.Parity:=None;
if _printReport='1' then
try
cm1.StartComm;
except
ShowMessage('打開掃描串口失敺ズ丁勉痴!');
end;
cm1.StopComm;

數(shù)據(jù)加鎖

Section:TCriticalSection;
Section:=TCriticalSection.Create;
Section.Free;
Section.Enter;
Section.Leave;

> 用戶界面

1. Form1

主界面,信息展示树肃,用戶交互


Paste_Image.png
2. Form2

啟動界面


Paste_Image.png
3. Form3

設(shè)置界面


Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png


> 功能模塊

1. 數(shù)據(jù)庫操作

文件:DB.pas
配置文件:

  1. 連接數(shù)據(jù)庫
    函數(shù): connectDB 函數(shù)
    讀取配置DB.ini中字段蒸矛,連接數(shù)據(jù)庫;連接成功后胸嘴,啟動主界面雏掠;連接失敗,提示并退出界面劣像;
  2. 讀取數(shù)據(jù)庫數(shù)據(jù)并滾動顯示
    函數(shù): updateInfo 函數(shù)
    從數(shù)據(jù)庫不斷讀取信息乡话,并將最新信息顯示在首條;
    打印之后重新查找數(shù)據(jù)庫狀態(tài)耳奕,并更新滾動顯示信息绑青;
  3. 根據(jù)條碼拉取數(shù)據(jù)
    函數(shù): getPrintInfoByID(checkID: string)
    根據(jù)檢查號,從數(shù)據(jù)庫中查詢信息屋群;
    查詢不到信息闸婴,彈出提示框;
    查詢到信息芍躏,自動打印相關(guān)報告與膠片

2. 掃描

Scan.pas
文件:Scan.ini

  1. 掃描獲取ID
    函數(shù):scanAndGetID
    掃描二維碼邪乍,掃描成功,將讀取的數(shù)字顯示在輸入框中对竣;
    掃描失敗庇楞,提示出錯信息;

3. 打印報告或膠片

Print.pas
根據(jù)配置

  1. 打印報告
    函數(shù):printReport
    根據(jù)系統(tǒng)設(shè)置以及查詢到的信息否纬,查看是否能打印報告吕晌,能打印調(diào)用打印機(jī)進(jìn)行打印,出錯則彈出打印失敗及相關(guān)錯誤碼临燃;
    報告狀態(tài)不能打印聂使,提供相應(yīng)拒絕打印提示信息;
  2. 打印膠片
    函數(shù):printFilm
    根據(jù)系統(tǒng)設(shè)置谬俄,對膠片的狀態(tài)進(jìn)行查詢,允許打印則進(jìn)行打悠怼溃论;否則彈出相應(yīng)提示信息;

4. 設(shè)置

SettingConfig.pas
文件:Setting.ini

  1. 讀取所有配置
    函數(shù):readAllSetting
    讀取Setting.ini中的所有字段痘昌,存儲到內(nèi)存钥勋,用于打印時設(shè)置炬转;
  2. 保存基本設(shè)置
    函數(shù):saveAllSetting
    將從設(shè)置界面獲取的信息更新到Setting.ini文件中,并及時更新到存儲變量中算灸,用于打印設(shè)置扼劈;
> 設(shè)置項含義:
  1. 設(shè)置:
    DBIP --> 數(shù)據(jù)庫服務(wù)IP地址,不可寫菲驴;
    傳統(tǒng)膠片 --> DCom打印荐吵,IP/Port/AE 屏蔽;
    審核報告 --> 膠片與報告匹配時才打由匏病先煎;
    機(jī)器片量 --> 膠片盒1,膠片盒2的膠片數(shù)量巧涧,打印一張數(shù)目自動減一薯蝎;
    RIS多模板 --> 暫不做;
    膠片機(jī)名稱 --> 與這個名稱匹配的才打影占锯;
    膠片時 --> 打印膠片倒計時;
    紙 --> 打印報告倒計時缩筛;
  2. 其他
    觸屏?xí)r間 --> 不可改消略,置灰,暫不做歪脏;
    審核報告 --> 對應(yīng)個別需求疑俭,暫不做;
    膠片多規(guī)格 --> 暫不做婿失;
    攝影 --> 暫不做;
    左側(cè)界面比例 --> 界面比例調(diào)整钞艇;
    膠片為主 --> 暫不做;
  3. 報告限制
    暫不做
  4. 授權(quán)打印
    加密可打片數(shù)
    暫不做
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末豪硅,一起剝皮案震驚了整個濱河市哩照,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌懒浮,老刑警劉巖飘弧,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異砚著,居然都是意外死亡次伶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門稽穆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冠王,“玉大人,你說我怎么就攤上這事舌镶≈梗” “怎么了豪娜?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哟楷。 經(jīng)常有香客問我瘤载,道長,這世上最難降的妖魔是什么卖擅? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任鸣奔,我火速辦了婚禮,結(jié)果婚禮上磨镶,老公的妹妹穿的比我還像新娘溃蔫。我一直安慰自己,他們只是感情好琳猫,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布伟叛。 她就那樣靜靜地躺著,像睡著了一般脐嫂。 火紅的嫁衣襯著肌膚如雪统刮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天账千,我揣著相機(jī)與錄音侥蒙,去河邊找鬼。 笑死匀奏,一個胖子當(dāng)著我的面吹牛鞭衩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娃善,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼论衍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了聚磺?” 一聲冷哼從身側(cè)響起坯台,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瘫寝,沒想到半個月后蜒蕾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡焕阿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年咪啡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暮屡。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡瑟匆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情愁溜,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布外厂,位于F島的核電站冕象,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏汁蝶。R本人自食惡果不足惜渐扮,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掖棉。 院中可真熱鬧墓律,春花似錦、人聲如沸幔亥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帕棉。三九已至针肥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間香伴,已是汗流浹背慰枕。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留即纲,地道東北人具帮。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像低斋,于是被迫代替她去往敵國和親蜂厅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程拔稳,因...
    小菜c閱讀 6,419評論 0 17
  • //Clojure入門教程: Clojure – Functional Programming for the J...
    葡萄喃喃囈語閱讀 3,665評論 0 7
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,139評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理葛峻,服務(wù)發(fā)現(xiàn),斷路器巴比,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 在我很小的時候术奖,每逢夏天都會下幾場大暴雨。但我越來越大轻绞,記憶中大暴雨卻越來越少了采记。但是今年仿佛很是熟悉,暴雨又來了...
    伊靜同學(xué)閱讀 404評論 0 1