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 @@
-
-
-
- {{title}}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ currentPatient.name }}
+ 切换就诊人 >
+
+ 就诊号:{{ currentPatient.id }}
+
+
+
+
+ 医院服务
+
+
+
+ {{ item.label }}
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ ]);
+ // 当前就诊人信息
+ 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 @@
+
+
+
+ {{ title }}
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ currentPatient.name }}
+ 切换就诊人>
+
+
+ 就诊号:{{ currentPatient.id }}
+
+
+
+
+
+
+
+
+
+ 缴费记录
+
+
+
+ 挂号记录
+
+
+
+ 就诊记录
+
+
+
+ 我的报告
+
+
+
+ 就诊人管理
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
+
+
+
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();
}
/** 重置按钮操作 */