1、农保接口文档 医院接口说明 (版本2.3) 2006年12月 1、 运行环境 3 2、 函数说明 4 2.1、函数说明 4 2.1.1 int InitData() 4 2.1.2 int SetDataset(char *strDataset) 4 2.1.3 int AddDataset(char *strDataset) 4 2.1.4 int AddRow() 4 2.1.5 long GetRowCount() 4 2.1.6
2、int FirstRow() 4 2.1.7 int LastRow() 4 2.1.8 int NextRow() 5 2.1.9 int PrevRow() 5 2.1.10 PutFieldValue(char *strName, char *strValue) 5 2.1.11 GetFieldValue(char *strName, char *strValue) 5 2.1.12 int StartProcess(long FuncNum) 5 2.1.13 long GetInfoMessage(char *strMessage) 5 2.1.
3、14 int SaveFile(char *strFile) 6 2.1.15 void SetDebug(long flag) 6 2.2、函数调用说明 6 2.2.1 接口函数调用顺序 6 2.2.2 接口函数调用时指针 6 2.3、程序中接口函数定义 7 2.3.1 在PB中定义函数程序 7 2.3.2 在Delphi中定义函数程序 7 2.3.3 在C#中定义函数程序 8 3、 功能编号及功能描述 9 3.1、登录(8001) 9 3.2、门诊交易(8002) 10 3.2.1 门诊结算(800201) 10 3.2.2 门诊结算取消(800202) 12
4、 3.3、住院交易(8003) 14 3.3.1 住院登记(800301) 16 3.3.2 住院明细上传(800302) 17 3.3.3 住院预结(800303) 19 3.3.4 住院结算(800304) 21 3.3.5 住院结算取消(800305) 22 3.3.6 住院登记撤销(800306) 24 3.3.7 删除未结算费用明细(800307) 24 3.3.8 查询住院明细(800308) 25 3.3.9 修改住院信息(800309) 27 3.3.10 查询住院病人信息 (800310) 28 3.3.11 删除单条费用明细(800311) 30
5、3.3.12 住院明细还原 (800312) 30 3.4、公共功能(8004) 31 3.4.1 查询农户信息(800401) 31 3.4.2查询农户个人信息(800402) 33 3.4.3 取中心药品目录(800403) 34 3.4.4 取中心诊疗项目目录(800404) 35 3.4.5 取中心疾病目录(800405) 36 3.4.6 取中心医疗项目类别(800406) 37 3.5 医院对帐 (8005) 38 3.5.1 医院日对帐(800501) 38 3.5.2 医院结算信息下载(800502) 39 3.5.2 医院结算单据明细下载(800503)
6、 40 3.6. 项目匹配 43 3.6.1 取匹配项目信息(800601) 43 3.6.2 项目匹配(800602) 45 3.6.3 删除匹配信息(800603) 46 4、 医院调用His说明 46 4.1 门诊交易流程 46 4.2 住院交易流程 47 4.3 对帐 47 4.4 项目匹配 48 5、修订说明 48 6、 附录 49 1、 运行环境 本接口采用VC编写,可运行于Win98/Win2000/WinXP操作系统下,它必须在以下软件的支持下运行: l Win98/Win2000/WinXP l IE6.0 l MS SOAP Toolkit
7、3.0 l 2、 函数说明 2.1、函数说明 2.1.1 int InitData() 初始化上传信息,返回-1表示调用不成功,返回0表示调用成功。 2.1.2 int SetDataset(char *strDataset) 将当前记录集设置为由strDataset指定的记录集,如果记录集不存在,则不会改变当前记录集。如指定的记录集存在,则改变当前的记录集为存在的记录集,通过nextrow,prevrow,firstrow,lastrow。返回-1表示不成功,返回大于等于0的值为记录数。 2.1.3 int AddDataset(char *strDataset
8、) 增加名为strDataset的记录集。返回-1表示不成功。 2.1.4 int AddRow() 在当前的记录集中增加行。返回-1表示不成功。 2.1.5 long GetRowCount() 返回当前记录集的行数。返回-1表示不成功。返回大于0表示当前记录集的行号。 2.1.6 int FirstRow() 跳到当前记录集的的第一行记录,返回-1表示不成功。返回0表示成功。 2.1.7 int LastRow() 跳到当前记录集的最后一行记录,返回-1表示不成功。返回大于0表示成功,同时此值为当前的行号。 2.1.8 int NextRow()
9、跳到当前记录集后一行记录,返回-1表示不成功。返回大于0表示成功,同时此值为当前的行号。 2.1.9 int PrevRow() 跳到当前记录集前一行记录,返回-1表示不成功。返回大于0表示成功,同时此值为当前的行号。 2.1.10 PutFieldValue(char *strName, char *strValue) 向接口调用中传入业务所需的参数。在当前的行,参数strName为字段名,以字符串表示,strValue为值,以字符串表示,返回-1表示没有Put成功,返回大于0表示Put成功,此值同时为当前的行号。 2.1.11 GetFieldValue(char *st
10、rName, char *strValue) 从接口中取得返回的参数值。在当前的行,参数strName为字段名,以字符串表示,strValue为值,以字符串表示。返回-1表示没有Get成功,返回大于0表示为当前的记录集的第几条记录。 2.1.12 int StartProcess(long FuncNum) 开始一次接口调用,把传入的记录集上打包传到服务器,并取得返回的记录集。参数FuncNum为要进行的功能号。返回-1表示没有成功,返回大于0的值表示返回的记录集数。 2.1.13 long GetInfoMessage(char *strMessage) 当所有函数出错时,调用
11、它得到一个详细的错误信息,错误信息放在strMessage指定的字符串中。返回-1表示没有Get成功 2.1.14 int SaveFile(char *strFile) 把数据集以XML的格式文件中去,保存到返回-1表示没有成功。 2.1.15 void SetDebug(long flag) 该函数用来设置接口的运行模式,当flag为1时将产生调试信息并且写入运行目录的Log子目录下的日志文件中。返回值小于零, 表示没有成功,返回值大于等于零, 表示成功。flag 为调试标志,0表示不作调试,其它为可调试, 2.2、函数调用说明 2.2.1 接口函数调用顺序 每个
12、功能执行顺序如下: 1、调用InitData() 初始化数据缓存; 2、调用AddDataset 设置传入参数的记录集,如有多个参数集,可多次调用AddDataset(); 3、调用AddRow 设置记录行,如有多行,则可多次调用AddRow(); 4、调用PutValue将参数传入接口; 5、如有多行,则可多次调用AddRow; 6、调用StartProcess将数据传入后台; 7、调用 SetDataSet 设置返回数据的记录集; 8、调用 GetRowCount得到记录数; 9、调用 NextRow,PrevRow,FirstRow,LastRow来移动行; 10、
13、调用GetValue 得到返回的数据。 2.2.2 接口函数调用时指针 在接口中有许多指针参数,这些参数在传入时,PB都可以用字符串来代替,但必须先赋值来定义其空间,Delphi中可直接用指针,然后用StrAlloc 或者 StrNew 来定义空间,但一定要用StrDispose来释放空间。 2.3、程序中接口函数定义 2.3.1 在PB中定义函数程序 Function int StartProcess(long FuncNo) LIBRARY "HosInsure.dll" Function int GetFieldValue(string strName,ref str
14、ing strValue) LIBRARY "HosInsure.dll" Function int IniData() LIBRARY "HosInsure.dll" Function int AddDataSet(string strTable) LIBRARY "HosInsure.dll" Function int SetDataSet(string strDataSet) LIBRARY "HosInsure.dll" Function int AddRow() LIBRARY "HosInsure.dll" Function int PutField
15、Value(string strName,string strValue) LIBRARY "HosInsure.dll" Function int LastRow() LIBRARY "HosInsure.dll" Function int NextRow() LIBRARY "HosInsure.dll" Function int PrevRow() LIBRARY "HosInsure.dll" Function int FirstRow() LIBRARY "HosInsure.dll" Function long GetInfoMessage
16、ref string Message) LIBRARY "HosInsure.dll" Function long GetRowCount() LIBRARY "HosInsure.dll" Function long GetDataSetCount() LIBRARY "HosInsure.dll" Function int SaveFile(string strFileName) LIBRARY "HosInsure.dll" 2.3.2 在Delphi中定义函数程序 Function AddDataSet(strTable:string):Intege
17、r;stdcall; external 'HosInsure.dll'; Function AddRow():Integer;stdcall; external 'HosInsure.dll'; Function GetFieldValue(strName:string;strValue:Pchar):Integer;stdcall; external 'HosInsure.dll'; Function GetInfoMessage(ErrorMessage:Pchar):Integer;stdcall; external 'HosInsure.dll'; Function GetRo
18、wCount():Integer;stdcall; external 'HosInsure.dll'; Function GetDataSetCount():Integer;stdcall; external 'HosInsure.dll'; Function IniData():Integer;stdcall; external 'HosInsure.dll'; Function LastRow():Integer;stdcall; external 'HosInsure.dll'; Function NextRow():Integer;stdcall; external 'HosI
19、nsure.dll'; Function PrevRow():Integer;stdcall; external 'HosInsure.dll'; Function FirstRow():Integer;stdcall; external 'HosInsure.dll'; Function PutFieldValue(strName:string; strValue:string):Integer;stdcall; external 'HosInsure.dll'; Function SetDataSet(strDataSet:string):Integer;stdcall; exte
20、rnal 'HosInsure.dll'; Function StartProcess(FuncNo:Integer):Integer;stdcall; external 'HosInsure.dll'; Function SaveFile(strFile:string):Integer;stdcall; external 'HosInsure.dll'; 2.3.3 在C#中定义函数程序 [DllImport("HosInsure.DLL")] public static extern int AddDataSet(string strTable); [DllImport
21、"HosInsure.DLL")] public static extern int AddRow(); [DllImport("HosInsure.DLL")] public static extern int GetFieldValue(string strName, StringBuilder strValue); [DllImport("HosInsure.DLL")] public static extern int GetInfoMessage(StringBuilder Message); [DllImport("HosInsure.DLL")]
22、public static extern int GetRowCount(); [DllImport("HosInsure.DLL")] public static extern int GetDataSetCount(); //GetTableCount [DllImport("HosInsure.DLL")] public static extern int IniData(); [DllImport("HosInsure.DLL")] public static extern int LastRow(); [DllImport("HosInsure.DLL")]
23、 public static extern int NextRow(); [DllImport("HosInsure.DLL")] public static extern int PrevRow(); [DllImport("HosInsure.DLL")] public static extern int FirstRow(); [DllImport("HosInsure.DLL")] public static extern int PutFieldValue(string strName,string strValue); //Put [DllImpor
24、t("HosInsure.DLL")] public static extern int SetDataSet(string strDataSet); [DllImport("HosInsure.DLL")] public static extern int StartProcess(long FuncNo); [DllImport("HosInsure.DLL")] public static extern int SaveFile(string strName); 3、 功能编号及功能描述 3.1、登录(8001)(预留) l 业务功能编码 8001
25、 l 功能描述 通过输入操作人员姓名,登陆医保系统。 l 入参定义 l 出参定义 3.2、门诊交易(8002) 3.2.1 门诊结算(800201) l 业务功能编码 800201 l 功能描述 门诊结算。 l 入参定义 数据集个数:2。 数据集名称及内容: InHosInfo 序号 参数 说明 最大长度 约束 备注 1 FarmerCode 农户个人编号 20 Not null 2 HosCode 医院编号 10 Not null 3 OutPatientNo 门诊号 20
26、 4 InvoiceNo 发票号 20 Not null 5 OutPatientDate 门诊时间 10 Not null YYYY-MM-DD 6 BussType 结算类别 1 Not null 1:住院;2:门诊;3:特殊病种 7 MakerName 经办人 20 Not null 8 DiseaseName 疾病名称 50 9 OutResult 疾病转归 10 10 IsBalance 是否预结 1 Not null 0:预结算;1:结算 InHosDetail 序号 参数 说
27、明 最大长度 约束 备注 1 MedDate 发生时间 10 Not null YYYY-MM-DD 2 ItemHosCode 项目医院编码 10 Not null 3 ItemName 项目名称 100 Not null 4 Specs 规格 50 5 Unit 单位 20 Not null 6 Num 数量 5 Not null 7 Price 单价 10.4 Not null 8 IsDrug 是否药品 1 Not null 0:诊疗项目;1:药品 9 PayS
28、um 金额 10.2 Not null 10 Factory 生产厂家 100 11 ItemType 项目类别代码 10 Not null 中心标准代码 12 Frequency 使用频次 30 13 Dosage 剂型 10 14 Nums 每次用量 5 15 Days 执行天数 4 16 CheckNo 审批编号 10 17 DoctorName 开方医生 20 18 DepartName 开方科室 20 19 PrescribeNo
29、 处方号 10 16 DistrictID 归属地区ID 5 1:路桥;2:椒江;3:仙居 l 出参定义 数据集个数:2。 数据集名称及内容: 计算结果 CalResult 序号 参数 说明 最大长度 约束 备注 1 TotalFee 总金额 10.2 元 2 ZLFee 自理金额 10.2 3 ZFFee 自费金额 10.2 4 PaySelf 自负金额 10.2 5 Fund 报销金额 10.2 6 AddFund 门诊直保金额 10.2
30、 7 OverFund 超过最高报销额的金额 10.2 8 LowFee 在起付线以下的应付金额 10.2 9 AccumFund 累计报销金额 10.2 10 AccumFee 累计报销医疗费 10.2 11 AccumNum 累计报销次数 10 12 TransNo 交易流水号 19 13 TransTime 中心交易时间 20 yyyy-mm-dd hh:mm:ss 14 OutFund 门诊报销金额 10.2 15 DistrictID
31、计算分段信息 CalSect 序号 参数 说明 最大长度 约束 备注 1 SectNo 分段号 19 元 2 SectName 分段名称 19 3 EndPay 分段最高限额 10.2 4 PayPercent 报销比例 10.2 5 Fund 报销金额 10.2 3.2.2 门诊结算取消(800202) l 业务功能编码 800202 l 功能描述 门诊结算取消。 l 入参定义 数据集个数:1。 数据集名称及内容: InHosInfo 序号 参数 说明 最大长度
32、约束 备注 1 TransNo 交易流水号 19 NotNull 2 HosCode 医院编号 10 Not null 3 FarmerCode 农户个人编号 20 Not null 3 InvoiceNo 发票号 20 Not null 4 MakerName 经办人 20 Not null l 出参定义 计算结果 CalResult 序号 参数 说明 最大长度 约束 备注 1 TotalFee 总金额 19 元 2 ZLFee 自理金额 19 3 ZFFe
33、e 自费金额 19 4 PaySelf 自负金额 19 5 Fund 报销金额 6 AddFund 门诊直保金额 10.2 7 OverFund 超过最高报销额的金额 19 8 LowFee 在起付线以下的应付金额 9 AccumFund 累计报销金额 19 10 AccumFee 累计报销医疗费 19 11 AccumNum 累计报销次数 12 TransTime 中心交易时间 20 yyyy-mm-dd hh:mm:ss 13
34、TransNo 交易流水号 19 14 OutFund 门诊报销金额 10.2 计算分段信息 CalSect 序号 参数 说明 最大长度 约束 备注 1 SectNo 分段号 19 元 2 SectName 分段名称 19 3 EndPay 分段最高限额 19 4 PayPercent 报销比例 19 5 Fund 报销金额 19 3.2.3 门诊特殊病种结算(800203) l 业务功能编码 800203 l 功能描述 门诊特殊病种结算。 l 入参定义
35、 数据集个数:2。 数据集名称及内容: InHosInfo 序号 参数 说明 最大长度 约束 备注 1 FarmerCode 农户个人编号 20 Not null 2 HosCode 医院编号 10 Not null 3 OutPatientNo 门诊号 20 4 InvoiceNo 发票号 20 Not null 5 OutPatientDate 门诊时间 10 Not null YYYY-MM-DD 6 BussType 结算类别 1 Not null 1:住院;2:门诊;3:特殊病种
36、 7 MakerName 经办人 20 Not null 8 DiseaseCode 疾病代码 10 Not null 统一ICD-10码 9 OutResult 疾病转归 10 10 IsBalance 是否预结 1 Not null 0:预结算;1:结算 InHosDetail 序号 参数 说明 最大长度 约束 备注 1 MedDate 发生时间 10 Not null YYYY-MM-DD 2 ItemHosCode 项目医院编码 10 Not null 3 ItemName 项目名称
37、 100 Not null 4 Specs 规格 50 5 Unit 单位 20 Not null 6 Num 数量 5 Not null 7 Price 单价 10.4 Not null 8 IsDrug 是否药品 1 Not null 0:诊疗项目;1:药品 9 PaySum 金额 10.2 Not null 10 Factory 生产厂家 100 11 ItemType 项目类别代码 10 Not null 中心标准代码 12 Frequency 使用频次 30
38、 13 Dosage 剂型 10 14 Nums 每次用量 5 15 Days 执行天数 4 16 CheckNo 审批编号 10 17 DoctorName 开方医生 20 18 DepartName 开方科室 20 19 PrescribeNo 处方号 10 16 DistrictID 归属地区ID 5 1:路桥;2:椒江;3:仙居 l 出参定义 数据集个数:2。 数据集名称及内容: 计算结果 CalResult 序号 参数 说明
39、最大长度 约束 备注 1 TotalFee 总金额 10.2 元 2 ZLFee 自理金额 10.2 3 ZFFee 自费金额 10.2 4 PaySelf 自负金额 10.2 5 Fund 报销金额 10.2 6 AddFund 门诊直保金额 10.2 7 OverFund 超过最高报销额的金额 10.2 8 LowFee 在起付线以下的应付金额 10.2 9 AccumFund 累计报销金额 10.2 10 AccumFee 累计报销
40、医疗费 10.2 11 AccumNum 累计报销次数 10 12 TransNo 交易流水号 19 13 TransTime 中心交易时间 20 yyyy-mm-dd hh:mm:ss 计算分段信息 CalSect 序号 参数 说明 最大长度 约束 备注 1 SectNo 分段号 19 元 2 SectName 分段名称 19 3 EndPay 分段最高限额 10.2 4 PayPercent 报销比例 10.2 5 Fund 报销金额 10.2
41、 3.3、住院交易(8003) 3.3.1 住院登记(800301) l 业务功能编码 800301 l 功能描述 住院病人信息登记,并保存入院时间、入院诊断等业务信息 l 入参定义 数据集个数:1。 数据集名称及内容: InHosInfo: 序号 参数 说明 最大长度 约束 备注 1 FarmerCode 农户个人编号 20 Not null 2 DiseaseCode 疾病代码 10 Not null 统一ICD-10码 3 DiseaseName 入院诊断 300 4 InHosDat
42、e 入院时间 10 Not null YYYY-MM-DD 5 HosCode 医院编号 10 Not null 6 InHosNo 住院号 20 Not null 7 Register 入院经办人员 10 Not null 8 InDepart 入院科室 20 9 InErea 入院病区 20 10 InBedNo 入院病床号 10 l 出参定义 数据集个数:1。 数据集名称及内容: CalResult 序号 参数 说明 最大长度 约束 备注
43、 1 TransNo 交易流水号 19 元 3.3.2 住院明细上传(800302) l 业务功能编码 800302 l 功能描述 住院明细上传。 l 入参定义 数据集个数:2。 数据集名称及内容: InHosInfo 序号 参数 说明 最大长度 约束 备注 1 TransNo 交易流水号 18 Not null 2 HosCode 医院编号 10 Not null 3 InHosNo 住院号 20 Not null InHosDetail 序号 参数 说明 最大
44、长度 约束 备注 1 MedDate 发生时间 10 Not null YYYY-MM-DD 2 ItemHosCode 项目医院编码 10 Not null 3 ItemName 项目名称 100 Not null 4 Specs 规格 50 5 Unit 单位 20 Not null 6 Num 数量 5 Not null 7 Price 单价 10.4 Not null 8 IsDrug 是否药品 1 Not null 0:诊疗项目;1:药品 9 PaySum 金
45、额 10.2 Not null 10 Factory 生产厂家 100 11 ItemType 项目类别代码 10 Not null 中心标准代码,可下载,详见800406。 门诊用药/诊疗项目,不符合病种用药/诊疗项目请传(自费:99) 99为上述项目专用,其他项目传中心标准代码 12 Frequency 使用频次 30 13 Dosage 剂型 10 14 Nums 每次用量 5 15 Days 执行天数 4 16 CheckNo 审批编号 10 17 DoctorN
46、ame 开方医生 20 18 DepartName 开方科室 20 19 PrescribeNo 处方号 10 20 HosFeeID 医院费用费用号 18 Not null 医院费用的唯一标识 21 IsAppend 是否出院带药 1 NotNull 1:是出院带药;0其他药品以及项目 l 出参定义 无 3.3.3 住院预结(800303) l 业务功能编码 800303 l 功能描述 住院费用预结算。 l 入参定义 数据集个数:1。 数据集名称及内容: InHosInfo 序
47、号 参数 说明 最大长度 约束 备注 1 TransNo 交易流水号 18 Not null 2 HosCode 医院编号 10 Not null 3 InHosNo 住院号 20 Not null 4 FarmerCode 农户编号 20 Not null l 出参定义 数据集个数:1。 数据集名称及内容: CalResult 序号 参数 说明 最大长度 约束 备注 1 TotalFee 总金额 19 元 2 ZLFee 自理金额 19 3 ZFFee 自费
48、金额 19 4 PaySelf 自负金额 19 5 Fund 报销金额 6 OverFund 超过最高报销额的金额 19 7 LowFee 在起付线以下的应付金额 8 AccumFund 累计报销金额 19 9 AccumFee 累计报销医疗费 19 10 AccumNum 累计报销次数 11 AddFund 优扶金额 10.2 12 InsureMedFee 农保纳入金额 10.2 13 PayPercent 医院打折比例 1
49、0.2 14 HosLevel 医院等级 10 16 DistrictID 归属地区ID 5 1:路桥;2:椒江;3:仙居 计算分段信息 CalSect 序号 参数 说明 最大长度 约束 备注 1 SectNo 分段号 19 元 2 SectName 分段名称 19 3 EndPay 分段最高限额 19 4 PayPercent 报销比例 19 5 Fund 报销金额 19 3.3.4 住院结算(800304) l 业务功能编码 800304 l
50、 功能描述 住院费结算。 l C入参定义 数据集个数:1。 数据集名称及内容: InHosInfo 序号 参数 说明 最大长度 约束 备注 1 TransNo 交易流水号 18 Not Null 2 FarmerCode 农户个人编号 3 HosCode 医院编号 10 Not null 4 InHosNo 住院号 20 Not null 5 InvoiceNo 单据号 20 Not null 6 OutHosDate 出院日期 10 Not null YYYY-MM-DD






