蓝星新型农村合作医疗DLL接口规范.docx
《蓝星新型农村合作医疗DLL接口规范.docx》由会员分享,可在线阅读,更多相关《蓝星新型农村合作医疗DLL接口规范.docx(38页珍藏版)》请在冰豆网上搜索。
蓝星新型农村合作医疗DLL接口规范
农村合作医疗转诊接口
实
施
方
案
荆州普爱康复医院
2014年3月
变更说明
时间
修改人员
函数
修改说明
2009-02-12
LLMCW
SaveInHosInfo
增加AsExpenseKind参数
21--普通住院
22--单病种住院
23—正常分娩住院
29—其他住院
90—其他
2009-02-25
ProcessFeeList
整理直接写前置数据库明细后的处理事务
2009-05-08
更新本结算程序
LxHzInterface.ini的[DataBaseInfo]
增加DEBUG=YES
(本地结算要配置本地连的各区空数据库,否则不能进行本地结算)
2009-10-26
更新单病种结算
入院登记SaveInHosInfo增加参数AsLimitIllCode单病种编码
当AsExpenseKind=22时不能为空
GetParmItem函数增加参加参数为6
6单病种信息表
新农合病人结算、预结算PreClearing返回值第7值为医院承担费用
注意:
示例部分未做调动,请参照函数说明的参数
目录
1.目的4
2.方案介绍4
2.1.方案图解4
2.2.医院系统需要做的改造工作4
2.3.医院开发商需要提供的小应用4
3.医院管理信息系统改造实施详细说明5
住院部分5
4.新农合接口函数说明6
4.1.函数说明6
4.1.1.动态链接库初始化函数7
4.1.2.获取病人信息7
4.1.3.入院登记8
4.1.4.费用明细录入9
4.1.5.新农合病人结算、预结算10
4.1.6.取消住院结算10
4.1.7.读取住院结算信息和审批表11
4.1.8.获取已审批通过的药品和诊疗项目列表11
4.1.9.读取疾病信息表和报销公式12
4.2.函数示例错误!
未定义书签。
4.2.1.DELPHI引用及示例19
4.2.2.POWERBUILDER引用及示例20
1.目的
为了更好的加快城市新型农村合作医疗建设,对于新农合报销算法的准确性、可控性、可维护性和安全性等多方面的考虑,在对医院原有系统的改造的过程中,我们准备采用开发新农合报销算法的动态链接库的办法来解决。
2.方案介绍
2.1.方案图解
报销计算办法DLL
传送
HIS系统数据库
新农合前置机数据库
计算结果
医院收费终端计算请求发起
报销计算结果写入HIS系统中
2.2.医院系统需要做的改造工作
●首先医院需要根据新农合政策的需要,按照我们所提供的新农合的接口改造医院的HIS系统,使其HIS系统能够适应新农合报销的需要。
●医院需要根据合管办提供的三个基本目录,包括病种信息、药品信息、诊疗项目信息建立与医院内码对应的对照信息。
●对于那些无法找到对应关系的收费项目信息,医院按照新农合中心费用分类编码,维护收费项目信息。
●此动态链接库的方式只适合于Windows98以上平台的HIS系统。
2.3.医院开发商需要提供的小应用
维护一个对照表,每个都是一对多的关系.也就是在原表基础上加新农合对应编码。
●病种信息对照表
●药品信息对照表
●诊疗项目对照表
●没有对应关系的收费项目信息,按照合管办的费用分类办法修改收费项目信息
蓝星新农合客户端提供相应的对应工作程序,对应完成后上报后提交合管办进行对应审核。
2.4.新农合转诊服务器一台
操作系统:
WIN2K/2KSERVER/XP/2003
硬件要求:
PIIII1.7G/512M/40G
数据库要求:
WINSQLSERVER2000
网络要求:
内网通(能访问HIS)并且外网通(能访问新农合),最好是单独能上网的专线(1。
5M以上)。
网络安全:
软件防火墙/硬件防火墙/网闸
3.医院管理信息系统改造实施详细说明
3.1.住院部分
1、获取病人信息
根据病人提供的合作医疗证号进行查询,选择病人后返回该病人的个人编号、姓名、性别、出生日期等相关信息。
2、入院登记(入院信息修改)
提交合作医疗证及个人编号和获取的就诊号进行住院病人的就诊登记。
如因退合或者被列入黑名单,则可采用自费方法处理。
3、药品、诊疗明细录入
调用接口函数“费用明细录入”把划价信息写入新农合前置机中。
4、出院结算(0:
预结算;1:
结算)
进行入院登记收费前必须保证已经进行了新合入院就诊登记。
写入费用结束后调用“新农合病人结算、预结算”,生成新农合结算信息。
5、取消费用结算
将已出院的病人取消费用结算,重新值为新合在院病人
6、取病人新合结算信息和审批表
取已经结算病人的报销结算单和新合报销审批表信息。
3.2.离线结算
1.在LxHzInterface.ini的[DataBaseInfo]
增加DEBUG=YES
(本地结算要配置本地连的各区空数据库,否则不能进行本地结算)
2.打开前置机表P_hiOrgSet
IP
DataBaseName
UserName
PassWord
指向本地结算的各区数据库表
4.新农合接口函数说明
动态链接库名称:
LXSETUP.INI
[Synch]
Host=192.168.50.117[前置服务器的IP地址]
Port=1899[前置服务器开放的端口号,可自定义]
Remaks:
注意服务端防火墙对端口号的开放状态,前置机和客户端的端口号必须保持一致
LxClient.dll
DataBuffer说明:
DataBuffer为函数返回参数,Char*类型,如果函数执行成功,返回值多个参数,使用‘|’分割;如果执行失败,那么DataBuffer中含有错误详细信息。
日期类型格式:
yyyy-mm-ddhh:
mm:
ss,如果没有时间,则后6位均为0。
返回值:
成功=0失败<0
输出是以“$$、|、##、@@”分割的字符串
以“|”分隔,详见每个交易的参数表,分项之间使用管道分割符‘|’分割,最后必须要以管道分割符号‘|’结尾,不以‘|’开始。
如果入参为多条记录,记录之间以‘$$’分割,不同数据项之间以‘|’分割
4.1.函数说明
函数列表
序号
函数名
代码
1
通讯测试函数(与前置机)可不用
InitDLL
2
获取病人信息
GetHzPersonInfo
3
就诊登记(住院、住院修改)
SaveInHosInfo
4
费用明细录入
SaveFreeList
5
费用预结算/结算(住院)
PreClearing
6
取消住院结算
CanceCalcFee
7
读取住院结算信息和审批表
GetCalcFee
8
获取已审批通过的药品和诊疗项目列表
GetCheckItem
9
读取基本信息(疾病信息表和报销公式)
GetParmItem
10
取消入院登记信息(包括费用明细)
DeleteHosInfo
11
上传或取消医院项目对应编码
UpdateInterItem
12
上传明细后的处理
ProcessFeeList
13
门诊登记
mz_SaveInfo
14
门诊登记明细
mz_SaveInfoList
15
删除门诊登记
mz_DelInfo
16
获取结算报销费用信息
mz_GetCalcFee
17
读卡(新农合医疗卡)
User_ReadCard
18
测试串口连接
TestComConn
19
转诊入院登记
zzSaveInHosInfo
20
获取转诊区划信息
GetXZQHinfo_zz
21
获取区划内转诊病人信息
GetZzinfo_zz
22
Remarks:
红色部分为必选函数
在所有函数中不存在唯一的住院号,唯一值是CoopMedCode+IDNo+DiagNo,即农户新合医疗证号+个人序号+就诊序号
4.1.1.动态链接库初始化函数
syntax:
intInitDLL(Char*DataBuffer)
Parameter:
参数
参数
输入/输出
参数名
是否可空
类型
DataBuffer
OUT
返回信息
Return(s):
0-SUCCESS
-1-FAILURE
Remarks:
此函数主要是测试前置机是否启动,非编程必用函数。
4.1.2.获取病人信息
Syntax:
intGetHzPersonInfo(char*AsOrganID,char*AsCoopMedCode,Char*DataBuffer);
Parameter
参数
参数
输入/输出
参数名
是否可空
类型
AsOrganID
IN
转诊区划
N
VARCHAR(6)
AsCoopMedCode
IN
合作医疗证号
N
VARCHAR(20)
DataBuffer
OUT
返回信息
Return(s):
0–Succuss
-1-Failure
DataBuffer说明:
0户编号|1人员序号|2区划代码 |3人员姓名|4拼音码 |5五笔码 |6性别|7出生日期|8家庭住址 |9亲属关系代码 |10亲属关系名称 |11身份证号|12承办人代码 |13承办人姓名 |14户属性[1-一般农户;2-五保户;3-贫困户;4-特困户;5-烈军属;9-其他;24表示既是五保户又是特困户] |15是否户主[1-是;2-否] |16是否参合[1-是;2-否] |17人员状态[1-正常;2-迁入;4-迁出;4-死亡] |18异动日期 |19参合年份 |20保留|21保留|22保留|23保留|24保留|25保留|26保留
4.1.3.入院登记[住院]
Syntax:
IntSaveInHosInfo(char*AsOrganID,char*aAreaCode,char*AsCoopMedCode,char*AsExpressionsID;IntAiIDNo;char*AsIllCode,char*AsIllName,char*AInDate,char*Adke,char*AdLimitDef,char*AsDoctorName,char*AsPatientId,char*AsFlag,char*AiDiagNo,char*AsExpenseKind,AsLimitIllCode,char*DataBuffer)
Parameter:
参数
输入/输出
参数名
是否可空
类型
AsOrganID
IN
转诊区划
N
VARCHAR(6)
aAreaCode
IN
病人所属区划
N
VARCHAR(12)
AsCoopMedCode
IN
户编号
N
VARCHAR(18)
AsExpressionsID
IN
报销公式ID
N
VARCHAR(4)
AiIDNo
IN
个人序号
N
Integer
AsIllCode
IN
入院诊断(合管办提供的疾病代码)
N
VARCHAR(10)
AsIllName
IN
入院诊断(合管办提供的疾病名称)
N
VARCHAR(40)
AInDate
IN
入院日期
N
(YYYY-MM-DDHH:
MM:
SS)
Adke
IN
扣额 –
报销公式没有调整时:
扣额=‘’
只调整起付线:
扣额=调整后起付金额+$
只调整报销比率:
扣额=$+调整后报销比率
两个都调整:
扣额=调整后起付金额+$+调整后报销比率
Y
VARCHAR(12)
AdLimitDef
IN
限额定义(0-不限;1-限额;2-定额
第一位为上面的三个字符(0、1、2),从第二位开始为金额,金额不为空,为空时补0)
N
VARCHAR(10)
AsDoctorName
IN
主治医生
Y
VARCHAR(12)
AsPatientId
IN
住院号
Y
VARCHAR(12)
AsFlag
IN
是入院还是修改住院信息(0-入院登记,DATABUFFER返回就诊次数;1-住院信息修改,DATABUFFER为输入就诊次数)
N
VARCHAR
(1)
AiDiagNo
IN
就诊次数
Y当ASFLAG=1,不能为空
VARCHAR
(1)
AsExpenseKind
IN
21--普通住院
22--单病种住院
23—正常分娩住院
29—其他住院
90—其他
Y
VARCHAR
(2)
AsLimitIllCode
IN
单病种疾病编码
Y
VARCHAR(4)当AsExpenseKind=22时不能为空
DataBuffer
OUT
返回值
VARCHAR(100)
Returns:
0–SUCCESS
-1–FAILURE
ReMarks:
当ASFLAG=0增加状态时,DataBuffer返回就诊次数,当ASFLAG=1时返回错误信息。
4.1.4.费用明细录入[住院]
Syntax:
IntSaveFreeList(char*AsOrganID,char*AsCoopMedCode,IntAiIDNo,IntAiDiagNo,char*AsItemCode,char*AsHosCode,char*ADInputDate,doubleAfPrice,doubleAfNum,doubleAfFee,char*AsOfficeName,char*AsDoctor,char*AsCompound,char*DataBuffer)
Parameter:
参数
输入/输出
参数名
是否可空
类型
AsOrganID
IN
转诊区划
N
VARCHAR(6)
AsCoopMedCode
IN
合作医疗证号
N
VARCHAR(20)
AiIDNo
IN
户个人序号
N
Integer
AiDiagNo
IN
就医序号
N
Integer
AsItemCode
IN
新合项目编码
Y
VARCHAR(20)
AsHosCode
IN
医院项目编码
N
VARCHAR(20)
ADInputDate
IN
录入时间
N
(YYYY-MM-DDHH:
MM:
SS)
AfPrice
IN
单价
N
Double
AfNum
IN
数量
N
Double
AfFee
IN
金额
N
Double
AsUnit
IN
单位量
Y
VARCHAR(10)
AsOfficeName
IN
科室名称
N
VARCHAR(20)
AsDoctor
IN
医生
Y
VARCHAR(20)
AsCompound
IN
单/复方处方标致
N
VARCHAR
(1)
DataBuffer
OUT
Y
Remarks:
Compound参数是在FeeType=2时才生效。
如果是草药,则需要判断该草药是复方还是单味,如果是单味,则Compound传1;如果是复方,则Compound传0;
Returns:
0–SUCCESS
-1–FAILURE
4.1.5.新农合病人结算、预结算[住院]
Syntax:
IntPreClearing(char*AsOrganID,char*AsCoopMedCode,intAiIDNo,intAiDiagNo,intAPreClearFlag,intADayCount,char*AOutDate,char*AJsDate,char*AOutStatus,char*DataBuffer);
参数
输入/输出
参数名
是否可空
类型
AsOrganID
IN
转诊区划
N
VARCHAR(6)
AsCoopMedCode
IN
合作医疗证号
N
VARCHAR(20)
AiIDNo
IN
户个人序号
N
Integer
AiDiagNo
IN
就医序号
N
Integer
APreClearFlag
IN
预/结算标致(0-预结算,1-结算)
N
Integer
ADayCount
IN
住院天数
N
Integer
AOutDate
IN
出院时间
N
(YYYY-MM-DDHH:
MM:
SS)
AJsDate
IN
结算时间
N
(YYYY-MM-DDHH:
MM:
SS)
AOutStatus
IN
出院状态(1-治愈;2-好转;3-未愈;4-死亡;9-其他)
N
VARCHAR
(1)
DataBuffer
OUT
Y
Parameter:
结算输出(DataBuffer):
0医疗费总额|1可报销费用 |2报销费用 |3医院减免|4民政补助|5保险金额|6医院承担金额|7保留|8保留|年度报销总费用(包涵本次)
注意:
医院发票上要反映医院减免,医院承担费用
Remarks:
病人支付费用=医疗费总额-医院减免-医院承担-报销费用
4.1.6.取消住院结算[住院]
Syntax:
intCanceCalcFee(char*AsOrganID,char*AsCoopMedCode,intAiIDNo,intAiDiagNo,char*DataBuffer)
Parameter:
参数
输入/输出
参数名
是否可空
类型
AsOrganID
IN
转诊区划
N
VARCHAR(6)
AsCoopMedCode
IN
合作医疗证号
N
VARCHAR(20)
AiIDNo
IN
户个人序号
N
Integer
AiDiagNo
IN
就医序号
N
Integer
DataBuffer
OUT
Y
Return(s):
0–SUCCESS
-1—FAILURE
4.1.7.读取住院结算信息和审批表[住院]
Syntax:
intGetCalcFee(char*AsOrganID,char*AsCoopMedCode,intAiIDNo,intAiDiagNo,char*DataBuffer);
Parameter:
参数
输入/输出
参数名
是否可空
类型
AsOrganID
IN
行政区划
N
VARCHAR(6)
AsCoopMedCode
IN
合作医疗证号
N
VARCHAR(20)
AiIDNo
IN
户个人序号
N
Integer
AiDiagNo
IN
就医序号
N
Integer
DataBuffer
OUT
Y
Return(s):
0–SUCCESS
-1—FAILURE
Remarks:
第一段--基本信息
0医疗证号|1户主姓名|2患者姓名|3性别|4出生年月|5与户主关系|6住址|7经治医院|8入院时间|9出院时间|10住院天数|11住院号|12疾病名称|13年度入院次数|14总费用|15可报销费用|16报销费用|17保留|18保留|19保留|20保留|21保留|22保留
第二段--住院医疗费用
费用编码|费用名称|费用金额|纳入补偿费用|报销费用
第三段—报销公式及分段线核算
分段线@@可报销费用@@报销比例@@报销费用
4.1.8.获取已审批通过的药品和诊疗项目列表
Syntax:
intGetCheckItem(char*AsOrganID);
Parameter:
参数
输入/输出
参数名
是否可空
类型
AsOrganID
IN
转诊区划
N
VARCHAR(6)
Return(s):
0–SUCCESS
-1—FAILURE
Remarks:
当医院有新项目增加后,在新合软件中进行对应经审批后,请及时运行此函数,否则在‘新合费用明细录入’中返回错误值。
注意此函数不要频繁使用。
4.1.9.读取转诊基本信息
Syntax:
intGetParmItem(char*AsOrganID,char*Askind,char*DataBuffer);
Parameter:
参数
输入/输出
参数名
是否可空
类型
AsOrganID
IN
转诊区划
N
VARCHAR(6)
Askind
IN
类型1:
疾病代码表2:
报销公式目录3项目目录4已审核项目5转诊区域6单病种信息表
N
VARCHAR
(1)
DataBuffer
OUT
错误返回信息
Return(s):
0–SUCCESS
-1—FAILURE
Remarks:
该函数运行后在当前目录的\DOWNLOAD目录中生成以ILL+年月日时分秒,BXGS+年月日时分秒,ITEM+年月日时分秒,BXITEM+年月日时分秒和AREA+年月日时分秒为开头的TXT文本
文本中字符之间‘用软换行符#10’分隔
文本文件字段顺序说明:
1:
疾病代码表:
字段顺序:
(IllCode疾病编号,IllName疾病名称,Spell拼音码,FiveStrokes五笔码)
2:
报销公式目录:
字段顺序:
(ExpressionsId公式编号,ExpressionsName公式名称,grade等级,kind补偿类别【0不限,1限额,2定额】,typefee限定金额)
3项目目录的字段顺序:
(
ItemCode项目编号,ItemName项目名称,Unit单位,WipeOut报销标志(1报销,2不报销),Gg规格,
Cd产地,Jx剂型,Remark备注,SpName别名,Price1单价1,LimitPrice1限价1,Price2单价2,
LimitPrice2限价2,Price3单价3,LimitPrice3限价3,Valid可用标志(1可用,2停用),Spell拼音码,
FiveStrokes五笔码,GradeToPrice等级限价,Grade等级,WjCode,FeeTypeCode类型编号,
FeeTypeName类型名称)
4已审核项目字段顺序(OrganId区划编号,hoscode医院项目号,hositem医院项目名称