新增修改项目
parent
77b03186d8
commit
267444c8ad
|
@ -3469,7 +3469,7 @@ export function deleteCustomTag(id) {
|
|||
})
|
||||
}
|
||||
|
||||
export function uploadTrialSiteSurveyUser(trialId,baseUrl,routeUrl,param) {
|
||||
export function uploadTrialSiteSurveyUser(trialId, baseUrl, routeUrl, param) {
|
||||
return request({
|
||||
url: `/TrialSiteSurvey/UploadTrialSiteSurveyUser?trialId=${trialId}&baseUrl=${baseUrl}&routeUrl=${routeUrl}`,
|
||||
method: 'post',
|
||||
|
@ -3506,3 +3506,12 @@ export function getNextIQCQuality(param) {
|
|||
data: param
|
||||
})
|
||||
}
|
||||
|
||||
// 新增或编辑项目
|
||||
export function addOrUpdateTrialHir(param) {
|
||||
return request({
|
||||
url: `/Patient/addOrUpdateTrial`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
|
|
|
@ -11,12 +11,13 @@
|
|||
:inline="true"
|
||||
>
|
||||
<el-row>
|
||||
<!-- 项目码 -->
|
||||
<!-- 项目码 v-if="trialForm.Id !== ''"-->
|
||||
<el-form-item
|
||||
v-if="trialForm.Id !== ''"
|
||||
:label="$t('trials:trials-list:form:trialCode')"
|
||||
prop="TrialCode"
|
||||
>
|
||||
<el-input v-model="trialForm.TrialCode" disabled />
|
||||
<!-- <el-input v-model="trialForm.TrialCode" disabled /> -->
|
||||
<el-input v-model="trialForm.TrialCode" />
|
||||
</el-form-item>
|
||||
<!-- 项目类型 -->
|
||||
<el-form-item
|
||||
|
@ -46,6 +47,7 @@
|
|||
v-model="trialForm.ExperimentName"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 1, maxRows: 4 }"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 研究方案号 -->
|
||||
|
@ -53,7 +55,7 @@
|
|||
:label="$t('trials:trials-list:form:researchNumber')"
|
||||
prop="ResearchProgramNo"
|
||||
>
|
||||
<el-input v-model="trialForm.ResearchProgramNo" />
|
||||
<el-input v-model="trialForm.ResearchProgramNo" clearable />
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
@ -62,30 +64,34 @@
|
|||
:label="$t('trials:trials-list:form:investigator')"
|
||||
prop="HeadPI"
|
||||
>
|
||||
<el-input v-model="trialForm.HeadPI" />
|
||||
<el-input v-model="trialForm.HeadPI" clearable />
|
||||
</el-form-item>
|
||||
<!-- 申办方 -->
|
||||
<el-form-item
|
||||
:label="$t('trials:trials-list:form:sponsor')"
|
||||
prop="SponsorName"
|
||||
prop="Sponsor"
|
||||
>
|
||||
<el-input v-model="trialForm.SponsorName" maxlength="200" />
|
||||
<el-input v-model="trialForm.Sponsor" maxlength="200" clearable />
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!-- CRO -->
|
||||
<el-form-item :label="$t('trials:trials-list:form:cro')" prop="croName">
|
||||
<el-input v-model="trialForm.croName" maxlength="200" />
|
||||
<el-form-item :label="$t('trials:trials-list:form:cro')" prop="Cro">
|
||||
<el-input v-model="trialForm.Cro" maxlength="200" clearable />
|
||||
</el-form-item>
|
||||
<!-- 药物/器械名称 -->
|
||||
<el-form-item :label="$t('trials:trials-list:message:D/Dname')">
|
||||
<el-input v-model="trialForm.croName" />
|
||||
<el-input v-model="trialForm.MedicineName" clearable />
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!-- 临床分期 -->
|
||||
<el-form-item :label="$t('trials:trials-list:form:phase')" prop="PhaseId">
|
||||
<el-select v-model="trialForm.PhaseId" @change="handlePhaseChange">
|
||||
<el-select
|
||||
v-model="trialForm.PhaseId"
|
||||
@change="handlePhaseChange"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.Trial_Phase"
|
||||
:key="item.id"
|
||||
|
@ -96,13 +102,13 @@
|
|||
</el-form-item>
|
||||
<!-- 适应症 -->
|
||||
<el-form-item :label="$t('trials:trials-list:form:indication')">
|
||||
<el-input v-model="trialForm.IndicationTypeId" />
|
||||
<el-input v-model="trialForm.Indication" clearable />
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!-- 检查技术 -->
|
||||
<el-form-item :label="$t('trials:trials-list:form:modality')">
|
||||
<el-select v-model="trialForm.ModalityIds" multiple>
|
||||
<el-select v-model="trialForm.ModalityIds" multiple clearable>
|
||||
<el-option
|
||||
v-for="item of $d.Modality"
|
||||
:key="item.id"
|
||||
|
@ -114,14 +120,14 @@
|
|||
<!-- 阅片标准 -->
|
||||
<el-form-item
|
||||
:label="$t('trials:trials-list:form:criterion')"
|
||||
prop="CriterionId"
|
||||
prop="CriterionTypeList"
|
||||
>
|
||||
<el-select v-model="trialForm.CriterionId">
|
||||
<el-select v-model="trialForm.CriterionTypeList" multiple clearable>
|
||||
<el-option
|
||||
v-for="item of $d.CriterionType"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.id"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
@ -129,23 +135,28 @@
|
|||
<el-row>
|
||||
<!-- 联系人 -->
|
||||
<el-form-item :label="$t('trials:researchForm:form:contactor')">
|
||||
<el-input v-model="trialForm.IndicationTypeId" />
|
||||
<el-input v-model="trialForm.ContactUser" clearable />
|
||||
</el-form-item>
|
||||
<!-- 电话 -->
|
||||
<el-form-item :label="$t('trials:trials-myinfo:form:phone')">
|
||||
<el-input v-model="trialForm.phone" type="number" />
|
||||
<el-input v-model="trialForm.ContactPhone" type="number" clearable />
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!-- 授权时长 -->
|
||||
<el-form-item
|
||||
:label="$t('trials:trials-list:table:durationAuthorized')"
|
||||
prop="durationAuthorized"
|
||||
prop="AuthorizationYear"
|
||||
>
|
||||
<el-input v-model="trialForm.durationAuthorized" type="number" /> 年
|
||||
<el-input
|
||||
v-model="trialForm.AuthorizationYear"
|
||||
type="number"
|
||||
clearable
|
||||
/>
|
||||
年
|
||||
</el-form-item>
|
||||
<!-- 授权访视量 -->
|
||||
<el-form-item
|
||||
<!-- <el-form-item
|
||||
:label="$t('trials:trials-list:table:visitNumberAuthorized')"
|
||||
prop="visitNumberAuthorized"
|
||||
>
|
||||
|
@ -154,13 +165,13 @@
|
|||
type="number"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!--项目授权码-->
|
||||
<el-form-item :label="$t('trials:trials-list:form:authorizationCode')">
|
||||
<!-- <el-form-item :label="$t('trials:trials-list:form:authorizationCode')">
|
||||
<el-input v-model="trialForm.authorizationCode" />
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!-- Timepoints Per Patient -->
|
||||
|
@ -190,7 +201,7 @@
|
|||
<script>
|
||||
import store from "@/store";
|
||||
import { mapGetters, mapState } from "vuex";
|
||||
import { getTrialInfo, addOrUpdateTrial } from "@/api/trials";
|
||||
import { getTrialInfo, addOrUpdateTrialHir } from "@/api/trials";
|
||||
import { getBasicDataSelects } from "@/api/dictionary/dictionary";
|
||||
export default {
|
||||
name: "TrialForm",
|
||||
|
@ -203,55 +214,35 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
trialForm: {
|
||||
visitNumberAuthorized: 1000,
|
||||
Id: "",
|
||||
TrialCode: "",
|
||||
TrialType: null,
|
||||
SponsorId: "",
|
||||
CROId: "",
|
||||
ReviewModeId: "",
|
||||
ReviewTypeIds: [],
|
||||
|
||||
// 默认值0
|
||||
Expedited: "",
|
||||
|
||||
ModalityIds: [],
|
||||
Note: "",
|
||||
ExpectedPatients: "",
|
||||
TimePointsPerPatient: "",
|
||||
ProjectCycle: "",
|
||||
DeclarationTypeId: "",
|
||||
IndicationTypeId: "",
|
||||
PhaseId: "",
|
||||
AttendedReviewerType: "",
|
||||
IsLocked: false,
|
||||
ResearchProgramNo: "",
|
||||
ExperimentName: "",
|
||||
MainResearchUnit: "",
|
||||
HeadPI: "",
|
||||
PlanSiteCount: null,
|
||||
PlanVisitCount: null,
|
||||
Indication: null,
|
||||
AttendedReviewerTypeEnumList: [],
|
||||
DeclarationTypeEnumList: [],
|
||||
DeclarationTypeOther: null,
|
||||
AttendedReviewerTypeOther: null,
|
||||
IsDeclaration: null,
|
||||
Cro: "",
|
||||
Sponsor: "",
|
||||
MedicineName: "",
|
||||
PhaseId: "",
|
||||
Indication: "",
|
||||
ModalityIds: [],
|
||||
CriterionTypeList: [],
|
||||
ContactUser: "",
|
||||
ContactPhone: "",
|
||||
AuthorizationYear: null,
|
||||
},
|
||||
indicationGrouping: null,
|
||||
trialFormRules: {
|
||||
// 授权时长
|
||||
durationAuthorized: [
|
||||
// 项目码
|
||||
TrialCode: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t(
|
||||
"trials:trials-list:formRule:enterDurationAuthorized"
|
||||
),
|
||||
message: this.$t("common:ruleMessage:specify"),
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
// 授权访视量
|
||||
visitNumberAuthorized: [
|
||||
// 授权时长
|
||||
AuthorizationYear: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t(
|
||||
|
@ -261,7 +252,7 @@ export default {
|
|||
},
|
||||
],
|
||||
// 阅片标准
|
||||
CriterionId: [
|
||||
CriterionTypeList: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("common:ruleMessage:specify"),
|
||||
|
@ -269,7 +260,7 @@ export default {
|
|||
},
|
||||
],
|
||||
// 药物/器械名称
|
||||
croName: [
|
||||
MedicineName: [
|
||||
{
|
||||
max: 200,
|
||||
message: `${this.$t("common:ruleMessage:maxLength")} 200`,
|
||||
|
@ -282,7 +273,7 @@ export default {
|
|||
},
|
||||
],
|
||||
// 申办方
|
||||
SponsorName: [
|
||||
Sponsor: [
|
||||
{
|
||||
max: 200,
|
||||
message: `${this.$t("common:ruleMessage:maxLength")} 200`,
|
||||
|
@ -294,14 +285,6 @@ export default {
|
|||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
Code: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("common:ruleMessage:specify"),
|
||||
trigger: "blur",
|
||||
},
|
||||
{ max: 50, message: `${this.$t("common:ruleMessage:maxLength")} 50` },
|
||||
],
|
||||
TrialType: [
|
||||
{
|
||||
required: true,
|
||||
|
@ -331,29 +314,6 @@ export default {
|
|||
message: `${this.$t("common:ruleMessage:maxLength")} 100`,
|
||||
},
|
||||
],
|
||||
ProjectCycle: [
|
||||
{ max: 50, message: `${this.$t("common:ruleMessage:maxLength")} 50` },
|
||||
],
|
||||
ReviewModeId: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("common:ruleMessage:select"),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
],
|
||||
Expedited: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("common:ruleMessage:select"),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
],
|
||||
Note: [
|
||||
{
|
||||
max: 500,
|
||||
message: `${this.$t("common:ruleMessage:maxLength")} 500`,
|
||||
},
|
||||
],
|
||||
ModalityIds: [
|
||||
{
|
||||
required: true,
|
||||
|
@ -368,21 +328,7 @@ export default {
|
|||
trigger: ["blur", "change"],
|
||||
},
|
||||
],
|
||||
IndicationTypeId: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("common:ruleMessage:select"),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
],
|
||||
IsDeclaration: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("common:ruleMessage:select"),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
],
|
||||
ReviewTypeIds: [
|
||||
Indication: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("common:ruleMessage:select"),
|
||||
|
@ -391,8 +337,6 @@ export default {
|
|||
],
|
||||
},
|
||||
btnLoading: false,
|
||||
isLock: false,
|
||||
expeditedOption: this.$d.YesOrNoForInt,
|
||||
loading: false,
|
||||
declarationNum: null,
|
||||
indicationNum: null,
|
||||
|
@ -434,15 +378,8 @@ export default {
|
|||
this.$refs.trialForm.validate((valid) => {
|
||||
if (valid) {
|
||||
this.btnLoading = true;
|
||||
if (!this.trialForm.IsDeclaration) {
|
||||
this.declarationNum = "N";
|
||||
}
|
||||
if (!this.trialForm.Id) {
|
||||
this.trialForm.TrialCode = `${this.declarationNum}${this.indicationNum}${this.phaseNum}`;
|
||||
console.log(this.trialForm.TrialCode);
|
||||
}
|
||||
var params = JSON.parse(JSON.stringify(this.trialForm));
|
||||
addOrUpdateTrial(params)
|
||||
addOrUpdateTrialHir(params)
|
||||
.then((res) => {
|
||||
this.btnLoading = false;
|
||||
if (!this.trialForm.Id) {
|
||||
|
|
Loading…
Reference in New Issue