系統基礎架構是CEF + C++,要求C++處理過的圖像傳給JS的報告,進行排版之后,在傳回C++的客戶端進行打印功能。
關于圖像數據傳遞的解決方案有兩個:1、將處理過的圖像傳給JS的服務器;2、借用JS,將直接傳遞圖像的二進制數據保存到JS服務器。生成報告涉及到圖像數據的一致性。醫生在報告中使用的圖像等數據,不論是那個等級的醫生拿到的數據必須是一致的。
無論使用那個解決方案,JS排版后都需要將數據(包含醫生的診斷與圖像數據)發給本地客戶端進行打印。這里會遇到打印圖片時和排版的不同問題。已經出現了文字字體的表現不一致問題。
優點:將處理過的圖片統一上傳到服務器,理論上保證每個醫生獲取的圖像數據是一致的。 缺點:1、醫生需求不同,所需的圖像不同。有的醫生需要原圖像,不需要修改過的圖像。根本上數據就不一致。需確定這些圖像是直接覆蓋原圖像,還是重新生成一組圖像。
涉及到重新生成圖像的格式以及保存也是一等大事。
1、自己將處理過的圖像直接傳給JS的服務器
后臺C++將數據傳到服務器,1】、可以給JS傳遞圖像的路徑。JS傳回打印網頁時,如果是傳遞路徑,需要再次下載圖像數據。然后就有涉及到排版問題。目前的打印是直接將獲取到的html轉換成pdf,之后打印。
2】、將數據傳完服務器后,JS可以自己根據圖像路徑解析圖像,然后將圖像的二進制數據直接傳遞給后臺打印。疑問1、不確定JS能否解析圖像數據;2、解析的圖像數據是否能完整傳遞;3、傳遞的速度是否讓人接受;4、接收到的圖像數據能否被正確轉化成pdf;3、正確轉化后,打印是否正確。
2、借用JS,將直接傳遞圖像的二進制數據保存到JS服務器
直接傳遞圖像的二進制數據,然后讓JS將圖像存儲到服務器。這樣就將后臺圖像數據保存的后臺問題交給前臺處理。JS是一個單線程的,很有可能會導致頁面卡死,進而有可能導致整個程序崩潰。
綜合考慮之后,確定將第一種方案較為適宜。
新聞熱點
疑難解答