Compare commits

..

No commits in common. "5e14615176c38b3ed488556a904dd29eee012f6e" and "862dcb1b3d396a5bef3e4b2cce0c637c1e238d29" have entirely different histories.

11 changed files with 1099 additions and 1142 deletions

View File

@ -1021,10 +1021,6 @@ export default {
if (!this.petctWindow) return if (!this.petctWindow) return
this.petctWindow.postMessage({ type: 'readingPageUpdate', data: data }, window.location) this.petctWindow.postMessage({ type: 'readingPageUpdate', data: data }, window.location)
}) })
DicomEvent.$on('resetPage', () => {
if (!this.petctWindow) return
this.petctWindow.postMessage({ type: 'resetPage' }, window.location)
})
DicomEvent.$on('setReadingState', (data) => { DicomEvent.$on('setReadingState', (data) => {
if (!this.petctWindow) return if (!this.petctWindow) return
this.petctWindow.postMessage({ type: 'setReadingState', data: data }, window.location) this.petctWindow.postMessage({ type: 'setReadingState', data: data }, window.location)

View File

@ -798,17 +798,17 @@ export default {
var imageIds = [] var imageIds = []
var instanceList = [] var instanceList = []
series.InstanceInfoList.forEach(instance => { series.InstanceInfoList.forEach(instance => {
if (instance.NumberOfFrames && instance.NumberOfFrames > 1) { if (instance.NumberOfFrames && instance.NumberOfFrames > 1) {
for (let i = 0; i < instance.NumberOfFrames; i++) { for (let i = 0; i < instance.NumberOfFrames; i++) {
const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${instance.Path}?frame=${i}` const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${instance.Path}?frame=${i}`
imageIds.push(imageId)
}
} else {
const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${instance.Path}`
imageIds.push(imageId) imageIds.push(imageId)
} }
} else { instanceList.push(instance.Id)
const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${instance.Path}` })
imageIds.push(imageId)
}
instanceList.push(instance.Id)
})
resolve({ resolve({
imageIds: imageIds, imageIds: imageIds,
instanceList: instanceList, instanceList: instanceList,
@ -2149,49 +2149,7 @@ export default {
this.screenshotWindow.close() this.screenshotWindow.close()
} }
}, },
async clearAnnotations() {
const viewportIds = ['PT_AXIAL', 'CT_AXIAL', 'FUSION_AXIAL']
viewportIds.map(v => {
const viewport = renderingEngine.getViewport(v)
if (viewport) {
var annotations = annotation.state.getAnnotations('CircleROI', viewport.element)
if (annotations && annotations.length > 0) {
annotations.map(i => {
if (i.metadata.toolName === 'CircleROI') {
annotation.state.removeAnnotation(i.annotationUID)
}
})
}
}
viewport.render()
})
try {
const visitTaskId = this.$route.query.visitTaskId
const res = await getTableAnswerRowInfoList(visitTaskId)
if (res.IsSuccess) {
var arr = []
res.Result.forEach(el => {
if (el.OtherMeasureData) {
el.OtherMeasureData = JSON.parse(el.OtherMeasureData)
el.OtherMeasureData.invalidated = false
if (this.readingTaskState === 2) {
el.OtherMeasureData.isLocked = true
}
el.OtherMeasureData.data.remark = el.OrderMarkName
const viewport = renderingEngine.getViewport('PT_AXIAL')
annotation.state.addAnnotation(el.OtherMeasureData, viewport.element)
}
arr.push(el)
})
this.measureDatas = arr
}
} catch (e) {
}
},
async receiveMsg(event) { async receiveMsg(event) {
console.log(event.data.type)
if (event.data.type === 'readingPageUpdate') { if (event.data.type === 'readingPageUpdate') {
// this.$refs['questions'].initList() // this.$refs['questions'].initList()
this.$refs['tableQuestions'].initList(true) this.$refs['tableQuestions'].initList(true)
@ -2213,14 +2171,6 @@ export default {
FusionEvent.$emit('closeHistoryScreenshot') FusionEvent.$emit('closeHistoryScreenshot')
window.close() window.close()
} }
} else if (event.data.type === 'resetPage') {
if (this.screenshotWindow) {
this.screenshotWindow.close()
}
this.$refs['tableQuestions'].initList(true)
this.$refs['questions'].initList(true)
this.isLocate = true
this.clearAnnotations()
} }
}, },
startTimer() { startTimer() {

View File

@ -14,7 +14,7 @@
:question-form="questionForm" :question-form="questionForm"
:reading-task-state="readingTaskState" :reading-task-state="readingTaskState"
:visit-task-id="visitTaskId" :visit-task-id="visitTaskId"
:pet5p-s="questionForm[pet5PSId]" :pet5PS="questionForm[pet5PSId]"
:lung-is-inside-volume="lungIsInsideVolume" :lung-is-inside-volume="lungIsInsideVolume"
:liver-is-inside-volume="liverIsInsideVolume" :liver-is-inside-volume="liverIsInsideVolume"
@setFormItemData="setFormItemData" @setFormItemData="setFormItemData"
@ -163,48 +163,42 @@ export default {
} }
this.initList(true) this.initList(true)
}, },
async initList(isInit) { initList(isInit) {
this.loading = true this.loading = true
try { var params = {
const params = { trialId: this.trialId,
trialId: this.trialId, visitTaskId: this.visitTaskId,
visitTaskId: this.visitTaskId, questionClassify: 0
questionClassify: 0
}
const res = await getDicomReadingQuestionAnswer(params)
if (res.IsSuccess) {
const questions = res.Result
questions.map((v) => {
v.IsBaseLineTask = this.isBaseLineTask
if (v.Type === 'group' && v.Childrens.length === 0) return
if (!v.IsPage && v.Type !== 'group' && v.Type !== 'summary') {
this.$set(this.questionForm, v.Id, v.Answer ? v.Answer : null)
}
if (v.Childrens.length > 0) {
this.setChild(v.Childrens)
}
})
this.questions = questions
this.setPet5PSCommentDisplay()
this.measurements = []
res.OtherInfo.QuestionMarkInfoList.forEach(i => {
if (i.OtherMeasureData) {
i.OtherMeasureData = JSON.parse(i.OtherMeasureData)
if (i.QuestionType === 51 && isInit) {
this.liverRender = false
} else if (i.QuestionType === 52 && isInit) {
this.lungRender = false
}
}
this.measurements.push(i)
})
}
this.loading = false
} catch (e) {
console.log(e)
this.loading = false
} }
getDicomReadingQuestionAnswer(params).then(res => {
var questions = res.Result
questions.map((v) => {
v.IsBaseLineTask = this.isBaseLineTask
if (v.Type === 'group' && v.Childrens.length === 0) return
if (!v.IsPage && v.Type !== 'group' && v.Type !== 'summary') {
this.$set(this.questionForm, v.Id, v.Answer ? v.Answer : null)
}
if (v.Childrens.length > 0) {
this.setChild(v.Childrens)
}
})
this.questions = questions
this.setPet5PSCommentDisplay()
this.measurements = []
res.OtherInfo.QuestionMarkInfoList.forEach(i => {
if (i.OtherMeasureData) {
i.OtherMeasureData = JSON.parse(i.OtherMeasureData)
if (i.QuestionType === 51 && isInit) {
this.liverRender = false
} else if (i.QuestionType === 52 && isInit) {
this.lungRender = false
}
}
this.measurements.push(i)
})
this.loading = false
}).catch(() => { this.loading = false })
}, },
setChild(obj) { setChild(obj) {
obj.forEach(i => { obj.forEach(i => {
@ -269,28 +263,37 @@ export default {
// } // }
}) })
}, },
async saveQuestionsForm() { saveQuestionsForm() {
this.loading = true this.loading = true
try { var answers = []
var answers = [] for (const k in this.questionForm) {
for (const k in this.questionForm) { answers.push({ id: k, answer: this.questionForm[k] })
answers.push({ id: k, answer: this.questionForm[k] })
}
var params = {
visitTaskId: this.visitTaskId,
answers: answers
}
const res = await saveTaskQuestion(1, params)
if (res.IsSuccess) {
window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location)
this.loading = false
this.questionFormChangeState = false
this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 })
}
} catch (e) {
console.log(e)
this.loading = false
} }
// var questionMarkInfoList = []
// this.measurements.forEach(item => {
// var i = Object.assign({}, item)
// if (i.OtherMeasureData) {
// for (const k in i.OtherMeasureData.data.cachedStats) {
// i.OtherMeasureData.data.cachedStats[k].pointsInShape = []
// }
// i.OtherMeasureData = JSON.stringify(i.OtherMeasureData)
// }
// questionMarkInfoList.push(i)
// })
var params = {
visitTaskId: this.visitTaskId,
answers: answers
// questionMarkInfoList
}
saveTaskQuestion(1, params).then(async res => {
window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location)
this.loading = false
this.questionFormChangeState = false
this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 })
}).catch(() => {
this.loading = false
})
}, },
checkAnnotationStatus(obj) { checkAnnotationStatus(obj) {
for (let i = 0; i < obj.length; i++) { for (let i = 0; i < obj.length; i++) {
@ -419,27 +422,21 @@ export default {
break break
} }
} }
try { var params = {
var params = { visitTaskId: this.visitTaskId,
visitTaskId: this.visitTaskId, answers,
answers, questionMarkInfoList
questionMarkInfoList
}
const qsType = question.QuestionType === 51 ? 2 : question.QuestionType === 52 ? 3 : null
const res = await saveTaskQuestion(qsType, params)
if (res.IsSuccess) {
this.$set(question, 'SaveEnum', 0)
window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location)
loading.close()
this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 })
this.resetSuvQuestions(1)
}
loading.close()
} catch (e) {
console.log(e)
loading.close()
} }
const qsType = question.QuestionType === 51 ? 2 : question.QuestionType === 52 ? 3 : null
saveTaskQuestion(qsType, params).then(async res => {
this.$set(question, 'SaveEnum', 0)
window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location)
loading.close()
this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 })
this.resetSuvQuestions(1)
}).catch(() => {
loading.close()
})
}) })
}, },
viewAnnotations(question) { viewAnnotations(question) {
@ -657,38 +654,40 @@ export default {
return '' return ''
} }
}, },
async resetSuvQuestions(type = 0) { resetSuvQuestions(type = 0) {
this.loading = true this.loading = true
try { var params = {
const params = { trialId: this.trialId,
trialId: this.trialId, visitTaskId: this.visitTaskId,
visitTaskId: this.visitTaskId, questionClassify: 0
questionClassify: 0
}
const res = await getDicomReadingQuestionAnswer(params)
if (res.IsSuccess) {
const questions = res.Result
questions.map((v) => {
if (v.Type === 'group' && v.Childrens.length === 0) return
if (v.Childrens.length > 0) {
this.setSuvChild(v.Childrens, type)
}
})
for (let i = 0; i < this.questions[0].Childrens[0].Childrens.length; i++) {
if (this.questions[0].Childrens[0].Childrens[i].QuestionType === 59) {
this.questions[0].Childrens[0].Childrens[i].ShowQuestion = 2
this.questions[0].Childrens[0].Childrens[i].IsRequired = 3
this.questionForm[this.pet5PSCommentsId] = ''
break
}
}
this.questionFormChangeState = true
}
this.loading = false
} catch (e) {
console.log(e)
this.loading = false
} }
getDicomReadingQuestionAnswer(params).then(res => {
var questions = res.Result
questions.map((v) => {
if (v.Type === 'group' && v.Childrens.length === 0) return
// if (!v.IsPage && v.Type !== 'group' && v.Type !== 'summary') {
// this.$set(this.questionForm, v.Id, v.Answer ? v.Answer : null)
// }
if (v.Childrens.length > 0) {
this.setSuvChild(v.Childrens, type)
}
// var pet5PS = this.setpet5PS()
// this.questionForm[this.pet5PSId] = pet5PS
// this.calculatePet5PS = pet5PS
// this.setPet5PSCommentDisplay()
// this.setUptakeFormBaseline()
})
for (let i = 0; i < this.questions[0].Childrens[0].Childrens.length; i++) {
if (this.questions[0].Childrens[0].Childrens[i].QuestionType === 59) {
this.questions[0].Childrens[0].Childrens[i].ShowQuestion = 2
this.questions[0].Childrens[0].Childrens[i].IsRequired = 3
this.questionForm[this.pet5PSCommentsId] = ''
break
}
}
this.questionFormChangeState = true
this.loading = false
}).catch(() => { this.loading = false })
}, },
setSuvChild(obj, type) { setSuvChild(obj, type) {
obj.forEach(i => { obj.forEach(i => {

View File

@ -316,7 +316,7 @@ export default {
this.$set(this.questionForm, 'OrganInfoId', this.answers.OrganInfoId ? this.answers.OrganInfoId : '') this.$set(this.questionForm, 'OrganInfoId', this.answers.OrganInfoId ? this.answers.OrganInfoId : '')
// saveTypeEnum 01访/2 // saveTypeEnum 01访/2
// var lesionState = this.getQuestionVal(7) var lesionState = this.getQuestionVal(7)
if (!isRerender) { if (!isRerender) {
if (this.questionForm.RowId) { if (this.questionForm.RowId) {
this.$set(this.questionForm, 'saveTypeEnum', 2) this.$set(this.questionForm, 'saveTypeEnum', 2)
@ -625,7 +625,7 @@ export default {
} }
} }
} }
// var lesionState = this.getQuestionVal(7) var lesionState = this.getQuestionVal(7)
if (this.firstRenderAnnotation) { if (this.firstRenderAnnotation) {
this.$set(this.questionForm, 'saveTypeEnum', 2) this.$set(this.questionForm, 'saveTypeEnum', 2)
} else { } else {
@ -871,79 +871,75 @@ export default {
this.deleteInfo = null this.deleteInfo = null
params.rowId = '' params.rowId = ''
} }
try { submitTableQuestion(params).then(async res => {
const res = await submitTableQuestion(params) this.currentMarkTool = otherMeasureData ? otherMeasureData.type : ''
if (res.IsSuccess) { // saveTypeEnum 01访/2
this.currentMarkTool = otherMeasureData ? otherMeasureData.type : ''
this.$set(this.questionForm, 'saveTypeEnum', 2)
this.originalQuestionForm = { ...this.questionForm }
var isLymphLesion = this.getQuestionVal(2)
isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null
var lesionOrgan = this.getQuestionVal(6)
this.$set(this.questionForm, 'RowId', res.Result.RowId)
const lesionPart = this.getQuestionVal(8)
const suvMax = this.getQuestionVal(20)
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
FusionEvent.$emit('resetSuvQuestions') this.$set(this.questionForm, 'saveTypeEnum', 2)
window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location) this.originalQuestionForm = { ...this.questionForm }
this.$emit('close') loading.close()
var isLymphLesion = this.getQuestionVal(2)
isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null
var lesionOrgan = this.getQuestionVal(6)
this.$set(this.questionForm, 'RowId', res.Result.RowId)
const lesionPart = this.getQuestionVal(8)
const suvMax = this.getQuestionVal(20)
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 }) // FusionEvent.$emit('getAnnotations')
} FusionEvent.$emit('resetSuvQuestions')
window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location)
this.$emit('close')
loading.close() loading.close()
} catch (e) { this.$message({ message: this.$t('common:message:savedSuccessfully'), type: 'success', duration: 2000 })
console.log(e) }).catch(() => { loading.close() })
loading.close()
}
}) })
}) })
}, },
async handleDeleteMeasureData() { handleDeleteMeasureData() {
// //
const confirm = await this.$confirm( this.$confirm(this.$t('trials:reading:warnning:msg47'), {
this.$t('trials:reading:warnning:msg47'), type: 'warning',
{ distinguishCancelAndClose: true
type: 'warning', })
distinguishCancelAndClose: true .then(async() => {
} this.organList = []
) await this.getOrganInfoList()
if (confirm !== 'confirm') return // SUV
this.organList = [] var suvId = this.getQuestionId(20)
await this.getOrganInfoList() this.$set(this.questionForm, suvId, '')
// SUV // saveTypeEnum 01访/
var suvId = this.getQuestionId(20) if (this.questionForm.RowId) {
this.$set(this.questionForm, suvId, '') this.$set(this.questionForm, 'saveTypeEnum', 1)
// saveTypeEnum 01访/ } else {
if (this.questionForm.RowId) { this.$set(this.questionForm, 'saveTypeEnum', 0)
this.$set(this.questionForm, 'saveTypeEnum', 1) }
} else { FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData, type: 'clear' })
this.$set(this.questionForm, 'saveTypeEnum', 0) // await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
}
FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData, type: 'clear' })
// await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
// Store.$emit('updateImage', this.questionForm.MeasureData.instanceId) // Store.$emit('updateImage', this.questionForm.MeasureData.instanceId)
var isLymphLesion = this.getQuestionVal(2) var isLymphLesion = this.getQuestionVal(2)
isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
const lesionPart = this.getQuestionVal(8) const lesionPart = this.getQuestionVal(8)
const lesionOrgan = this.getQuestionVal(6) const lesionOrgan = this.getQuestionVal(6)
if (!this.questionForm.IsDicomReading) { if (!this.questionForm.IsDicomReading) {
} }
this.$set(this.questionForm, 'IsDicomReading', true) this.$set(this.questionForm, 'IsDicomReading', true)
this.$set(this.questionForm, 'OtherMeasureData', '') this.$set(this.questionForm, 'OtherMeasureData', '')
let anwsers = null let anwsers = null
if (this.answers.measureObj) { if (this.answers.measureObj) {
anwsers = Object.assign({ measureObj: '' }, this.questionForm) anwsers = Object.assign({ measureObj: '' }, this.questionForm)
} else { } else {
anwsers = Object.assign({}, this.questionForm) anwsers = Object.assign({}, this.questionForm)
} }
var suvMax = this.getQuestionVal(20) var suvMax = this.getQuestionVal(20)
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers })
this.isInsideVolume = true this.isInsideVolume = true
})
.catch(() => {})
}, },
async clearMeasurement() { async clearMeasurement() {
this.organList = [] this.organList = []
@ -979,63 +975,65 @@ export default {
this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers }) this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, suvMax, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers })
this.isInsideVolume = true this.isInsideVolume = true
}, },
async handleDelete() { handleDelete() {
const confirm = await this.$confirm( //
this.$t('trials:reading:warnning:msg48'), this.$confirm(this.$t('trials:reading:warnning:msg48'), {
{ type: 'warning',
type: 'warning', distinguishCancelAndClose: true
distinguishCancelAndClose: true })
} .then(async() => {
) if (this.questionForm.RowId) {
if (confirm !== 'confirm') return const loading = this.$loading({ fullscreen: true })
if (this.questionForm.RowId) { var param = {
const loading = this.$loading({ fullscreen: true }) visitTaskId: this.visitTaskId,
try { questionId: this.parentQsId,
var param = { rowId: this.questionForm.RowId
visitTaskId: this.visitTaskId, }
questionId: this.parentQsId, deleteReadingRowAnswer(param)
rowId: this.questionForm.RowId .then(async res => {
} loading.close()
const res = await deleteReadingRowAnswer(param) if (res.IsSuccess) {
if (res.IsSuccess) { // this.$emit('getReadingQuestionAndAnswer')
if (this.questionForm.IsDicomReading && this.questionForm.OtherMeasureData) { if (this.questionForm.IsDicomReading && this.questionForm.OtherMeasureData) {
FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData, type: 'delete' }) // await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData, type: 'delete' })
}
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
// ''
this.$message.success(this.$t('common:message:deletedSuccessfully'))
loading.close()
window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location)
}
}).catch(() => { loading.close() })
} else {
// const loading = this.$loading({ fullscreen: true })
//
if (this.questionForm.OtherMeasureData && this.questionForm.IsDicomReading) {
// await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData })
} }
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
// '' // loading.close()
this.$message.success(this.$t('common:message:deletedSuccessfully'))
loading.close()
window.opener.postMessage({ type: 'petctLesionUpdate' }, window.location)
} }
loading.close() })
} catch (e) {
console.log(e)
loading.close()
}
} else {
//
if (this.questionForm.OtherMeasureData && this.questionForm.IsDicomReading) {
FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData })
}
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
}
}, },
async handleClose() { handleClose() {
if (!this.questionForm.RowId) { if (!this.questionForm.RowId) {
// '' // ''
const confirm = await this.$confirm( this.$confirm(this.$t('trials:reading:warnning:msg49'), {
this.$t('trials:reading:warnning:msg49'), type: 'warning',
{ distinguishCancelAndClose: true
type: 'warning', })
distinguishCancelAndClose: true .then(async() => {
} //
) if (this.questionForm.OtherMeasureData) {
if (confirm !== 'confirm') return FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData })
// // await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
if (this.questionForm.OtherMeasureData) { }
FusionEvent.$emit('removeAnnotation', { otherMeasureData: this.questionForm.OtherMeasureData }) this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
} })
this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId }) .catch(() => {})
} else { } else {
if (this.questionForm.saveTypeEnum === 1) { if (this.questionForm.saveTypeEnum === 1) {
this.$emit('close') this.$emit('close')

View File

@ -1080,17 +1080,17 @@ export default {
this.$refs['ecrf'].getQuestions(obj.visitTaskId) this.$refs['ecrf'].getQuestions(obj.visitTaskId)
}, },
async resetMeasuredData() { async resetMeasuredData() {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
const loading = this.$loading({ fullscreen: true })
try { try {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
this.loading = true
const res = await resetReadingTask({ visitTaskId: this.visitTaskId }) const res = await resetReadingTask({ visitTaskId: this.visitTaskId })
this.loading = false this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
@ -1099,16 +1099,13 @@ export default {
this.activeItem.activeRowIndex = null this.activeItem.activeRowIndex = null
this.activeItem.activeCollapseId = null this.activeItem.activeCollapseId = null
await this.getReadingQuestionAndAnswer(this.visitTaskId) await this.getReadingQuestionAndAnswer(this.visitTaskId)
const triald = this.$router.currentRoute.query.trialId this.$refs['ecrf'].resetQSForm()
await store.dispatch('reading/refreshDicomReadingQuestionAnswer', { trialId: triald, visitTaskId: this.visitTaskId })
this.$refs['ecrf'].getQuestions(this.visitTaskId, true)
DicomEvent.$emit('getMeasureData') DicomEvent.$emit('getMeasureData')
DicomEvent.$emit('getReportInfo', true) DicomEvent.$emit('getReportInfo', true)
DicomEvent.$emit('refreshStudyListMeasureData') DicomEvent.$emit('refreshStudyListMeasureData')
} }
loading.close()
} catch (e) { } catch (e) {
loading.close() this.loading = false
console.log(e) console.log(e)
} }
}, },

View File

@ -2,20 +2,10 @@
<div class="measurement-wrapper" :style="{'height':height+10+'px'}"> <div class="measurement-wrapper" :style="{'height':height+10+'px'}">
<div class="container" :style="{'height':height+'px'}"> <div class="container" :style="{'height':height+'px'}">
<div class="basic-info"> <h3 v-if="isReadingShowSubjectInfo" style="color: #ddd;padding: 5px 0px;margin: 0;">
<h3 v-if="isReadingShowSubjectInfo"> <span v-if="subjectCode">{{ subjectCode }} </span>
<span v-if="subjectCode">{{ subjectCode }} </span> <span style="margin-left:5px;">{{ taskBlindName }}</span>
<span style="margin-left:5px;">{{ taskBlindName }}</span> </h3>
</h3>
<div v-if="readingTaskState < 2">
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')" placement="bottom">
<i
class="el-icon-refresh-left"
@click="resetMeasuredData"
/>
</el-tooltip>
</div>
</div>
<!-- 非测量问题 --> <!-- 非测量问题 -->
<div class="lesions"> <div class="lesions">
<!-- 影像质量问题 --> <!-- 影像质量问题 -->
@ -226,7 +216,6 @@
</template> </template>
<script> <script>
import { splitLesion, getSplitPPdSum, getCanMergeLesion, mergeLesion } from '@/api/trials' import { splitLesion, getSplitPPdSum, getCanMergeLesion, mergeLesion } from '@/api/trials'
import { resetReadingTask } from '@/api/reading'
import DicomEvent from './../DicomEvent' import DicomEvent from './../DicomEvent'
import store from '@/store' import store from '@/store'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@ -344,8 +333,7 @@ export default {
}) })
}) })
DicomEvent.$on('refreshSplitTargetLesionPDD', async(callback) => { DicomEvent.$on('refreshSplitTargetLesionPDD', async(callback) => {
const res = await getSplitPPdSum({ visitTaskId: this.visitTaskId }) this.splitTargetLesions = await this.getSplitTargetLesionPDD()
this.splitTargetLesions = res.Result
if (this.splitTargetLesions && this.splitTargetLesions.length > 0) { if (this.splitTargetLesions && this.splitTargetLesions.length > 0) {
this.splitTargetLesions.map(i => { this.splitTargetLesions.map(i => {
var refName = `${this.lesionTypeQuestionId}_${i.RowIndex}` var refName = `${this.lesionTypeQuestionId}_${i.RowIndex}`
@ -400,8 +388,7 @@ export default {
loading.close() loading.close()
} }
if (!this.isBaseLineTask) { if (!this.isBaseLineTask) {
const res = await getSplitPPdSum({ visitTaskId: this.visitTaskId }) this.splitTargetLesions = await this.getSplitTargetLesionPDD()
this.splitTargetLesions = res.Result
} }
this.questions = this.visitTaskList[i].ReadingQuestions this.questions = this.visitTaskList[i].ReadingQuestions
this.$nextTick(() => { this.$nextTick(() => {
@ -543,8 +530,7 @@ export default {
this.isCurrentTask = this.visitTaskList[idx].IsCurrentTask this.isCurrentTask = this.visitTaskList[idx].IsCurrentTask
} }
if (!this.isBaseLineTask) { if (!this.isBaseLineTask) {
const res = await getSplitPPdSum({ visitTaskId: this.visitTaskId }) this.splitTargetLesions = await this.getSplitTargetLesionPDD()
this.splitTargetLesions = res.Result
} }
this.getTableQuestions() this.getTableQuestions()
this.$nextTick(() => { this.$nextTick(() => {
@ -573,6 +559,13 @@ export default {
} catch (e) { console.log(e) } } catch (e) { console.log(e) }
}) })
}, },
getSplitTargetLesionPDD() {
return new Promise(resolve => {
getSplitPPdSum({ visitTaskId: this.visitTaskId }).then(res => {
resolve(res.Result)
}).catch(() => { resolve() })
})
},
setHeight() { setHeight() {
this.height = window.innerHeight - 140 this.height = window.innerHeight - 140
}, },
@ -695,7 +688,7 @@ export default {
}) })
}, },
// //
async handleMerge(answers, questionId, orderMark) { handleMerge(answers, questionId, orderMark) {
this.lesionData = [] this.lesionData = []
this.mergeList = [] this.mergeList = []
this.merge.visible = true this.merge.visible = true
@ -704,16 +697,10 @@ export default {
this.mergeInfo.lesionName = this.getLesionName(orderMark, answers.RowIndex) this.mergeInfo.lesionName = this.getLesionName(orderMark, answers.RowIndex)
this.mergeInfo.lesionPart = answers.lesionPart this.mergeInfo.lesionPart = answers.lesionPart
this.merge.loading = true this.merge.loading = true
try { getCanMergeLesion({ rowId: answers.RowId }).then(res => {
const res = await getCanMergeLesion({ rowId: answers.RowId }) this.lesionData = res.Result
if (res.IsSuccess) {
this.lesionData = res.Result
}
this.merge.loading = false this.merge.loading = false
} catch (e) { }).catch(() => { this.merge.loading = false })
console.log(e)
this.merge.loading = false
}
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.mergeList = [] this.mergeList = []
@ -731,28 +718,23 @@ export default {
}) })
}, },
async lesionMerge() { lesionMerge() {
this.merge.loading = true this.merge.loading = true
try { var params = {
var params = { visitTaskId: this.visitTaskId,
visitTaskId: this.visitTaskId, questionId: this.mergeInfo.questionId,
questionId: this.mergeInfo.questionId, mergeMainRowId: this.mergeInfo.mergeRowId,
mergeMainRowId: this.mergeInfo.mergeRowId, mergeRowIdList: this.mergeList
mergeRowIdList: this.mergeList
}
const res = await mergeLesion(params)
if (res.IsSuccess) {
this.merge.visible = false
DicomEvent.$emit('readingPageUpdate', {})
DicomEvent.$emit('getReportInfo', true)
DicomEvent.$emit('setMeasuredToolsPassive')
this.getReadingQuestionAndAnswer()
}
this.merge.loading = false
} catch (e) {
this.merge.loading = false
console.log(e)
} }
mergeLesion(params).then(res => {
this.merge.loading = false
this.merge.visible = false
DicomEvent.$emit('readingPageUpdate', {})
DicomEvent.$emit('getReportInfo', true)
DicomEvent.$emit('setMeasuredToolsPassive')
this.getReadingQuestionAndAnswer()
//
}).catch(() => { this.merge.loading = false })
}, },
isCanActiveTool(toolName) { isCanActiveTool(toolName) {
this.isNonTargetMeasurement = false this.isNonTargetMeasurement = false
@ -1302,41 +1284,6 @@ export default {
}) })
DicomEvent.$emit('getReportInfo', true) DicomEvent.$emit('getReportInfo', true)
loading.close() loading.close()
},
async resetMeasuredData() {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
const loading = this.$loading({ fullscreen: true })
try {
const res = await resetReadingTask({ visitTaskId: this.visitTaskId })
if (res.IsSuccess) {
//
this.activeName = ''
this.activeItem.activeRowIndex = null
this.activeItem.activeCollapseId = null
await this.getReadingQuestionAndAnswer(this.visitTaskId)
const triald = this.$router.currentRoute.query.trialId
await store.dispatch('reading/refreshDicomReadingQuestionAnswer', { trialId: triald, visitTaskId: this.visitTaskId })
this.$refs['ecrf'].getQuestions(this.visitTaskId, true)
this.$refs['ecrf2'].getQuestions(this.visitTaskId, true)
this.$refs['ecrf3'].getQuestions(this.visitTaskId, true)
DicomEvent.$emit('getMeasureData')
DicomEvent.$emit('getReportInfo', true)
DicomEvent.$emit('refreshStudyListMeasureData')
DicomEvent.$emit('resetPage', {})
}
loading.close()
} catch (e) {
loading.close()
console.log(e)
}
} }
} }
@ -1349,22 +1296,6 @@ export default {
.container{ .container{
padding: 10px; padding: 10px;
.basic-info{
display: flex;
justify-content: space-between;
align-items: center;
h3{
color: #ddd;
padding: 5px 0px;
margin: 0;
}
i{
color: #fff;
font-size: 22px;
font-weight: bold;
cursor: pointer;
}
}
} }
.title{ .title{
padding: 5px; padding: 5px;

View File

@ -704,17 +704,17 @@ export default {
this.$refs['ecrf'].getQuestions(obj.visitTaskId) this.$refs['ecrf'].getQuestions(obj.visitTaskId)
}, },
async resetMeasuredData() { async resetMeasuredData() {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
const loading = this.$loading({ fullscreen: true })
try { try {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
this.loading = true
const res = await resetReadingTask({ visitTaskId: this.visitTaskId }) const res = await resetReadingTask({ visitTaskId: this.visitTaskId })
this.loading = false this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
@ -723,16 +723,13 @@ export default {
this.activeItem.activeRowIndex = null this.activeItem.activeRowIndex = null
this.activeItem.activeCollapseId = null this.activeItem.activeCollapseId = null
await this.getReadingQuestionAndAnswer(this.visitTaskId) await this.getReadingQuestionAndAnswer(this.visitTaskId)
const triald = this.$router.currentRoute.query.trialId this.$refs['ecrf'].resetQSForm()
await store.dispatch('reading/refreshDicomReadingQuestionAnswer', { trialId: triald, visitTaskId: this.visitTaskId })
this.$refs['ecrf'].getQuestions(this.visitTaskId, true)
DicomEvent.$emit('getMeasureData') DicomEvent.$emit('getMeasureData')
DicomEvent.$emit('getReportInfo', true) DicomEvent.$emit('getReportInfo', true)
DicomEvent.$emit('refreshStudyListMeasureData') DicomEvent.$emit('refreshStudyListMeasureData')
} }
loading.close()
} catch (e) { } catch (e) {
loading.close() this.loading = false
console.log(e) console.log(e)
} }
}, },

View File

@ -390,6 +390,18 @@ export default {
this.loading = false this.loading = false
}) })
}, },
async resetQSForm() {
try {
this.loading = true
var trialId = this.$route.query.trialId
await store.dispatch('reading/refreshDicomReadingQuestionAnswer', { trialId: trialId, visitTaskId: this.visitTaskId })
this.getQuestions(this.visitTaskId, true)
this.loading = false
} catch(e) {
this.loading = false
}
},
checkAnnotationStatus(obj) { checkAnnotationStatus(obj) {
for (let i = 0; i < obj.length; i++) { for (let i = 0; i < obj.length; i++) {
if (obj[i].SaveEnum === 1) { if (obj[i].SaveEnum === 1) {

View File

@ -956,17 +956,17 @@ export default {
this.$refs['ecrf'].getQuestions(obj.visitTaskId) this.$refs['ecrf'].getQuestions(obj.visitTaskId)
}, },
async resetMeasuredData() { async resetMeasuredData() {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
const loading = this.$loading({ fullscreen: true })
try { try {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
this.loading = true
const res = await resetReadingTask({ visitTaskId: this.visitTaskId }) const res = await resetReadingTask({ visitTaskId: this.visitTaskId })
this.loading = false this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
@ -975,16 +975,13 @@ export default {
this.activeItem.activeRowIndex = null this.activeItem.activeRowIndex = null
this.activeItem.activeCollapseId = null this.activeItem.activeCollapseId = null
await this.getReadingQuestionAndAnswer(this.visitTaskId) await this.getReadingQuestionAndAnswer(this.visitTaskId)
const triald = this.$router.currentRoute.query.trialId this.$refs['ecrf'].resetQSForm()
await store.dispatch('reading/refreshDicomReadingQuestionAnswer', { trialId: triald, visitTaskId: this.visitTaskId })
this.$refs['ecrf'].getQuestions(this.visitTaskId, true)
DicomEvent.$emit('getMeasureData') DicomEvent.$emit('getMeasureData')
DicomEvent.$emit('getReportInfo', true) DicomEvent.$emit('getReportInfo', true)
DicomEvent.$emit('refreshStudyListMeasureData') DicomEvent.$emit('refreshStudyListMeasureData')
} }
loading.close()
} catch (e) { } catch (e) {
loading.close() this.loading = false
console.log(e) console.log(e)
} }
}, },

View File

@ -509,31 +509,25 @@ export default {
} }
} }
}, },
async split(rowId, questionId) { split(rowId, questionId) {
const loading = this.$loading({ fullscreen: true }) const loading = this.$loading({ fullscreen: true })
try { var params = {
var params = { visitTaskId: this.visitTaskId,
visitTaskId: this.visitTaskId, questionId: questionId,
questionId: questionId, rowId: rowId
rowId: rowId }
} splitLesion(params).then(async res => {
const res = await splitLesion(params) loading.close()
if (res.IsSuccess) { await this.getReadingQuestionAndAnswer()
await this.getReadingQuestionAndAnswer() this.$nextTick(() => {
this.$nextTick(() => { this.tableQuestions.forEach(item => {
this.tableQuestions.forEach(item => { item.TableQuestions.Answers.forEach(i => {
item.TableQuestions.Answers.forEach(i => { var refName = `${item.Id}_${i.RowIndex}`
var refName = `${item.Id}_${i.RowIndex}` this.$refs[refName] && this.$refs[refName][0].initForm()
this.$refs[refName] && this.$refs[refName][0].initForm()
})
}) })
}) })
} })
loading.close() })
} catch (e) {
loading.close()
console.log(e)
}
}, },
isCanActiveTool(toolName) { isCanActiveTool(toolName) {
this.getUnSaveTarget() this.getUnSaveTarget()
@ -898,17 +892,17 @@ export default {
this.$refs['ecrf'].getQuestions(obj.visitTaskId) this.$refs['ecrf'].getQuestions(obj.visitTaskId)
}, },
async resetMeasuredData() { async resetMeasuredData() {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
const loading = this.$loading({ fullscreen: true })
try { try {
const confirm = await this.$confirm(
this.$t('trials:dicomReading:message:confirmReset1'),
this.$t('trials:dicomReading:message:confirmReset2'),
{
type: 'warning',
distinguishCancelAndClose: true
}
)
if (confirm !== 'confirm') return
this.loading = true
const res = await resetReadingTask({ visitTaskId: this.visitTaskId }) const res = await resetReadingTask({ visitTaskId: this.visitTaskId })
this.loading = false this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
@ -917,16 +911,13 @@ export default {
this.activeItem.activeRowIndex = null this.activeItem.activeRowIndex = null
this.activeItem.activeCollapseId = null this.activeItem.activeCollapseId = null
await this.getReadingQuestionAndAnswer(this.visitTaskId) await this.getReadingQuestionAndAnswer(this.visitTaskId)
const triald = this.$router.currentRoute.query.trialId this.$refs['ecrf'].resetQSForm()
await store.dispatch('reading/refreshDicomReadingQuestionAnswer', { trialId: triald, visitTaskId: this.visitTaskId })
this.$refs['ecrf'].getQuestions(this.visitTaskId, true)
DicomEvent.$emit('getMeasureData') DicomEvent.$emit('getMeasureData')
DicomEvent.$emit('getReportInfo', true) DicomEvent.$emit('getReportInfo', true)
DicomEvent.$emit('refreshStudyListMeasureData') DicomEvent.$emit('refreshStudyListMeasureData')
} }
loading.close()
} catch (e) { } catch (e) {
loading.close() this.loading = false
console.log(e) console.log(e)
} }
}, },