Merge branch 'uat' into uat_us

This commit is contained in:
DESKTOP-6C3NK6N\WXS
2024-07-30 13:33:09 +08:00
13 changed files with 322 additions and 257 deletions
+3 -1
View File
@@ -212,8 +212,10 @@ export default {
this.toolState.clipPlaying = false
const element = this.$refs.canvas
cornerstone.enable(element)
cornerstoneTools.stopClip(this.canvas)
this.toolState.clipPlaying = false
this.loading = true
cornerstone.loadAndCacheImage(this.stack.imageIds[this.stack.currentImageIdIndex])
.then(image => {
this.loading = false
+16 -12
View File
@@ -130,7 +130,8 @@ Vue.prototype.$validatePassword = (rule, value, callback) => {
/* eslint-disable */
var reg1 = eval(process.env.VUE_APP_PASSWORD_FOR_PERMISSION) ? new RegExp(`${process.env.VUE_APP_PASSWORD_FOR_REGULAR}`) : /.*/g; //密码必须是8位以上、必须含有字母、数字、特殊符号
if (!reg1.test(value)) {
callback(lang === 'zh' ? new Error("密码必须包含:1)8 – 32 个字符;2)至少1个数字;3) 至少1个大写字母;4)至少1个小写字母;5)至少1个特殊字符 (~!-@#$%^&*_+?)") : new Error('Passwords must have: 1) 8 - 32 characters; 2) At least 1 number; 3) At least 1 uppercase letter; 4) At least 1 lowercase letter; 5) At least 1 special character (~!-@#$%^&*_+?) '))
callback(
new Error(_vm.$t('env:regExp:formatPassword')))
} else {
callback();
}
@@ -306,7 +307,7 @@ async function VueInit() {
if (_vm.$store.state.user.userId !== zzSessionStorage.getItem('userId')) {
window.location.href = `/login`
zzSessionStorage.removeItem('lastWorkbench')
_vm.$alert(lang === 'en' ? 'The same browser only allows one user account to be logged in at a time.' : '同一浏览器只允许同时登陆一个账户', {
_vm.$alert(_vm.$t("env:sso:tip"), {
type: 'warning',
})
}
@@ -367,7 +368,7 @@ async function VueInit() {
}
_vm.$store.dispatch('user/logout').then(res => {
// window.location.href = `/login`
if(_vm.$msgbox){
if (_vm.$msgbox) {
_vm.$msgbox.close();
}
isOpen = false
@@ -375,7 +376,10 @@ async function VueInit() {
zzSessionStorage.removeItem('isLock')
router.push("/login")
}).then(() => {
_vm.$alert(lang === 'zh' ? '由于您长时间未操作,为保护您的数据安全已强制将您下线,如果需要继续操作请重新登陆!' : 'No operation for a long time non-operation, you have been forced logout to protect data security. If continue to operate, please login again!', {
// _vm.$alert(lang === 'zh' ? '由于您长时间未操作,为保护您的数据安全已强制将您下线,如果需要继续操作请重新登陆!' : 'No operation for a long time non-operation, you have been forced logout to protect data security. If continue to operate, please login again!', {
// type: 'warning',
// })
_vm.$alert(_vm.$t("env:loginOut"), {
type: 'warning',
})
})
@@ -399,17 +403,17 @@ async function VueInit() {
isOpen = true
zzSessionStorage.setItem('isLock', 'true')
_vm.$msgbox({
title: lang === 'zh' ? '已锁定' : 'Locked',
confirmButtonText: lang === 'zh' ? '解锁' : 'Unlock',
title: _vm.$t("env:lock:msgBox:title"),
confirmButtonText: _vm.$t("env:lock:msgBox:confirmButtonText"),
showClose: false,
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
if (!_vm.unlock.my_username) {
_vm.$alert(lang === 'zh' ? '请输入您的用户名解锁' : 'Please enter your user name to unlock.')
_vm.$alert(_vm.$t("env:lock:msgBox:iupUser"))
return
}
if (!_vm.unlock.my_password) {
_vm.$alert(lang === 'zh' ? '请输入您的密码解锁' : 'Please enter the correct password to unlock.')
_vm.$alert(_vm.$t("env:lock:msgBox:inpPassword"))
return
}
var my_username = zzSessionStorage.getItem('my_username')
@@ -420,7 +424,7 @@ async function VueInit() {
resetReadingRestTime().then(() => {
})
const closeLock = (_vm) => {
_vm.$message.success(lang === 'zh' ? '解锁成功,请继续操作' : 'Unlocked successfully. Please continue operation.')
_vm.$message.success(_vm.$t("env:lock:msgBox:lockSuccess"))
_vm.unlock = {
my_username: null,
my_password: null
@@ -455,7 +459,7 @@ async function VueInit() {
} else {
// console.log(111)
_vm.$message.error(lang === 'zh' ? '请输入正确用户名密码' : 'Please enter the correct password.')
_vm.$message.error(_vm.$t('env:lock:msgBox:userFail'))
}
}
},
@@ -464,7 +468,7 @@ async function VueInit() {
props: { labelWidth: "80px" }
}, [
h('el-form-item', {
props: { label: lang === 'zh' ? '用户名' : 'Username' },
props: { label: _vm.$t("env:lock:msgBox:form:username") },
}, [
h('input', {
props: {
@@ -486,7 +490,7 @@ async function VueInit() {
})
]),
h('el-form-item', {
props: { label: lang === 'zh' ? '密码' : 'Password' },
props: { label: _vm.$t("env:lock:msgBox:form:Password") },
}, [
h('input', {
props: {
+3 -2
View File
@@ -155,7 +155,8 @@ import store from '@/store'
import { changeURLStatic } from '@/utils/history.js'
cornerstoneWADOImageLoader.external.dicomParser = dicomParser
cornerstoneWADOImageLoader.external.cornerstone = cornerstone
const maximumSizeInBytes = 1024 * 1024 * 1024 // 1 GB
const maximumSizeInBytes = 1024 * 1024 * 1024 * 6
cornerstone.imageCache.setMaximumSizeBytes(maximumSizeInBytes)
export default {
components: {
'dicom-viewer': dicomViewer
@@ -658,7 +659,7 @@ export default {
const seriesIndex = params.seriesIndex
var prefetchInstanceCount = this.seriesList[seriesIndex].prefetchInstanceCount
var instanceCount = this.seriesList[seriesIndex].instanceCount
if (this.seriesList[seriesIndex].imageloadedArr.indexOf(imageId) < 0) {
if (this.seriesList[seriesIndex].imageloadedArr.indexOf(imageId) < 0 && this.seriesList[seriesIndex].imageloadedArr.length < this.seriesList[seriesIndex].instanceCount) {
const i = this.currentLoadIns.findIndex(i => i.imageId === imageId)
if (i > -1) {
prefetchInstanceCount = prefetchInstanceCount - this.currentLoadIns[i].percentComplete + percentComplete
+3 -2
View File
@@ -274,7 +274,8 @@ import store from '@/store'
import { changeURLStatic } from '@/utils/history.js'
cornerstoneWADOImageLoader.external.dicomParser = dicomParser
cornerstoneWADOImageLoader.external.cornerstone = cornerstone
const maximumSizeInBytes = 1024 * 1024 * 1024 // 1 GB
const maximumSizeInBytes = 1024 * 1024 * 1024 * 6
cornerstone.imageCache.setMaximumSizeBytes(maximumSizeInBytes)
export default {
name: 'DicomsOfVisit',
components: {
@@ -690,7 +691,7 @@ export default {
const seriesIndex = params.idx.split('|')[1]
var prefetchInstanceCount = this.studyList[studyIndex].SeriesList[seriesIndex].prefetchInstanceCount
var instanceCount = this.studyList[studyIndex].SeriesList[seriesIndex].instanceCount
if (this.studyList[studyIndex].SeriesList[seriesIndex].imageloadedArr.indexOf(imageId) < 0) {
if (this.studyList[studyIndex].SeriesList[seriesIndex].imageloadedArr.indexOf(imageId) < 0 && this.studyList[studyIndex].SeriesList[seriesIndex].imageloadedArr.length < this.studyList[studyIndex].SeriesList[seriesIndex].instanceCount) {
const i = this.currentLoadIns.findIndex(i => i.imageId === imageId)
if (i > -1) {
prefetchInstanceCount = prefetchInstanceCount - this.currentLoadIns[i].percentComplete + percentComplete
+1 -1
View File
@@ -176,7 +176,7 @@
{{ $t("login:title:system_title") }}
</p>
<p style="margin-bottom: 20px" v-else>{{ $t("login:title:system") }}</p>
<p style="margin-bottom: 20px">V1.5.3.001</p>
<p style="margin-bottom: 20px">V1.5.4.001</p>
<p style="margin-bottom: 20px" v-if="language === 'zh'">
Copyright © {{ new Date().getFullYear() }} 上海展影医疗科技有限公司
版权所有
@@ -168,7 +168,7 @@ import store from '@/store'
import SrList from './SrList'
cornerstoneWADOImageLoader.external.dicomParser = dicomParser
cornerstoneWADOImageLoader.external.cornerstone = cornerstone
const maximumSizeInBytes = 1024 * 1024 * 1024 // 1 GB
const maximumSizeInBytes = 1024 * 1024 * 1024 * 6
cornerstone.imageCache.setMaximumSizeBytes(maximumSizeInBytes)
export default {
name: 'StudyList',
@@ -914,9 +914,9 @@ export default {
this.getWwcTpl()
// cornerstone.imageCache.setMaximumSizeBytes(0)
const maximumSizeInBytes = 1024 * 1024 * 1024 // 1 GB
// const maximumSizeInBytes = 1024 * 1024 * 1024 * 6
// const maximumSizeInBytes = 1024 * 1024 * 500
cornerstone.imageCache.setMaximumSizeBytes(maximumSizeInBytes)
// cornerstone.imageCache.setMaximumSizeBytes(maximumSizeInBytes)
this.customWwc = {
visible: false,
title: this.$t('trials:reading:dagTitle:wwwcCustom')
@@ -167,7 +167,7 @@ import store from '@/store'
import SrList from './../components/SrList'
cornerstoneWADOImageLoader.external.dicomParser = dicomParser
cornerstoneWADOImageLoader.external.cornerstone = cornerstone
const maximumSizeInBytes = 1024 * 1024 * 1024 // 1 GB
const maximumSizeInBytes = 1024 * 1024 * 1024 * 6
cornerstone.imageCache.setMaximumSizeBytes(maximumSizeInBytes)
export default {
name: 'StudyList',
@@ -313,8 +313,9 @@
</div>
<el-tag type="danger">{{ $fd('RequestReReadingResult', scope.row.RequestReReadingResultEnum) }}</el-tag>
</el-tooltip>
<el-tag v-if="scope.row.RequestReReadingResultEnum === 1" type="primary">{{ $fd('RequestReReadingResult', scope.row.RequestReReadingResultEnum) }}</el-tag>
<el-tag v-if="scope.row.RequestReReadingResultEnum === 0" type="warning">{{ $fd('RequestReReadingResult', scope.row.RequestReReadingResultEnum) }}</el-tag>
<el-tag v-else-if="scope.row.RequestReReadingResultEnum === 1" type="primary">{{ $fd('RequestReReadingResult', scope.row.RequestReReadingResultEnum) }}</el-tag>
<el-tag v-else-if="scope.row.RequestReReadingResultEnum === 0" type="warning">{{ $fd('RequestReReadingResult', scope.row.RequestReReadingResultEnum) }}</el-tag>
<el-tag v-else type="info">{{ $fd('RequestReReadingResult', scope.row.RequestReReadingResultEnum) }}</el-tag>
</div>
</template>
</el-table-column>
@@ -784,7 +785,7 @@ export default {
this.signVisible = false
}
},
confirmReReading(row, type, open, signInfo) {
async confirmReReading(row, type, open, signInfo) {
if (open) {
this.rowData = { ...row }
this.ConfirmReReadingVisible = true
@@ -794,41 +795,41 @@ export default {
return
}
if (type === 2) {
this.$refs.reasonForm.validate((valid) => {
if (!valid) return
var params = {
data: {
ConfirmReReadingList: [
{
Id: row.Id,
OriginalReReadingTaskId: row.OriginalReReadingTaskId,
RootReReadingTaskId: row.RootReReadingTaskId,
NewReReadingTaskId: row.NewReReadingTaskId
}
],
RequestReReadingRejectReason: this.ConfirmReReadingForm.RequestReReadingRejectReason,
TrialId: this.$route.query.trialId,
RequestReReadingResultEnum: type
},
signInfo: signInfo
}
this.loading = true
this.btnLoading = true
confirmReReading(params).then(() => {
this.loading = false
this.btnLoading = false
// 同意申请成功/拒绝申请成功
this.$message.success(`${type === 1 ? this.$t('trials:rereadTrack:message:msg3') : this.$t('trials:rereadTrack:message:msg4')}`)
this.$refs['signForm'].btnLoading = false
this.signVisible = false
this.getList()
this.ConfirmReReadingVisible = false
}).catch(() => {
this.loading = false
this.$refs['signForm'].btnLoading = false
this.btnLoading = false
})
})
let valid = await this.$refs.reasonForm.validate()
if (!valid) return
var params = {
data: {
ConfirmReReadingList: [
{
Id: row.Id,
OriginalReReadingTaskId: row.OriginalReReadingTaskId,
RootReReadingTaskId: row.RootReReadingTaskId,
NewReReadingTaskId: row.NewReReadingTaskId
}
],
RequestReReadingRejectReason: this.ConfirmReReadingForm.RequestReReadingRejectReason,
TrialId: this.$route.query.trialId,
RequestReReadingResultEnum: type
},
signInfo: signInfo
}
this.loading = true
this.btnLoading = true
try {
await confirmReReading(params)
this.loading = false
this.btnLoading = false
// 同意申请成功/拒绝申请成功
this.$message.success(`${type === 1 ? this.$t('trials:rereadTrack:message:msg3') : this.$t('trials:rereadTrack:message:msg4')}`)
this.$refs['signForm'].btnLoading = false
this.signVisible = false
this.getList()
this.ConfirmReReadingVisible = false
} catch (e) {
this.loading = false
this.$refs['signForm'].btnLoading = false
this.btnLoading = false
}
return
}
var params = {
@@ -848,21 +849,29 @@ export default {
}
this.loading = true
this.btnLoading = true
confirmReReading(params).then(() => {
try {
let res = await confirmReReading(params)
this.loading = false
this.btnLoading = false
// this.$message.success(`${type === 1 ? '同意' : '拒绝'}申请成功`)
// 同意申请成功/拒绝申请成功
this.$message.success(`${type === 1 ? this.$t('trials:rereadTrack:message:msg3') : this.$t('trials:rereadTrack:message:msg4')}`)
this.ReReadingOrBackVisible = false
this.$refs['signForm'].btnLoading = false
this.signVisible = false
this.getList()
}).catch(() => {
if (res.ErrorMessage) {
let alert = await this.$alert(res.ErrorMessage)
if (alert !== "confirm") return
this.ReReadingOrBackVisible = false
this.signVisible = false
this.getList()
} else {
// 同意申请成功/拒绝申请成功
this.$message.success(`${type === 1 ? this.$t('trials:rereadTrack:message:msg3') : this.$t('trials:rereadTrack:message:msg4')}`)
this.ReReadingOrBackVisible = false
this.signVisible = false
this.getList()
}
} catch (e) {
this.loading = false
this.$refs['signForm'].btnLoading = false
this.btnLoading = false
})
}
},
assignSubjectTaskToDoctor(row, type) {
this.rowData = { ...row }
@@ -691,7 +691,8 @@
<el-input
v-model="addBodyPartForm.bodyPartStr"
clearable
:maxlength="50"
type="textarea"
:rows="2"
@focus="errMessage = null"
></el-input>
<span class="errTip" v-if="errMessage">{{ errMessage }}</span>
@@ -128,13 +128,13 @@
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
<!-- <el-table-column
:label="$t('trials:loginLog:table:IPRegion')"
prop="IPRegion"
min-width="90"
show-overflow-tooltip
sortable="custom"
/>
/> -->
<el-table-column
v-if="!isMine"
:label="$t('trials:loginLog:table:incorrectUserName')"