diff --git a/src/store/modules/reading.js b/src/store/modules/reading.js
index b083731f..b79750f9 100644
--- a/src/store/modules/reading.js
+++ b/src/store/modules/reading.js
@@ -35,26 +35,31 @@ const getDefaultState = () => {
}
}
function getQuestions(questions) {
+ const criterionType = parseInt(localStorage.getItem('CriterionType'))
questions.forEach(item => {
if (item.Type === 'table' && item.TableQuestions && item.TableQuestions.Answers.length > 0) {
item.TableQuestions.Answers.forEach(answerObj => {
- answerObj.lesionPart = getQuestionAnswer(item.TableQuestions.Questions, 8, answerObj)
- answerObj.loctation = getQuestionAnswer(item.TableQuestions.Questions, 6, answerObj)
- answerObj.lesionLength = getQuestionAnswer(item.TableQuestions.Questions, 0, answerObj)
- answerObj.lesionShort = getQuestionAnswer(item.TableQuestions.Questions, 1, answerObj)
answerObj.isDicomReading = answerObj.IsDicomReading === 'True'
- var isLymphLesion = getQuestionAnswer(item.TableQuestions.Questions, 2, answerObj)
- isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null
- answerObj.isLymphLesion = isLymphLesion
- answerObj.lesionState = getQuestionAnswer(item.TableQuestions.Questions, 7, answerObj)
- var lesionNum = getQuestionAnswer(item.TableQuestions.Questions, 11, answerObj)
- answerObj.lesionNum = lesionNum
+
if (answerObj.RowId) {
- var idx = item.TableQuestions.Questions.findIndex(i => i.QuestionMark === 11)
- if (idx > -1) {
+ if (criterionType === 10) {
// pcwg
+ var lesionNum = getQuestionAnswer(item.TableQuestions.Questions, 11, answerObj)
+ answerObj.lesionNum = lesionNum
answerObj.saveTypeEnum = isNaN(parseInt(answerObj.lesionNum)) ? 1 : 2
+ } else if (criterionType === 19) {
+ // ivus
+ var v = getQuestionAnswer(item.TableQuestions.Questions, 1003, answerObj)
+ answerObj.saveTypeEnum = isNaN(parseFloat(v)) ? 1 : 2
} else {
+ answerObj.lesionPart = getQuestionAnswer(item.TableQuestions.Questions, 8, answerObj)
+ answerObj.loctation = getQuestionAnswer(item.TableQuestions.Questions, 6, answerObj)
+ answerObj.lesionLength = getQuestionAnswer(item.TableQuestions.Questions, 0, answerObj)
+ answerObj.lesionShort = getQuestionAnswer(item.TableQuestions.Questions, 1, answerObj)
+ var isLymphLesion = getQuestionAnswer(item.TableQuestions.Questions, 2, answerObj)
+ isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null
+ answerObj.isLymphLesion = isLymphLesion
+ answerObj.lesionState = getQuestionAnswer(item.TableQuestions.Questions, 7, answerObj)
answerObj.saveTypeEnum = isNaN(parseInt(answerObj.lesionState)) ? 1 : 2
}
} else {
diff --git a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue
index 858a95d7..9ce0b8f3 100644
--- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue
@@ -433,7 +433,7 @@
/>
- Developing...
+ Developing...
diff --git a/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionForm.vue b/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionForm.vue
index f058d8f3..3a534229 100644
--- a/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionForm.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionForm.vue
@@ -56,18 +56,38 @@
>
-
+
{formItemChange(val, qs)})"
+ />
+
+
+
+ {formItemChange(val, qs)})"
+ @blur="limitBlur(qs.Id, qs.ValueType)"
>
{{ $fd('ValueUnit', parseInt(qs.Unit)) }}
+
+
+ {formItemChange(val, qs)})"
+ >
+
+ {{ $fd('ValueUnit', parseInt(qs.Unit)) }}
+
+
+
{
@@ -353,14 +376,44 @@ export default {
})
},
async formItemChange(v, question) {
+ console.log('formItemChange')
if (this.questionForm.RowId) {
this.$set(this.questionForm, 'saveTypeEnum', 1)
} else {
this.$set(this.questionForm, 'saveTypeEnum', 0)
}
-
+ if (question.QuestionMark === 1001 || question.QuestionMark === 1002) {
+ this.questionForm[this.getQuestionId(1003)] = this.calculate([1001, 1002], '-')
+ }
this.$emit('resetQuestions', { saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
},
+ calculate(qsMarkArr, type) {
+ var num = 0
+ qsMarkArr.map((qsmark, i) => {
+ if (i === 0) {
+ const v = this.questionForm[this.getQuestionId(qsmark)]
+ num = isNaN(parseFloat(v)) ? 0 : parseFloat(v)
+ } else {
+ const v = this.questionForm[this.getQuestionId(qsmark)]
+ switch (type) {
+ case '-':
+ num -= isNaN(parseFloat(v)) ? 0 : parseFloat(v)
+ break
+ }
+ }
+ })
+ return parseFloat(num).toFixed(this.digitPlaces)
+ },
+ limitBlur(qId, valueType) {
+ const value = this.questionForm[qId]
+ if (valueType === 0) {
+ this.$set(this.questionForm, qId, parseInt(value))
+ } else if (valueType === 3) {
+ this.$set(this.questionForm, qId, parseFloat(value))
+ } else {
+ this.$set(this.questionForm, qId, parseFloat(value).toFixed(this.digitPlaces))
+ }
+ },
returnFloat(num) {
if (num) return
var value = Math.round(parseFloat(num) * 100) / 100
@@ -508,6 +561,7 @@ export default {
.measurement-form{
/deep/ .el-form-item__label{
color: #c3c3c3;
+ text-align: left;
}
/deep/ .el-input .el-input__inner{
background-color: transparent;
diff --git a/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionList.vue b/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionList.vue
index 7ac9761a..5fe82e85 100644
--- a/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionList.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionList.vue
@@ -17,10 +17,17 @@
-
+
-
+
+
@@ -51,13 +58,13 @@
{{ getLesionName(item.OrderMark,q.RowIndex) }}
-
+
-
+
@@ -87,6 +94,25 @@
+
+
+
+
+
+
@@ -225,6 +251,8 @@ export default {
this.questions = this.visitTaskList[i].ReadingQuestions
this.$nextTick(() => {
this.$refs['ecrf'].getQuestions(this.visitTaskId)
+ this.$refs['ecrf2'].getQuestions(this.visitTaskId)
+ this.$refs['ecrf3'].getQuestions(this.visitTaskId)
this.getTableQuestions()
this.tableQuestions.forEach(item => {
item.TableQuestions.Answers.forEach(i => {
@@ -245,12 +273,6 @@ export default {
questions.forEach(item => {
if (item.Type === 'table' && item.Id === obj.questionId) {
var idx = item.TableQuestions.Answers.findIndex(i => i.RowIndex === obj.rowIndex)
- item.TableQuestions.Answers[idx].isLymphLesion = obj.isLymphLesion
- item.TableQuestions.Answers[idx].loctation = obj.lesionOrgan
- item.TableQuestions.Answers[idx].lesionPart = obj.lesionPart
- item.TableQuestions.Answers[idx].lesionLength = obj.lesionLength
- item.TableQuestions.Answers[idx].lesionShort = obj.lesionShort
- item.TableQuestions.Answers[idx].lesionState = obj.lesionState
item.TableQuestions.Answers[idx].saveTypeEnum = obj.saveTypeEnum
for (const i in obj.anwsers) {
@@ -267,7 +289,8 @@ export default {
if (item.Type === 'table' && item.TableQuestions && item.TableQuestions.Answers.length > 0) {
item.TableQuestions.Answers.forEach(answerObj => {
if (answerObj.RowId) {
- this.$set(answerObj, 'saveTypeEnum', 2)
+ var diffVal = this.getQuestionAnswer(item.TableQuestions.Questions, 1003, answerObj)
+ this.$set(answerObj, 'saveTypeEnum', isNaN(parseFloat(diffVal)) ? 1 : 2)
} else {
this.$set(answerObj, 'saveTypeEnum', 0)
}
@@ -493,6 +516,8 @@ export default {
},
getECRFQuestions(obj) {
this.$refs['ecrf'].getQuestions(obj.visitTaskId)
+ this.$refs['ecrf2'].getQuestions(obj.visitTaskId)
+ this.$refs['ecrf3'].getQuestions(obj.visitTaskId)
},
async resetMeasuredData() {
const confirm = await this.$confirm(
@@ -517,6 +542,8 @@ export default {
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('getReportInfo', true)
}
loading.close()
diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Questions.vue b/src/views/trials/trials-panel/reading/dicoms/components/Questions.vue
index ea58890c..66329344 100644
--- a/src/views/trials/trials-panel/reading/dicoms/components/Questions.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/components/Questions.vue
@@ -856,6 +856,7 @@ export default {
.ecrf-wrapper{
/deep/ .el-form-item__label{
color: #c3c3c3;
+ text-align: left;
}
/deep/ .el-input__inner{
background-color: transparent;
diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue
index ffdd0d48..f5229536 100644
--- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue
+++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeStudyList.vue
@@ -279,7 +279,14 @@ export default {
store.dispatch('reading/setImageloadedInfo', item)
}
})
- var i = res.findIndex(s => s.isCurrentTask)
+ var i = -1
+ var isReadingTaskViewInOrder = parseInt(this.$router.currentRoute.query.isReadingTaskViewInOrder)
+ if (isReadingTaskViewInOrder === 2) {
+ // 受试者内随机
+ i = res.length === 2 ? 1 : -1
+ } else {
+ i = res.findIndex(s => s.isCurrentTask)
+ }
if (i > -1) {
var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.visitTaskId)
if (idx > -1) {
@@ -356,7 +363,22 @@ export default {
var isReadingTaskViewInOrder = JSON.parse(this.$router.currentRoute.query.isReadingTaskViewInOrder)
var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.visitTaskId)
this.studyList = this.visitTaskList[idx].StudyList
- if (this.visitTaskList[idx].IsBaseLineTask || isReadingTaskViewInOrder !== 1) {
+ if (isReadingTaskViewInOrder === 2) {
+ // 受试者内随机
+ const studyList = this.visitTaskList[idx].StudyList.filter(i => i.IsDicom)
+ const seriesArr = studyList.map(s => s.SeriesList).flat()
+ if (seriesArr.length === 1) {
+ seriesList.push(seriesArr[0], seriesArr[0])
+ this.studyIndex = seriesArr[0].studyIndex
+ this.seriesIndex = seriesArr[0].seriesIndex
+ this.activeNames = [`${seriesArr[0].studyId}`]
+ } else if (seriesArr.length > 1) {
+ seriesList.push(seriesArr[0], seriesArr[1])
+ this.studyIndex = seriesArr[1].studyIndex
+ this.seriesIndex = seriesArr[1].seriesIndex
+ this.activeNames = [`${seriesArr[1].studyId}`]
+ }
+ } else if (this.visitTaskList[idx].IsBaseLineTask || isReadingTaskViewInOrder === 0){
// 基线
const obj = this.getFirstMarkedSeries(this.visitTaskList[idx].MeasureData, [...this.visitTaskList[idx].StudyList])
if (Object.keys(obj).length !== 0) {
diff --git a/src/views/trials/trials-panel/reading/none-dicoms/components/FormItem.vue b/src/views/trials/trials-panel/reading/none-dicoms/components/FormItem.vue
index cb43bf14..f22de0ef 100644
--- a/src/views/trials/trials-panel/reading/none-dicoms/components/FormItem.vue
+++ b/src/views/trials/trials-panel/reading/none-dicoms/components/FormItem.vue
@@ -124,7 +124,7 @@
-
-
+ />
-
+
{{ $t('trials:readingReport:button:skip') }}
- {{$t('trials:readingReport:button:refresh')}}
- {{$t('common:button:save')}}
- {{$t('common:button:submit')}}
+ {{ $t('trials:readingReport:button:refresh') }}
+ {{ $t('common:button:save') }}
+ {{ $t('common:button:submit') }}
{{ task.BlindName }}
-
+
-
-
-
+
+
+
-
+
-
-
+
- {{questionForm[scope.row.QuestionId][scope.row.xfIndex][scope.row.TableQuestionId]}}
+ {{ questionForm[scope.row.QuestionId][scope.row.xfIndex][scope.row.TableQuestionId] }}
- {{questionForm[scope.row.QuestionId]}}
+ {{ questionForm[scope.row.QuestionId] }}
- {{questionForm[scope.row.QuestionId][scope.row.xfIndex][scope.row.TableQuestionId]}}
+ {{ questionForm[scope.row.QuestionId][scope.row.xfIndex][scope.row.TableQuestionId] }}
- {{questionForm[scope.row.QuestionId]}}
+ {{ questionForm[scope.row.QuestionId] }}
{questionId = scope.row.QuestionId}"
>
- {{scope.row.Unit !== 4 ? $fd('ValueUnit', scope.row.Unit) : scope.row.CustomUnit}}
- %
+ {{ scope.row.Unit !== 4 ? $fd('ValueUnit', scope.row.Unit) : scope.row.CustomUnit }}
+ %
@@ -164,12 +163,12 @@
v-else-if="scope.row.DataSource !== 1 && scope.row.Type==='number' && !scope.row.IsShowInDicom && ((task.IsBaseLine && scope.row.LimitEdit === 1) || (!task.IsBaseLine && scope.row.LimitEdit === 2) || scope.row.LimitEdit === 0)"
v-model="questionForm[scope.row.QuestionId]"
:disabled="scope.row.DataSource === 1"
- @blur="limitBlur(questionForm, scope.row.QuestionId, scope.row.ValueType)"
size="mini"
+ @blur="limitBlur(questionForm, scope.row.QuestionId, scope.row.ValueType)"
@focus="() => {questionId = scope.row.QuestionId}"
>
- {{scope.row.Unit !== 4 ? $fd('ValueUnit', scope.row.Unit) : scope.row.CustomUnit}}
- %
+ {{ scope.row.Unit !== 4 ? $fd('ValueUnit', scope.row.Unit) : scope.row.CustomUnit }}
+ %
@@ -179,49 +178,49 @@
{{ isNaN(parseInt(questionForm[scope.row.QuestionId])) ? questionForm[scope.row.QuestionId]:`${questionForm[scope.row.QuestionId]} %` }}
- {{ isNaN(parseInt(questionForm[scope.row.QuestionId])) ? questionForm[scope.row.QuestionId] : questionForm[scope.row.QuestionId]}}
+ {{ isNaN(parseInt(questionForm[scope.row.QuestionId])) ? questionForm[scope.row.QuestionId] : questionForm[scope.row.QuestionId] }}
- {setImageUrl(scope.row.QuestionId, scope.row.xfIndex, scope.row.TableQuestionId, url, scope.row.RowId)}"
- >
- {setImageUrl(scope.row.QuestionId, scope.row.xfIndex, scope.row.TableQuestionId, url)}"
- >
+ {setImageUrl(scope.row.QuestionId, scope.row.xfIndex, scope.row.TableQuestionId, url, scope.row.RowId)}"
+ />
+ {setImageUrl(scope.row.QuestionId, scope.row.xfIndex, scope.row.TableQuestionId, url)}"
+ />
+ :reading-task-state="readingTaskState"
+ :init-url="scope.row.Answers[task.VisitTaskId]"
+ />
+ :reading-task-state="readingTaskState"
+ :init-url="scope.row.Answers[task.VisitTaskId]"
+ />
{{ scope.row.Answers[task.VisitTaskId] === '-1' ? '未知' : scope.row.Answers[task.VisitTaskId] }}
@@ -232,8 +231,7 @@
{{ isNaN(parseInt(scope.row.Answers[task.VisitTaskId]))?scope.row.Answers[task.VisitTaskId]:`${scope.row.Answers[task.VisitTaskId]}` }}
-
-
+
{{ isNaN(parseInt(scope.row.Answers[task.VisitTaskId]))?scope.row.Answers[task.VisitTaskId]:`${scope.row.Answers[task.VisitTaskId]} ${scope.row.Unit !== 4 ? $fd('ValueUnit',scope.row.Unit) : scope.row.CustomUnit}` }}
@@ -266,7 +264,7 @@