From 738878270ce316c54f6977104bee38e906734b57 Mon Sep 17 00:00:00 2001 From: nicky Date: Sun, 23 Feb 2025 18:16:06 +0800 Subject: [PATCH] 20250223 --- package-lock.json | 4 +- src/App.vue | 15 +- src/layouts/BasicLayout.vue | 34 ++++- src/main.js | 8 +- src/views/document/index.vue | 2 +- src/views/statistics/index.vue | 54 ++++++-- .../thrombolysis/components/throm-before3.vue | 40 +++++- .../components/throm-interfere-image-dcm.vue | 5 +- .../components/throm-report-observe.vue | 123 ++++++++++++++++- .../thrombolysis/components/throm-report.vue | 129 +++++++++++++++++- .../components/throm-result-baseInfo.vue | 25 ++-- 11 files changed, 389 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index 210bad4..cd3fe4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18023,7 +18023,7 @@ }, "node_modules/vuex-persistedstate": { "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz", "integrity": "sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dependencies": { @@ -33360,7 +33360,7 @@ }, "vuex-persistedstate": { "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz", "integrity": "sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ==", "requires": { "deepmerge": "^4.2.2", diff --git a/src/App.vue b/src/App.vue index 36dc637..f8331cb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -136,7 +136,7 @@ }, }, methods: { - ...mapMutations('patient', ['setTimerData']), + ...mapMutations('patient', ['setTimerData', 'setPatientData', 'setPatientDataCur']), padTo2Digits(num) { return num.toString().padStart(2, '0'); }, @@ -147,7 +147,7 @@ if (!firstAidId) return; // this.queryMessage(); await this.handMessageQuery(); - console.log('init', this.$route.name); + this.request = 0; this.utils.AnimationFrame.create( 'timerTask', @@ -207,9 +207,16 @@ this.setTimerData(res.data); const { map, - haveFlagInspect + haveFlagInspect, + finishStatus, } = res.data; console.log('firstAidInspectDataDtos: ', haveFlagInspect); + // if(finishStatus == 1){ + // this.setTimerData({}) + // this.request = 0 + // this.setPatientData({}) + // this.setPatientDataCur({}) + // } for (let k in map) { if (map[k]) { this.taskList = { @@ -234,7 +241,7 @@ } } } - // 检验调取 判断是否有急诊号 1 弹窗, 0 不弹窗 + // 检验调取 判断是否有急诊号 1 弹窗, 0 不弹窗 Thrombolysis if (haveFlagInspect) { if ( this.$route.name !== 'Inspect' && diff --git a/src/layouts/BasicLayout.vue b/src/layouts/BasicLayout.vue index f9bf1ff..fa2961c 100644 --- a/src/layouts/BasicLayout.vue +++ b/src/layouts/BasicLayout.vue @@ -107,7 +107,8 @@ } from 'vuex'; import store from '@/store'; import { - loginInfo + loginInfo, + messageQuery } from 'api'; import icon01 from '@/assets/images/slice/icon01.png' import icon01H from '@/assets/images/slice/icon01H.png' @@ -180,13 +181,38 @@ if (item.path == 'person') { if (this.visible) this.onClose() else this.showPersion() - } else { + } else if(item.path == '/firstaid/patientList'){ + this.visible = false; + this.onClickPat() + }else { this.visible = false; this.$router.push(item.path) } }, - onClickPat() { - this.$router.push('/firstaid/thrombolysis') + async onClickPat() { + const {firstAidId} = this.patientData + if(firstAidId){ + const res = await messageQuery(firstAidId); + const { + code, + msg, + data + } = res; + if (code === 200) { + const { + finishStatus, + } = res.data; + if(finishStatus == 0){ + if(this.$route.name != 'Thrombolysis') this.$router.push('/firstaid/thrombolysis') + }else{ + this.setPatientData({}); + if(this.$route.name != 'PatientList') this.$router.replace('/firstaid/patientList') + } + + } + } + + }, async showPersion() { this.visible = true; diff --git a/src/main.js b/src/main.js index 0f5c3da..93c760a 100644 --- a/src/main.js +++ b/src/main.js @@ -73,10 +73,10 @@ router.beforeEach(async (to, from, next) => { } }); router.afterEach(async (to, from) => { - if(to.path == '/firstaid/patientList' && store.state?.patient?.patientData?.firstAidId){ - router.replace('/firstaid/thrombolysis') - return; - } + // if(to.path == '/firstaid/patientList' && store.state?.patient?.patientData?.firstAidId){ + // router.replace('/firstaid/thrombolysis') + // return; + // } }) document.addEventListener('UniAppJSBridgeReady', function() { uni.getEnv(function(res) { diff --git a/src/views/document/index.vue b/src/views/document/index.vue index 49f21c9..602f4a5 100644 --- a/src/views/document/index.vue +++ b/src/views/document/index.vue @@ -112,7 +112,7 @@ title: '身份证号', dataIndex: 'patientIdCardNo', key: '1', - width: 200 + width: 238 }, { title: '联系方式', diff --git a/src/views/statistics/index.vue b/src/views/statistics/index.vue index cc3b103..34afe81 100644 --- a/src/views/statistics/index.vue +++ b/src/views/statistics/index.vue @@ -375,7 +375,11 @@ value: a[filed], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, } item.data.push(itemdata) }) @@ -430,7 +434,11 @@ value: a['decimal'], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, })) }]; @@ -487,7 +495,11 @@ value: a[filed], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, } item.data.push(itemdata) }) @@ -539,7 +551,11 @@ value: a['decimal'], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, })) }]; @@ -598,7 +614,11 @@ value: a[filed], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, } item.data.push(itemdata) }) @@ -650,7 +670,11 @@ value: a['bfNum'], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, })) }]; @@ -725,7 +749,11 @@ value: a[filed], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, } item.data.push(itemdata) }) @@ -787,7 +815,11 @@ value: a[filed], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, } item.data.push(itemdata) }) @@ -850,7 +882,11 @@ value: a[filed], itemStyle: { borderRadius: [20, 20, 0, 0] - } + }, + label: { + show: true, + position: 'top' + }, } item.data.push(itemdata) }) diff --git a/src/views/thrombolysis/components/throm-before3.vue b/src/views/thrombolysis/components/throm-before3.vue index 7604483..ba22460 100644 --- a/src/views/thrombolysis/components/throm-before3.vue +++ b/src/views/thrombolysis/components/throm-before3.vue @@ -2,13 +2,22 @@
-
+
-
+ + +
+
+
+
@@ -29,6 +38,7 @@ apiUrl } from '@/config/setting.js'; import emptyImage from '@/assets/images/slice/empty.png' + import ThromInterfereImageDcm from './throm-interfere-image-dcm.vue' import { queryFirstAidInspectData, queryVideo @@ -64,7 +74,9 @@ } }, props: ['outside'], - components: {}, + components: { + ThromInterfereImageDcm + }, computed: { ...mapState('patient', ['patientData', 'writeAble']), }, @@ -127,9 +139,25 @@ this.$message.success('患者已审核,内容不可更改') return } + if (!window.plus) { + // H5 环境中不使用 `plus` API + this.$message.success('当前环境不支持 plus API') + return + // console.log('当前环境不支持 plus API'); + } const cmr = plus.camera.getCamera(); - const res = cmr.supportedImageResolutions[0]; - const fmt = cmr.supportedImageFormats[0]; + if (!cmr) { + this.$message.success('没有可用的摄像头'); + return; + } + const res = cmr.supportedImageResolutions.length > 0 ? cmr.supportedImageResolutions[0] : null; + const fmt = cmr.supportedImageFormats.length > 0 ? cmr.supportedImageFormats[0] : null; + if (!res || !fmt) { + plus.nativeUI.toast('摄像头不支持该格式或分辨率'); + return; + } + // const res = cmr.supportedImageResolutions[0]; + // const fmt = cmr.supportedImageFormats[0]; cmr.captureImage( (path) => { plus.io.resolveLocalFileSystemURL( @@ -253,7 +281,7 @@ } .btns { - margin-top: 2rem; + // margin-top: 2rem; } } diff --git a/src/views/thrombolysis/components/throm-interfere-image-dcm.vue b/src/views/thrombolysis/components/throm-interfere-image-dcm.vue index e81536d..9a55c33 100644 --- a/src/views/thrombolysis/components/throm-interfere-image-dcm.vue +++ b/src/views/thrombolysis/components/throm-interfere-image-dcm.vue @@ -233,7 +233,8 @@ item.patientAge = row.patientAge; item.patientSex = row.patientSex; item.studyId = row.studyId; - row.dcmPath = apiUrl + row.dcmPath; + // row.dcmPath = apiUrl + row.dcmPath; + row.dcmPath = 'http://116.204.114.73:9300/static/1884873965911019520/2025/1/30/CT.1.2.392.200036.9116.2.5.1.37.2420784501.1738221085.722823.dcm' }); }); // 默认展示第一个患者 @@ -405,6 +406,6 @@ width: 100%; height: 100% !important; box-sizing: border-box; - padding-bottom: 20px; + /* padding-bottom: 20px; */ } \ No newline at end of file diff --git a/src/views/thrombolysis/components/throm-report-observe.vue b/src/views/thrombolysis/components/throm-report-observe.vue index 6a8ca51..edface7 100644 --- a/src/views/thrombolysis/components/throm-report-observe.vue +++ b/src/views/thrombolysis/components/throm-report-observe.vue @@ -1,21 +1,132 @@