Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/hir_web into main
continuous-integration/drone/push Build is passing Details

main
caiyiling 2024-05-11 13:15:15 +08:00
commit 4db90d8eef
7 changed files with 109 additions and 22 deletions

View File

@ -135,3 +135,12 @@ export function deletePatientStudy(params) {
params params
}) })
} }
// 校验受试者是否存在
export function verifyTrialSubject(data) {
return request({
url: '/Patient/verifyTrialSubject',
method: 'post',
data
})
}

View File

@ -121,7 +121,7 @@ export default {
this.$t("trials:uploadDicomList:label:prompt"), this.$t("trials:uploadDicomList:label:prompt"),
{ {
type: "warning", type: "warning",
showCancelButton: false, // showCancelButton: false,
} }
) )
.then(() => { .then(() => {

View File

@ -136,7 +136,9 @@
'' ''
) )
" "
@focus="errMessage = null"
></el-input> ></el-input>
<span class="errTip" v-if="errMessage">{{ errMessage }}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
@ -161,6 +163,7 @@ import {
getTrialSubejctSelectList, getTrialSubejctSelectList,
addSubjectPatientBinding, addSubjectPatientBinding,
deleteSubjectPatientBinding, deleteSubjectPatientBinding,
verifyTrialSubject,
} from "@/api/inspection.js"; } from "@/api/inspection.js";
export default { export default {
name: "addTrialsList", name: "addTrialsList",
@ -242,6 +245,7 @@ export default {
}, },
], ],
}, },
errMessage: null,
}; };
}, },
computed: { computed: {
@ -286,8 +290,15 @@ export default {
// () // ()
async addSubject() { async addSubject() {
try { try {
this.errMessage = null;
let validate = await this.$refs.addSubjectForm.validate(); let validate = await this.$refs.addSubjectForm.validate();
if (!validate) return; if (!validate) return;
let data = {
TrialId: this.submitMessage.TrialId,
SubjectCode: this.addSubjectForm.SubjectCode,
};
let res = await verifyTrialSubject(data);
if (res.IsSuccess) {
let subject = { let subject = {
SubjectCode: this.addSubjectForm.SubjectCode, SubjectCode: this.addSubjectForm.SubjectCode,
SubejctId: this.addSubjectForm.SubjectCode, SubejctId: this.addSubjectForm.SubjectCode,
@ -295,8 +306,14 @@ export default {
this.subjectIdList.unshift(subject); this.subjectIdList.unshift(subject);
this.submitMessage.SubjectId = this.addSubjectForm.SubjectCode; this.submitMessage.SubjectId = this.addSubjectForm.SubjectCode;
this.addSubject_model.visible = false; this.addSubject_model.visible = false;
}
} catch (err) { } catch (err) {
console.log(err); console.log(err);
if (err.Code === 5) {
this.getTrialSubejctSelectList(this.submitMessage.TrialId, null);
this.$emit("getList");
this.errMessage = err.ErrorMessage;
}
} }
}, },
// //
@ -360,6 +377,7 @@ export default {
this.$emit("getList"); this.$emit("getList");
} }
} catch (err) { } catch (err) {
this.btnLoading = false;
console.log(err); console.log(err);
} }
}, },
@ -393,6 +411,7 @@ export default {
this.$refs.confirmVisit.changeVisitStatus(true); this.$refs.confirmVisit.changeVisitStatus(true);
} }
} catch (err) { } catch (err) {
this.btnLoading = false;
console.log(err); console.log(err);
} }
}, },
@ -413,6 +432,15 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.errTip {
color: #f56c6c;
font-size: 12px;
line-height: 1;
padding-top: 4px;
position: absolute;
top: 100%;
left: 0;
}
.top { .top {
padding-top: 20px; padding-top: 20px;
display: flex; display: flex;

View File

@ -117,7 +117,7 @@
<el-form :inline="true" class="base-search-form"> <el-form :inline="true" class="base-search-form">
<!-- 患者编号 --> <!-- 患者编号 -->
<el-form-item :label="$t('trials:uploadDicomList:table:pId')"> <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
<el-input v-model="searchData.PatientIdStr" style="width: 100px" /> <el-input v-model="searchData.PatientIdStr" style="width: 100px" clearable/>
</el-form-item> </el-form-item>
<!-- 检查日期 --> <!-- 检查日期 -->
<el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')"> <el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')">
@ -128,6 +128,7 @@
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']" :default-time="['00:00:00', '23:59:59']"
clearable
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>

View File

@ -21,8 +21,8 @@
<el-input v-model="form.ShortName" clearable /> <el-input v-model="form.ShortName" clearable />
</el-form-item> </el-form-item>
<!-- 年龄 --> <!-- 年龄 -->
<el-form-item :label="$t('trials:subject:table:age')"> <el-form-item :label="$t('trials:subject:table:age')" prop="Age">
<el-input v-model="form.Age" type="number" clearable /> <el-input v-model.number="form.Age" type="number" clearable />
</el-form-item> </el-form-item>
<!-- 性别 --> <!-- 性别 -->
<el-form-item :label="$t('trials:subject:table:gender')"> <el-form-item :label="$t('trials:subject:table:gender')">
@ -113,6 +113,20 @@ export default {
}, },
{ max: 50, message: `${this.$t("common:ruleMessage:maxLength")} 50` }, { max: 50, message: `${this.$t("common:ruleMessage:maxLength")} 50` },
], ],
Age: [
{
pattern: /^[1-9]\d*$/,
message: this.$t("trials:subject:formRule:checkAge"),
trigger: "blur",
},
{
type: "number",
min: 1,
max: 200,
message: this.$t("trials:subject:formRule:numberAge"),
trigger: "blur",
},
],
}, },
btnLoading: false, btnLoading: false,
siteOptions: [], siteOptions: [],

View File

@ -147,7 +147,9 @@
addSubjectForm2.SubjectCode = addSubjectForm2.SubjectCode =
addSubjectForm2.SubjectCode.replace(/[^0-9a-zA-Z]/g, '') addSubjectForm2.SubjectCode.replace(/[^0-9a-zA-Z]/g, '')
" "
@focus="errMessage = null"
></el-input> ></el-input>
<span class="errTip" v-if="errMessage">{{ errMessage }}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
@ -170,6 +172,7 @@ import Pagination from "@/components/Pagination";
import { import {
getTrialSubejctSelectList, getTrialSubejctSelectList,
addSubjectPatientBinding, addSubjectPatientBinding,
verifyTrialSubject,
} from "@/api/inspection.js"; } from "@/api/inspection.js";
const defaultSearchData = () => { const defaultSearchData = () => {
return { return {
@ -259,6 +262,7 @@ export default {
}, },
], ],
}, },
errMessage: null,
}; };
}, },
computed: { computed: {
@ -295,8 +299,15 @@ export default {
// () // ()
async addSubject() { async addSubject() {
try { try {
this.errMessage = null;
let validate = await this.$refs.addSubjectForm2.validate(); let validate = await this.$refs.addSubjectForm2.validate();
if (!validate) return; if (!validate) return;
let data = {
TrialId: this.$route.query.trialId,
SubjectCode: this.addSubjectForm2.SubjectCode,
};
let res = await verifyTrialSubject(data);
if (res.IsSuccess) {
let subject = { let subject = {
SubjectCode: this.addSubjectForm2.SubjectCode, SubjectCode: this.addSubjectForm2.SubjectCode,
SubejctId: this.addSubjectForm2.SubjectCode, SubejctId: this.addSubjectForm2.SubjectCode,
@ -304,8 +315,14 @@ export default {
this.subjectIdList.unshift(subject); this.subjectIdList.unshift(subject);
this.submitMessage.SubjectId = this.addSubjectForm2.SubjectCode; this.submitMessage.SubjectId = this.addSubjectForm2.SubjectCode;
this.addSubject_model.visible = false; this.addSubject_model.visible = false;
}
} catch (err) { } catch (err) {
console.log(err); console.log(err);
if (err.Code === 5) {
this.getTrialSubejctSelectList(this.$route.query.trialId);
this.$emit("getList");
this.errMessage = err.ErrorMessage;
}
} }
}, },
// //
@ -425,6 +442,15 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.errTip {
color: #f56c6c;
font-size: 12px;
line-height: 1;
padding-top: 4px;
position: absolute;
top: 100%;
left: 0;
}
.top { .top {
padding-top: 20px; padding-top: 20px;
display: flex; display: flex;

View File

@ -877,7 +877,9 @@
<!-- OptType === 'Add' ? '值' : OptType === 'Delete' ? '删除前' : '修改前' --> <!-- OptType === 'Add' ? '值' : OptType === 'Delete' ? '删除前' : '修改前' -->
<el-table-column <el-table-column
v-if=" v-if="
OptType !== 'Add' && OptType !== 'Upload' && OptType !== 'Init' OptType2 !== 'Add' &&
OptType2 !== 'Upload' &&
OptType2 !== 'Init'
" "
prop="oldValue" prop="oldValue"
:label=" :label="
@ -974,7 +976,7 @@
<el-table-column <el-table-column
prop="newValue" prop="newValue"
:label=" :label="
OptType === 'Add' || OptType === 'Init' OptType2 === 'Add' || OptType2 === 'Init'
? $t('trials:auditRecord:title:fieldValue') ? $t('trials:auditRecord:title:fieldValue')
: OptType === 'Delete' : OptType === 'Delete'
? $t('trials:auditRecord:title:afterDeletion') ? $t('trials:auditRecord:title:afterDeletion')
@ -1181,14 +1183,17 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<div <div
v-if="otherData.length > 0" v-if="otherData2.length > 0"
style="margin-top: 20px; margin-bottom: 10px" style="margin-top: 20px; margin-bottom: 10px"
> >
<!-- 签名信息: --> <!-- 签名信息: -->
{{ $t("trials:auditRecord:title:signInfo") }} {{ $t("trials:auditRecord:title:signInfo") }}
</div> </div>
<div v-if="otherData.length > 0" style="color: #f66; font-size: 12px"> <div
{{ otherData[0].Value }} v-if="otherData2.length > 0"
style="color: #f66; font-size: 12px"
>
{{ otherData2[0].Value }}
</div> </div>
</template> </template>
<template slot="dialog-footer"> <template slot="dialog-footer">
@ -1238,7 +1243,6 @@ import BaseContainer from "@/components/BaseContainer";
import BaseModel from "@/components/BaseModel"; import BaseModel from "@/components/BaseModel";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { getUserTypeListByUserType } from "@/api/admin"; import { getUserTypeListByUserType } from "@/api/admin";
export default { export default {
components: { BaseContainer, Pagination, BaseModel }, components: { BaseContainer, Pagination, BaseModel },
dicts: ["OptType", "ModuleType", "ChildrenType"], dicts: ["OptType", "ModuleType", "ChildrenType"],
@ -1318,6 +1322,7 @@ export default {
siteOptions: [], siteOptions: [],
visitPlanOptions: [], visitPlanOptions: [],
OptType: null, OptType: null,
OptType2: null,
trialId: this.$route.query.trialId, trialId: this.$route.query.trialId,
configList2: [], configList2: [],
otherData2: [], otherData2: [],
@ -1867,6 +1872,7 @@ export default {
}); });
}, },
async lookDetails2(row) { async lookDetails2(row) {
this.OptType2 = row.OptType;
var Json = await this.getJSON(row); var Json = await this.getJSON(row);
var JsonDetail = Json[0] ? JSON.parse(Json[0]) : null; var JsonDetail = Json[0] ? JSON.parse(Json[0]) : null;
var ParentJson = Json[1] ? JSON.parse(Json[1]) : null; var ParentJson = Json[1] ? JSON.parse(Json[1]) : null;
@ -1948,6 +1954,9 @@ export default {
OpByUserName: null, OpByUserName: null,
BatchId: null, BatchId: null,
UserTypeId: null, UserTypeId: null,
TrialReadingCriterionId: null,
VisitName: null,
SubjectCode: null,
}); });
this.timeList = []; this.timeList = [];
this.getList(); this.getList();