晶奇新型农村合作医疗接口规范.docx
《晶奇新型农村合作医疗接口规范.docx》由会员分享,可在线阅读,更多相关《晶奇新型农村合作医疗接口规范.docx(36页珍藏版)》请在冰豆网上搜索。
晶奇新型农村合作医疗接口规范
晶奇新型农村合作医疗接口
参
考
手
册
合肥晶奇电子科技有限公司
2008年01月
目录
1.目的3
2.方案的介绍3
2.1.方案图解3
2.2.医院系统需要做的改造工作3
2.3.医院开发商还需要提供的小应用4
3.医院管理信息系统改造实施详细说明4
3.1.门诊部分4
3.2.住院部分5
4.新农合接口函数说明6
4.1.公有函数说明6
4.1.1.动态链接库初始化函数7
4.1.2.获得就诊号7
4.1.3.获取病人信息8
4.1.4.就诊登记8
4.1.5.费用明细录入10
4.1.6.新农合病人结算、预结算11
4.1.7.住院结算申请13
4.1.8.结算费用冲销13
4.1.9.获取不可报销的药品和诊疗项目列表14
4.1.10.明细取消传送14
4.1.11.字符串分解函数15
4.1.12.批量传输费用明细准备15
4.1.13.批量传输费用明细16
4.1.14.删除本地的数据17
4.1.15.医院单条上传项目对照信息17
4.1.16.取得单条目录对照结果18
4.1.17.判断是否同疾病再次住院19
4.1.18.同种疾病再次住院传入19
4.1.19.费用明细录入220
4.1.20.下载最新的药品、诊疗、以及ICD10码22
4.1.21.出院确认(结报制)22
4.1.22.取消出院确认(结报制)23
4.1.23.住院分段信息获取24
4.1.24.住院单病种信息上传24
4.1.25.下载单病种治疗方式25
4.1.26.获取病人费用明细25
1.目的
为了更好的加快项城市新型农村合作医疗建设,对于新农合报销算法的准确性、可控性、可维护性和安全性等多方面的考虑,在对医院原有系统的改造的过程中,我们准备采用开发新农合报销算法的动态链接库的办法来解决。
2.方案的介绍
2.1.方案图解
传送
HIS系统数据库
新农合前置机数据库
报销计算办法DLL
计算结果
医院收费终端计算请求发起
报销计算结果写入HIS系统中
2.2.医院系统需要做的改造工作
●首先医院需要根据新农合政策的需要,按照我们所提供的新农合的接口改造医院的HIS系统,使其HIS系统能够适应新农合报销的需要。
●医院需要根据合管办提供的三个基本目录,包括病种信息、药品信息、诊疗项目信息建立与医院内码对应的对照信息。
●对于那些无法找到对应关系的收费项目信息,医院按照新农合中心费用分类编码,维护收费项目信息。
●此动态链接库的方式只适合于Windows98以上平台的HIS系统。
2.3.医院开发商还需要提供的小应用
维护三个对照表,每个都是一对多的关系.也就是在原表基础上加新农合对应编码。
●病种信息对照表
●药品信息对照表
●诊疗项目对照表
●没有对应关系的收费项目信息,按照合管办的费用分类办法修改收费项目信息
3.医院管理信息系统改造实施详细说明
3.1.门诊部分
1、获得就诊号
就诊号为本次新农合病人就诊报销的唯一有效编号,可重复获取,一次交易一个就诊号。
进行门诊就诊登记前必须先从合管办中心服务器获得就诊号。
2、获取病人信息
根据病人提供的合作医疗证号进行查询,选择病人后返回该病人的个人编号、姓名、性别、出生日期等相关信息。
3、门诊就诊登记
提交个人编号和获取的就诊号进行门诊病人的就诊登记。
4、门诊划价
如划价与收费不同时操作,则此时的划价因不发生实际费用可不调用新农合接口。
也可调用接口函数“费用明细录入”把划价信息写入新农合前置机中。
5、门诊收费
进行门诊收费前必须保证已经进行了门诊就诊登记。
在原系统“确定”或“存盘”按钮中,如门诊划价时没有调用“费用明细录入”,则此时要求循环调用“费用明细录入”把该病人当前没有结算的全部的处方信息写入新农合前置机中。
写入处方结束后调用“新农合病人结算、预结算”,生成新农合结算信息。
6、门诊退费
发生门诊结算单退费时,调用“新农合病人结算、预结算”入口参数为冲消类型,对前面的结算进行返冲。
3.2.住院部分
1、2请参见门诊
3、入院登记
提交个人编号和获取的就诊号进行住院病人的就诊登记。
如因退合或者被列入黑名单,则可采用自费方法处理。
4、药品、诊疗明细录入
调用接口函数“费用明细录入”把划价信息写入新农合前置机中。
5、提交结算申请
进行新农合出院结算前,必须先向合管办提交结算申请,等待合管办审核通过后,方可以进行出院结算,否则在调用出院结算函数时系统会返回审核不通过原因。
进行出院预结算时则不需要进行结算申请。
6、出院结算
参见门诊收费。
7、冲消出院结算
参见门诊退费。
进行冲消结算时如果病人已经出院则必须先进行出院召回。
8、出院登记
必须先进行出院结算。
调用接口函数“就诊登记”入口参数为出院类型,把出院信息写入新农合前置机中。
9、出院召回
调用接口函数“就诊登记”入口参数为回归类型,把出院信息写入新农合前置机中。
10、取消传送
在需要时可以将已经传送至合管办中心端的明细记录全部冲消,以方便重新传送。
11、取消入院登记
取消入院登记可以冲消该病人本次在合管办中心的入院登记。
只有在登记病人没有进行过出院结算并且上传的费用明细时才可以进行此操作。
4.新农合接口函数说明
动态链接库名称:
HISInteface.dll
DataBuffer说明:
DataBuffer为函数返回参数,Char*类型,如果函数执行成功,返回值多个参数,使用‘|’分割;如果执行失败,那么DataBuffer中含有错误详细信息。
日期类型格式:
yyyy-mm-ddhh:
mm:
ss,如果没有时间,则后6位均为0。
4.1.公有函数说明
函数列表
序号
函数名
代码
1
动态链接库初始化函数
InitDLL
2
获得就诊号
GetRecCode
3
获取病人信息
GetPersonInfo
4
就诊登记(门诊、住院、住院修改、回归、出院、冲消)
InpatReg
5
费用明细录入
WriteFeeDetail
6
费用预结算/结算(门诊、住院)
ExpenseCalc
7
住院结算申请
Expensereq
8
报补费用冲销
CancelSettleFee
9
获取不可报销的药品和诊疗项目列表
GetNotFeeDetail
10
明细取消传送
CancelFee
11
字符串分解函数
GetPosValue
12
批量传输费用明细准备
BatchFeeDetailPrepare
13
批量传输费用明细
BatchFeeDetail
14
删除本地的数据
DeleteLocalFeeDetail
15
医院单条上传项目对照信息
ApplyItemContras
16
取得单条目录对照审核结果
GetContrasResult
17
判断是否同疾病再次住院
SameDiseaseJudge
18
同种疾病再次住院传入
InputJudge
19
费用明细录入2
WriteFeeDetail_2
20
下载药品、诊疗、ICD10码
UpdateMLB
21
出院确认(结报制)
InpatLeaveAffirm
22
取消出院确认(结报制)
InpatUnLeaveAffirm
23
住院分段信息获
getGradeList
24
住院单病种信息上传
InpatDiagnosisUpdate
25
下载单病种治疗方式
DownTreat
26
获取病人费用明细
GetFeeDetail
4.1.1.动态链接库初始化函数
syntax:
intInitDLL()
Parameter:
none;
Return(s):
0-SUCCESS
-1-FAILURE
Remarks;
应用起动时,必须调用此函数对DLL所用到的资源进行初始化,以便分配相关句柄.
4.1.2.获得就诊号
Syntax:
intGetRecCode(Char*DataBuffer)
Parameter
参数
参数
输入/输出
参数名
是否可空
类型
DataBuffer
OUT
返回信息
Return(s):
0–Succuss
-1-Failure
Remarks:
进行门诊和住院就诊登记前必须先获得就诊号varchar(15).
4.1.3.获取病人信息
Syntax:
intGetPersonInfo(char*CardID,Char*DataBuffer);
Parameter
参数
参数
输入/输出
参数名
是否可空
类型
CardID
IN
就诊证编号
N
VARCHAR(10)
DataBuffer
OUT
返回信息
Return(s):
0–Succuss
-1-Failure
DataBuffer说明:
0户编号|1人员编号|2就诊证号|3人员姓名|4性别|5出生日期|6身份证号|7联系电话|8地址|9IC卡号|10参合类型|11IC卡状态|12参合年份|13户主|14保留|15保留
4.1.4.就诊登记
Syntax:
IntInpatReg(intRegType,char*RecCode,char*PersonNo,char*DiseaseNo1,
char*DiseaseNo2,char*DiseaseNo3,char*RegDate,char*InpatOperator,
char*LeaveDate,char*LeaveOperator,char*department,char*marriage,inttransfer,char*transferNO,char*LDiseaseNo1,char*LdiseaseNo2,char*LdiseaseNo3,char*Disease1,char*Disease2,char*Disease3,char*LDisease1,char*Ldisease2,char*Ldisease3,char*LReason,char*InHosNO,char*BedNO,intInpatCount,char*ErrorMsg);
Parameter:
参数
输入/输出
参数名
是否可空
类型
RegType
IN
登记类型:
0:
入院修改;1:
门诊2:
入院3:
出院4:
回归9:
入院冲消11:
慢病登记12:
专科慢病登记
N
NUMBER
(1)
RecCode
IN
就诊号(通过GetRecCode获得的)
N
VARCHAR(15)
PersonNo
IN
个人编号
N
VARCHAR(15)
DiseaseNo1
IN
入院主诊断(合管办提供的疾病名称)
入院登记不能为空
VARCHAR(60)
DiseaseNo2
IN
入院次诊断(合管办提供的疾病名称)
VARCHAR(60)
DiseaseNo3
IN
入院三诊断(合管办提供的疾病名称)
VARCHAR(60)
RegDate
IN
入院日期
入院登记不能为空
(YYYY-MM-DDHH:
MM:
SS)
InpatOperator
IN
入院登记人/门诊就诊登记人
入院登记不能为空
VARCHAR(20)
LeaveDate
IN
出院日期
出院登记不能为空
(YYYY-MM-DDHH:
MM:
SS)
LeaveOperator
IN
出院登记人(回归、冲消登记人)
出院登记不能为空
VARCHAR(20)
department
IN
住院科室
VARCHAR(20)
marriage
IN
电话号码
VARCHAR(20)
transfer
IN
是否转院(0、1)
N
NUMBER
transferNO
IN
转诊单号
当transfer=1,不能为空
VARCHAR(20)
LDiseaseNo1
IN
出院主诊断(合管办提供的疾病名称)
出院登记不能为空
VARCHAR(60)
LdiseaseNo2
IN
出院次诊断(合管办提供的疾病名称)
VARCHAR(60)
LdiseaseNo3
IN
出院三诊断(合管办提供的疾病名称)
VARCHAR60)
Disease1
IN
入院病情(入院主诊断对应的疾病编码)
入院登记不能为空
VARCHAR(60)
Disease2
IN
入院病情(入院次诊断对应的疾病编码)
VARCHAR(60)
Disease3
IN
入院病情(入院三诊断对应的疾病编码)
VARCHAR(60)
LDisease1
IN
出院病情(出院主诊断对应的疾病编码)
出院登记不能为空
VARCHAR(60)
LDisease2
IN
出院病情(出院次诊断对应的疾病编码)
VARCHAR(60)
LDisease3
IN
出院病情(出院三诊断对应的疾病编码)
VARCHAR(60)
LReason
IN
出院原因(康复;转院;死亡;其他)
出院登记不能为空
VARCHAR(4)
InHosNO
IN
病人的住院号
不能为空
Varchar(15)
BedNO
In
病人的床位号(没有床位管理的医院传入空字符串即可)
Varchar(15)
InpatCount
OUT
本年度住院次数
NUMBER
ErrorMsg
OUT
出错信息或者提示信息
Returns:
0–SUCCESS
-1-FAILURE
4.1.5.费用明细录入
Syntax:
IntWriteFeeDetail(char*RecCode,char*CenterCode,char*ItemName,
char*InternalCode,char*InternalName,char*spec,char*DoseType,
doubleUnitPrice,doubleQuantity,doubleAmount,double*Dosage,
char*Frequency,char*Usage,char*Operator,char*OpDate,
intFeeType,char*FormularyNo,char*Doctor,char*Compound,
char*ErrorMsg);
Parameter:
参数
输入/输出
参数名
是否可空
类型
RecCode
IN
就诊号
N
VARCHAR(15)
CenterCode
IN
收费项目--中心编码
N
VARCHAR(20)
ItemName
IN
收费项目--中心名称
N
VARCHAR(70)
InternalCode
IN
收费项目--医院编码
N
VARCHAR(20)
InternalName
IN
收费项目--医院名称
N
VARCHAR(70)
spec
IN
规格
VARCHAR(50)
DoseType
IN
剂型
VARCHAR(50)
UnitPrice
IN
单价
N
NUMBER(12,5)
Quantity
IN
数量
N
NUMBER(7,2)
Amount
IN
金额
N
NUMBER(12,2)
Dosage
IN
一次用量
NUMBER(5,2)
Frequency
IN
频次
VARCHAR(50)
Usage
IN
用法
VARCHAR(20)
Operator
IN
登记人
N
VARCHAR(20)
OpDate
IN
登记日期
N
(YYYY-MM-DDHH:
MM:
SS)
FeeType
IN
费用类别(0西药1成药2草药6特殊诊疗材料9诊疗项目)
N
NUMBER
(1)
FormularyNo
IN
医院处方号
VARCHAR(15)
Doctor
IN
医生名称
VARCHAR(20)
Compound
IN
是否复方(1单味2复方)
VARCHAR
(1)
ErrorMsg
OUT
出错信息或者提示信息
Remarks:
Compound参数是在FeeType=2时才生效。
如果是草药,则需要判断该草药是复方还是单味,如果是单味,则Compound传1;如果是复方,则Compound传2;
单价最好保留三位小数,总金额保留两位小数。
Returns:
0–SUCCESS
-1–FAILURE
4.1.6.新农合病人结算、预结算
Syntax:
IntExpenseCalc(char*RecCode,intInpatType,intExpenseType,char*Operator,
char*ExpenseDate,char*RegDate,char*LeaveDate,char*DiseaseNo1,char*LDiseaseNo1,char*BillNo,DoubleHomePay,
intCalcType,char*DataBuffer);
Parameter:
参数
输入/输出
参数名
是否可空
类型
RecCode
IN
就诊号
N
VARCHAR(15)
InpatType
IN
就诊类型1:
门诊2:
住院3:
转院
N
NUMBER
(1)
ExpenseType
IN
结算类型0:
门诊结算1:
正常出院结算3:
住院平产4:
住院剖腹产9:
慢病结算138:
专科慢性病门诊
N
NUMBER
(2)
Operator
IN
登记人
N
VARCHAR(20)
ExpenseDate
IN
结算时间
N
(YYYY-MM-DDHH:
MM:
SS)
RegDate
IN
入院时间
N
(YYYY-MM-DDHH:
MM:
SS)
LeaveDate
IN
出院时间
N
(YYYY-MM-DDHH:
MM:
SS)
DiseaseNo1
IN
入院主诊断
N
VARCHAR(60)
LDiseaseNo1
IN
出院主诊断
N
VARCHAR(60)
BillNo
IN
医院单据号(发票号)
N
VARCHAR(10)
HomePay
IN
本次门诊账户递减金额(门诊结算是传)
N
NUMBER(7,2)
CalcType
IN
结算类别
1:
预结算2:
正式结算
N
NUMBER
(1)
DataBuffer
OUT
结算结果(结算执行成功)或出错原因(结算执行失败)
结算输出(DataBuffer):
0医疗费总额|1基金支付|2现金支付|
3个人支付|4起付金额|5帐户支付|
6本年度基金累计支付|7本次支付前帐户余额|8可报销总金额|9本次支付后帐户余额
|10自费金额|11自付比例金额|12中心单据号(报补单号)|13户主名称|14外院检查总费用|15外院检查补偿费用|16外院检查可报销费用|17部分进统筹项目总金额|18中医项目可报销金额|19中医项目报销金额|20基本药物金额|21基本药物报销金额|22单病种费用定额|23医疗机构承担费用|24民政救助补偿金额|25是否保底补偿(0:
否1:
是)|26药品费用|27可报销药品费用|28一般诊疗费补偿|29大病再补偿金额|30预留
Remarks:
个人支付中含起付金额,本年度基金累计支付中含本次基金支付,为避免因舍入导致的小数误差,建议his开发商不要直接取现金支付,而应采用反算法即:
医疗费总额=基金支付+帐户支付+医疗机构承担费用+现金支付。
在调用本函数进行结算前,应判断his系统中发生的费用总额与传送至合管办中心端服务器的已传送费用总额是否相等。
基金支付为本次补偿总金额,其中包括外院检查补偿费用、中医项目报销金额、基本药物报销金额、民政救助补偿金额、一般诊疗费补偿、大病再补偿金额。
医疗费总额只是本院发生的总费用,不包括院外检查总费用。
医疗费总额=基金支付+帐户支付+医疗机构承担费用+现金支付
4.1.7.住院结算申请
Syntax:
intExpensereq(char*RecCode,intExpenseType,char*DataBuffer);
Parameter:
参数
输入/输出
参数名
是否可空
类型
RecCode
IN
就诊号
N
VARCHAR(15)
ExpenseType
IN
结算类型0:
门诊结算1:
正常出院结算3:
住院平产4:
住院剖腹产19:
单病种结算
N
NUMBER
(2)
DataBuffer
OUT
错误返回信息
Return(s):
0–SUCCESS
-1—FAILURE
4.1.8.结算费用冲销
Syntax:
intCancelSettleFee(char*RecCode,char*CompensateNO,intInpatType,char*Operator,char*DataBuffer);
Parameter:
参数
输入/输出
参数名
是否可空
类型
RecCode
IN
就诊号
N
VARCHAR(15)
CompensateNO
IN
报补单号()
N
VARCHAR(15)
InpatType
IN
就诊类型0:
门诊1:
住院
N
NUMBER
(1)
Operator
IN
冲销操作人(姓名)
N
VARCHAR(20)
DataBuffer
OUT
错误返回信息
Return(s):
0–SUCCESS
-1—FAILURE
4.1.9.获取不可报销的药品和诊疗项目列表
Syntax:
intGetNotFeeDetail(char*RecCode,char*CompensateNO,char*DataBuffer);
Parameter:
参数
输入/输出
参数名
是否可空
类型
RecCode
IN
就诊号
N
VARCHAR(15)
CompensateNO
IN
报补单号()
N
VARCHAR(15)
DataBuffer