譬如查询病历文书及其相关操作日志,明细DtoStrucDoc,DtoEncounter里的信息都是具有查询意义的,但是如果想增加一个“是否出院记录”的查询条件,就不知道往哪里放了。我们可以借助一个普通字典字段作为断言判断,前端勾选了就设置断言TRUE,否则是没这个断言或者FALSE。中间层方法可根据这个断言内容区分从而走不同的分支逻辑获取相关数据,又能使用通用查询IList<TEntity> GetByPredicate<TEntity, TKey>(this IQueryableRepository<TEntity, TKey> repository, PredicateSet predicates)
具体可参考如下代码:
public class SurgeryDocLockedInfoCriterias : EntityCriterias, ISurgeryDocLockedInfoCriterias{public SurgeryDocLockedInfoCriterias(){this.ResponsibleDepartment = CriteriaHelper.NewObject<IStrucDoc, DtoStrucDoc, IOrganization>("所属科室", a => a.ResponsibleDepartment, a => a.ResponsibleDepartmentId, false).SetPickSource(OrganizationTreeKind.IPTreeKind.ValidDataProvider);this.SeqNoText = CriteriaHelper.NewString<IEncounter, DtoEncounter>("住院号", a => a.SeqNoText, a => a.SeqNoText);this.IsDischargedRecord = CriteriaHelper.NewBool<IClinicItem, DtoClinicItem>("是否出院记录", a => a.IsAllowMerge, a => a.IsAllowMerge);}public static readonly SurgeryDocLockedInfoCriterias Instance = new SurgeryDocLockedInfoCriterias();public IObjectCriteria<IStrucDoc, IOrganization> ResponsibleDepartment{get;set;}public IStringCriteria<IEncounter> SeqNoText{get;set;}public IBoolCriteria<IClinicItem> IsDischargedRecord{get;set;}}
在前端根据界面条件或特定属性复制Criterias
private IList<ISurgeryDocLockedInfo> _items;private void ExecRefresh(){PredicateSet predicates = new PredicateSet();var criterias = Repository.Criterias;if (!string.IsNullOrEmpty(_queryContext.IPSeqNotext)){predicates.Add(criterias.SeqNoText.Equal(_queryContext.IPSeqNotext));}if (_queryContext.ResponsibleDepartments != null && _queryContext.ResponsibleDepartments.Count() > 0){predicates.Add(criterias.ResponsibleDepartment.Contains(_queryContext.ResponsibleDepartments.ToArray()));}predicates.Add(criterias.IsDischargedRecord.Equal(IsDischargedRecord));using (MessageHelper.PopupWait("正在加载...")){_items = Repository.GetByPredicate(predicates);this.View.SetSurgeryDocLockedInfos(_items.OrderByDescending(a => a.OperationOn).ToList());}}
最后,回到中间层具体处理来自这个“特殊角色”的条件,我们知道勾选了该条件,其内容就是"a => (a.IsAllowMerge == True)":
public IList<DtoSurgeryDocLockedInfo> GetSurgeryDocLockedInfo(ClientContext context, PredicateCollection predicates){//特别注意:借用断言(a.IsAllowMerge == True/False)获取前端查询条件“是否查询出院记录”Expression<Func<DtoClinicItem, bool>> isChargedRecordFilter = predicates.Get<DtoClinicItem>();bool isDischargedRecord = (isChargedRecordFilter.ToString() == "a => (a.IsAllowMerge == True)") ? true : false;if (isDischargedRecord)return DoGetDischargedDocLockedInfo(context, predicates);elsereturn DoGetSurgeryDocLockedInfo(context, predicates);}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/964401.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
如何 运行 seatunnel web 开发版
如何 运行 seatunnel web 开发版1.概述
seatunnel 是一个实现数据库同步的执行引擎,但是他需要用户自己编写 同步定义文件。如果是一次执行需要使用命令执行同步,如果是集群部署,需要用户提交同步定义文件.
seatunn…
深入解析:mysql_page pagesize 如何实现游标分页?
深入解析:mysql_page pagesize 如何实现游标分页?2025-11-13 15:38
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; disp…
Continuous Trajectory: 从 Independent Set Process 到另类 Giant Component
Independent Set Process
大部分时候,随着一个自然的随机过程的进行,随机变量的变化都很平滑。例如,考虑在 \(G(n,p)\) 上进行如下的贪心求最大独立集算法:从 1 到 \(n\) 遍历每个点,能选就选。这里我们假设 \(p=…
c++初学者的随笔记录_1
include
include---->> system("pause");有此头文件才能写这个代码。功能:让一闪而过的windows控制面板持久出现
using namespace std--->>如果没有这个 std 命名空间则需要std:: 这样来写。…
Bakas Trick
Trick 名何意味。
又名:不删除双指针。
常用于数区间,区间信息通常带有可合并的特质,也就是通常可以用线段树维护,如区间加,区间上的动态 DP(矩阵乘法)。
实现方法是:定义双指针 \(L,R\) 与辅助变量 \(\mathrm…
从0到1构建一个稳定redis架构
从0到1搭建一个稳定的redis集群
1、单机版redis单机版的redis就是业务系统把他用作缓存使用,从mysql中查询数据然后写入到redis中,后面再查询的时候就会优先查询缓存。因为redis运行在内存中,所以速度很快。若业务体…
WireWorld 美国线世界:以专利科技重塑家用音响线缆的高保真革命
本文聚焦美国 WireWorld 线世界音响线缆,阐述其以 Cable Comparator 测试系统、DNA Helix 等专利技术为核心,凭借优质导体与绝缘材料,打造覆盖全场景的高保真产品矩阵。在音响发烧友的世界里,线缆被喻为 “音质的最…
从淘宝推荐到微信搜索:查找算法如何支撑亿级用户——动画可视化 - 教程
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
JVM系列——垃圾收集(1)
https://tech.meituan.com/2020/08/06/new-zgc-practice-in-meituan.htmlhttps://www.bilibili.com/video/BV1US4y1m7if/?spm_id_from=333.337.search-card.all.click&vd_source=99ec55b57f4eeedd9ed62c43e87cb6f…
2025年上海统招专升本平台权威推荐榜单:上海专升本/上海全日制专升/上海专升本培训平台精选
在学历提升需求持续增长的背景下,上海统招专升本已成为专科生获得本科学历的重要途径,选择优质的教育服务平台对考生备考至关重要。
近年来,上海地区统招专升本报考人数呈现稳步增长趋势。据教育统计数据显示,2024…
Codeforces 1120D Power Tree 题解 [ 蓝 ] [ 树形 DP ] [ 记忆化搜索 ] [ 图论建模 ] [ 最小生成树 ] [ 差分 ]
Power Tree
简单题,场上大概写了 50min。
Sol.1 树形 DP
对所有数变 \(0\) 的条件进行刻画,把子树的条件画在序列上。具体而言,我们求出树的中序遍历,选择一个节点等价于将其子树的区间 \([l, r]\) 分离出来,即在…
软件开发公司的隐形资产:为什么设计思维比代码量更值钱?
软件开发公司的隐形资产:为什么设计思维比代码量更值钱?代码量陷阱:软件开发的认知误区
在软件开发行业,“代码量”曾长期被当作衡量开发能力与项目价值的硬指标。不少企业将日均代码行数、功能模块数量作为考核标…
mybatis 打印执行SQL
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor;
import lombok.extern.slf4j.Slf4j;
imp…
10年湛江老导游私藏路线!除了生蚝,这座海滨之城还有多少惊喜等你发现
各位旅友,大家好!
我是导游小胡,在湛江这座美丽的海滨城市已经做了整整10年导游。今天,我想带大家看看,除了远近闻名的湛江生蚝,这座城市还有哪些让人流连忘返的风景。
湖光岩:世界地质奇观的秘密
作为世界第二…
ld.lld: error: undefined symbol: _impure_ptr 出现该问题解决办法
ld.lld: error: undefined symbol: _impure_ptr 出现该问题解决办法
解决方案命令
方法1:显式链接newlib
gcc -specs=nosys.specs your_source.c -o output方法2:使用完整newlib
gcc --specs=rdimon.specs -lrdimon …
5、MySQL 常用值
MySQL 常用值清单,涵盖了实际开发中最频繁使用的默认值、函数和属性。
一、自动编号与唯一标识 值/属性说明使用场景示例AUTO_INCREMENT
自动生成唯一递增整数
id INT AUTO_INCREMENT PRIMARY KEYUUID()
生成全局唯一…