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);
}
}