diff --git a/openhis-miniapp/.hbuilderx/launch.json b/openhis-miniapp/.hbuilderx/launch.json new file mode 100644 index 00000000..81f13f4f --- /dev/null +++ b/openhis-miniapp/.hbuilderx/launch.json @@ -0,0 +1,16 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/openhis-miniapp/App.vue b/openhis-miniapp/App.vue index 8c2b7321..46719b74 100644 --- a/openhis-miniapp/App.vue +++ b/openhis-miniapp/App.vue @@ -1,3 +1,9 @@ + + + \ No newline at end of file diff --git a/openhis-miniapp/pages/home.vue b/openhis-miniapp/pages/home.vue new file mode 100644 index 00000000..edc5d09d --- /dev/null +++ b/openhis-miniapp/pages/home.vue @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/openhis-miniapp/pages/index/index.vue b/openhis-miniapp/pages/index/index.vue index 9c0e18e4..d4da16ca 100644 --- a/openhis-miniapp/pages/index/index.vue +++ b/openhis-miniapp/pages/index/index.vue @@ -1,52 +1,318 @@ + + ]); + // 当前就诊人信息 + const currentPatient = reactive({ + name: '张三', + id: '123456' + }); - + \ No newline at end of file diff --git a/openhis-miniapp/pages/personInfo/ServiceRecordItem.vue b/openhis-miniapp/pages/personInfo/ServiceRecordItem.vue new file mode 100644 index 00000000..0cc75b41 --- /dev/null +++ b/openhis-miniapp/pages/personInfo/ServiceRecordItem.vue @@ -0,0 +1,43 @@ + + + + + \ No newline at end of file diff --git a/openhis-miniapp/pages/personInfo/personInfo.vue b/openhis-miniapp/pages/personInfo/personInfo.vue new file mode 100644 index 00000000..e93a5c74 --- /dev/null +++ b/openhis-miniapp/pages/personInfo/personInfo.vue @@ -0,0 +1,233 @@ + + + + \ No newline at end of file diff --git a/openhis-miniapp/static/font/iconfont.css b/openhis-miniapp/static/font/iconfont.css new file mode 100644 index 00000000..9af8831e --- /dev/null +++ b/openhis-miniapp/static/font/iconfont.css @@ -0,0 +1,69 @@ +@font-face { + font-family: "iconfont"; + src: url('/static/font/iconfont.ttf') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-keshi:before { + content: "\e624"; +} + +.icon-yisheng_1:before { + content: "\e633"; +} + +.icon-menzhenjiaofei2:before { + content: "\e605"; +} + + +.icon-erweima:before { + content: "\e642"; +} + +.icon-jinriguahao:before { + content: "\e627"; +} + +.icon-qiandao_:before { + content: "\e687"; +} + +.icon-chakanbaogao:before { + content: "\e69d"; +} + +.icon-homejiuzhenjilu:before { + content: "\e6b1"; +} + +.icon-yuyueguahao:before { + content: "\e606"; +} + +.my-jiuzhenjilu:before { + content: "\e61a"; +} + +.my-guahaojilu:before { + content: "\e718"; +} + +.my-wodebaogao:before { + content: "\e67a"; +} + +.my-jiaofeijilu:before { + content: "\e6ce"; +} + +.my-jiuzhenrenguanli:before { + content: "\e6a9"; +} \ No newline at end of file diff --git a/openhis-miniapp/static/font/iconfont.ttf b/openhis-miniapp/static/font/iconfont.ttf new file mode 100644 index 00000000..1134dba5 Binary files /dev/null and b/openhis-miniapp/static/font/iconfont.ttf differ diff --git a/openhis-miniapp/static/images/qiehuan.png b/openhis-miniapp/static/images/qiehuan.png new file mode 100644 index 00000000..d59d87a8 Binary files /dev/null and b/openhis-miniapp/static/images/qiehuan.png differ diff --git a/openhis-miniapp/static/images/tabbar/erweima.png b/openhis-miniapp/static/images/tabbar/erweima.png new file mode 100644 index 00000000..57250a49 Binary files /dev/null and b/openhis-miniapp/static/images/tabbar/erweima.png differ diff --git a/openhis-miniapp/static/images/tabbar/erweima_1.png b/openhis-miniapp/static/images/tabbar/erweima_1.png new file mode 100644 index 00000000..8a5f2004 Binary files /dev/null and b/openhis-miniapp/static/images/tabbar/erweima_1.png differ diff --git a/openhis-miniapp/static/images/tabbar/shouye.png b/openhis-miniapp/static/images/tabbar/shouye.png new file mode 100644 index 00000000..cfa1db65 Binary files /dev/null and b/openhis-miniapp/static/images/tabbar/shouye.png differ diff --git a/openhis-miniapp/static/images/tabbar/shouye_1.png b/openhis-miniapp/static/images/tabbar/shouye_1.png new file mode 100644 index 00000000..52e7be2a Binary files /dev/null and b/openhis-miniapp/static/images/tabbar/shouye_1.png differ diff --git a/openhis-miniapp/static/images/tabbar/wode.png b/openhis-miniapp/static/images/tabbar/wode.png new file mode 100644 index 00000000..9c183126 Binary files /dev/null and b/openhis-miniapp/static/images/tabbar/wode.png differ diff --git a/openhis-miniapp/static/images/tabbar/wode_1.png b/openhis-miniapp/static/images/tabbar/wode_1.png new file mode 100644 index 00000000..d33ade99 Binary files /dev/null and b/openhis-miniapp/static/images/tabbar/wode_1.png differ diff --git a/openhis-miniapp/static/images/user.png b/openhis-miniapp/static/images/user.png new file mode 100644 index 00000000..bc4802a5 Binary files /dev/null and b/openhis-miniapp/static/images/user.png differ diff --git a/openhis-miniapp/static/shouye/lunbotu1.png b/openhis-miniapp/static/shouye/lunbotu1.png new file mode 100644 index 00000000..8aaa36f7 Binary files /dev/null and b/openhis-miniapp/static/shouye/lunbotu1.png differ diff --git a/openhis-miniapp/static/shouye/lunbotu2.png b/openhis-miniapp/static/shouye/lunbotu2.png new file mode 100644 index 00000000..35894cb7 Binary files /dev/null and b/openhis-miniapp/static/shouye/lunbotu2.png differ diff --git a/openhis-miniapp/static/wode/guahao.png b/openhis-miniapp/static/wode/guahao.png new file mode 100644 index 00000000..dfee3e3e Binary files /dev/null and b/openhis-miniapp/static/wode/guahao.png differ diff --git a/openhis-miniapp/static/wode/jiaofei.png b/openhis-miniapp/static/wode/jiaofei.png new file mode 100644 index 00000000..01ee9624 Binary files /dev/null and b/openhis-miniapp/static/wode/jiaofei.png differ diff --git a/openhis-miniapp/static/wode/jiuzhen.png b/openhis-miniapp/static/wode/jiuzhen.png new file mode 100644 index 00000000..055fedf3 Binary files /dev/null and b/openhis-miniapp/static/wode/jiuzhen.png differ diff --git a/openhis-miniapp/static/wode/jiuzhenren.png b/openhis-miniapp/static/wode/jiuzhenren.png new file mode 100644 index 00000000..783df1e4 Binary files /dev/null and b/openhis-miniapp/static/wode/jiuzhenren.png differ diff --git a/openhis-miniapp/static/wode/wode.png b/openhis-miniapp/static/wode/wode.png new file mode 100644 index 00000000..d34e7172 Binary files /dev/null and b/openhis-miniapp/static/wode/wode.png differ diff --git a/openhis-miniapp/uni_modules/uni-icons/changelog.md b/openhis-miniapp/uni_modules/uni-icons/changelog.md new file mode 100644 index 00000000..64498853 --- /dev/null +++ b/openhis-miniapp/uni_modules/uni-icons/changelog.md @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/icons.js b/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 00000000..78899364 --- /dev/null +++ b/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/icons.js @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 00000000..86e74445 --- /dev/null +++ b/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uniicons.css b/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 00000000..2f56eabd --- /dev/null +++ b/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 00000000..835f33bc Binary files /dev/null and b/openhis-miniapp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf differ diff --git a/openhis-miniapp/uni_modules/uni-icons/package.json b/openhis-miniapp/uni_modules/uni-icons/package.json new file mode 100644 index 00000000..d1c4e77d --- /dev/null +++ b/openhis-miniapp/uni_modules/uni-icons/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/openhis-miniapp/uni_modules/uni-icons/readme.md b/openhis-miniapp/uni_modules/uni-icons/readme.md new file mode 100644 index 00000000..86234ba1 --- /dev/null +++ b/openhis-miniapp/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/openhis-server/core-common/src/main/java/com/core/common/enums/AssignSeqEnum.java b/openhis-server/core-common/src/main/java/com/core/common/enums/AssignSeqEnum.java index 6ba34f2e..929bc5df 100644 --- a/openhis-server/core-common/src/main/java/com/core/common/enums/AssignSeqEnum.java +++ b/openhis-server/core-common/src/main/java/com/core/common/enums/AssignSeqEnum.java @@ -3,8 +3,6 @@ */ package com.core.common.enums; -import com.core.common.utils.StringUtils; - /** * 采番前缀枚举 * @@ -17,8 +15,12 @@ public enum AssignSeqEnum { * 例子 */ TEST("1", "例子", "TE"), - //患者编号 - PATIENT_NUM("1", "患者编号", "PN"); + // 患者编号 + PATIENT_NUM("1", "患者编号", "PN"), + /** + * 就诊编号 + */ + ENCOUNTER_NUM("1", "就诊编号", "EN"); private final String code; private final String info; diff --git a/openhis-server/core-common/src/main/java/com/core/common/utils/AgeCalculatorUtil.java b/openhis-server/core-common/src/main/java/com/core/common/utils/AgeCalculatorUtil.java index 7dd186d4..2a43840b 100644 --- a/openhis-server/core-common/src/main/java/com/core/common/utils/AgeCalculatorUtil.java +++ b/openhis-server/core-common/src/main/java/com/core/common/utils/AgeCalculatorUtil.java @@ -2,7 +2,9 @@ package com.core.common.utils; import java.time.LocalDateTime; import java.time.Period; +import java.time.ZoneId; import java.time.temporal.ChronoUnit; +import java.util.Date; /** * 根据出生日期算年龄 @@ -15,7 +17,9 @@ public final class AgeCalculatorUtil { /** * 当前年龄取得(床位列表表示年龄用) */ - public static String getAge(LocalDateTime dateTime) { + public static String getAge(Date date) { + // 将 Date 转换为 LocalDateTime + LocalDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); LocalDateTime now = LocalDateTime.now(); int years = now.getYear() - dateTime.getYear(); if (years > 2) { @@ -78,5 +82,4 @@ public final class AgeCalculatorUtil { private static boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } - -} +} \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/ILocationAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/ILocationAppService.java new file mode 100644 index 00000000..d67ce973 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/ILocationAppService.java @@ -0,0 +1,13 @@ +package com.openhis.web.basedatamanage.appservice; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.web.basedatamanage.dto.LocationQueryDto; + +/** + * Location 应该服务类 + */ +public interface ILocationAppService { + // 查询位置树 + Page getLocationTree(Integer formKey, Integer pageNo, Integer pageSize); + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java new file mode 100644 index 00000000..d3f187d2 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java @@ -0,0 +1,13 @@ +package com.openhis.web.basedatamanage.appservice; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.web.basedatamanage.dto.OrganizationQueryDto; + +/** + * Organization 应该服务类 + */ +public interface IOrganizationAppService { + // 查询机构树 + Page getOrganizationTree(Integer pageNo, Integer pageSize); + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/ILocationAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/ILocationAppServiceImpl.java new file mode 100644 index 00000000..995e6554 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/ILocationAppServiceImpl.java @@ -0,0 +1,101 @@ +package com.openhis.web.basedatamanage.appservice.impl; + +import java.util.*; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import com.openhis.common.enums.LocationBedStatus; +import com.openhis.common.enums.LocationMode; +import com.openhis.common.enums.LocationStatus; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.administration.domain.Location; +import com.openhis.administration.service.ILocationService; +import com.openhis.common.enums.LocationForm; +import com.openhis.common.utils.EnumUtils; +import com.openhis.web.basedatamanage.appservice.ILocationAppService; +import com.openhis.web.basedatamanage.dto.LocationQueryDto; + +@Service +public class ILocationAppServiceImpl implements ILocationAppService { + + @Resource + ILocationService locationService; + + @Override + public Page getLocationTree(Integer formKey, Integer pageNo, Integer pageSize) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (formKey != null) { + queryWrapper.eq("form_enum", formKey); + } + + // 查询位置列表 + Page page = locationService.page(new Page<>(pageNo, pageSize), queryWrapper); + List locationList = page.getRecords(); + // 将位置列表转为树结构 + List locationTree = buildTree(locationList); + Page locationQueryDtoPage = new Page<>(pageNo, pageSize, page.getTotal()); + locationQueryDtoPage.setRecords(locationTree); + + locationQueryDtoPage.getRecords().forEach(e -> { + // 物理形式枚举回显赋值 + e.setFormEnum_enumText(EnumUtils.getInfoByValue(LocationForm.class, e.getFormEnum())); + // 状态编码回显赋值 + e.setStatusEnum_enumText(EnumUtils.getInfoByValue(LocationStatus.class, e.getStatusEnum())); + // 操作状态回显赋值 + e.setOperationalEnum_enumText(EnumUtils.getInfoByValue(LocationBedStatus.class, e.getOperationalEnum())); + // 模式编码回显赋值 + e.setModeEnum_enumText(EnumUtils.getInfoByValue(LocationMode.class, e.getModeEnum())); + }); + + return locationQueryDtoPage; + } + + /** + * 将位置列表转换为树结构 + * + * @param records 位置列表 + * @return tree + */ + private List buildTree(List records) { + // 按b_no的层级排序,确保父节点先处理 + List sortedRecords = records.stream() + .sorted(Comparator.comparingInt(r -> r.getBusNo().split("\\.").length)).collect(Collectors.toList()); + + Map nodeMap = new HashMap<>(); + List tree = new ArrayList<>(); + + for (Location record : sortedRecords) { + String bNo = record.getBusNo(); + String[] parts = bNo.split("\\."); + LocationQueryDto node = new LocationQueryDto(); + BeanUtils.copyProperties(record, node); + // 将当前节点加入映射 + nodeMap.put(bNo, node); + + if (parts.length == 1) { + // 根节点 + tree.add(node); + } else { + // 获取父节点的b_no(去掉最后一部分) + String parentBNo = String.join(".", Arrays.copyOf(parts, parts.length - 1)); + LocationQueryDto parent = nodeMap.get(parentBNo); + + if (parent != null) { + parent.getChildren().add(node); + } else { + // 处理父节点不存在的情况(例如数据缺失) + // 可根据需求调整为将节点加入根或抛出异常 + tree.add(node); + } + } + } + return tree; + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java new file mode 100644 index 00000000..4cf97c3d --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java @@ -0,0 +1,76 @@ +package com.openhis.web.basedatamanage.appservice.impl; + +import java.util.*; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.administration.domain.Organization; +import com.openhis.administration.service.IOrganizationService; +import com.openhis.web.basedatamanage.appservice.IOrganizationAppService; +import com.openhis.web.basedatamanage.dto.OrganizationQueryDto; + +@Service +public class IOrganizationAppServiceImpl implements IOrganizationAppService { + + @Resource + IOrganizationService organizationService; + + @Override + public Page getOrganizationTree(Integer pageNo, Integer pageSize) { + // 查询机构列表 + Page page = organizationService.page(new Page<>(pageNo, pageSize)); + List organizationList = page.getRecords(); + // 将机构列表转为树结构 + List orgTree = buildTree(organizationList); + Page orgQueryDtoPage = new Page<>(pageNo, pageSize, page.getTotal()); + orgQueryDtoPage.setRecords(orgTree); + return orgQueryDtoPage; + } + + /** + * 将机构列表转换为树结构 + * + * @param records 机构列表 + * @return tree + */ + private List buildTree(List records) { + // 按b_no的层级排序,确保父节点先处理 + List sortedRecords = records.stream() + .sorted(Comparator.comparingInt(r -> r.getBusNo().split("\\.").length)).collect(Collectors.toList()); + + Map nodeMap = new HashMap<>(); + List tree = new ArrayList<>(); + + for (Organization record : sortedRecords) { + String bNo = record.getBusNo(); + String[] parts = bNo.split("\\."); + OrganizationQueryDto node = new OrganizationQueryDto(); + BeanUtils.copyProperties(record, node); + // 将当前节点加入映射 + nodeMap.put(bNo, node); + + if (parts.length == 1) { + // 根节点 + tree.add(node); + } else { + // 获取父节点的b_no(去掉最后一部分) + String parentBNo = String.join(".", Arrays.copyOf(parts, parts.length - 1)); + OrganizationQueryDto parent = nodeMap.get(parentBNo); + + if (parent != null) { + parent.getChildren().add(node); + } else { + // 处理父节点不存在的情况(例如数据缺失) + // 可根据需求调整为将节点加入根或抛出异常 + } + } + } + return tree; + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/CabinetLocationController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/CabinetLocationController.java index 0aa816ad..d9ac2ed0 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/CabinetLocationController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/CabinetLocationController.java @@ -3,29 +3,23 @@ */ package com.openhis.web.basedatamanage.controller; -import java.util.Arrays; -import java.util.HashSet; - -import javax.servlet.http.HttpServletRequest; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; import com.core.common.utils.MessageUtils; -import com.core.common.utils.bean.BeanUtils; import com.openhis.administration.domain.Location; import com.openhis.administration.mapper.LocationMapper; import com.openhis.administration.service.ILocationService; import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.LocationBedStatus; import com.openhis.common.enums.LocationForm; -import com.openhis.common.utils.HisPageUtils; -import com.openhis.common.utils.HisQueryUtils; +import com.openhis.common.enums.LocationMode; +import com.openhis.common.enums.LocationStatus; +import com.openhis.web.basedatamanage.appservice.ILocationAppService; import com.openhis.web.basedatamanage.dto.LocationQueryDto; -import com.openhis.web.basedatamanage.dto.LocationQueryParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -43,6 +37,7 @@ import lombok.extern.slf4j.Slf4j; public class CabinetLocationController { private final ILocationService locationService; + private final ILocationAppService iLocationAppService; @Autowired private LocationMapper locationMapper; @@ -50,32 +45,18 @@ public class CabinetLocationController { /** * 位置分页列表 * - * @param locationQueryParam 查询字段 - * @param searchKey 模糊查询关键字 * @param pageNo 当前页码 * @param pageSize 查询条数 - * @param request 请求数据 * @return 位置分页列表 */ @GetMapping(value = "/cabinet-location") - public R getLocationPage(LocationQueryParam locationQueryParam, - @RequestParam(value = "searchKey", defaultValue = "") String searchKey, + public R getLocationPage(@RequestParam(required = false, value = "formKey", defaultValue = "") Integer formKey, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { - // 构建查询条件 - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(locationQueryParam, searchKey, - new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), request); + Page locationTree = iLocationAppService.getLocationTree(formKey, pageNo, pageSize); + return R.ok(locationTree, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"})); - // 设置排序 - queryWrapper.orderByDesc("create_time"); - - // 执行分页查询并转换为 locationQueryDtoPage - Page locationQueryDtoPage = - HisPageUtils.selectPage(locationMapper, queryWrapper, pageNo, pageSize, LocationQueryDto.class); - - return R.ok(locationQueryDtoPage, - MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"位置信息"})); } /** @@ -88,12 +69,15 @@ public class CabinetLocationController { // 设置为库房 // LocationQueryDto locationQuery = new LocationQueryDto(LocationForm.CABINET); - Location location = new Location(); - locationQueryDto.setFormEnum(LocationForm.CABINET); - BeanUtils.copyProperties(locationQueryDto, location); + // locationQueryDto.setFormEnum(LocationForm.CABINET); + // BeanUtils.copyProperties(locationQueryDto, location); + Location location = new Location(locationQueryDto.getId(), locationQueryDto.getBusNo(), + locationQueryDto.getName(), LocationStatus.ACTIVE.getValue(), LocationBedStatus.U.getValue(), + LocationMode.INSTANCE.getValue(), locationQueryDto.getTypeCode(), locationQueryDto.getTypeJson(), + locationQueryDto.getPyStr(), locationQueryDto.getWbStr(), LocationForm.CABINET.getValue(), + locationQueryDto.getOrganizationId(), locationQueryDto.getDisplayOrder()); boolean saveLocationSuccess = locationService.save(location); - return saveLocationSuccess ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"位置信息"})) : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"位置信息"})); @@ -114,13 +98,18 @@ public class CabinetLocationController { /** * 编辑库房位置信息 * - * @param location 库房位置信息 + * @param locationQueryDto 库房位置信息 */ @PutMapping("/cabinet-location") - public R editLocation(@Validated @RequestBody Location location) { + public R editLocation(@Validated @RequestBody LocationQueryDto locationQueryDto) { + + Location location = new Location(locationQueryDto.getId(), locationQueryDto.getBusNo(), + locationQueryDto.getName(), LocationStatus.ACTIVE.getValue(), LocationBedStatus.U.getValue(), + LocationMode.INSTANCE.getValue(), locationQueryDto.getTypeCode(), locationQueryDto.getTypeJson(), + locationQueryDto.getPyStr(), locationQueryDto.getWbStr(), LocationForm.CABINET.getValue(), + locationQueryDto.getOrganizationId(), locationQueryDto.getDisplayOrder()); boolean updateLocationSuccess = locationService.updateById(location); - return updateLocationSuccess ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"位置信息"})) : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"位置信息"})); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java index 266f983b..0c27539e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java @@ -3,16 +3,6 @@ */ package com.openhis.web.basedatamanage.controller; -import java.util.*; -import java.util.stream.Collectors; - -import javax.servlet.http.HttpServletRequest; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; import com.core.common.utils.AssignSeqUtil; @@ -22,12 +12,18 @@ import com.openhis.administration.mapper.OrganizationMapper; import com.openhis.administration.service.IOrganizationService; import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.OrganizationType; -import com.openhis.web.basedatamanage.dto.OrgQueryParam; +import com.openhis.web.basedatamanage.appservice.IOrganizationAppService; import com.openhis.web.basedatamanage.dto.OrganizationInitDto; import com.openhis.web.basedatamanage.dto.OrganizationQueryDto; - import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.*; +import java.util.stream.Collectors; /** * 机构管理controller @@ -42,6 +38,7 @@ import lombok.extern.slf4j.Slf4j; public class OrganizationController { private final IOrganizationService organizationService; + private final IOrganizationAppService iOrganizationAppService; @Autowired private OrganizationMapper organizationMapper; @@ -63,38 +60,17 @@ public class OrganizationController { /** * 机构分页列表 * - * @param orgQueryParam 查询字段 - * @param searchKey 模糊查询关键字 - * @param pageNo 当前页码 + * @param pageNo 当前页码 * @param pageSize 查询条数 - * @param request 请求数据 * @return 机构分页列表 */ @GetMapping(value = "/organization") - public R getOrganizationPage(OrgQueryParam orgQueryParam, - @RequestParam(value = "searchKey", defaultValue = "") String searchKey, - @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { - - // // 构建查询条件 - // QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(orgQueryParam, searchKey, - // new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), request); - // - // // 设置排序 - // queryWrapper.orderByDesc("create_time"); - // // 执行分页查询并转换为 orgQueryDtoPage - // Page orgQueryDtoPage = - // HisPageUtils.selectPage(organizationMapper, queryWrapper, pageNo, pageSize, OrganizationQueryDto.class); - // 查询机构列表 - Page page = organizationService.page(new Page<>(pageNo, pageSize)); - List organizationList = page.getRecords(); - // 将机构列表转为树结构 - List orgTree = buildTree(organizationList); - Page orgQueryDtoPage = new Page<>(pageNo, pageSize, page.getTotal()); - orgQueryDtoPage.setRecords(orgTree); - - return R.ok(orgQueryDtoPage, - MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"})); + public R getOrganizationPage( + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + Page organizationTree = iOrganizationAppService.getOrganizationTree(pageNo, pageSize); + return R.ok(organizationTree, + MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[]{"机构信息"})); } /** @@ -116,8 +92,8 @@ public class OrganizationController { boolean saveOrgSuccess = organizationService.save(organization); return saveOrgSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"机构信息"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"机构信息"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[]{"机构信息"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[]{"机构信息"})); } /** @@ -129,7 +105,7 @@ public class OrganizationController { public R getOrganizationById(@Validated @RequestParam Long orgId) { Organization organization = organizationService.getById(orgId); - return R.ok(organization, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"})); + return R.ok(organization, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[]{"机构信息"})); } /** @@ -145,8 +121,8 @@ public class OrganizationController { boolean updateOrgSuccess = organizationService.updateById(organization); return updateOrgSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"机构信息"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"机构信息"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"机构信息"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[]{"机构信息"})); } /** @@ -166,8 +142,8 @@ public class OrganizationController { boolean deleteOrgSuccess = organizationService.removeByIds(orgIdList); return deleteOrgSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"机构信息"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, new Object[] {"机构信息"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[]{"机构信息"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, new Object[]{"机构信息"})); } /** @@ -181,8 +157,8 @@ public class OrganizationController { boolean activeSuccess = organizationService.activeChange(orgId); return activeSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"启用"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"启用"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"启用"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[]{"启用"})); } /** @@ -196,49 +172,9 @@ public class OrganizationController { boolean inActiveSuccess = organizationService.activeChange(orgId); return inActiveSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"停用"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"停用"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"停用"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[]{"停用"})); } - /** - * 将机构列表转换为树结构 - * - * @param records 机构列表 - * @return tree - */ - private List buildTree(List records) { - // 按b_no的层级排序,确保父节点先处理 - List sortedRecords = records.stream() - .sorted(Comparator.comparingInt(r -> r.getBusNo().split("\\.").length)).collect(Collectors.toList()); - - Map nodeMap = new HashMap<>(); - List tree = new ArrayList<>(); - - for (Organization record : sortedRecords) { - String bNo = record.getBusNo(); - String[] parts = bNo.split("\\."); - OrganizationQueryDto node = new OrganizationQueryDto(); - BeanUtils.copyProperties(record, node); - // 将当前节点加入映射 - nodeMap.put(bNo, node); - - if (parts.length == 1) { - // 根节点 - tree.add(node); - } else { - // 获取父节点的b_no(去掉最后一部分) - String parentBNo = String.join(".", Arrays.copyOf(parts, parts.length - 1)); - OrganizationQueryDto parent = nodeMap.get(parentBNo); - - if (parent != null) { - parent.getChildren().add(node); - } else { - // 处理父节点不存在的情况(例如数据缺失) - // 可根据需求调整为将节点加入根或抛出异常 - } - } - } - return tree; - } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java new file mode 100644 index 00000000..d401d6d8 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java @@ -0,0 +1,175 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.web.basedatamanage.controller; + +import java.util.Arrays; +import java.util.HashSet; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.core.common.utils.MessageUtils; +import com.openhis.administration.domain.Practitioner; +import com.openhis.administration.domain.PractitionerRole; +import com.openhis.administration.mapper.PractitionerMapper; +import com.openhis.administration.mapper.PractitionerRoleMapper; +import com.openhis.administration.service.IPractitionerService; +import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.AccountStatus; +import com.openhis.common.enums.AdministrativeGender; +import com.openhis.common.utils.EnumUtils; +import com.openhis.common.utils.HisPageUtils; +import com.openhis.common.utils.HisQueryUtils; +import com.openhis.web.basedatamanage.dto.PractSearchParam; +import com.openhis.web.basedatamanage.dto.PractitionerDto; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * 员工管理Controller业务层处理 + * + * @author + * @date 2025-02-21 + */ +@RestController +@RequestMapping("/basedatamanage/practitioner") +@Slf4j +@AllArgsConstructor +public class PractitionerController { + + private final IPractitionerService practitionerService; + + @Autowired + private PractitionerMapper practitionerMapper; + + @Autowired + private PractitionerRoleMapper practitionerRoleMapper; + + /** + * 员工分页列表 + * + * @param practSearchParam 查询条件 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param request 请求数据 + * @return 员工分页列表 + */ + @GetMapping(value = "/practitioner") + public R getPractitionerPage(PractSearchParam practSearchParam, + @RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { + + // 构建查询条件 + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(practSearchParam, searchKey, + new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), request); + + // 设置排序 + queryWrapper.orderByDesc("name"); + + // 执行分页查询并转换为 practitionerDtoPage + Page practitionerDtoPage = + HisPageUtils.selectPage(practitionerMapper, queryWrapper, pageNo, pageSize, PractitionerDto.class); + + practitionerDtoPage.getRecords().forEach(e -> { + // 性别回显赋值 + e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum())); + }); + + return R.ok(practitionerDtoPage, + MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"员工信息"})); + + } + + /** + * 添加员工信息 + * + * @param practitionerDto 员工信息 + */ + @PostMapping("/practitioner") + public R addPractitioner(@Validated @RequestBody PractitionerDto practitionerDto) { + + // 新增practitioner信息 + Practitioner practitioner = new Practitioner(); + BeanUtils.copyProperties(practitionerDto, practitioner); + practitioner.setActiveFlag(AccountStatus.ACTIVE.getValue()); + + boolean savePractitionerSuccess = practitionerService.save(practitioner); + + PractitionerRole practitionerRole = new PractitionerRole(); + practitionerRole.setPractitionerId(practitioner.getId()); + practitionerRole.setName(practitioner.getName()); + Integer saveProleSuccess = practitionerRoleMapper.insert(practitionerRole); + + boolean saveFlag; + if (savePractitionerSuccess && saveProleSuccess == 1) { + saveFlag = true; + } else { + saveFlag = false; + } + + return saveFlag ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"员工信息"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"员工信息"})); + } + + /** + * 获取员工需要编辑的信息 + * + * @param practitionerId 员工信息 + */ + @GetMapping("/practitioner-getById") + public R getPractitionerById(@Validated @RequestParam Long practitionerId) { + + Practitioner practitioner = practitionerService.getById(practitionerId); + if (practitioner != null) { + return R.ok(practitioner, + MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"员工信息"})); + } else { + return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"员工信息查新失败"})); + } + } + + /** + * 编辑员工信息 + * + * @param practitionerDto 员工信息 + */ + @PutMapping("/practitioner") + public R editPractitioner(@Validated @RequestBody PractitionerDto practitionerDto) { + + // 编辑practitioner信息 + Practitioner practitioner = new Practitioner(); + BeanUtils.copyProperties(practitionerDto, practitioner); + + boolean editPractitionerSuccess = practitionerService.updateById(practitioner); + + return editPractitionerSuccess + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"员工信息"})) + : R.fail(PromptMsgConstant.Common.M00007, null); + } + + /** + * 删除员工信息 + * + * @param practitionerId 主表id + */ + @DeleteMapping("/practitioner") + public R deletePractitioner(@RequestParam Long practitionerId) { + + boolean delPractitionerSuccess = practitionerService.removeById(practitionerId); + + return delPractitionerSuccess + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"员工信息"})) + : R.fail(PromptMsgConstant.Common.M00006, null); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerRoleController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerRoleController.java index 700a66dc..198cd26f 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerRoleController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerRoleController.java @@ -8,7 +8,6 @@ import java.util.HashSet; import javax.servlet.http.HttpServletRequest; -import com.openhis.administration.domain.Organization; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -78,24 +77,24 @@ public class PractitionerRoleController { } - /** - * 添加岗位信息 - * - * @param practitionerRoleDto 岗位信息 - */ - @PostMapping("/practitioner-role") - public R addPractitionerRole(@Validated @RequestBody PractitionerRoleDto practitionerRoleDto) { - - // 新增practitionerRole信息 - PractitionerRole practitionerRole = new PractitionerRole(); - BeanUtils.copyProperties(practitionerRoleDto, practitionerRole); - - boolean savePractitionerRoleSuccess = practitionerRoleService.save(practitionerRole); - - return savePractitionerRoleSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"岗位信息"})) - : R.fail(PromptMsgConstant.Common.M00007, null); - } + // /** + // * 添加岗位信息 + // * + // * @param practitionerRoleDto 岗位信息 + // */ + // @PostMapping("/practitioner-role") + // public R addPractitionerRole(@Validated @RequestBody CreatePractitionerRoleDto practitionerRoleDto) { + // + // // 新增practitionerRole信息 + // PractitionerRole practitionerRole = new PractitionerRole(); + // BeanUtils.copyProperties(practitionerRoleDto, practitionerRole); + // + // boolean savePractitionerRoleSuccess = practitionerRoleService.save(practitionerRole); + // + // return savePractitionerRoleSuccess + // ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"岗位信息"})) + // : R.fail(PromptMsgConstant.Common.M00007, null); + // } /** * 获取岗位需要编辑的信息 @@ -106,7 +105,8 @@ public class PractitionerRoleController { public R getPractitionerRoleById(@Validated @RequestParam Long proleId) { PractitionerRole practitionerRole = practitionerRoleService.getById(proleId); - return R.ok(practitionerRole, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"岗位信息"})); + return R.ok(practitionerRole, + MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"岗位信息"})); } /** @@ -120,6 +120,15 @@ public class PractitionerRoleController { // 编辑practitionerRole信息 PractitionerRole practitionerRole = new PractitionerRole(); BeanUtils.copyProperties(practitionerRoleDto, practitionerRole); + if (practitionerRole.getRole_code() == null) { + return R.fail(PromptMsgConstant.Common.M00007, "角色编码不能为空"); + } + if (practitionerRole.getOrgId() == null) { + return R.fail(PromptMsgConstant.Common.M00007, "科室不能为空"); + } + if (practitionerRole.getLocationId() == null) { + return R.fail(PromptMsgConstant.Common.M00007, "位置不能为空"); + } boolean editPractitionerRoleSuccess = practitionerRoleService.updateById(practitionerRole); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/LocationQueryDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/LocationQueryDto.java index 588971fb..750dcf5e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/LocationQueryDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/LocationQueryDto.java @@ -3,10 +3,15 @@ */ package com.openhis.web.basedatamanage.dto; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; +import java.util.ArrayList; +import java.util.List; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.enums.LocationBedStatus; -import com.openhis.common.enums.LocationForm; import com.openhis.common.enums.LocationMode; import com.openhis.common.enums.LocationStatus; @@ -20,30 +25,41 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class LocationQueryDto { - /** ID */ - @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 编码 */ + @NotBlank(message = "位置编码不能为空") private String busNo; /** 名称 */ + @NotBlank(message = "位置名称不能为空") private String name; /** 状态编码 */ - private LocationStatus statusEnum; + @NotNull(message = "状态编码不能为空") +// private LocationStatus statusEnum; + private Integer statusEnum; + private String statusEnum_enumText; /** 操作状态 */ - private LocationBedStatus operationalEnum; + @NotNull(message = "操作状态不能为空") +// private LocationBedStatus operationalEnum; + private Integer operationalEnum; + private String operationalEnum_enumText; /** 模式编码 */ - private LocationMode modeEnum; + @NotNull(message = "模式编码不能为空") +// private LocationMode modeEnum; + private Integer modeEnum; + private String modeEnum_enumText; /** 模式编码 */ private String typeCode; /** 功能编码 */ + @NotBlank(message = "功能编码不能为空") private String typeJson; /** 拼音码 */ @@ -53,18 +69,20 @@ public class LocationQueryDto { private String wbStr; /** 物理形式枚举 */ - private LocationForm formEnum; + @NotNull(message = "物理形式枚举不能为空") + // private LocationForm formEnum; + private Integer formEnum; + private String formEnum_enumText; /** 机构编码 */ + @NotNull(message = "机构编码不能为空") + @JsonSerialize(using = ToStringSerializer.class) private Long organizationId; /** 显示顺序 */ private Integer displayOrder; - // public LocationQueryDto(LocationForm form, String busNo, LocationMode mode) { - // public LocationQueryDto(LocationForm form) { - // this.statusEnum = LocationStatus.ACTIVE; - // this.formEnum = form; - // this.modeEnum = mode; - // } + /** 子集合 */ + private List children = new ArrayList<>(); + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrgQueryParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrgQueryParam.java deleted file mode 100644 index 2b0e8b15..00000000 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrgQueryParam.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright ©2023 CJB-CNIT Team. All rights reserved - */ -package com.openhis.web.basedatamanage.dto; - -import java.io.Serializable; - -import com.openhis.common.enums.OrganizationClass; -import com.openhis.common.enums.OrganizationType; - -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * 科室分页查询条件 - * - * @author - * @date 2025-02-21 - */ -@Data -@Accessors(chain = true) -public class OrgQueryParam implements Serializable { - - /** 活动标识 */ - private Integer activeFlag; - - /** 机构类型枚举 */ - private OrganizationType typeEnum; - - /** 机构分类枚举 */ - private OrganizationClass classEnum; - -} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrganizationQueryDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrganizationQueryDto.java index c1f9f8fd..181c0911 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrganizationQueryDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrganizationQueryDto.java @@ -8,6 +8,8 @@ import java.util.List; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.enums.OrganizationClass; import com.openhis.common.enums.OrganizationType; @@ -23,7 +25,7 @@ import lombok.experimental.Accessors; public class OrganizationQueryDto { /** ID */ - @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 编码 */ diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractRoleSearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractRoleSearchParam.java index acf2d759..033422e3 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractRoleSearchParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractRoleSearchParam.java @@ -18,9 +18,6 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class PractRoleSearchParam implements Serializable { - /** 名称 */ - private String name; - /** 专业编码枚举 */ private Integer specialtyEnum; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/LocationQueryParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractSearchParam.java similarity index 58% rename from openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/LocationQueryParam.java rename to openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractSearchParam.java index 97f71502..b4374f5e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/LocationQueryParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractSearchParam.java @@ -5,21 +5,20 @@ package com.openhis.web.basedatamanage.dto; import java.io.Serializable; -import com.openhis.common.enums.LocationMode; - import lombok.Data; import lombok.experimental.Accessors; /** - * 科室分页查询条件 + * 员工分页查询条件 * * @author * @date 2025-02-21 */ @Data @Accessors(chain = true) -public class LocationQueryParam implements Serializable { - /** 模式编码 */ - private LocationMode modeEnum; +public class PractSearchParam implements Serializable { + + /** 活动标记 */ + private Integer activeFlag; } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractitionerDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractitionerDto.java new file mode 100644 index 00000000..cf8f6ed5 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractitionerDto.java @@ -0,0 +1,79 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.web.basedatamanage.dto; + +import java.util.Date; + +import javax.validation.constraints.NotBlank; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author + * @date 2025-02-21 + */ +@Data +@Accessors(chain = true) +public class PractitionerDto { + + /** 姓名 */ + @NotBlank(message = "姓名不能为空") + private String name; + + /** 其他名称 */ + private String nameJson; + + /** 性别编码 */ + // @NotBlank(message = "性别不能为空") + // private AdministrativeGender genderEnum; + private Integer genderEnum; + private String genderEnum_enumText; + + /** 生日 */ + private Date birthDate; + + /** 死亡时间 */ + private Date deceasedDate; + + /** 电话 */ + private String phone; + + /** 地址 */ + private String address; + + /** 地址省 */ + private String addressProvince; + + /** 地址市 */ + private String addressCity; + + /** 地址区 */ + private String addressDistrict; + + /** 地址街道 */ + private String addressStreet; + + /** 患者其他地址 */ + private String addressJson; + + /** 拼音码 */ + private String pyStr; + + /** 五笔码 */ + private String wbStr; + + /** 患者院内编码/病历号 */ + private String busNo; + + /** 医保码 */ + private String ybNo; + + /** 系统用户id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long userId; +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractitionerRoleDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractitionerRoleDto.java deleted file mode 100644 index 16230063..00000000 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/PractitionerRoleDto.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright ©2023 CJB-CNIT Team. All rights reserved - */ -package com.openhis.web.basedatamanage.dto; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; - -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * @author - * @date 2025-02-21 - */ -@Data -@Accessors(chain = true) -public class PractitionerRoleDto { - - /** ID */ - @TableId(type = IdType.ASSIGN_ID) - private Long id; - - /** 名称 */ - private String name; - - /** 角色编码 */ - private String role_code; - - /** 活动标识 */ - private Integer activeFlag; - - /** 参与者Id */ - private Long practitionerId; - - /** 机构 */ - private Long orgId; - - /** 位置ID */ - private Long locationId; - - /** 服务id */ - private Long healthcareServiceId; - - /** 专业编码枚举 */ - private Integer specialtyEnum; - - /** 岗位类型 */ - private String typeCode; - - /** 有效时间 */ - private String availabilityJson; -} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java index 895b3d82..4d48c1e5 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java @@ -1,5 +1,7 @@ package com.openhis.web.basicservice.dto; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.annotation.Dict; import lombok.Data; import lombok.experimental.Accessors; @@ -15,6 +17,7 @@ public class HealthcareServiceDto { /** * ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** @@ -27,6 +30,7 @@ public class HealthcareServiceDto { * 提供部门ID */ @Dict(dictTable = "adm_organization",dictCode = "id",dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) private Long offeredOrgId; private String offeredOrgId_dictText; @@ -55,6 +59,7 @@ public class HealthcareServiceDto { * 地点 */ @Dict(dictTable = "adm_location",dictCode = "id",dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) private Long locationId; private String locationId_dictText; @@ -84,6 +89,12 @@ public class HealthcareServiceDto { private Integer appointmentRequiredFlag; private String appointmentRequiredFlag_enumText; + /** + * 费用定价ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long definitionId; + /** * 名称 */ diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java index f0911616..0674acab 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java @@ -142,7 +142,7 @@ public class DiseaseManageController { for (Long detail : ids) { ConditionDefinition conditionDefinition = new ConditionDefinition(); conditionDefinition.setId(detail); - conditionDefinition.setStatusEnum(PublicationStatus.RETIRED); + conditionDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue()); conditionDefinitionList.add(conditionDefinition); } // 更新病种信息 @@ -165,7 +165,7 @@ public class DiseaseManageController { for (Long detail : ids) { ConditionDefinition conditionDefinition = new ConditionDefinition(); conditionDefinition.setId(detail); - conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE); + conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue()); conditionDefinitionList.add(conditionDefinition); } // 更新病种信息 @@ -185,7 +185,7 @@ public class DiseaseManageController { ConditionDefinition conditionDefinition = new ConditionDefinition(); BeanUtils.copyProperties(diseaseManageUpDto, conditionDefinition); // 新增外来病种目录 - conditionDefinition.setStatusEnum(PublicationStatus.DRAFT); + conditionDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue()); return iConditionDefinitionService.addDisease(conditionDefinition) ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiseaseManageUpDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiseaseManageUpDto.java index 9344291d..9d7fa710 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiseaseManageUpDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiseaseManageUpDto.java @@ -15,6 +15,7 @@ import javax.validation.constraints.NotBlank; * @author lpt * @date 2025-02-25 */ + @Data @Accessors(chain = true) public class DiseaseManageUpDto { diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java new file mode 100644 index 00000000..4531d1ae --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java @@ -0,0 +1,76 @@ +package com.openhis.web.outpatientservice.appservice; + +import java.util.List; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.openhis.web.basicservice.dto.HealthcareServiceDto; +import com.openhis.web.outpatientservice.dto.*; + +/** + * 门诊挂号 应用Service + */ +public interface IOutpatientRegistrationAppService { + + /** + * 查询患者信息 + * + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 患者信息 + */ + Page getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize); + + /** + * 查询费用性质 + * + * @return 费用性质 + */ + List getContractMetadata(); + + /** + * 查询诊断信息 + * + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 诊断信息 + */ + Page getConditionDefinitionMetadataSearchKey(String searchKey, Integer pageNo, + Integer pageSize); + + /** + * 根据位置id筛选医生 + * + * @param locationId 位置ID + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 筛选医生 + */ + IPage getPractitionerMetadataByLocationId(Long locationId, String searchKey, Integer pageNo, + Integer pageSize); + + /** + * 根据机构id筛选服务项目 + * + * @param organizationId 机构id + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 服务项目 + */ + IPage getHealthcareMetadataByOrganizationId(Long organizationId, String searchKey, + Integer pageNo, Integer pageSize); + + /** + * 保存挂号 + * + * @param outpatientRegistrationAddParam 就诊表单信息 + * @return 结果 + */ + R saveRegister(OutpatientRegistrationAddParam outpatientRegistrationAddParam); + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java new file mode 100644 index 00000000..a87546f2 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java @@ -0,0 +1,271 @@ +package com.openhis.web.outpatientservice.appservice.impl; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import com.openhis.common.enums.*; +import com.openhis.common.enums.PractitionerRole; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.core.common.utils.AgeCalculatorUtil; +import com.core.common.utils.MessageUtils; +import com.core.common.utils.bean.BeanUtils; +import com.openhis.administration.domain.*; +import com.openhis.administration.mapper.PatientMapper; +import com.openhis.administration.service.*; +import com.openhis.clinical.domain.ConditionDefinition; +import com.openhis.clinical.mapper.ConditionDefinitionMapper; +import com.openhis.common.constant.CommonConstants; +import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.utils.EnumUtils; +import com.openhis.common.utils.HisPageUtils; +import com.openhis.common.utils.HisQueryUtils; +import com.openhis.financial.domain.Contract; +import com.openhis.financial.mapper.ContractMapper; +import com.openhis.web.basicservice.dto.HealthcareServiceDto; +import com.openhis.web.basicservice.mapper.HealthcareServiceBizMapper; +import com.openhis.web.outpatientservice.appservice.IOutpatientRegistrationAppService; +import com.openhis.web.outpatientservice.dto.*; +import com.openhis.web.outpatientservice.mapper.OutpatientRegistrationAppMapper; + +/** + * 门诊挂号 应用实现类 + */ +@Service +public class IOutpatientRegistrationAppServiceImpl implements IOutpatientRegistrationAppService { + + @Resource + PatientMapper patientMapper; + + @Resource + ContractMapper contractMapper; + + @Resource + ConditionDefinitionMapper conditionDefinitionMapper; + + @Resource + OutpatientRegistrationAppMapper outpatientRegistrationAppMapper; + + @Resource + HealthcareServiceBizMapper healthcareServiceBizMapper; + + @Resource + IEncounterService iEncounterService; + + @Resource + IEncounterLocationService iEncounterLocationService; + + @Resource + IEncounterParticipantService iEncounterParticipantService; + + @Resource + IAccountService iAccountService; + + @Resource + IChargeItemService iChargeItemService; + + /** + * 门诊挂号 - 查询患者信息 + * + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 患者信息 + */ + @Override + public Page getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize) { + // 构建查询条件 + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(null, searchKey, + new HashSet<>(Arrays.asList("id_card", "name", "py_str", "wb_str")), null); + // 设置排序 + queryWrapper.orderByDesc("update_time"); + // 患者信息 + Page patientMetadataPage = + HisPageUtils.selectPage(patientMapper, queryWrapper, pageNo, pageSize, PatientMetadata.class); + // 现有就诊过的患者id集合 + List patientIdList = + iEncounterService.list().stream().map(e -> e.getPatientId()).collect(Collectors.toList()); + + patientMetadataPage.getRecords().forEach(e -> { + // 性别枚举 + e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum())); + // 计算年龄 + e.setAge(AgeCalculatorUtil.getAge(e.getBirthDate())); + // 初复诊 + e.setFirstEnum_enumText(patientIdList.contains(e.getId()) ? EncounterType.FOLLOW_UP.getInfo() + : EncounterType.INITIAL.getInfo()); + + }); + return patientMetadataPage; + } + + /** + * 查询费用性质 + * + * @return 费用性质 + */ + @Override + public List getContractMetadata() { + // TODO: Contract表的基础数据维护还没做,具体不知道状态字段的取值是什么,先查询默认值为0的数据 + List ContractList = + contractMapper.selectList(new LambdaQueryWrapper().eq(Contract::getStatusEnum, 0)); + // 复制同名字段并 return + return ContractList.stream().map(contract -> { + ContractMetadata metadata = new ContractMetadata(); + try { + BeanUtils.copyProperties(contract, metadata); + } catch (Exception e) { + e.printStackTrace(); + } + return metadata; + }).collect(Collectors.toList()); + } + + /** + * 查询诊断信息 + * + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 诊断信息 + */ + @Override + public Page getConditionDefinitionMetadataSearchKey(String searchKey, Integer pageNo, + Integer pageSize) { + // 构建查询条件 + ConditionDefinition conditionDefinition = new ConditionDefinition(); + // 查询状态是有效的 + conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue()); + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(conditionDefinition, searchKey, + new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), null); + // 设置排序 + queryWrapper.orderByDesc("update_time"); + // 诊断信息 + Page conditionDefinitionMetadataPage = HisPageUtils + .selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, ConditionDefinitionMetadata.class); + conditionDefinitionMetadataPage.getRecords().forEach(e -> { + // 医保标记 + e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag())); + // 医保对码标记 + e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag())); + }); + return conditionDefinitionMetadataPage; + } + + /** + * 根据位置id筛选医生 + * + * @param locationId 位置ID + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 筛选医生 + */ + @Override + public IPage getPractitionerMetadataByLocationId(Long locationId, String searchKey, + Integer pageNo, Integer pageSize) { + // 构建查询条件 + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(null, searchKey, + new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), null); + IPage practitionerMetadataPage = + outpatientRegistrationAppMapper.getPractitionerMetadataPage(new Page<>(pageNo, pageSize), locationId, + PractitionerRole.DOCTOR.getCode(), queryWrapper); + practitionerMetadataPage.getRecords().forEach(e -> { + // 性别 + e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum())); + }); + return practitionerMetadataPage; + } + + /** + * 根据机构id筛选服务项目 + * + * @param organizationId 机构id + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 服务项目 + */ + @Override + public IPage getHealthcareMetadataByOrganizationId(Long organizationId, String searchKey, + Integer pageNo, Integer pageSize) { + // 构建查询条件 + HealthcareServiceDto healthcareServiceDto = new HealthcareServiceDto(); + healthcareServiceDto.setOfferedOrgId(organizationId); + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(healthcareServiceDto, + searchKey, new HashSet<>(Arrays.asList("name", "charge_name")), null); + return healthcareServiceBizMapper.getHealthcareServicePage(new Page<>(pageNo, pageSize), + CommonConstants.TableName.ADM_HEALTHCARE_SERVICE, queryWrapper); + } + + /** + * 保存挂号 + * + * @param outpatientRegistrationAddParam 就诊表单信息 + * @return 结果 + */ + @Override + public R saveRegister(OutpatientRegistrationAddParam outpatientRegistrationAddParam) { + // 就诊管理-表单数据 + EncounterFormData encounterFormData = outpatientRegistrationAddParam.getEncounterFormData(); + // 就诊位置管理-表单数据 + EncounterLocationFormData encounterLocationFormData = + outpatientRegistrationAddParam.getEncounterLocationFormData(); + // 就诊参数者管理-表单数据 + EncounterParticipantFormData encounterParticipantFormData = + outpatientRegistrationAddParam.getEncounterParticipantFormData(); + // 就诊账户管理-表单数据 + AccountFormData accountFormData = outpatientRegistrationAddParam.getAccountFormData(); + // 费用项管理-表单数据 + ChargeItemFormData chargeItemFormData = outpatientRegistrationAddParam.getChargeItemFormData(); + + // 患者ID + Long patientId = encounterFormData.getPatientId(); + // 服务项目ID + Long serviceTypeId = encounterFormData.getServiceTypeId(); + // 校验是否重复挂号 + Integer num = outpatientRegistrationAppMapper.getNumByPatientIdAndOrganizationId(patientId, serviceTypeId); + if (num > 0) { + return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + } + // 保存就诊信息 + Encounter encounter = new Encounter(); + BeanUtils.copyProperties(encounterFormData, encounter); + // 就诊ID + Long encounterId = iEncounterService.saveEncounterByRegister(encounter); + // 保存就诊位置信息 + encounterLocationFormData.setEncounterId(encounterId); + EncounterLocation encounterLocation = new EncounterLocation(); + BeanUtils.copyProperties(encounterLocationFormData, encounterLocation); + iEncounterLocationService.saveEncounterLocationByRegister(encounterLocation); + // 保存就诊参数者信息 + encounterParticipantFormData.setEncounterId(encounterId); + EncounterParticipant encounterParticipant = new EncounterParticipant(); + BeanUtils.copyProperties(encounterParticipantFormData, encounterParticipant); + iEncounterParticipantService.saveEncounterParticipantByRegister(encounterParticipant); + // 保存就诊账户信息 + accountFormData.setEncounterId(encounterId); + Account account = new Account(); + BeanUtils.copyProperties(accountFormData, account); + // 账户ID + Long accountId = iAccountService.saveAccountByRegister(account); + // 保存就诊费用项 + chargeItemFormData.setEncounterId(encounterId); + chargeItemFormData.setAccountId(accountId); + ChargeItem chargeItem = new ChargeItem(); + BeanUtils.copyProperties(chargeItemFormData, chargeItem); + iChargeItemService.saveChargeItemByRegister(chargeItem); + + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"挂号"})); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java index 43e63b9c..9465c5f1 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java @@ -3,21 +3,25 @@ */ package com.openhis.web.outpatientservice.controller; -import com.core.common.core.domain.R; -import com.openhis.common.enums.PriorityLevel; -import com.openhis.web.outpatientservice.controller.appservice.IOutpatientRegistrationService; -import com.openhis.web.outpatientservice.dto.OutpatientRegistrationInitDto; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.springframework.web.bind.annotation.*; + +import com.core.common.core.domain.R; +import com.openhis.common.enums.LocationForm; +import com.openhis.common.enums.PriorityLevel; +import com.openhis.web.basedatamanage.appservice.ILocationAppService; +import com.openhis.web.outpatientservice.appservice.IOutpatientRegistrationAppService; +import com.openhis.web.outpatientservice.dto.OutpatientRegistrationAddParam; +import com.openhis.web.outpatientservice.dto.OutpatientRegistrationInitDto; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +import javax.validation.Valid; + /** * 门诊挂号 controller */ @@ -27,16 +31,18 @@ import java.util.stream.Stream; @AllArgsConstructor public class OutpatientRegistrationController { - private final IOutpatientRegistrationService iOutpatientRegistrationService; + private final IOutpatientRegistrationAppService iOutpatientRegistrationAppService; + private final ILocationAppService iLocationAppService; /** - * 门诊挂号基础数据初始化 + * 基础数据初始化 */ @GetMapping(value = "/init") public R init() { OutpatientRegistrationInitDto outpatientRegistrationInitDto = new OutpatientRegistrationInitDto(); // 优先级 - List priorityLevelOptionOptions = Stream.of(PriorityLevel.values()) + List priorityLevelOptionOptions = + Stream.of(PriorityLevel.values()) .map(e -> new OutpatientRegistrationInitDto.priorityLevelOption(e.getValue(), e.getInfo())) .collect(Collectors.toList()); outpatientRegistrationInitDto.setPriorityLevelOptionOptions(priorityLevelOptionOptions); @@ -44,19 +50,88 @@ public class OutpatientRegistrationController { } /** - * 门诊挂号 - 查询患者信息 + * 查询患者信息 * * @param searchKey 模糊查询关键字 - * @param pageNo 当前页 - * @param pageSize 每页多少条 + * @param pageNo 当前页 + * @param pageSize 每页多少条 * @return 患者信息 */ @GetMapping(value = "/patient-metadata") public R getPatientMetadata(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, - @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { - return R.ok(iOutpatientRegistrationService.getPatientMetadataBySearchKey(searchKey, pageNo, pageSize)); + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + return R.ok(iOutpatientRegistrationAppService.getPatientMetadataBySearchKey(searchKey, pageNo, pageSize)); } + /** + * 查询费用性质 + * + * @return 费用性质 + */ + @GetMapping(value = "/contract-list") + public R getContractList() { + return R.ok(iOutpatientRegistrationAppService.getContractMetadata()); + } + + /** + * 查询诊断信息 + */ + @GetMapping(value = "/condition-definition-metadata") + public R getConditionDefinitionMetadata(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + return R + .ok(iOutpatientRegistrationAppService.getConditionDefinitionMetadataSearchKey(searchKey, pageNo, pageSize)); + } + + /** + * 查询就诊位置 + * + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @return 位置分页列表 + */ + @GetMapping(value = "/location-tree") + public R getLocationTree(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + return R.ok(iLocationAppService.getLocationTree(LocationForm.ROOM.getValue(), pageNo, pageSize)); + + } + + /** + * 根据位置id筛选医生 + */ + @GetMapping(value = "/practitioner-metadata") + public R getPractitionerMetadata(@RequestParam(value = "locationId") Long locationId, + @RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + return R.ok(iOutpatientRegistrationAppService.getPractitionerMetadataByLocationId(locationId, searchKey, pageNo, + pageSize)); + } + + /** + * 根据机构id筛选服务项目 + */ + @GetMapping(value = "/healthcare-metadata") + public R getHealthcareMetadata(@RequestParam(value = "organizationId") Long organizationId, + @RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + return R.ok(iOutpatientRegistrationAppService.getHealthcareMetadataByOrganizationId(organizationId, searchKey, + pageNo, pageSize)); + } + + /** + * 保存挂号 + * + * @param outpatientRegistrationAddParam 就诊表单信息 + * @return 结果 + */ + @PostMapping(value = "/save") + public R saveRegister(@Valid @RequestBody OutpatientRegistrationAddParam outpatientRegistrationAddParam) { + return iOutpatientRegistrationAppService.saveRegister(outpatientRegistrationAddParam); + } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java deleted file mode 100644 index a6c23d4e..00000000 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.openhis.web.outpatientservice.controller.appservice; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.openhis.web.outpatientservice.dto.PatientMetadata; - -/** - * 门诊挂号 Service - */ -public interface IOutpatientRegistrationService { - - /** - * 门诊挂号 - 查询患者信息 - * - * @param searchKey 模糊查询关键字 - * @param pageNo 当前页 - * @param pageSize 每页多少条 - * @return 患者信息 - */ - Page getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize); - -} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java deleted file mode 100644 index ef0d144c..00000000 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.openhis.web.outpatientservice.controller.appservice.impl; - - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.openhis.administration.domain.Patient; -import com.openhis.administration.mapper.PatientMapper; -import com.openhis.common.enums.AdministrativeGender; -import com.openhis.common.utils.EnumUtils; -import com.openhis.common.utils.HisPageUtils; -import com.openhis.common.utils.HisQueryUtils; -import com.openhis.web.outpatientservice.controller.appservice.IOutpatientRegistrationService; -import com.openhis.web.outpatientservice.dto.PatientMetadata; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.Arrays; -import java.util.HashSet; - -/** - * 门诊挂号 实现类 - */ -@Service -public class IOutpatientRegistrationServiceImpl implements IOutpatientRegistrationService { - - @Resource - PatientMapper patientMapper; - - /** - * 门诊挂号 - 查询患者信息 - * - * @param searchKey 模糊查询关键字 - * @param pageNo 当前页 - * @param pageSize 每页多少条 - * @return 患者信息 - */ - @Override - public Page getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize) { - // 构建查询条件 - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(null, - searchKey, new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), null - ); - // 设置排序 - queryWrapper.orderByDesc("update_time"); - // 患者信息 - Page patientMetadataPage = HisPageUtils.selectPage(patientMapper, - queryWrapper, pageNo, pageSize, PatientMetadata.class); - - patientMetadataPage.getRecords().forEach(e -> { - // 性别枚举 - e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum())); - }); - return patientMetadataPage; - } - -} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/AccountFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/AccountFormData.java new file mode 100644 index 00000000..77b0ca88 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/AccountFormData.java @@ -0,0 +1,62 @@ +package com.openhis.web.outpatientservice.dto; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.enums.AccountBillingStatus; +import com.openhis.common.enums.AccountStatus; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 就诊账号 表单数据 + */ +@Data +@Accessors(chain = true) +public class AccountFormData { + + /** + * 就诊ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + + /** 患者id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long patientId; + + /** 状态枚举 */ + private Integer statusEnum; + + /** 结账状态枚举 */ + private Integer billingStatusEnum; + + /** 账户类型编码 */ + private String typeCode; // 1:个人现金账户, 2:医保账户 + + /** 名称 */ + private String name; // 刷医保卡时应该会带出该信息 + + /** 账户余额 */ + private BigDecimal balanceAmount; // 刷医保卡时应该会带出该信息 + + /** 医保区域编码 */ + private String ybAreaNo; // 刷医保卡时应该会带出该信息 + + /** 合同编码 */ + private String contractNo; // 从选择的费用性质里选择合同编码 + + /** 欠费限制额度 */ + private BigDecimal limitAccount; // 刷医保卡时应该会带出该信息 + + /** + * 设置默认值 + */ + public AccountFormData() { + this.statusEnum = AccountStatus.ACTIVE.getValue(); + this.billingStatusEnum = AccountBillingStatus.OPEN.getValue(); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ChargeItemFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ChargeItemFormData.java new file mode 100644 index 00000000..d1e023f6 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ChargeItemFormData.java @@ -0,0 +1,87 @@ +package com.openhis.web.outpatientservice.dto; + +import java.math.BigDecimal; +import java.util.Date; + +import com.core.common.utils.SecurityUtils; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.constant.CommonConstants; +import com.openhis.common.enums.ChargeItemStatus; +import com.openhis.common.enums.EncounterClass; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 费用项管理 表单数据 + */ +@Data +@Accessors(chain = true) +public class ChargeItemFormData { + + /** + * 就诊ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + + /** 患者id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long patientId; + + /** 层级 */ + private String busNo; + + /** 状态 */ + private Integer statusEnum; + + /** 类别 */ + private Integer contextEnum; + + /** 发生时间 */ + private Date occurrenceTime; + + /** 执行人Id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long performerId; + + /** 费用定价ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long definitionId; + + /** 开立人ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long entererId; + + /** 开立时间 */ + private Date enteredDate; + + /** 医疗服务类型 */ + private String serviceTable; + + /** 医疗服务ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long serviceId; + + /** 总价 */ + private BigDecimal totalPrice; + + /** 关联账户ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long accountId; + + /** + * 设置默认值 + */ + public ChargeItemFormData() { + this.statusEnum = ChargeItemStatus.BILLED.getValue(); + this.contextEnum = EncounterClass.AMB.getValue(); + this.occurrenceTime = new Date(); + this.performerId = SecurityUtils.getLoginUser().getUserId(); + this.entererId = SecurityUtils.getLoginUser().getUserId(); + this.enteredDate = new Date(); + this.serviceTable = CommonConstants.TableName.ADM_HEALTHCARE_SERVICE; + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java new file mode 100644 index 00000000..cbc7ce8b --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java @@ -0,0 +1,37 @@ +package com.openhis.web.outpatientservice.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 诊断 元数据 + */ +@Data +@Accessors(chain = true) +public class ConditionDefinitionMetadata { + + /** ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 编码 */ + private String conditionCode; + + /** 诊断名称 */ + private String name; + + /** 医保标记 */ + private Integer ybFlag; + private String ybFlag_enumText; + + /** 医保编码 */ + private String ybNo; + + /** 医保对码标记 */ + private Integer ybMatchFlag; + private String ybMatchFlag_enumText; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ContractMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ContractMetadata.java new file mode 100644 index 00000000..6a5889ec --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ContractMetadata.java @@ -0,0 +1,16 @@ +package com.openhis.web.outpatientservice.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 费用性质 元数据 + */ +@Data +@Accessors(chain = true) +public class ContractMetadata { + /** 合同名称 */ + private String contractName; + /** 合同编码 */ + private String busNo; +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterDiagnosisFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterDiagnosisFormData.java new file mode 100644 index 00000000..002b7c7a --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterDiagnosisFormData.java @@ -0,0 +1,32 @@ +package com.openhis.web.outpatientservice.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 就诊诊断 表单数据 + */ +@Data +@Accessors(chain = true) +public class EncounterDiagnosisFormData { + + /** + * 就诊ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + + /** + * 诊断ID + */ + @NotBlank(message = "诊断ID不能为空") + @JsonSerialize(using = ToStringSerializer.class) + private Long conditionId; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterFormData.java new file mode 100644 index 00000000..9929f697 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterFormData.java @@ -0,0 +1,83 @@ +package com.openhis.web.outpatientservice.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.enums.*; + +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 就诊 表单数据 + */ +@Data +@Accessors(chain = true) +public class EncounterFormData { + + /** + * 患者ID + */ + @NotBlank(message = "患者ID不能为空") + @JsonSerialize(using = ToStringSerializer.class) + private Long patientId; + + /** + * 状态编码 + */ + private Integer statusEnum; + + /** + * 类别编码 + */ + private Integer classEnum; + + /** + * 类别医保编码 + */ + private Integer ybClassEnum; + + /** + * 优先级编码 + */ + @NotBlank(message = "优先级编码不能为空") + private Integer priorityEnum; + + /** + * 分类编码 + */ + private Integer typeEnum; + + /** + * 服务ID + */ + @NotBlank(message = "服务ID不能为空") + @JsonSerialize(using = ToStringSerializer.class) + private Long serviceTypeId; + + /** + * 就诊对象状态 + */ + private Integer subjectStatusEnum; + + /** + * 机构ID + */ + @NotBlank(message = "机构ID不能为空") + @JsonSerialize(using = ToStringSerializer.class) + private Long organizationId; + + /** + * 设置默认值 + */ + public EncounterFormData() { + this.statusEnum = EncounterStatus.PLANNED.getValue(); + this.classEnum = EncounterClass.AMB.getValue(); + this.ybClassEnum = EncounterYbClass.ORDINARY_OUTPATIENT.getValue(); + this.typeEnum = OutpatientClass.GENERAL_OUTPATIENT_SERVICE.getValue(); + this.subjectStatusEnum = EncounterSubjectStatus.TRIAGED.getValue(); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterLocationFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterLocationFormData.java new file mode 100644 index 00000000..508d8ea2 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterLocationFormData.java @@ -0,0 +1,48 @@ +package com.openhis.web.outpatientservice.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.enums.EncounterLocationStatus; +import com.openhis.common.enums.LocationForm; + +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 就诊位置 表单数据 + */ +@Data +@Accessors(chain = true) +public class EncounterLocationFormData { + + /** + * 就诊ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + + /** + * 位置ID + */ + @NotBlank(message = "位置ID不能为空") + @JsonSerialize(using = ToStringSerializer.class) + private Long locationId; + + /** 状态枚举 */ + private Integer statusEnum; + + /** 物理形式枚举 */ + private Integer formEnum; + + /** + * 设置默认值 + */ + public EncounterLocationFormData() { + this.statusEnum = EncounterLocationStatus.PLANNED.getValue(); + this.formEnum = LocationForm.ROOM.getValue(); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterParticipantFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterParticipantFormData.java new file mode 100644 index 00000000..0cfc7744 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/EncounterParticipantFormData.java @@ -0,0 +1,41 @@ +package com.openhis.web.outpatientservice.dto; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.enums.ParticipantType; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 就诊参数者 表单数据 + */ +@Data +@Accessors(chain = true) +public class EncounterParticipantFormData { + + /** + * 就诊ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + + /** 参与者类型 */ + private String typeCode; + + /** 参与者ID */ + @NotBlank(message = "参与者ID不能为空") + @JsonSerialize(using = ToStringSerializer.class) + private Long practitionerId; + + /** + * 设置默认值 + */ + public EncounterParticipantFormData() { + this.typeCode = ParticipantType.ADMITTER.getCode(); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddParam.java index 75560da2..49887267 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddParam.java @@ -4,19 +4,39 @@ import lombok.Data; import lombok.experimental.Accessors; /** - * 门诊挂号 新增数据 + * 门诊挂号 新增参数 */ @Data @Accessors(chain = true) public class OutpatientRegistrationAddParam { - // 就诊管理-表单数据 + /** + * 就诊管理-表单数据 + */ + private EncounterFormData encounterFormData; - // 就诊诊断管理-表单数据 + // /** + // * 就诊诊断管理-表单数据 + // */ + // private EncounterDiagnosisFormData encounterDiagnosisFormData; - // 就诊位置管理-表单数据 + /** + * 就诊位置管理-表单数据 + */ + private EncounterLocationFormData encounterLocationFormData; - // 就诊参数者管理-表单数据 + /** + * 就诊参数者管理-表单数据 + */ + private EncounterParticipantFormData encounterParticipantFormData; + /** + * 就诊账户管理-表单数据 + */ + private AccountFormData accountFormData; + /** + * 费用项管理-表单数据 + */ + private ChargeItemFormData chargeItemFormData; } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java index 1d42779c..45a3436a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java @@ -1,8 +1,12 @@ package com.openhis.web.outpatientservice.dto; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.experimental.Accessors; +import java.util.Date; + /** * 患者信息 元数据 */ @@ -12,6 +16,7 @@ public class PatientMetadata { /** * ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** @@ -25,4 +30,30 @@ public class PatientMetadata { private Integer genderEnum; private String genderEnum_enumText; + /** + * 身份证号 + */ + private String idCard; + + /** + * 电话 + */ + private String phone; + + /** + * 生日 + */ + + private Date birthDate; + + /** + * 年龄 + */ + private String age; + + /** + * 初复诊 + */ + private String firstEnum_enumText; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PractitionerMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PractitionerMetadata.java new file mode 100644 index 00000000..3d420b05 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PractitionerMetadata.java @@ -0,0 +1,36 @@ +package com.openhis.web.outpatientservice.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 参与者 元数据 + */ +@Data +@Accessors(chain = true) +public class PractitionerMetadata { + /** + * ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 姓名 */ + private String name; + + /** + * 性别编码 + */ + private Integer genderEnum; + private String genderEnum_enumText; + + /** 拼音码 */ + private String pyStr; + + /** 五笔码 */ + private String wbStr; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/mapper/OutpatientRegistrationAppMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/mapper/OutpatientRegistrationAppMapper.java new file mode 100644 index 00000000..45e08e2b --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/mapper/OutpatientRegistrationAppMapper.java @@ -0,0 +1,30 @@ +package com.openhis.web.outpatientservice.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.web.outpatientservice.dto.PractitionerMetadata; + +/** + * 门诊挂号 应用Mapper + */ +@Repository +public interface OutpatientRegistrationAppMapper { + /** + * 查询医生 + */ + IPage getPractitionerMetadataPage(@Param("page") Page page, + @Param("locationId") Long locationId, @Param("RoleCode") String RoleCode, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + /** + * 根据病人id和科室id查询当日挂号次数 + */ + Integer getNumByPatientIdAndOrganizationId(@Param("patientId") Long patientId, + @Param("serviceTypeId") Long serviceTypeId); + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java index c30c9bd9..3bbbe65b 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java @@ -52,7 +52,7 @@ public class OutpatientRecordController { * @param pageSize 每页大小(默认为10) */ @GetMapping("/outpatient-record-page") - public R getPatient(@RequestParam(required = false) OutpatientRecordSearchParam outpatientRecordSearchParam, + public R getPatient(OutpatientRecordSearchParam outpatientRecordSearchParam, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java index 4ff8c830..09674301 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java @@ -25,9 +25,9 @@ public class OutpatientRecordSearchParam { private String doctorName; /** 筛选开始时间 */ - private Date beginTime; + private String beginTime; /** 筛选结束时间 */ - private Date endTime; + private String endTime; } diff --git a/openhis-server/openhis-application/src/main/resources/mapper/basicservice/HealthcareServiceBizMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/basicservice/HealthcareServiceBizMapper.xml index bd9f4ffd..dff62374 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/basicservice/HealthcareServiceBizMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/basicservice/HealthcareServiceBizMapper.xml @@ -19,6 +19,7 @@ T3.extra_details, T3.contact, T3.appointment_required_flag, + T3.definition_id, T3.charge_name, T3.price FROM @@ -37,12 +38,14 @@ T1.extra_details, T1.contact, T1.appointment_required_flag, + T2.id AS definition_id, T2.charge_name, T2.price FROM adm_healthcare_service AS T1 LEFT JOIN adm_charge_item_definition AS T2 ON T2.instance_id = T1.ID AND T2.instance_table = #{tableName} + WHERE T1.delete_flag = '0' ORDER BY T1.create_time DESC ) AS T3 diff --git a/openhis-server/openhis-application/src/main/resources/mapper/outpatientservice/OutpatientRegistrationAppMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/outpatientservice/OutpatientRegistrationAppMapper.xml new file mode 100644 index 00000000..80c4a97a --- /dev/null +++ b/openhis-server/openhis-application/src/main/resources/mapper/outpatientservice/OutpatientRegistrationAppMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml index 59f9b2d5..852b13d1 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml @@ -139,13 +139,14 @@ - AND pt.phone LIKE CONCAT('%',#{phone}, '%') + AND pt.phone LIKE CONCAT('%',#{OutpatientRecordSearchParam.phone}, '%') - - AND e.start_time BETWEEN #{OutpatientRecordSearchParam.startTime} AND - #{OutpatientRecordSearchParam.endTime} + + AND e.start_time BETWEEN + TO_TIMESTAMP(#{OutpatientRecordSearchParam.beginTime} || ' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND + TO_TIMESTAMP(#{OutpatientRecordSearchParam.endTime} || ' 23:59:59', 'YYYY-MM-DD HH24:MI:SS') @@ -184,13 +185,14 @@ - AND pt.phone LIKE CONCAT('%',#{phone}, '%') + AND pt.phone LIKE CONCAT('%',#{OutpatientRecordSearchParam.phone}, '%') - - AND e.start_time BETWEEN #{OutpatientRecordSearchParam.startTime} AND - #{OutpatientRecordSearchParam.endTime} + + AND e.start_time BETWEEN + TO_TIMESTAMP(#{OutpatientRecordSearchParam.beginTime} || ' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND + TO_TIMESTAMP(#{OutpatientRecordSearchParam.endTime} || ' 23:59:59', 'YYYY-MM-DD HH24:MI:SS') diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AccountBillingStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AccountBillingStatus.java index 2ebadf6d..9a754228 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AccountBillingStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AccountBillingStatus.java @@ -6,7 +6,7 @@ import lombok.Getter; @Getter @AllArgsConstructor -public enum AccountBillingStatus { +public enum AccountBillingStatus implements HisEnumInterface { OPEN (1, "open", "可用"), diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ChargeItemStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ChargeItemStatus.java index ec27b381..b64e3c58 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ChargeItemStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ChargeItemStatus.java @@ -6,7 +6,7 @@ import lombok.Getter; @Getter @AllArgsConstructor -public enum ChargeItemStatus { +public enum ChargeItemStatus implements HisEnumInterface { PLANNED (1, "planned", "待收费"), BILLABLE(2, "billable", "待结算"), diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ClinicalStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ClinicalStatus.java new file mode 100644 index 00000000..7ca6ecaa --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ClinicalStatus.java @@ -0,0 +1,25 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 过敏与不耐受中临床状况 + * + * @author liuhr + * @date 2025/3/6 + */ +@Getter +@AllArgsConstructor +public enum ClinicalStatus implements HisEnumInterface { + ACTIVE(1, "active", "阳性"), + INACTIVE(2, "inactive", "阴性"), + RESOLVED(3, "resolved", "已解决"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; + +} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterLocationStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterLocationStatus.java index 8c9cb495..1d8e9959 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterLocationStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterLocationStatus.java @@ -1,12 +1,13 @@ package com.openhis.common.enums; + import com.baomidou.mybatisplus.annotation.EnumValue; + import lombok.AllArgsConstructor; import lombok.Getter; - @Getter @AllArgsConstructor -public enum EncounterLocationStatus { +public enum EncounterLocationStatus implements HisEnumInterface { PLANNED(1, "planned", "已安排"), ACTIVE(2, "active", "使用中"), diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterType.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterType.java index 5219e2b2..ecce525d 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterType.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterType.java @@ -6,7 +6,7 @@ import lombok.Getter; @Getter @AllArgsConstructor -public enum EncounterType { +public enum EncounterType implements HisEnumInterface { INITIAL(1, "initial", "初诊"), FOLLOW_UP(2, "follow-up", "复诊"); diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/HisEnumInterface.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/HisEnumInterface.java index b46d4564..9be054e4 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/HisEnumInterface.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/HisEnumInterface.java @@ -5,5 +5,6 @@ package com.openhis.common.enums; */ public interface HisEnumInterface { Integer getValue(); + String getCode(); String getInfo(); } diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationBedStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationBedStatus.java index 87829b40..b0374396 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationBedStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationBedStatus.java @@ -1,18 +1,20 @@ package com.openhis.common.enums; import com.baomidou.mybatisplus.annotation.EnumValue; + import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor -public enum LocationBedStatus { - C (1, "C", "关闭"), - H (2, "H", "整理"), - O (3, "O", "占用"), - U (4, "U", "空闲"), - K (5, "K", "污染"), - I (6, "I", "隔离"); +public enum LocationBedStatus implements HisEnumInterface { + C(1, "C", "关闭"), + H(2, "H", "整理"), + O(3, "O", "占用"), + U(4, "U", "空闲"), + K(5, "K", "污染"), + I(6, "I", "隔离"); + @EnumValue private final Integer value; private final String code; diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationForm.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationForm.java index 87b06a73..cf3e326a 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationForm.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationForm.java @@ -1,35 +1,39 @@ package com.openhis.common.enums; import com.baomidou.mybatisplus.annotation.EnumValue; + import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor -public enum LocationForm { +public enum LocationForm implements HisEnumInterface { SITE(1, "si", "集合点A collection of buildings or other locations such as a site or a campus."), - BUILDING(2, "bu", "建筑Any Building or structure. This may contain rooms, corridors, wings, etc. It might not have walls, or a roof, but is considered a defined/allocated space."), + BUILDING(2, "bu", + "建筑Any Building or structure. This may contain rooms, corridors, wings, etc. It might not have walls, or a roof, but is considered a defined/allocated space."), WING(3, "wi", "连廊A Wing within a Building, this often contains levels, rooms and corridors."), WARD(4, "wa", "病区A Ward is a section of a medical facility that may contain rooms and other types of location."), LEVEL(5, "lvl", "楼层A Level in a multi-level Building/Structure."), CORRIDOR(6, "co", "走廊Any corridor within a Building, that may connect rooms."), ROOM(7, "ro", "诊室A space that is allocated as a room, it may have walls/roof etc., but does not require these."), - BED(8, "bd", "床A space that is allocated for sleeping/laying on. This is not the physical bed/trolley that may be moved about, but the space it may occupy."), + BED(8, "bd", + "床A space that is allocated for sleeping/laying on. This is not the physical bed/trolley that may be moved about, but the space it may occupy."), VEHICLE(9, "ve", "运输工具A means of transportation."), HOUSE(10, "ho", "病房A residential dwelling. Usually used to reference a location that a person/patient may reside."), CABINET(11, "ca", "库房A container that can store goods, equipment, medications or other items."), ROAD(12, "rd", "路A defined path to travel between 2 points that has a known name."), AREA(13, "area", "区域A defined physical boundary of something, such as a flood risk zone, region, postcode"), - JURISDICTION(14, "jdn", "适用范围A wide scope that covers a conceptual domain, such as a Nation (Country wide community or Federal Government - e.g. Ministry of Health), Province or State (community or Government), Business (throughout the enterprise), Nation with a business scope of an agency (e.g. CDC, FDA etc.) or a Business segment (UK Pharmacy), not just an physical boundary"), + JURISDICTION(14, "jdn", + "适用范围A wide scope that covers a conceptual domain, such as a Nation (Country wide community or Federal Government - e.g. Ministry of Health), Province or State (community or Government), Business (throughout the enterprise), Nation with a business scope of an agency (e.g. CDC, FDA etc.) or a Business segment (UK Pharmacy), not just an physical boundary"), VIRTUAL(15, "vi", "虚拟A location that is virtual in nature, such as a conference call or virtual meeting space"); -// PHARMACY(16, "ph", "药房"), -// PHARMACY_WINDOW(17, "phw", "发药窗口"), -// PHARMACY_TABLE(18, "dt", "摆药台"), -// NURSE_STATION(19, "ns", "护士站"), -// PERSON_STORE(20, "ps", "个人储物柜"), -// DOCTOR_TABLE(21, "dt", "医生诊台"); + // PHARMACY(16, "ph", "药房"), + // PHARMACY_WINDOW(17, "phw", "发药窗口"), + // PHARMACY_TABLE(18, "dt", "摆药台"), + // NURSE_STATION(19, "ns", "护士站"), + // PERSON_STORE(20, "ps", "个人储物柜"), + // DOCTOR_TABLE(21, "dt", "医生诊台"); @EnumValue private final Integer value; private final String code; diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationMode.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationMode.java index 6ab2fe9e..2ba12c82 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationMode.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationMode.java @@ -1,13 +1,14 @@ package com.openhis.common.enums; import com.baomidou.mybatisplus.annotation.EnumValue; + import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor -public enum LocationMode { - INSTANCE (1, "instance", "具体"), +public enum LocationMode implements HisEnumInterface { + INSTANCE(1, "instance", "具体"), KIND(2, "Kind", "种类"); diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationStatus.java index 7ddd2bc0..263aa88c 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/LocationStatus.java @@ -1,17 +1,19 @@ package com.openhis.common.enums; import com.baomidou.mybatisplus.annotation.EnumValue; + import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor -public enum LocationStatus { - ACTIVE (1, "active", "有效"), +public enum LocationStatus implements HisEnumInterface { + ACTIVE(1, "active", "有效"), INACTIVE(2, "inactive", "无效"), SUSPENDED(3, "suspended", "临时关闭"); + @EnumValue private final Integer value; private final String code; diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ParticipantType.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ParticipantType.java new file mode 100644 index 00000000..6a025dd2 --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ParticipantType.java @@ -0,0 +1,34 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 参与者类型 + */ +@Getter +@AllArgsConstructor +public enum ParticipantType implements HisEnumInterface { + ADMITTER(1, "1", "首诊医生"), + + ATTENDER(2, "2", "责任护士"), + + CONTACT(3, "3", "联系人"), + + CONSULTANT(4, "4", "顾问"), + + DISCHARGER(5, "5", "出院办理人"), + + ESCORT(6, "6", "护送人"), + + REFERRER(7, "7", "推荐人"), + + EMERGENCY(8, "8", "紧急联系人"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; +} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PractitionerRole.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PractitionerRole.java new file mode 100644 index 00000000..b9312351 --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PractitionerRole.java @@ -0,0 +1,24 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 参与者角色 + */ +@Getter +@AllArgsConstructor +public enum PractitionerRole implements HisEnumInterface { + DOCTOR(1, "doctor", "医生"), + + NURSE(2, "nurse", "护士"), + + PHARMACIST(3, "pharmacist", "药师"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; +} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PublicationStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PublicationStatus.java index 4ece8aa5..64409b0b 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PublicationStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PublicationStatus.java @@ -1,13 +1,13 @@ package com.openhis.common.enums; + import com.baomidou.mybatisplus.annotation.EnumValue; import com.fasterxml.jackson.annotation.JsonValue; import lombok.AllArgsConstructor; import lombok.Getter; - @Getter @AllArgsConstructor -public enum PublicationStatus { +public enum PublicationStatus implements HisEnumInterface { DRAFT(1, "draft", "草稿"), diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java new file mode 100644 index 00000000..9495a215 --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java @@ -0,0 +1,25 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 过敏与不耐受中验证状态 + * + * @author liuhr + * @date 2025/3/6 + */ +@Getter +@AllArgsConstructor +public enum VerificationStatus implements HisEnumInterface { + UNCONFIRMED(1, "unconfirmed", "未确认"), + CONFIRMED(2, "confirmed", "已确认"), + REFUTED(3, "refuted", "已反驳"), + ENTERED_IN_ERROR(4, "entered-in-error", "输入错误"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; +} diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItem.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItem.java index 388dcb77..e52399ac 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItem.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItem.java @@ -30,7 +30,7 @@ public class ChargeItem extends HisBaseEntity { private Long id; /** 状态 */ - private ChargeItemStatus statusEnum; + private Integer statusEnum; /** 层级 */ private String busNo; diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java index 9e31e7ca..0c55a038 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java @@ -105,4 +105,9 @@ public class Encounter extends HisBaseEntity { */ private Integer displayOrder; + /** + * 初复诊 + */ + private Integer firstEnum; + } diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterLocation.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterLocation.java index 22632b74..2bc55738 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterLocation.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterLocation.java @@ -1,14 +1,12 @@ package com.openhis.administration.domain; -import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; - import com.core.common.core.domain.HisBaseEntity; -import com.openhis.common.enums.EncounterLocationStatus; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -36,7 +34,7 @@ public class EncounterLocation extends HisBaseEntity { private Long locationId; /** 状态枚举 */ - private EncounterLocationStatus statusEnum; + private Integer statusEnum; /** 物理形式枚举 */ private Integer formEnum; @@ -47,5 +45,4 @@ public class EncounterLocation extends HisBaseEntity { /** 结束时间 */ private Date endTime; - } diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Location.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Location.java index eebdb494..7966c482 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Location.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Location.java @@ -1,17 +1,13 @@ package com.openhis.administration.domain; -import java.math.BigDecimal; -import java.util.Date; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; - import com.core.common.core.domain.HisBaseEntity; import com.openhis.common.enums.LocationBedStatus; -import com.openhis.common.enums.LocationForm; import com.openhis.common.enums.LocationMode; import com.openhis.common.enums.LocationStatus; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -39,13 +35,16 @@ public class Location extends HisBaseEntity { private String name; /** 状态编码 */ - private LocationStatus statusEnum; + // private LocationStatus statusEnum; + private Integer statusEnum; /** 操作状态 */ - private LocationBedStatus operationalEnum; + // private LocationBedStatus operationalEnum; + private Integer operationalEnum; /** 模式编码 */ - private LocationMode modeEnum; + // private LocationMode modeEnum; + private Integer modeEnum; /** 模式编码 */ private String typeCode; @@ -60,7 +59,8 @@ public class Location extends HisBaseEntity { private String wbStr; /** 物理形式枚举 */ - private LocationForm formEnum; + // private LocationForm formEnum; + private Integer formEnum; /** 机构编码 */ private Long organizationId; @@ -68,5 +68,22 @@ public class Location extends HisBaseEntity { /** 显示顺序 */ private Integer displayOrder; + public Location(Long id, String busNo, String name, Integer statusEnum, Integer operationalEnum, + Integer modeEnum, String typeCode, String typeJson, String pyStr, String wbStr, Integer formEnum, + Long organizationId, Integer displayOrder) { + this.id = id; + this.busNo = busNo; + this.name = name; + this.statusEnum = statusEnum; + this.operationalEnum = operationalEnum; + this.modeEnum = modeEnum; + this.typeCode = typeCode; + this.typeJson = typeJson; + this.pyStr = pyStr; + this.wbStr = wbStr; + this.formEnum = formEnum; + this.organizationId = organizationId; + this.displayOrder = displayOrder; + } } diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java index 2923a91b..f2d0d2ca 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -25,6 +27,7 @@ public class Patient extends HisBaseEntity { /** ID */ @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 活动标记 */ diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Practitioner.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Practitioner.java index 61c22cd9..a5c3c168 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Practitioner.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Practitioner.java @@ -39,7 +39,7 @@ public class Practitioner extends HisBaseEntity { private String nameJson; /** 性别编码 */ - private AdministrativeGender genderEnum; + private Integer genderEnum; /** 生日 */ private Date birthDate; diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/PractitionerRole.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/PractitionerRole.java index cd9d1997..7ced79a4 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/PractitionerRole.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/PractitionerRole.java @@ -1,13 +1,10 @@ package com.openhis.administration.domain; -import java.math.BigDecimal; -import java.util.Date; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; - import com.core.common.core.domain.HisBaseEntity; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -58,5 +55,4 @@ public class PractitionerRole extends HisBaseEntity { /** 有效时间 */ private String availabilityJson; - } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IAccountService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IAccountService.java index d0c6c6d5..0d3b711b 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IAccountService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IAccountService.java @@ -11,4 +11,11 @@ import com.openhis.administration.domain.Account; */ public interface IAccountService extends IService { + /** + * 门诊挂号时保存账号信息 + * + * @param account 账号信息 + */ + Long saveAccountByRegister(Account account); + } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java index 44dfed36..8c377b1c 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java @@ -1,11 +1,9 @@ package com.openhis.administration.service; -import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.ChargeItem; -import com.openhis.workflow.domain.SupplyRequest; /** * 费用项管理Service接口 @@ -21,4 +19,11 @@ public interface IChargeItemService extends IService { * @param chargeItemList 采购账单 */ void createBilledPurchaseCharge(List chargeItemList); + + /** + * 门诊挂号时保存 费用项 + * + * @param chargeItem 费用项 + */ + void saveChargeItemByRegister(ChargeItem chargeItem); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterLocationService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterLocationService.java index 2518306f..2537e65d 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterLocationService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterLocationService.java @@ -11,4 +11,11 @@ import com.openhis.administration.domain.EncounterLocation; */ public interface IEncounterLocationService extends IService { + /** + * 门诊挂号时保存就诊位置信息 + * + * @param encounterLocation 就诊位置信息 + */ + void saveEncounterLocationByRegister(EncounterLocation encounterLocation); + } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterParticipantService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterParticipantService.java index 9a4355d2..b41d3130 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterParticipantService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterParticipantService.java @@ -11,4 +11,11 @@ import com.openhis.administration.domain.EncounterParticipant; */ public interface IEncounterParticipantService extends IService { + /** + * 门诊挂号时保存就诊参与者 + * + * @param encounterParticipant 就诊参与者信息 + */ + void saveEncounterParticipantByRegister(EncounterParticipant encounterParticipant); + } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterService.java index 30b9d086..94623e66 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IEncounterService.java @@ -10,5 +10,12 @@ import com.openhis.administration.domain.Encounter; * @date 2025-02-20 */ public interface IEncounterService extends IService { + /** + * 保存就诊信息 + * + * @param encounter 就诊信息 + * @return 保存后的信息 + */ + Long saveEncounterByRegister(Encounter encounter); } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/AccountServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/AccountServiceImpl.java index 170ce750..61da4ec8 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/AccountServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/AccountServiceImpl.java @@ -16,4 +16,15 @@ import com.openhis.administration.service.IAccountService; @Service public class AccountServiceImpl extends ServiceImpl implements IAccountService { + /** + * 门诊挂号时保存账号信息 + * + * @param account 账号信息 + */ + @Override + public Long saveAccountByRegister(Account account) { + baseMapper.insert(account); + return account.getId(); + } + } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemServiceImpl.java index c11fca68..bd1a2530 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemServiceImpl.java @@ -32,4 +32,14 @@ public class ChargeItemServiceImpl extends ServiceImpl chargeItemList) { } + + /** + * 门诊挂号时保存 费用项 + * + * @param chargeItem 费用项 + */ + @Override + public void saveChargeItemByRegister(ChargeItem chargeItem) { + baseMapper.insert(chargeItem); + } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java index d8707154..44f90c52 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java @@ -14,6 +14,17 @@ import com.openhis.administration.service.IEncounterLocationService; * @date 2025-02-20 */ @Service -public class EncounterLocationServiceImpl extends ServiceImpl implements IEncounterLocationService { +public class EncounterLocationServiceImpl extends ServiceImpl + implements IEncounterLocationService { + + /** + * 门诊挂号时保存就诊位置信息 + * + * @param encounterLocation 就诊位置信息 + */ + @Override + public void saveEncounterLocationByRegister(EncounterLocation encounterLocation) { + baseMapper.insert(encounterLocation); + } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterParticipantServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterParticipantServiceImpl.java index b217bb46..667b919e 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterParticipantServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterParticipantServiceImpl.java @@ -14,6 +14,17 @@ import com.openhis.administration.service.IEncounterParticipantService; * @date 2025-02-20 */ @Service -public class EncounterParticipantServiceImpl extends ServiceImpl implements IEncounterParticipantService { +public class EncounterParticipantServiceImpl extends ServiceImpl + implements IEncounterParticipantService { + + /** + * 门诊挂号时保存就诊参与者 + * + * @param encounterParticipant 就诊参与者信息 + */ + @Override + public void saveEncounterParticipantByRegister(EncounterParticipant encounterParticipant) { + baseMapper.insert(encounterParticipant); + } } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterServiceImpl.java index fc49103f..dabe3750 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterServiceImpl.java @@ -1,11 +1,17 @@ package com.openhis.administration.service.impl; +import javax.annotation.Resource; + +import com.core.common.enums.AssignSeqEnum; import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.utils.AssignSeqUtil; import com.openhis.administration.domain.Encounter; import com.openhis.administration.mapper.EncounterMapper; import com.openhis.administration.service.IEncounterService; +import com.openhis.common.enums.EncounterType; /** * 就诊管理Service业务层处理 @@ -16,4 +22,31 @@ import com.openhis.administration.service.IEncounterService; @Service public class EncounterServiceImpl extends ServiceImpl implements IEncounterService { + @Resource + AssignSeqUtil assignSeqUtil; + + /** + * 保存就诊信息 + * + * @param encounter 就诊信息 + * @return 保存后的信息 + */ + @Override + public Long saveEncounterByRegister(Encounter encounter) { + // 生成就诊编码 + encounter.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.ENCOUNTER_NUM.getPrefix(), 8)); + // 生成就诊序号 (患者ID + 科室ID 作为当日就诊号的唯一标识) + String preFix = encounter.getPatientId() + String.valueOf(encounter.getOrganizationId()); + encounter.setDisplayOrder(assignSeqUtil.getSeqNoByDay(preFix)); + // 患者ID + Long patientId = encounter.getPatientId(); + // 初复诊 + Long count = baseMapper.selectCount(new LambdaQueryWrapper().eq(Encounter::getPatientId, patientId)); + if (count > 0L) { + encounter.setFirstEnum(EncounterType.FOLLOW_UP.getValue()); + } + baseMapper.insert(encounter); + return encounter.getId(); + } + } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/AllergyIntolerance.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/AllergyIntolerance.java new file mode 100644 index 00000000..4e98f4ed --- /dev/null +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/AllergyIntolerance.java @@ -0,0 +1,85 @@ +package com.openhis.clinical.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 过敏与不耐受Entity实体 + * + * @author system + * @date 2025-03-07 + */ +@Data +@TableName("cli_allergy_intolerance") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class AllergyIntolerance extends HisBaseEntity { + + /** ID */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** 服务申请ID */ + private Long requestId; + + /** 临床状况 */ + private Integer clinicalStatusEnum; + + /** 验证状态 */ + private Integer verificationStatusEnum; + + /** 类型 */ + private Integer typeEnum; + + /** 过敏原类别 */ + private String categoryCode; + + /** 危险程度 */ + private Integer criticalityEnum; + + /** 过敏物质编码 */ + private String code; + + /** 患者ID */ + private Long patientId; + + /** 反应描述 */ + private String description; + + /** 严重程度 */ + private Integer severityEnum; + + /** 过敏发生开始日期 */ + private Date onsetDateTime; + + /** 记录者 */ + private Long practitionerId; + + /** 断言者 */ + private Long checkPractitionerId; + + /** 记录日期 */ + private Date recordedDate; + + /** 最后反应发生日期 */ + private Date lastReactionOccurrence ; + + /** 曝光路线 */ + private String exposureRoute; + + /** 备注 */ + private String note; + + /** 删除状态 */ + private String deleteFlag; + +} \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/ConditionDefinition.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/ConditionDefinition.java index 43ce81a7..d7656f36 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/ConditionDefinition.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/ConditionDefinition.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.enums.ConditionDefinitionSource; import com.openhis.common.enums.PublicationStatus; @@ -25,6 +27,7 @@ public class ConditionDefinition extends HisBaseEntity { /** ID */ @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 所属分类 */ @@ -58,6 +61,6 @@ public class ConditionDefinition extends HisBaseEntity { private Integer ybMatchFlag; /** 状态 */ - private PublicationStatus statusEnum; + private Integer statusEnum; } diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/mapper/AllergyIntoleranceMapper.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/mapper/AllergyIntoleranceMapper.java new file mode 100644 index 00000000..bd8b9eea --- /dev/null +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/mapper/AllergyIntoleranceMapper.java @@ -0,0 +1,17 @@ +package com.openhis.clinical.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.clinical.domain.AllergyIntolerance; + +/** + * 过敏与不耐受Mapper接口 + * + * @author system + * @date 2025-03-07 + */ +@Repository +public interface AllergyIntoleranceMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IAllergyIntoleranceService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IAllergyIntoleranceService.java new file mode 100644 index 00000000..40b8b014 --- /dev/null +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IAllergyIntoleranceService.java @@ -0,0 +1,14 @@ +package com.openhis.clinical.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.clinical.domain.AllergyIntolerance; + +/** + * 过敏与不耐受Service接口 + * + * @author system + * @date 2025-03-07 + */ +public interface IAllergyIntoleranceService extends IService { + +} \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/AllergyIntoleranceServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/AllergyIntoleranceServiceImpl.java new file mode 100644 index 00000000..121427e3 --- /dev/null +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/AllergyIntoleranceServiceImpl.java @@ -0,0 +1,19 @@ +package com.openhis.clinical.service.impl; + +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.clinical.domain.AllergyIntolerance; +import com.openhis.clinical.mapper.AllergyIntoleranceMapper; +import com.openhis.clinical.service.IAllergyIntoleranceService; + +/** + * 过敏与不耐受Service业务层处理 + * + * @author system + * @date 2025-03-07 + */ +@Service +public class AllergyIntoleranceServiceImpl extends ServiceImpl implements IAllergyIntoleranceService { + +} \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/resources/mapper/clinical/AllergyIntoleranceMapper.xml b/openhis-server/openhis-domain/src/main/resources/mapper/clinical/AllergyIntoleranceMapper.xml new file mode 100644 index 00000000..f26107eb --- /dev/null +++ b/openhis-server/openhis-domain/src/main/resources/mapper/clinical/AllergyIntoleranceMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server/openhis-miniapp/src/main/resources/i18n/messages.properties b/openhis-server/openhis-miniapp/src/main/resources/i18n/messages.properties index 31c39ddf..4550ad81 100644 --- a/openhis-server/openhis-miniapp/src/main/resources/i18n/messages.properties +++ b/openhis-server/openhis-miniapp/src/main/resources/i18n/messages.properties @@ -43,4 +43,4 @@ apl.common.M00006=操作失败,该数据已被他人删除,请刷新后重试 apl.common.M00007=操作失败,该数据已被他人更改,请刷新后重试 apl.common.M00008=请勿重复提交 apl.common.M00009=查询成功 -apl.common.M00010=操作失败,请联系管理员 \ No newline at end of file +apl.common.M00010=操作失败,请联系管理员 diff --git a/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js b/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js index 04233fff..0033a4c1 100644 --- a/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js +++ b/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js @@ -64,8 +64,9 @@ export function locationTreeSelect(queryParams) { // 删除收费挂号项目 export function delRegistrationfee(param) { + console.log(param,'aaaa') return request({ - url: '/basedatamanage/organization/healthcare-service', + url: '/basic-service/healthcare/healthcare-service', method: 'delete', params: param }) diff --git a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue index edc0d8c3..77818af0 100644 --- a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue +++ b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue @@ -80,7 +80,7 @@ const doctorOptions = computed(() => { /** 查询门诊记录列表 */ function getList() { - listOutpatienRecords(proxy.addDateRange(queryParams.value, dateRange.value)).then(response => { + listOutpatienRecords(queryParams.value).then(response => { console.log(response); outpatienRecordsList.value = response.data.records; total.value = response.data.total; @@ -92,8 +92,10 @@ function getList() { /** 搜索按钮操作 */ function handleQuery() { - console.log("123",queryParams.value) + queryParams.value.beginTime = dateRange.value[0]; + queryParams.value.endTime = dateRange.value[1]; queryParams.value.pageNo = 1; + console.log("123",queryParams.value,typeof queryParams.value.beginTime) getList(); } /** 重置按钮操作 */