vb.net中東軟醫保接口的調用

    前段時間接了個醫院管理系統的小項目,要求接入本市醫保接口,本市的醫保接口採用的是東軟的接口平臺,爲動態庫版,只提供了幾個配置文件和幾個DLL動態庫,文檔中寫的不夠詳細,並沒有各種語言平臺的例子,只能一點一點的摸索,雖然自己做項目也做了七八年了,但也是第一次使用vb.net,就索性一邊做一邊摸索吧!

    查遍了搜索引擎,也沒有找到相似的案例,只有自己琢磨,東軟提供的文檔內容如下:


1.1 INIT 初始化函數
1.1.1 功能說明
系統啓動前調用init函數進行初始化,檢查配置文件等完成動態庫初始化準備工作。
1.1.2 語法規則 Syntax:
對外提供接口:
SiInterface.dll
 Int INIT(char *pOutputInfo)
輸入參數:無
輸出參數:outputData char*
返回值: 成功 0    失敗 -1   
 
1.1.3 出參格式: outputData char*
提示信息,如出錯則爲錯誤提示,HIS開發商需提示出錯誤信息。


1.2 BUSINESS_HANDLE 業務函數
1.2.1 語法規則 Syntax:
對外提供接口:
SiInterface.dll
int WINAPI BUSINESS_HANDLE(const char* inputData,
                                 char* outputData)
輸入參數:inputData 
輸出參數:outputData char*
返回值: 成功 0    失敗 -1   
輸入參數是以“^、$、|”分割的字符串

輸出也是以“^”“@、^、$、|”分割的字符串


調用輸入參數的函數經常用,但輸出參數卻沒用過,並且所有對醫保平臺進行的操作都是通過BUSINESS_HANDLE函數來進行,這個問題琢磨了一個星期,終於弄明白了。

我的解決方法如下:

1、導入動態庫

<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、調用動態庫

  Dim inputdata As String '入參
        Dim outputdata As New StringBuilder() ‘出參

outputdata.Capacity = 1024 ’由於調用出參需要分配內存,現分配內存空間用於存儲出參

inputdata="入參字符串"

BUSINESS_HANDLE(inputdata, outputdata)‘調用函數

    此時執行後,outputdata將會有醫保接口返回的信息

    其中 Dim outputdata As New StringBuilder() 此句最重要,我試了好多重方法,都不好用,只有這句才能用。

    

    希望能對碼農同行們有些幫助。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章