Compare commits
2 Commits
78624d9cce
...
7f260799d8
| Author | SHA1 | Date |
|---|---|---|
|
|
7f260799d8 | |
|
|
06c7a8126b |
|
|
@ -480,3 +480,11 @@ export function getNoneDicomMarkList(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function getFilterTableQuestion(data) {
|
||||
return request({
|
||||
url: `/ReadingImageTask/getFilterTableQuestion`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,6 +149,11 @@ export const constantRoutes = [
|
|||
hidden: true,
|
||||
component: () => import('@/views/trials/trials-panel/reading/dicoms/none-dicoms')
|
||||
},
|
||||
{
|
||||
path: '/ecrfList',
|
||||
hidden: true,
|
||||
component: () => import('@/views/trials/trials-panel/reading/dicoms/components/TableList')
|
||||
},
|
||||
{
|
||||
path: '/readingPage',
|
||||
name: 'readingPage',
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
const WHITELIST = ['/', "/curriculumVitae", 'researchDetail_m', '/researchForm', '/ReviewersResearch', '/login', '/link_expired', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/researchLogin_m', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
|
||||
const WHITELIST = ['/', "/curriculumVitae", 'researchDetail_m', '/researchForm', '/ReviewersResearch', '/login', '/link_expired', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/researchLogin_m', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms', '/ecrfList']
|
||||
export default WHITELIST
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ export default {
|
|||
activeTool: '',
|
||||
imageType: ['image/jpeg', 'image/jpg', 'image/bmp', 'image/png'],
|
||||
loading: false,
|
||||
isFitToWindowMode: false,
|
||||
isFitToWindowMode: true,
|
||||
trialId: null,
|
||||
activeName: '1',
|
||||
tools: [],
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@
|
|||
<div class="add-icon" @click.prevent="handleAddOrEdit('add', item)">
|
||||
<i class="el-icon-plus" />
|
||||
</div>
|
||||
<div class="add-icon" @click.prevent="handleView(item)">
|
||||
<i class="el-icon-view" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -222,6 +225,7 @@
|
|||
<script>
|
||||
import { saveTaskQuestion, submitTableQuestion, deleteReadingRowAnswer } from '@/api/trials'
|
||||
import { resetReadingTask, getIVUSTemplate } from '@/api/reading'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import DicomEvent from './../DicomEvent'
|
||||
import store from '@/store'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
|
@ -284,7 +288,8 @@ export default {
|
|||
sRoiEndDistanceId: '',
|
||||
sRoiDistanceId: '',
|
||||
rowSaveLoadingMap: {},
|
||||
dialogSaveLoading: false
|
||||
dialogSaveLoading: false,
|
||||
openWindow: null
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -739,6 +744,16 @@ export default {
|
|||
this.addOrEdit.visible = true
|
||||
this.addOrEdit.lesionType = row.LesionType
|
||||
},
|
||||
handleView(item) {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close()
|
||||
}
|
||||
localStorage.setItem('taskBlindName', this.taskBlindName)
|
||||
localStorage.setItem('isReadingShowSubjectInfo', this.isReadingShowSubjectInfo)
|
||||
let token = getToken()
|
||||
let routeData = this.$router.resolve({ path: `/ecrfList?trialId=${this.$route.query.trialId}&visitTaskId=${this.visitTaskId}&questionId=${item.Id}&TokenKey=${token}` })
|
||||
this.openWindow = window.open(routeData.href, "_blank")
|
||||
},
|
||||
async saveFormData() {
|
||||
if (this.dialogSaveLoading) return
|
||||
this.dialogSaveLoading = true
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@
|
|||
<div class="add-icon" @click.prevent="handleAddOrEdit('add', item)">
|
||||
<i class="el-icon-plus" />
|
||||
</div>
|
||||
<div class="add-icon" @click.prevent="handleView(item)">
|
||||
<i class="el-icon-view" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -224,6 +227,7 @@ import { saveTaskQuestion, submitTableQuestion, deleteReadingRowAnswer } from '@
|
|||
import { resetReadingTask, getOCTFCTTemplate, getOCTLipidAngleTemplate } from '@/api/reading'
|
||||
import DicomEvent from './../DicomEvent'
|
||||
import store from '@/store'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import { mapGetters } from 'vuex'
|
||||
import Questions from './../Questions'
|
||||
import QuestionTableFormItem from './QuestionTableFormItem'
|
||||
|
|
@ -285,7 +289,8 @@ export default {
|
|||
sRoiEndDistanceId: '',
|
||||
sRoiDistanceId: '',
|
||||
rowSaveLoadingMap: {},
|
||||
dialogSaveLoading: false
|
||||
dialogSaveLoading: false,
|
||||
openWindow: null
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -755,6 +760,16 @@ export default {
|
|||
this.addOrEdit.visible = true
|
||||
this.addOrEdit.lesionType = row.LesionType
|
||||
},
|
||||
handleView(item) {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close()
|
||||
}
|
||||
localStorage.setItem('taskBlindName', this.taskBlindName)
|
||||
localStorage.setItem('isReadingShowSubjectInfo', this.isReadingShowSubjectInfo)
|
||||
let token = getToken()
|
||||
let routeData = this.$router.resolve({ path: `/ecrfList?trialId=${this.$route.query.trialId}&visitTaskId=${this.visitTaskId}&questionId=${item.Id}&TokenKey=${token}` })
|
||||
this.openWindow = window.open(routeData.href, "_blank")
|
||||
},
|
||||
async saveFormData() {
|
||||
if (this.dialogSaveLoading) return
|
||||
this.dialogSaveLoading = true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,105 @@
|
|||
<template>
|
||||
<div class="table-list-container">
|
||||
<h3 v-if="isReadingShowSubjectInfo">
|
||||
<span v-if="subjectCode">{{ subjectCode }} </span>
|
||||
<span style="margin-left:5px;">{{ taskBlindName }}</span>
|
||||
</h3>
|
||||
<h3 v-if="tableQuestion && tableQuestion.GroupName">
|
||||
{{ language === 'en' ? tableQuestion.GroupEnName : tableQuestion.GroupName }}
|
||||
</h3>
|
||||
<h4 v-if="tableQuestion && tableQuestion.QuestionName">
|
||||
{{ tableQuestion.QuestionName }}
|
||||
</h4>
|
||||
<el-table
|
||||
v-if="tableQuestion && tableQuestion.Type === 'basicTable' && tableQuestion.TableQuestions"
|
||||
:ref="tableQuestion.Id"
|
||||
:data="tableQuestion.TableQuestions.Answers"
|
||||
v-loading="loading"
|
||||
height="100%"
|
||||
>
|
||||
<el-table-column
|
||||
v-for="q of tableQuestion.TableQuestions.Questions"
|
||||
:key="q.Id"
|
||||
:prop="q.Id"
|
||||
:label="q.QuestionName"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="q.Unit > 0 && !isNaN(parseFloat(scope.row[q.Id]))">
|
||||
{{ `${scope.row[q.Id]} ${$fd('ValueUnit', parseInt(q.Unit))}` }}
|
||||
</span>
|
||||
<span v-else-if="q.DictionaryCode">
|
||||
{{`${scope.row[q.Id] instanceof Array ? scope.row[q.Id].map(item => $fd(q.DictionaryCode,
|
||||
parseInt(item))).join(',') : $fd(q.DictionaryCode, parseInt(scope.row[q.Id]))}`}}
|
||||
</span>
|
||||
<span v-else-if="q.OptionTypeEnum === 1">
|
||||
{{ `${scope.row[q.Id] instanceof Array ? scope.row[q.Id].join(',') : scope.row[q.Id]}` }}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{ `${scope.row[q.Id]}` }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getFilterTableQuestion } from '@/api/reading'
|
||||
import store from '@/store'
|
||||
import { mapGetters } from 'vuex'
|
||||
import { changeURLStatic } from '@/utils/history.js'
|
||||
export default {
|
||||
name: 'DicomTableList',
|
||||
data() {
|
||||
return {
|
||||
isReadingShowSubjectInfo: false,
|
||||
subjectCode: null,
|
||||
taskBlindName: null,
|
||||
questionId: null,
|
||||
tableQuestion: null,
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['language'])
|
||||
},
|
||||
created() {
|
||||
if (this.$route.query.TokenKey) {
|
||||
store.dispatch('user/setToken', this.$route.query.TokenKey)
|
||||
changeURLStatic('TokenKey', '')
|
||||
}
|
||||
this.subjectCode = localStorage.getItem('subjectCode')
|
||||
this.taskBlindName = localStorage.getItem('taskBlindName')
|
||||
this.isReadingShowSubjectInfo = localStorage.getItem('isReadingShowSubjectInfo')
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
async getList() {
|
||||
try {
|
||||
this.loading = true
|
||||
let params = {
|
||||
trialId: this.$route.query.trialId,
|
||||
visitTaskId: this.$route.query.visitTaskId,
|
||||
questionId: this.$route.query.questionId
|
||||
}
|
||||
let res = await getFilterTableQuestion(params)
|
||||
if (res.IsSuccess) {
|
||||
this.tableQuestion = res.Result
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
} finally {
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
},
|
||||
resetList() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.table-list-container {
|
||||
padding: 10px;
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue