using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; namespace ZLPlugin_MR { #pragma warning disable IDE1006 [ComVisible(true)] [Guid("bd1f305d-a44b-4fd6-970c-f596bc6d3b1d")] public interface IclsPlugIn { /// /// 初始化 /// /// /// 系统号 /// 模块号 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) void Initialize(ADODB.Connection cnOracle, long lngSys, long lngModual, int int场合 = -1); /// /// 药品部门发药,自定义审核功能。返回true时部门发药主界面开启自定义审核功能按钮 /// /// 可以自定义功能名称,返回作为主界面工具栏按钮的名称 /// bool DrugSendCustomCheckSet(string strFunName); /// /// 药品部门发药主界面调用,按收发id传送,主要通过收发ID来获取其他信息 /// /// 收发id串,收发id1,收发id2... /// 返回主界面的收发ids,用来控制界面数据是否发药,默认返回的收发ids不发药 /// 扩展参数 /// bool DrugSendCustomCheck(string str收发ids, string str返回收发ids, string strReserve = ""); /// /// 药品处方发药前调用,按处方发药 /// /// 库房ID /// 一次发药可能多个处方,处方类型和处方号,格式;单据,NO|单据,NO... /// 扩展参数 /// bool DrugBeforeSendByRecipe(long lng库房ID, string strNos, string strReserve = ""); /// /// 药品目录通用业务接口 /// /// 业务类型,0-新增,1-修改,2-删除,3-停用,4-启用 /// 药品id串,格式“药品id1,药品id2,...” /// 扩展参数 /// bool DrugListWork(int intType, string str药品IDs, string strReserve = ""); /// /// 药品卫材流通通用业务接口 /// /// 业务类型,0-新增,1-修改,2-删除,3-审核,4-冲销 /// 库房ID /// 单据号 /// 单据类型 /// 单据日期,只有冲销时传入(因为允许部分冲销,用时间来区分本次冲销的是哪些数据,如果不传就是不允许部分冲销) /// 扩展参数 /// bool DrugStuffWork(int intType, long lng库房ID, string strNO, int int单据, string strDate = "", string strReserve = ""); /// /// 药品部门发药前调用,按收发id传送,主要通过收发ID来获取其他信息 /// /// 库房ID /// str收发ids 收发id串,收发id1,收发id2... /// 扩展参数 /// bool DrugBeforeSendBySumID(long lng库房ID, string str收发ids, string strReserve = ""); /// /// 卫材退料后调用 /// /// 库房ID /// 一次退料操作可能退多个卫材记录,格式;收发id,退料数量|收发id,退料数量... /// 退料时间,一条收发id可能退多次,加上时间可以用于区别是哪次退料; /// 扩展参数 /// bool StuffReturnByID(long lng库房ID, string strIDs, DateTime dteSendTime, string strReserve = ""); /// /// 卫材处方发料后调用,按处方发料 /// /// 库房ID /// 一次退料操作可能退多个卫材记录,格式;收发id,退料数量|收发id,退料数量... /// 退料时间,一条收发id可能退多次,加上时间可以用于区别是哪次退料 /// 扩展参数 /// bool StuffSendByRecipe(long lng库房ID, string strNos, DateTime dteSendTime, string strReserve = ""); /// /// 卫材发料后调用,按收发id发料 /// /// 库房ID /// 汇总发料号 /// 扩展参数 /// bool StuffSendBySumID(long lng库房ID, string strSumNO, string strReserve = ""); /// /// 获取外挂功能列表;该接口一般在初始化之后调用一次,调用时机和频度可能因不同的主程序而不同 /// /// 系统号 /// 当前调用接口的主程序系统号及模块号(病历调用 lngModual=1070,无int场合参数) /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS),3-门诊挂号调用,4-门诊收费调用,5-门诊医嘱下达诊断扩展,6-首页诊断扩展 /// 保留参数,用于扩展使用 /// string GetFuncNames(long lngSys, long lngModual, int int场合 = -1, string strReserve = ""); /// /// 执行某个外挂功能 /// /// 系统号 /// 模块号 /// 要执行的功能名,该功能名之前由GetFuncNames函数返回 /// 病人id /// 数字或者字符串;对门诊病人,为当前挂号单号或者挂号ID;对住院病人,为当前住院主页ID,新版LIS默认传入0;挂号调用时,为挂号单号;收费调用时,为收费单号 /// 数字或者字符串;当前的关键业务数据唯一标识ID,如医嘱ID /// 保留参数,用于扩展使用 当是病历调用时 strReserve= 病历文件列表.id 。当场合为5、6调用时,strReserve=诊断内容 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 为XML格式的字符串,例:XXX void ExecuteFunc(long lngSys, long lngModual, string strFuncName, long lngPatiID, dynamic varRecId, dynamic varKeyId, string strReserve, int int场合 = -1, string strXML = ""); /// /// 返回病人信息集。病人信息集为动态记录集,在接口中预先写好构建及返回字段模板;如果返回字段中"病人ID"<>0,则表示接口返回前已新建档案,挂号程序直接提取病人ID对应的档案信息,而不直接读取其他字段; /// /// 系统号 /// 模块号 /// 卡号 /// 返回的病人信息集(直接更新该表,字段为:病人ID,姓名,性别,年龄,出生日期,出生地点,身份证号,其他证件,身份,职业,家庭地址,家庭电话,家庭邮编,工作单位,单位邮编,医保号,医疗付款方式,费别,国籍,民族,婚姻状况,区域) /// bool QueryPatiInfo(long lngSys, long lngModule, string str卡号, ADODB.Recordset rsInfo); /// /// 提交发卡信息 /// /// 卡号 /// 返回的病人信息集(直接更新该表,字段为:病人ID,姓名,性别,年龄,出生日期,出生地点,身份证号,其他证件,身份,职业,家庭地址,家庭电话,家庭邮编,工作单位,单位邮编,医保号,医疗付款方式,费别,国籍,民族,婚姻状况,区域) /// bool CommitPatiInfo(string str卡号, ADODB.Recordset rsInfo); /// /// 接口终止 /// /// 系统号 /// 模块号 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) void Terminate(long lngSys, long lngModual, int int场合 = -1); /// /// 在住院医生工作站中添加卡片的名称,逗号分割。 /// /// 系统号 /// 模块号 /// string GetFormCaption(long lngSys, long lngModual); /// /// 根据索引值返回对象。工作站窗体加载时调用 /// /// 系统号 /// 模块号 /// /// IntPtr GetForm(long lngSys, long lngModual, string strName); /// /// 初始化外挂附页窗体对象的集合,注:zlhis34最多可以扩展3个页签窗体 /// /// 系统号 /// 模块号 /// 病人id /// 就诊id,门诊挂号id,住院主页id /// /// Dictionary GetMeRecFormCol(long lngSys, long lngModule, long lngPatiID, long lngPageID, long lngPatiType); /// /// 病案部件创建与检查 /// /// bool CreateMecOK(); /// /// 刷新内部界面 /// /// 系统号 /// 模块号 /// /// 当前窗体名称 /// 病人id /// 挂号单号门诊病人才有否则为空 /// 住院病人才有否则为0 /// 该病人的数据是否已转出 /// 如果当前医生站是会诊病人,则为会诊科室ID;如果是医技站调用,则为医技科室ID /// 医护站界面ID /// 当“5-最近转科病人”时为病人原病区或原科室 /// 当“5-最近转科病人”时为病人原病区或原科室 /// 当由医技站调用时传入 /// 0-在院病人,1-预出院病人,2-出院病人,3-待会诊病人(在院),4-已会诊病人,5-最近转科病人(在院),6-转科或转病区待入住病人(不含入院待入住) /// 当由医技站调用时传入,医技执行项目的执行状态 /// 1:未导入,0-不符合导入条件,1-执行中,2-正常结束,3-变异结束 void RefreshForm(long lngSys, long lngModual, IntPtr objForm, string strName, long lngPatiID, string str挂号单, long lng主页ID, bool blnMoved, long lng界面科室ID, long lng医护科室ID, long lng病区ID , long lng科室id, long lng前提ID, int int状态, int int执行状态, long lng路径状态 = -1); /// /// 添加到菜单和工具栏上的按钮名称,菜单上级为 扩展,工具栏上直接加按钮 /// /// 系统号 /// 模块号 /// /// 当前窗体名称 /// string GetButtomName(long lngSys, long lngModual, IntPtr objForm, string strName); /// /// 执行窗体内部的功能 /// /// 系统号 /// 模块号 /// /// 当前窗体名称 /// 菜名称(窗体中功能名称) /// 病人id /// /// /// 只有医技站传调用时会传入, 否则没传值 /// /// bool ExeButtomClick(long lngSys, long lngModual, IntPtr objForm, string strName, string strFuncName, long lngPatiID, long lng主页ID, string str挂号单, long lng医嘱ID = 0, string strReserve = ""); /// /// 病人接诊操作后调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID) /// bool ClinicReceive(long lngSys, long lngModual, long lngPatientID, long lngClinicID); /// /// 病人完成接诊后调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID) /// bool ClinicFinish(long lngSys, long lngModual, long lngPatientID, long lngClinicID); /// /// 门诊病案中输入主要诊断后调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 诊断ID或疾病ID(根据系统参数决定) /// 诊断描述 /// lng原诊断id=0 表示新添加的诊断, 不为0表示修改诊断,lng原诊断id的值就是修改前的诊断ID或疾病ID /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool DiagnosisEnter(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngDiagID, string strDiagDesc, long lng原诊断id, int int场合 = -1); /// /// 门诊病案中输入次要诊断后调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 诊断ID或疾病ID(根据系统参数决定) /// 诊断描述 /// lng原诊断id=0 表示新添加的诊断, 不为0表示修改诊断,lng原诊断id的值就是修改前的 诊断ID或疾病ID /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool DiagnosisOtherEnter(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngDiagID, string strDiagDesc, long lng原诊断id, int int场合 = -1); /// /// 门诊病案中删除诊断后调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 诊断ID或疾病ID(根据系统参数决定) /// 诊断描述 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool DiagnosisDeleted(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngDiagID, string strDiagDesc, int int场合 = -1); /// /// 每输入一条医嘱项目时调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool AdviceEnter(long lngSys, long lngModual, long lngPatientID, long lngClinicID, ADODB.Recordset rsAdvice, int int场合 = -1); /// /// 每输入完一条医嘱项目进行下一条医嘱输入时调用,或者在表格换行时调用(传入的医嘱是上一行的内容--新开或修改过的医嘱) /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 当前录入的一条或一组医嘱记录(中药配方、成套方案、批量复制医嘱在输入时不调用)字段为表“病人医嘱记录”的大部分字段,包括:ID, 相关id, 序号, 病人来源(1=门诊,2=住院), 病人id, 挂号单/主页ID, /// 姓名, 性别, 年龄, 婴儿, 医嘱状态, 医嘱期效, 诊疗类别, 诊疗项目id, 收费细目id, 天数, 单次用量, 总给予量, 医嘱内容, 医生嘱托, 标本部位, ///检查方法 , 执行标记, 执行频次, 频率次数, 频率间隔, 间隔单位, 执行时间方案, 计价特性, 执行科室id, 执行性质, 紧急标志, 可否分零, ///开始执行时间,执行终止时间(住院调用才有,没填时为cdate(0)), 病人科室id, 开嘱科室id, 开嘱医生, 开嘱时间, 挂号单, 前提id, 摘要 ///,除此之外,门诊调用时,还包含医嘱对应的诊断的疾病ID /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool AdviceEditAfter(long lngSys, long lngModual, long lngPatientID, long lngClinicID, ADODB.Recordset rsAdvice, int int场合 = -1); /// /// 保存医嘱时(事务开始前)调用,返回False时不保存医嘱 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 当前病人本次新开或修改的所有医嘱记录,字段同AdviceEnter接口的该参数,除此之外,门诊调用时,还包含医嘱对应的诊断的疾病ID,字段 EditState '1-新增,2-修改 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool AdviceSave(long lngSys, long lngModual, long lngPatientID, long lngClinicID, ADODB.Recordset rsAdvice, int int场合 = -1); /// /// 发送医嘱完成后调用,当住院护士同时发送多个病人医嘱时一个病人会调用一次。 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 发送号(病人医嘱发送.id) /// bool AdviceSend(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngSendID); /// /// 一次发送医嘱完成后调用 /// /// 系统号 /// 模块号 /// 发送号可能有多个,用逗号分割 /// bool AdviceSendEnd(long lngSys, long lngModual, string strSendIDs); /// /// 医嘱编辑时切换医嘱行时(医嘱编辑界面医嘱表格行变换)调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 当前病人本次新开的所有医嘱记录,字段同AdviceEnter接口的该参数,除此之外,门诊调用时,还包含医嘱对应的诊断的疾病ID /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool AdviceRowChange(long lngSys, long lngModual, long lngPatientID, long lngClinicID, ADODB.Recordset rsAdvice, int int场合 = -1); /// /// 医嘱删除前调用(返回False则取消删除医嘱) /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人医嘱记录.id /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool AdviceDeletBefor(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngAdviceID, int int场合 = -1); /// /// 医嘱删除后调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人医嘱记录.id /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool AdviceDeleted(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngAdviceID, int int场合 = -1); /// /// 医嘱作废后调用,一条医嘱调用一次 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人医嘱记录.id /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// bool AdviceRevoked(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngAdviceID, int int场合 = -1); /// /// 医嘱作废前调用,一条医嘱调用一次 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人医嘱记录.id /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 提示信息,接口内部组织返回给主程序进行提示,空串则不提示 /// 扩展参数 /// bool AdviceRevokedBefore(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngAdviceID, int int场合, string strMsg, string strReserve = ""); /// /// 医嘱回退发送后调用,一条医嘱调用一次 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人医嘱记录.id /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 提示信息,接口内部组织返回给主程序进行提示,空串则不提示 /// 扩展参数 /// bool AdviceRollSend(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngAdviceID, int int场合, string strMsg, string strReserve = ""); /// /// 医嘱回退发送前调用,一条医嘱调用一次 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人医嘱记录.id /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 提示信息,接口内部组织返回给主程序进行提示,空串则不提示 /// 扩展参数 /// bool AdviceRollSendBefore(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngAdviceID, int int场合, string strMsg, string strReserve = ""); /// /// 新增电子病历时候调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID /// 病历文件列表.id /// 扩展参数用于扩展使用,通过下标访一直接问时可能会报两种错,9-下标越界/13-类型不匹配:均表示参数没有传入,所以访问参数前应先判断:If TypeName(arrInput(i)) <> "Error" Then 满足这个条件后才使用这个参数,否则就认为这个参数没有传入 /// bool AddEMRBefore(string lngSys, long lngModual, long lngPatientID, long lngClinicID, long EMRFileID, params dynamic[] arrInput); /// /// 电子病历保存前调用 /// /// 1 门诊 2 住院 /// 病人id /// 就诊id,门诊挂号id,住院主页id /// 病历文件列表.id /// /// /// 数组:扩展参数用于扩展使用,通过下标访一直接问时可能会报两种错,9-下标越界/13-类型不匹配:均表示参数没有传入,所以访问参数前应先判断:If TypeName(arrInput(i)) <> "Error" Then 满足这个条件后才使用这个参数,否则就认为这个参数没有传入 /// bool BeforeEMRDocSave(long lngSource, long lngPatiID, long lngPageID, long lngFileId, string strTitle, string strContent, params dynamic[] arrInput); /// /// 电子病历签名前调用,事务未开启时 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 电子病历记录.id /// arrInput是数组:扩展参数用于扩展使用,通过下标访一直接问时可能会报两种错,9-下标越界/13-类型不匹配:均表示参数没有传入 /// bool SignEMRBefore(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long EMRFileID, params dynamic[] arrInput); /// /// 在签名窗口关闭且文档数据保存后调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 电子病历记录.id 在新增编辑未保存前其值=0,保存后签名、修改时签名、审签有值; /// arrInput是数组:扩展参数用于扩展使用,通过下标访一直接问时可能会报两种错,9-下标越界/13-类型不匹配:均表示参数没有传入 /// void SignEMRAfter(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long EMRFileID, params dynamic[] arrInput); /// /// 登陆航导台之后 /// void LogInAfter(); /// /// 关闭航导台或者注销当前 /// void LogOutBefore(); /// /// 路径导入前 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 临床路径目录.id /// 导入的版本号 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 导入诊断类型 '诊断类型:1-西医门诊诊断;2-西医入院诊断;11-中医门诊诊断;12-中医入院诊断 /// 导入疾病(疾病编码目录.ID) /// 导入诊断(疾病诊断目录.ID) /// 扩展参数 /// bool PathImportBefore(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lng路径ID, long lng版本号ID, int int场合 = -1, long lngDiagnosisType = 0, long lng疾病ID = 0, long lng诊断ID = 0, string strReserve = ""); /// /// 路径导入后 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 临床路径目录.id /// 导入的版本号 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 导入诊断类型 '诊断类型:1-西医门诊诊断;2-西医入院诊断;11-中医门诊诊断;12-中医入院诊断 /// 导入疾病(疾病编码目录.ID) /// 导入诊断(疾病诊断目录.ID) /// 扩展参数 /// bool PathImportAfter(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lng路径ID, long lng版本号ID, int int场合 = -1, long lngDiagnosisType = 0, long lng疾病ID = 0, long lng诊断ID = 0, string strReserve = ""); /// /// 评估路径评估前 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人临床路径.id /// 当前评估的阶段ID /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 扩展参数 /// bool PathEvaluateBefore(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lng路径记录ID, long lng阶段ID, int int场合 = -1, string strReserve = ""); /// /// 评估路径评估后 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人临床路径.id /// 当前评估的阶段ID /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 扩展参数 /// bool PathEvaluateAfter(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lng路径记录ID, long lng阶段ID, int int场合 = -1, string strReserve = ""); /// /// 住院病案中输入诊断后调用 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 诊断ID或疾病ID(根据系统参数决定) /// 诊断描述 /// lng原诊断id=0 表示新添加的诊断, 不为0表示修改诊断,lng原诊断id的值就是修改前的诊断ID或疾病ID /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 1-西医门诊诊断;2-西医入院诊断;3-出院诊断(其他诊断);5-院内感染;6-病理诊断;7-损伤中毒码;10-并发症 /// 诊断类型下的顺序号 /// 扩展参数 /// bool DiagnosisEnterIn(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngDiagID, string strDiagDesc, long lng原诊断id, int int场合 = -1, int int诊断类型 = 0, int int诊断次序 = 0, string strReserve = ""); /// /// 病人信息管理 模块中调用 获取要嵌入的窗体句柄, /// /// 扩展参数 /// long GetFormHwnd(string strReserve = ""); /// /// 病人信息管理 模块中调用 病人信息管理中保存病人信息前,用于控制一些检查类的业务,返回False终止保存操作。 /// /// 病人ID /// 扩展参数 /// bool PatiInfoSaveBefore(long lng病人ID, string strReserve = ""); /// /// 病人信息管理 模块中调用 病人信息管理中保存病人信息后,事务提交后调用,插件中渠道自行处理数据保存 /// /// 病人ID /// 扩展参数 /// bool PatiInfoSaveAfter(long lng病人ID, string strReserve = ""); /// /// 业务评价 缴纳预交款后调用(门诊/住院通用,由参数 int预交类型 来区分) /// /// 病人ID /// 0-门诊,1-住院 /// 预交记录ID /// 扩展参数 /// bool PatiPrePayAfter(long lng病人ID, int int预交类型, long lng预交ID, string strReserve = ""); /// /// 业务评价 门诊挂号完成后调用 /// /// 病人ID /// 挂号ID /// /// bool OutPatiRegisterAfter(long lng病人ID, long lng挂号ID, string strReserve = ""); /// /// 业务评价 门诊收费完成后调用 /// /// /// /// 扩展参数 /// bool OutPatiExseAfter(long lng病人ID, long lng结帐ID, string strReserve = ""); /// /// 业务评价 门诊补打发票后调用 /// /// 病人ID /// 本次收费后产生病人结帐记录ID /// 扩展参数 /// bool OutPatiInvoicePrintAfter(long lng病人ID, long str结帐IDs, string strReserve = ""); /// /// 业务评价 门诊发药后调用 /// /// 病人ID /// 单据号 /// 单据类型 /// 药房ID /// 扩展参数 /// bool OutPatiMedicineAfter(long lng病人ID, string strNO, int int单据, long lng药房ID, string strReserve = ""); /// /// 药品卫材流通管理业务调用 /// /// 模块号 /// 功能名称 /// 库房ID /// 单据号 /// 单据类型 /// 扩展参数 /// bool DrugStuffWorkNoramal(long lngModual, string strFuncName, long lng库房ID, string strNO, int int单据, string strReserve = ""); /// /// 药品发药业务调用 /// /// 模块号 /// 功能名称 /// 库房ID /// 单据号 /// 单据类型 /// 扩展参数 /// bool DrugSendWorkNormal(long lngModual, string strFuncName, long lng库房ID, string strNO, int int单据, string strReserve = ""); /// /// 药品处方发药后调用,按处方发药 /// /// 库房ID /// 一次发药可能多个处方,处方类型和处方号,格式;单据,NO|单据,NO... /// 发药时间,可能一个处方退药了之后再发,加上时间用于区别是哪次发药; /// 扩展参数 /// bool DrugSendByRecipe(long lng库房ID, string strNos, DateTime dteSendTime, string strReserve = ""); /// /// 药品处方配药后调用,按处方配药 /// /// 库房ID /// 一次配药可能多个处方,处方类型和处方号,格式;单据,NO|单据,NO... /// 配药时间,加上时间用于区别是哪次配药; /// 扩展参数 /// bool DrugDosageByRecipe(long lng库房ID, string strNos, DateTime dteSendTime, string strReserve = ""); /// /// 药品退药后调用,处方发药/部门发药业务都适用 /// /// 库房ID /// 一次退药操作可能退多个药品记录,格式;收发id,退药数量|收发id,退药数量... /// 退药时间,一条收发id可能退多次,加上时间可以用于区别是哪次退药; /// 扩展参数 /// bool DrugReturnByID(long lng库房ID, string strIDs, DateTime dteSendTime, string strReserve = ""); /// /// 药品部门发药后调用,按收发id发药 /// /// 库房ID /// 汇总发药号 /// 扩展参数 /// bool DrugSendBySumID(long lng库房ID, string strSumNO, string strReserve = ""); /// /// 配置中心业务调用 /// /// 模块号 /// 功能名称 /// 库房ID /// 输液单id /// 扩展参数 /// bool PivaWorkNormal(long lngModual, string strFuncName, long lng库房ID, long lng配药id, string strReserve = ""); /// /// 业务评价 入院处办理入院后调用 /// /// 病人ID /// 主页ID /// 扩展参数:入院登记调用时代表:0-正常登记,1-预约登记,2-接收预约 /// bool InPatiCheckInAfter(long lng病人ID, long lng主页ID, string strReserve = ""); /// /// 业务评价 护士站办理入科后调用 /// /// 病人ID /// 主页ID /// 扩展参数 /// bool InPatiCheckInBranchAfter(long lng病人ID, long lng主页ID, string strReserve = ""); /// /// 业务评价 护士站办理出院后调用(病人入出管理) /// /// 病人ID /// 主页ID /// 扩展参数 /// bool InPatiCheckOutAfter(long lng病人ID, long lng主页ID, string strReserve = ""); /// /// 业务评价 出院结账后调用 /// /// 病人ID /// 结帐ID /// 扩展参数 /// bool InPatiCashierAfter(long lng病人ID, long lng结帐ID, string strReserve = ""); /// /// 医嘱发送前调用。 /// /// 医嘱发送的结束时间(如果医嘱为长嘱则需要此参数) 格式:2015-11-18 18:00:00 /// 从ZLHIS程序中组织传入,本次发送的所有医嘱 /// 本次不允许发送的医嘱ID串,用逗号分割,如:23423,3123,64563; /// 提示信息 void AdviceBeforeSend(string strEndDate, ADODB.Recordset rsData, string strAdviceIDs, string strMsg); /// /// 医嘱发送前费用检查:检查通过返回true,检查不通过返回false /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人本次要发送医嘱的记帐金额合计,包含记帐划价单的金额 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 扩展参数 /// bool AdviceCheckSendFee(long lngSys, long lngModual, long lngPatientID, long lngClinicID, double cur合计, int int场合 = -1, string strReserve = ""); /// /// 病人费用审核和取消审核检查 /// /// 模块号 /// 病人ID /// 主页ID /// 取消执行时,传入True,执行时传入False /// 保留参数,暂无,待以后扩展 /// bool PatiFeeAuditingAndCancelCheck(long lngModual, long lng病人ID, long lng主页ID, bool blnCancel = false, string strExpendXML = ""); /// /// 从EMPI平台中读取病人信息 /// /// 系统号 /// 模块号 /// HIS传入的病人信息 /// 返回的病人信息结果此记录集信息由接口内部进行赋值 /// 保留参数 /// bool EMPI_QueryPatiInfo(long lngSys, long lngModule, ADODB.Recordset rsIn, ADODB.Recordset rsOut, string strReserve = ""); /// /// 向EMPI平台创建新病人信息 /// /// 系统号 /// 模块号 /// 病人id /// 住院主页id,门诊病人lngPageID传0 /// 挂号ID,住院病人lngClinicID传0 /// 出参接口内部赋值,成功、失败说明信息 /// 保留参数,用于扩展使用 /// long EMPI_AddPatiInfo(long lngSys, long lngModule, long lngPatiID, long lngPageID, long lngClinicID, string strMsg, string strReserve = ""); /// /// 更新EMPI平台中的病人信息 /// /// 系统号 /// 模块号 /// 病人id /// 住院主页id,门诊病人lngPageID传0 /// 挂号ID,住院病人lngClinicID传0 /// 出参接口内部赋值,成功、失败说明信息 /// 保留参数,用于扩展使用 /// long EMPI_ModifyPatiInfo(long lngSys, long lngModule, long lngPatiID, long lngPageID, long lngClinicID, string strMsg, string strReserve = ""); /// /// 检查当前病人是否是指定的特殊病人 /// /// 系统号 /// 模块号 /// 1-门诊挂号,2-住院入院,3-门诊收费,4-住院结帐,5-门诊结帐。 /// 病人id /// 就诊id,门诊挂号id,住院主页id /// 病人信息:针对未建档病人传入,"姓名,性别,年龄,出生日期,医保号,身份证号",出生日期 格式:2016-11-11 12:12:12,操作类型=1时,还会传入当前挂号的医生姓名 /// 保留参数,用于扩展使用 /// bool PatiValiedCheck(long lngSys, long lngModule, long lngType, long lngPatiID, long lngPageID, string strPatiInforXML, string strReserve = ""); /// /// 检查当前病人录入的信息是否准确 /// /// 系统号 /// 模块号 /// 病人id /// 就诊id,门诊挂号id,住院主页id /// 界面上录入的病人信息记录集:序号,信息名,控件名,Index(控件Index),ExpState(是否扩展),信息原值,信息现值,Edit(是否可编辑),是否改变 /// /// 扩展参数,用于记录检查出的所有错误信息,返回到界面上显示出来 /// 保留参数,用于扩展使用 /// bool SaveCtlInfoCheck(long lngSys, long lngModule, long lngPatiID, long lngPageID, ADODB.Recordset rsCtlValueInfo, string strError, ADODB.Recordset rsBackInfo, string strReserve = ""); /// /// 挂号分诊检测接口 /// /// 系统号 /// 模块号 /// 0-分诊;1-换号;2-完成就诊(13-恢复就诊);3-标记为不就诊;4-签道(14-取消签道);5-回诊(15-取消回诊);6-病人待诊 /// 挂号ID /// 医生姓名(bytfun=0,1,2,4时传入) /// 诊室名称(bytfun=0,1,2,4时传入) /// 换号时的新号码(bytfun=1时传入) /// 换号时的新号码(bytfun=1时传入) /// bool PatiRegTriageCheck(long lngSys, long lngModule, byte bytFun, long lng挂号ID, string str医生 = "", string str诊室 = "", string str新号码 = "", long lng新出诊记录ID = 0); /// /// 收费项目有效性检查 /// /// 系统号 /// 模块号 /// 0-门诊;1-住院 /// 0-录入明细时的常规检查;1-保存单据前的汇总检查 /// 病人ID,主页ID,收费类别,收费细目ID,数量,单价,实收金额,开单人,开单科室,执行科室ID, 单据性质(1-收费单,2-记帐单), 是否划价(1-划价;0-正常的收费及记帐单) /// 待以后扩展,暂无用 /// bool CheckChargeItem(long lngSys, long lngModule, int intType, int intMode, ADODB.Recordset rsDetail, string strExpend = ""); /// /// 首页输入有效性检查 /// /// 系统号 /// 模块号 /// 病人id /// 就诊id,门诊挂号id,住院主页id /// 病案首页控件集合 /// 返回参数 格式 例: 提示消息-(提醒:1/禁止:0)|控件Key值-提示消息-(提醒:1/禁止:0)|表格控件Key值-提示消息-(提醒:1/禁止:0)-Row-Col /// 保留参数,用于扩展使用 固定格式 /// bool CheckMecInfo(long lngSys, long lngModule, long lngPatiID, long lngPageID, dynamic colCtl, string strMsg, string strReserve = ""); /// /// 首页加载自定义数据 /// /// 系统号 /// 模块号 /// 病人id /// 主页id /// 病人类型:1-门诊,2-住院 /// 病案首页控件集合 /// bool LoadMecInfo(long lngSys, long lngModule, long lngPatiID, long lngPageID, long lngPatiType, dynamic colCtl); /// /// 获取检查医嘱子医嘱行对应的费用收取次数,具体收几次费由接口内部处理,医嘱发送时调用 /// /// 系统号 /// 模块号 /// 当前医嘱记录行对的相关信息,固定格式,用分割,lng医嘱ID & "" & lng当前医嘱ID & "" & lng诊疗项目ID & "" & lng收费项目ID & "" & int收费方式 & "" & str部位 & "" & str方法 & "" & (dbl总量 * dbl计价数量) /// 本次发送中已经处理的费用项目 包含的字段(医嘱ID, adBigInt 一组医嘱的ID;诊疗项目ID, adBigInt;收费项目ID,adBigInt;收费方式, adInteger;收费时间, adVarChar, 10;执行部门ID, adBigInt;子医嘱ID, adBigInt 相关ID不为空的医嘱行的医嘱ID;检查部位, adVarChar, 30;检查方法, adVarChar, 30;数量, adDouble 收费数量 /// 出参数取值-1,0,>0;-1表示按主程序原有逻辑收取相当于是正常收费、为0表示本次不用收取、>0表示本次收费次数 /// 保留扩展参数 /// bool AdviceMakeFee(long lngSys, long lngModual, string strCurFee, ADODB.Recordset rsNowFee, double dblCount, string strReserve = ""); /// /// 门诊住院自定义申请单读取数据处理(XML处理) /// /// 系统号 /// 模块号 /// 病人id /// 门诊挂号单号,住院主页ID /// 申请单对应的病历文件列表.ID /// 自定义申请单的XML数据 /// 修改和查看时,医嘱ID不为空,新开时为空 /// 扩展参数 /// bool AdviceLoadApplyCustom(long lngSys, long lngModual, long lngPatiID, string lng就诊ID, long lng文件ID, string strXML, long lng医嘱ID = 0, string strReserve = ""); /// /// 门诊住院自定义申请单保存数据处理(XML处理) /// /// 系统号 /// 模块号 /// 病人id /// 门诊挂号单号,住院主页ID /// 申请单对应的病历文件列表.ID /// 自定义申请单的XML数据(出参) /// WebBrowser浏览器控件,可通过objWeb.document 对象访问网页表单数据进行检查 /// 修改申请单时传入 /// 扩展参数 /// bool AdviceSaveApplyCustom(long lngSys, long lngModual, long lngPatiID, string lng就诊ID, long lng文件ID, string strXML, ref dynamic objWeb, long lng医嘱ID = 0, string strReserve = ""); /// /// 门诊住院自定义申请单检查表单数据 /// /// 系统号 /// 模块号 /// 病人ID /// 门诊挂号单号,住院主页ID /// 申请单对应的病历文件列表.ID /// 自定义申请单的XML数据 /// WebBrowser浏览器控件,可通过objWeb.document 对象访问网页表单数据进行检查 /// 修改申请单时传入 /// 扩展参数 /// bool AdviceCheckApplyCustom(long lngSys, long lngModual, long lngPatiID, string lng就诊ID, long lng文件ID, string strXML, ref dynamic objWeb, long lng医嘱ID = 0, string strReserve = ""); /// /// LIS打印条码前 /// /// 系统号 /// 模块号 /// 本次打印的条码记录集中 包含的字段;rsNumber 中可能会存在多个条码 /// bool LisPrintCodeBefore(long lngSys, long lngModual, ADODB.Recordset rsNumber); /// /// 合理用药监测传入诊断拦截 /// /// 病人ID /// 主页ID /// 传入Pass的诊断记录;此记录由合理用药监测传入,此记录集允许增删改操作 /// bool SetPassDiag(long lngPatientID, long lng主页ID, ADODB.Recordset rsDiag); /// /// 合理用药监测传入检验信息 /// /// 病人ID /// 主页ID /// 挂号ID /// strExamsInfo返回检验信息MXL\JSON字符串 /// bool SetPassExams(long lngPatientID, long lng主页ID, long lng挂号ID, string strExamsInfo); /// /// 核对前调用,批量核对时每条医嘱调用一次 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 病人医嘱记录.id /// 医嘱发送号 /// 核对人 /// 核对时间 /// 执行人 /// XML扩展参数 /// bool AdvcieBeforToReview(long lngSys, long lngModual, long lngPatientID, long lngClinicID, long lngAdviceID, long lngSendID, string str核对人, string str核对时间, string str执行人, string strXML); /// /// 收费合法性检查 /// /// 系统号 /// 模块号 /// 1-收费;2-记帐 /// 是否门诊费用 /// 是否划价单 /// 门诊收费时,传入的划价单号(对本次收费的划价单号) /// 当前保存的项目集,字段:病人ID,主页ID,单据序号, 序号,价格父号,收费细目ID,收入项目id,付数 ,数次,标准单价,应收金额,实收金额,发生时间,项目编码,项目名称,费用类别,开单部门ID,开单人,执行部门ID /// bool ChargeSaveValied(long lngSys, long lngModual, long int记录性质, bool bln门诊, bool bln划价单, string strNos, ADODB.Recordset rsSaveItems); /// /// 在保存记帐、收费单后(事务结束后)调用 /// /// 系统号 /// 模块号 /// 病人ID(记帐表时,传入0) /// 主页ID(记帐表时,传入0) /// 是否门诊费用 /// 1-收费;2-记帐 /// 单据号 void ChargeSaveAfter(long lngSys, long lngModual, long lngPatientID, long lng主页ID, bool bln门诊, int int记录性质, string strNos); /// /// 向短信平台发送消息 /// /// 系统号 /// 模块号 /// 包含病人信息的XML字符串 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 场合=1时返回验证码以及等待时间,格式:验证码|倒计时秒数 /// 错误信息 /// 扩展信息 /// bool zlSendInfor(long lngSys, long lngModule, string strPatiXML, int int场合, string strFeedBack = "", string strErrMsg = "", string strReserve = ""); /// /// 对临床路径病人下医嘱时,传入当前下达的医嘱信息,由接口内部判断是否为路径外项目 /// /// 系统号 /// 模块号 /// 病人ID /// 就诊ID(挂号记录ID)/主页ID(住院调用时) /// 当前录入的一条或一组医嘱记录(中药配方、成套方案、批量复制医嘱在输入时不调用) /// 1.当前接判断为不是路径外项目时,则返回 路径项目ID和分类名称,lng路径项目ID - 病人路径执行.项目id,str分类 - 临床路径项目.分类;2.当前接判断为是路径外项目时,则返回0和空串,lng路径项目ID=0,str分类="" /// 即做为入参数,也当做出参影响主程序判断。 当传入的传不为0和空值,表示主程序已经匹配成功能,接口内部仍可以对参数赋值设为不匹配。如果要保留ZLHIS主程序判断结果,则原值返回。 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 保留参数,用于扩展使用 /// bool CheckPathInItem(long lngSys, long lngModual, long lngPatientID, long lngClinicID, ADODB.Recordset rsAdvice, long lng路径项目ID, string str分类, int int场合 = -1, string strReserve = ""); /// /// 病人撤消出院之前调用(病人入出管理撤消出院操作时调用) /// /// 病人ID /// 主页ID /// 扩展参数 /// bool InPatiCancelOutBefore(long lng病人ID, long lng主页ID, string strReserve = ""); /// /// 入院登记界面关闭或者点取消退出按钮时调用 /// /// 病人ID /// 主页ID /// 0-正常登记,1-预约登记,2-接收预约 /// 扩展参数 /// bool InPatiCheckInCancel(long lng病人ID, long lng主页ID, long lngType, string strReserve = ""); /// /// 门诊输液系统病人列表刷新时调用 /// /// 系统号 /// 模块号 /// 科室 /// 界面过滤时间范围,开始时间 /// 界面过滤时间范围,结束时间 /// 扩展参数 /// bool TransfusionShowPatiList(long lngSys, long lngModual, long lng科室id, DateTime BeginTime, DateTime EndTime, string strReserve = ""); /// /// 检查删除划价单或对收费进行退费、和记帐,检查保存数据的合法性 /// /// 模块号 /// 1-收费单;2-记帐单 /// /// 是否当前是保存的划价单 /// 格式1:NO1:序号1,序号2,||NO2:序号1,序号2;络式2:NO1||NO2:序号1,序号2||...;络式3:NO1||NO2||... /// bool ChargeDeleteAndStrictValied(long lngModule, int int记录性质, bool bln门诊, bool bln划价单, string strNos); /// /// 外接第三方诊疗参考 /// /// 父窗体句柄 /// 调用场合:0-医生站调用,1-护士站调用,2-医技站调用(PACS/LIS) /// 1-门诊,2-住院 /// 病人ID /// 门诊挂号单号,住院主页ID /// 诊疗项目IDs(例:111,222,333) /// bool ShowClinicHelp(long lngOwnHwnd, int int场合, int int病人来源, long lng病人ID, long lng就诊ID, string str项目IDs, string strReserve = ""); /// /// 体温单记录保存时调用此接口,接口返回成功体温单/记录单数据才允许保存 /// /// 病人ID /// 主页ID /// 护理文件ID /// 数据XML串 /// bool BeforeVitalSignsSave(long lng病人ID, long lng主页ID, long lng文件ID, string strDataXML); /// /// 获取自费方式 /// /// 模块号 /// 病人ID /// 当前主页IDs,多个用逗号分离 /// 如果是医保病人,在医保结算后,调用本接口,传入当前的结帐ID,如果是普通病人,在读取费用明细后,调用本接口,结帐ID为0,但传入了rsFeeLists记录集 /// 传入的本次结帐的费用明细数据(住院,单据号 ,项目,费目,ID,序号,记录性质,记录状态,执行状态,主页ID,计算单位,数量, 价格,应收金额,实收金额,未结金额,结帐金额, 统筹金额,类型, 收费类别,收费类别名,费别, 婴儿费, 执行部门id,科室,开单部门ID,开单人, 保险大类id,收费细目ID,门诊标志,排序, 医嘱序号,时间,登记时间)(即传入现结帐程序中的费用明细集) /// 返回结算方式,本接口返回true时有效,格式为:结算方式1,结算金额1,结算号码1||结算方式2,结算金额2,结算号码2||.... /// bool zlGetSelfPaymentMode(long lngModule, long lng病人ID, string str主页Ids, long lng结帐ID, ADODB.Recordset rsFeeLists, string strSelfPaymentMode_Out); } }