用ActiveReports 報表控制元件,輕鬆搭建HIS醫院系統

77rou發表於2018-08-23

企業背景 - 上海飛迪資訊科技有限公司

上海飛迪計算機資訊科技有限公司(以下簡稱飛迪科技),成立於2006年,是國內最先專注於校園管理及校園健康資訊化的高科技企業。飛迪科技經過10年的積累與發展,學校客戶擁有量和市場佔有率迅速擴大,並得到學校諸多的好評和讚譽,其中上海市教委和上海市衛計委已成為我們重要合作伙伴。飛迪科技憑藉先進的技術和研發力量,完善的客戶服務網路,以“團結、誠信、進取”的精神,為學校提供了優秀的解決方案和技術產品,用以服務學校、提升自身、貢獻社會。

專案名稱和專案概況 - HIS(醫院資訊系統)

上海飛迪計算機資訊科技有限公司在醫療行業發展多年,其主要客戶群體是教育機構,如上海大多數高校,小學等。其HIS產品也是針對於校醫院級別的,因此功能上雖然不如醫院的HIS模組多,資料量大,但是麻雀雖小,五臟俱全,系統內的整體業務流程也是極具專業性的,不差分毫。

由於醫保局對交易結算計算機有絕對限制,並且網路實現公網封閉,HIS系統整體採用.Net平臺C/S架構,WPF的前端。開發這樣一套系統並不容易,涵蓋了較深的業務知識,財務管理,進銷存管理,以及外部介面等。並且每一點都有大量對統計報表、憑證列印、資料匯出的需求。如果能將這些分包出去,交給第三方去處理,就可以節省開發時間,節省企業成本,從而讓開發人員更多的專注資料和業務本身,使系統穩定而強大。

總體結構:

(1)臨床診療部分:醫生工作站,護士工作站,臨床檢驗系統等;

(2)藥品管理部分:資料準備及藥品字典、藥品庫房管理功能、門急診藥房管理功能、住院藥房管理功能、藥品核算功能、藥品價格管理等;

(3)經濟管理部分:門急診掛號系統,門急診劃價收費系統,財務管理與經濟核算管理系統等;

(4)綜合管理與統計分析部分:病案管理系統、醫療統計系統、查詢與分析系統等;

(5)外部介面部分:醫療保險介面、社群衛生服務介面等;

應用例項

發票列印

發票在HIS中屬於最常見的憑證之一,是病人付款的證明。不同的病人、不同的收費型別會開具不同的發票,每個醫療機構單位採購的發票單可能都是不一樣的。以下圖醫保發票為例:

抽取需求:

  • 屬於套打格式的票據

  • 尺寸固定

  • 包含至少一個實體和一個集合的資料來源

以前我們一般使用System.Drawing這個程式集在後臺進行繪製,一個標籤一行程式碼,而且每個都要計算在佈局內的座標,沒有視覺化的設計,標籤位置全憑估算,然後一遍遍的調整。其座標是畫布內的絕對定位,但凡某個標籤區域性尺寸發生變化,將會引起多米諾效應,更別說我們還需面對各式各樣的發票種類樣式,開發起來簡直叫人崩潰。用了AR的頁面報表很好的解決了這個問題,我最喜歡葡萄城在介紹 AR 頁面報表時的那句話:“使用頁面報表,所見即所得”。

如下圖所示,設計介面,只需嵌入發票的圖片作為背景,設定好實際尺寸,接著拖控制元件繫結資料來源就行了,超方便。

處方箋

醫生站使用的最多的憑證之一,其他還包含“轉診單”、“病假單”等,但原理相同。

上圖是一種常見的處方樣式,除了頭疼各個客戶處方模板的不同,另外處方藥品的不規則展示也是難點之一,單個資料分多行展示,但是有了AR的“RDL”報表問題就簡單了。

RDL報表支援N個資料來源,並且其視覺化的設計操作起來實在是方便。

RDL更是提供了多種內建函式和運算方法來處理資料,熟練運用這些函式方法將會事半功倍。

非常輕鬆的實現了該效果。此外,如若統計一些無引數的資料來源(例如資料字典表等),直接一個RDL報表就夠了。

醫保報表

HIS系統中肯定少不了醫保,這是一個無比強勢的第三方,其公佈的介面文件有一本書那麼厚,可想而知,只有你遷就他,沒有他遷就你。 每個醫療機構會根據當月產生的交易情況,然後結合自己的級別向醫保局遞交一份“醫保報表”,如下圖所示:

抽取需求:

  • 固定頁首頁尾

  • 複雜表頭

  • 每頁固定20行資料

  • 含頁合計和總合計行

  • 列印規格A3

  • 包含一個集合和多個實體資料來源

認識 AR 之前,我採用後臺建立流文件加分頁的模式去處理,不說寫了多少行程式碼了,不堪回首。付出了艱辛然而列印出來的效果不佳,資料總是對不齊,或者大小比例不對。浪費了很多紙張,讓我總是在懷疑到底是程式碼的問題,還是印表機的問題、亦或是紙的問題?到最後懷疑人生。現在用了 AR 的區域報表,嘿,腰也不疼了,腿也走得動了,每次去醫保局都昂首挺胸的。

對於該類報表最重要的是尺寸設定好,我如今用AR開發報表第一件事就是去模板屬性中設定尺寸和列印規格,這是一種安全感。

總高度-(頁首+頁尾+表頭)的高度,再除以20就是detail資料行的高度,然後設定除detail外的其他物件每頁RepeatAll,就這麼簡單。

列印匯出

報表的展示呈現是一部分,但是列印和匯出也是不可分割的。通常原生的.Net控制元件工具中極少提供列印和匯出的功能,這樣就得寫一套列印方法,再寫一套匯出的方法。另外匯出還分多種形式,十個開發人員可能掌握十種匯出方法,都喜歡用自己熟悉的,孰優孰劣也會爭執個沒完,放開去做的話,專案就會很亂,HIS系統也遇到過這樣的階段。

但自從使用的 AR 之後就沒這樣的煩惱了, AR 繼承好了列印和匯出,就是幾行程式碼的事,簡直就是So—Easy ,媽媽再也不用擔心我的學習了。

下圖是區域報表的Excel匯出效果

所見即所得,完美!只有寫過Excel匯出方法的人員才知道這有多麼棒。

總結

HIS系統的開發歷時一年多也快接近尾聲了,葡萄城給予的幫助是巨大的,否則拖到明年專案也不見得完工。現如今遇到報表的需求,無論B/S還是C/S架構,會立即想到用 AR 怎樣進行設計,它已經不只是優秀的工具這麼簡單了,它是開發上的夥伴和搭檔,一同解決難題,並肩作戰。

對這個“夥伴”我瞭解的還不多,即便如此還解決了這麼多的問題,感謝AR背後的研發工程師,感謝葡萄城的運維人員!優秀的軟體用之於人,取之於人。你們的產品會成為我們的標杆,激勵我們前行。最後說一句:“ ActiveReports !你值得擁有”。

本文作者:飛迪資訊科技 - 張青

關於 葡萄城

賦能開發者!葡萄城公司成立於 1980 年,是全球領先的集開發工具、商業智慧解決方案、管理系統設計工具於一身的軟體和服務提供商。西安葡萄城是其在中國的分支機構,面向全球市場提供軟體研發服務,併為中國企業的資訊化提供國際先進的開發工具、軟體和研發諮詢服務。葡萄城的控制元件和軟體產品在國內外屢獲殊榮,在全球被數十萬家企業、學校和政府機構廣泛應用。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28298702/viewspace-2212633/,如需轉載,請註明出處,否則將追究法律責任。

相關文章