码迷,mamicode.com
首页 > Web开发 > 详细

vb.net中东软医保接口的调用

时间:2014-10-29 19:32:20      阅读:756      评论:0      收藏:0      [点我收藏+]

标签:东软医保   配置文件   医院管理   提示信息   siinterface   

    前段时间接了个医院管理系统的小项目,要求接入本市医保接口,本市的医保接口采用的是东软的接口平台,为动态库版,只提供了几个配置文件和几个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() 此句最重要,我试了好多重方法,都不好用,只有这句才能用。

    

    希望能对码农同行们有些帮助。



本文出自 “雨露” 博客,请务必保留此出处http://yushihai.blog.51cto.com/979778/1569357

vb.net中东软医保接口的调用

标签:东软医保   配置文件   医院管理   提示信息   siinterface   

原文地址:http://yushihai.blog.51cto.com/979778/1569357

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!