您好,登錄后才能下訂單哦!
前段時間接了個醫(yī)院管理系統(tǒng)的小項目,要求接入本市醫(yī)保接口,本市的醫(yī)保接口采用的是東軟的接口平臺,為動態(tài)庫版,只提供了幾個配置文件和幾個DLL動態(tài)庫,文檔中寫的不夠詳細,并沒有各種語言平臺的例子,只能一點一點的摸索,雖然自己做項目也做了七八年了,但也是第一次使用vb.net,就索性一邊做一邊摸索吧!
查遍了搜索引擎,也沒有找到相似的案例,只有自己琢磨,東軟提供的文檔內(nèi)容如下:
1.1 INIT 初始化函數(shù)
1.1.1 功能說明
系統(tǒng)啟動前調(diào)用init函數(shù)進行初始化,檢查配置文件等完成動態(tài)庫初始化準備工作。
1.1.2 語法規(guī)則 Syntax:
對外提供接口:
SiInterface.dll
Int INIT(char *pOutputInfo)
輸入?yún)?shù):無
輸出參數(shù):outputData char*
返回值: 成功 0 失敗 -1
1.1.3 出參格式: outputData char*
提示信息,如出錯則為錯誤提示,HIS開發(fā)商需提示出錯誤信息。
1.2 BUSINESS_HANDLE 業(yè)務(wù)函數(shù)
1.2.1 語法規(guī)則 Syntax:
對外提供接口:
SiInterface.dll
int WINAPI BUSINESS_HANDLE(const char* inputData,
char* outputData)
輸入?yún)?shù):inputData
輸出參數(shù):outputData char*
返回值: 成功 0 失敗 -1
輸入?yún)?shù)是以“^、$、|”分割的字符串
輸出也是以“^”“@、^、$、|”分割的字符串
調(diào)用輸入?yún)?shù)的函數(shù)經(jīng)常用,但輸出參數(shù)卻沒用過,并且所有對醫(yī)保平臺進行的操作都是通過BUSINESS_HANDLE函數(shù)來進行,這個問題琢磨了一個星期,終于弄明白了。
我的解決方法如下:
1、導(dǎo)入動態(tài)庫
<DllImport("SiInterface.dll", EntryPoint:="INIT")> Public Shared Function INIT(ByVal OutputInfo As String) As Integer
End Function
<DllImport("SiInterface.dll", EntryPoint:="BUSINESS_HANDLE")> Public Shared Function BUSINESS_HANDLE(ByVal inputData As String, <Out> ByVal outputData As StringBuilder) As Integer
End Function
2、調(diào)用動態(tài)庫
Dim inputdata As String '入?yún)?br /> Dim outputdata As New StringBuilder() ‘出參
outputdata.Capacity = 1024 ’由于調(diào)用出參需要分配內(nèi)存,現(xiàn)分配內(nèi)存空間用于存儲出參
inputdata="入?yún)⒆址?
BUSINESS_HANDLE(inputdata, outputdata)‘調(diào)用函數(shù)
此時執(zhí)行后,outputdata將會有醫(yī)保接口返回的信息
其中 Dim outputdata As New StringBuilder() 此句最重要,我試了好多重方法,都不好用,只有這句才能用。
希望能對碼農(nóng)同行們有些幫助。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。