linq使用等值连接where实现复杂关联条件-极品
//把数据添加到 超限处理中
            //最难的一部分,可以与超说明书共享,其他超限部分的计算:下面这些是补充部分,把作用功效与典型病例合并,如果每一种疾病都无法被包含,则定义为违规
            var cx_qtcx = from aa in sjklj.病员信息大全
                          where aa.机构编号 == yybm && !(aa.限医保使用限制说明.Contains("支付不超过") || aa.限医保使用限制说明.Contains("二级"))
                          select aa;

            var cx_cxml = from aa in sjklj.超限项目
                          where aa.类别== "超说明书"
                          select aa;
            /*
            var gl_cx = from aa in cx_qtcx
                        join
     bb in cx_cxml on aa.医药机构目录名称 equals bb.药品名称
                        select new
                        {
                            aa,
                            bb
                        };
            */
            var gl_cx = from aa in cx_qtcx
                        from bb in cx_cxml
                        where aa.医药机构目录名称.Contains(bb.药品名称) || bb.药品名称.Contains(aa.医药机构目录名称)
                        select new
                        {
                            aa,
                            bb
                        };

            //错误的比较多,需要自己去删除不匹配的,超限部分,已有的限二级,加上不超过。。。月,再加上数据库表匹配(药品名称,获取每一个疾病,长度不足4个字符的取全部 超过的取前4个,
            //依次与数据库表中典型疾病或作用疗效中所有字符匹配,如果一个都匹配不上,则超限。超说明书类似,只是药品名称不同,取消限二级,限。。。月)
            foreach (var kk in gl_cx)
            {
                if(kk.aa.医药机构目录名称.Contains(kk.bb.药品名称) || kk.bb.药品名称.Contains(kk.aa.医药机构目录名称))
                {

渝公网安备 50011902000225号

渝ICP备18008233号-1