|
@@ -9,12 +9,31 @@
|
|
|
label-width="100px"
|
|
|
>
|
|
|
<el-form-item label="样本编号" prop="sampleCode">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.sampleCode"
|
|
|
placeholder="请输入样本编号"
|
|
|
clearable
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="form.sampleInfoId"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ reserve-keyword
|
|
|
+ clearable
|
|
|
+ placeholder="请输入样本编号"
|
|
|
+ :remote-method="querySampleInfo"
|
|
|
+ :loading="sampleInfoCodeLoading"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in codeOptions"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.sampleCode"
|
|
|
+ :value="item.sampleCode"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="样本类型" prop="sampleTypeId">
|
|
|
<!-- <el-input
|
|
@@ -97,7 +116,7 @@
|
|
|
>新增</el-button
|
|
|
>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
+ <!-- <el-col :span="1.5">
|
|
|
<el-button
|
|
|
type="success"
|
|
|
plain
|
|
@@ -118,7 +137,7 @@
|
|
|
@click="handleDelete"
|
|
|
>删除</el-button
|
|
|
>
|
|
|
- </el-col>
|
|
|
+ </el-col> -->
|
|
|
<el-col :span="1.5">
|
|
|
<el-button plain size="mini" @click="handleBack">返回</el-button>
|
|
|
</el-col>
|
|
@@ -134,7 +153,7 @@
|
|
|
@selection-change="handleSelectionChange"
|
|
|
>
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
-
|
|
|
+
|
|
|
<el-table-column label="样本编号" align="center" prop="sampleCode" />
|
|
|
<el-table-column label="患者姓名" align="center" prop="patientName" />
|
|
|
<el-table-column label="患者电话" align="center" prop="patientPhone" />
|
|
@@ -178,10 +197,28 @@
|
|
|
/>
|
|
|
|
|
|
<!-- 添加或修改样本管理对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="80vw" append-to-body>
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
<el-form-item label="样本编号" prop="sampleCode">
|
|
|
- <el-input v-model="form.sampleCode" placeholder="请输入样本编号" />
|
|
|
+ <!-- <el-input v-model="form.sampleCode" placeholder="请输入样本编号" /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="form.sampleCode"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ reserve-keyword
|
|
|
+ placeholder="请输入样本编号"
|
|
|
+ :remote-method="querySampleInfo"
|
|
|
+ :loading="sampleInfoCodeLoading"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in codeOptions"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.sampleCode"
|
|
|
+ :value="item.sampleCode"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="样本类型" prop="sampleTypeId">
|
|
|
<el-select
|
|
@@ -202,6 +239,7 @@
|
|
|
<el-select
|
|
|
v-model="form.sampleHospitalId"
|
|
|
placeholder="请选择送检医院"
|
|
|
+ style="width: 100%; "
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in options3"
|
|
@@ -213,7 +251,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="送检科室" prop="sampleDeptId">
|
|
|
- <el-select v-model="form.sampleDeptId" placeholder="请选择送检">
|
|
|
+ <el-select v-model="form.sampleDeptId" placeholder="请选择送检" style="width: 100%; " >
|
|
|
<el-option
|
|
|
v-for="item in options2"
|
|
|
:key="item.value"
|
|
@@ -269,6 +307,156 @@
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+ <!-- 添加或修改样本患者信息对话框 -->
|
|
|
+ <el-dialog title="添加样本患者信息" :visible.sync="addOpen" width="800px" append-to-body @close="cancelAdd">
|
|
|
+ <el-form ref="addForm" :model="addForm" :rules="addRules" label-width="120px">
|
|
|
+ <el-form-item label="病案号" prop="bahCode">
|
|
|
+ <el-input v-model="addForm.bahCode" placeholder="请输入病案号" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="身份证号" prop="idCard">
|
|
|
+ <el-input v-model="addForm.idCard" placeholder="请输入身份证号" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="姓名" prop="name">
|
|
|
+ <el-input v-model="addForm.name" placeholder="请输入姓名" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="手机号" prop="phone">
|
|
|
+ <el-input v-model="addForm.phone" placeholder="请输入手机号" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="性别" prop="sex">
|
|
|
+ <el-select v-model="addForm.sex" placeholder="请选择性别">
|
|
|
+ <el-option
|
|
|
+ v-for="dict in dict.type.sys_user_sex"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="出生年份" prop="birth">
|
|
|
+ <el-date-picker type="date" placeholder="请选择出生年份" v-model="addForm.birth" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="所属区域" prop="areaId">
|
|
|
+ <el-input v-model="addForm.areaId" placeholder="请输入所属区域" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="地址" prop="address">
|
|
|
+ <el-input v-model="addForm.address" placeholder="请输入地址" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="临床诊断" prop="lczd">
|
|
|
+ <el-input type="textarea" v-model="addForm.lczd" placeholder="请输入临床诊断" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
+ <el-input type="textarea" v-model="addForm.remark" placeholder="请输入备注" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-tabs>
|
|
|
+ <el-tab-pane label="血液检测结果(发病时)">
|
|
|
+ <el-form-item label="WBC" prop="bloodWbc">
|
|
|
+ <el-input v-model="addForm.bloodWbc" placeholder="请输入WBC" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="NEUT(%)" prop="bloodNeut">
|
|
|
+ <el-input v-model="addForm.bloodNeut" placeholder="请输入NEUT(%)" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="L" prop="bloodL">
|
|
|
+ <el-input v-model="addForm.bloodL" placeholder="请输入L" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="C-反应蛋白" prop="bloodFydb">
|
|
|
+ <el-input v-model="addForm.bloodFydb" placeholder="请输入C-反应蛋白" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="降钙素原" prop="bloodJgsy">
|
|
|
+ <el-input v-model="addForm.bloodJgsy" placeholder="请输入降钙素原" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="CD4计数" prop="bloodCd4">
|
|
|
+ <el-input v-model="addForm.bloodCd4" placeholder="请输入CD4计数" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="肝功能">
|
|
|
+ <el-form-item label="ALT" prop="liverAlt">
|
|
|
+ <el-input v-model="addForm.liverAlt" placeholder="请输入ALT" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="AST" prop="liverAst">
|
|
|
+ <el-input v-model="addForm.liverAst" placeholder="请输入AST" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="GGT" prop="liverGgt">
|
|
|
+ <el-input v-model="addForm.liverGgt" placeholder="请输入GGT" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="Tbil" prop="liverTbil">
|
|
|
+ <el-input v-model="addForm.liverTbil" placeholder="请输入Tbil" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="肾功能">
|
|
|
+ <el-form-item label="尿素" prop="kidneyNs">
|
|
|
+ <el-input v-model="addForm.kidneyNs" placeholder="请输入尿素" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="血肌酐" prop="kidneyXjg">
|
|
|
+ <el-input v-model="addForm.kidneyXjg" placeholder="请输入血肌酐" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="血β2-微球蛋白" prop="kidneyWqdb">
|
|
|
+ <el-input v-model="addForm.kidneyWqdb" placeholder="请输入血β2-微球蛋白" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="尿酸" prop="kidneyNs2">
|
|
|
+ <el-input v-model="addForm.kidneyNs2" placeholder="请输入尿酸" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="肺影像学报告">
|
|
|
+ <el-form-item label="肺空洞" prop="lungsFkd">
|
|
|
+ <el-input v-model="addForm.lungsFkd" placeholder="请输入肺空洞" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="磨玻璃样影" prop="lungsMblyy">
|
|
|
+ <el-input v-model="form.lungsMblyy" placeholder="请输入磨玻璃样影" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="肺结节" prop="lungsFjj">
|
|
|
+ <el-input v-model="addForm.lungsFjj" placeholder="请输入肺结节" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="多发斑片实变影" prop="lungsDfbpsby">
|
|
|
+ <el-input v-model="addForm.lungsDfbpsby" placeholder="请输入多发斑片实变影" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="胸腔积液" prop="lungsXqjy">
|
|
|
+ <el-input v-model="addForm.lungsXqjy" placeholder="请输入胸腔积液" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="胸膜增厚" prop="lungsXmzh">
|
|
|
+ <el-input v-model="addForm.lungsXmzh" placeholder="请输入胸膜增厚" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="纵膈淋巴结增大" prop="lungsZglbjzd">
|
|
|
+ <el-input v-model="addForm.lungsZglbjzd" placeholder="请输入纵膈淋巴结增大" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="其他病原学检测结果">
|
|
|
+ <el-form-item label="培养" prop="otherPy">
|
|
|
+ <el-input v-model="addForm.otherPy" placeholder="请输入培养" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="血清学" prop="otherXqx">
|
|
|
+ <el-input v-model="addForm.otherXqx" placeholder="请输入血清学" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="PCR" prop="otherPcr">
|
|
|
+ <el-input v-model="addForm.otherPcr" placeholder="请输入PCR" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="测序" prop="cs">
|
|
|
+ <el-input v-model="addForm.otherCs" placeholder="请输入测序" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="治疗">
|
|
|
+ <el-form-item label="抗生素" prop="treatKss">
|
|
|
+ <el-input v-model="addForm.treatKss" placeholder="请输入抗生素" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="抗病毒药物" prop="treatKbdyw">
|
|
|
+ <el-input v-model="addForm.treatKbdyw" placeholder="请输入抗病毒药物" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="体液支持" prop="treatTyzc">
|
|
|
+ <el-input v-model="addForm.treatTyzc" placeholder="请输入体液支持" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="免疫球蛋白" prop="treatMyqdb">
|
|
|
+ <el-input v-model="addForm.treatMyqdb" placeholder="请输入免疫球蛋白" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="ECMO支持" prop="treatEcmo">
|
|
|
+ <el-input v-model="addForm.treatEcmo" placeholder="请输入ECMO支持" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitAddForm">确 定</el-button>
|
|
|
+ <el-button @click="cancelAdd">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -284,9 +472,12 @@ import {
|
|
|
getSampleHospitalSelect,
|
|
|
getPatientByIdCard,
|
|
|
} from "@/api/sample/sampleInfo";
|
|
|
+import { addSamplePatient} from "@/api/sample/samplePatient"
|
|
|
+import {getSampleInfoCode} from "@/api/sample/sampleExperiment"
|
|
|
|
|
|
export default {
|
|
|
name: "SampleInfo",
|
|
|
+ dicts: ['sys_user_sex'],
|
|
|
data() {
|
|
|
return {
|
|
|
// 遮罩层
|
|
@@ -335,17 +526,60 @@ export default {
|
|
|
patientInfoLoading: false,
|
|
|
// 防抖定时器
|
|
|
patientInfoTimer: null,
|
|
|
+ // 新增样本管理表单参数
|
|
|
+ addForm: {},
|
|
|
+ addRules:{},
|
|
|
+ addOpen:false,
|
|
|
+ codeOptions: [],
|
|
|
+ sampleInfoCodeLoading: false,
|
|
|
+ sampleInfoCodeTimer: null,
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
this.patientId = this.$route.params && this.$route.params.id;
|
|
|
-
|
|
|
this.getList();
|
|
|
this.getSampleTypeOptions();
|
|
|
this.getSampleDeptOptions();
|
|
|
this.getSampleHospitalOptions();
|
|
|
},
|
|
|
methods: {
|
|
|
+ querySampleInfo(query){
|
|
|
+ if(this.sampleInfoCodeTimer){
|
|
|
+ clearTimeout(this.sampleInfoCodeTimer)
|
|
|
+ }
|
|
|
+ this.sampleInfoCodeTimer = setTimeout(() => {
|
|
|
+ this.sampleInfoCodeLoading = true
|
|
|
+ getSampleInfoCode(query).then(response => {
|
|
|
+ this.codeOptions = response.data
|
|
|
+ this.sampleInfoCodeLoading = false
|
|
|
+ })
|
|
|
+ }, 500)
|
|
|
+ },
|
|
|
+ cancelAdd(){
|
|
|
+ this.addOpen = false
|
|
|
+ this.$refs.addForm.resetFields()
|
|
|
+ },
|
|
|
+ /** 提交按钮 */
|
|
|
+ submitAddForm() {
|
|
|
+ this.$refs["addForm"].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ // if (this.addForm.id != null) {
|
|
|
+ // updateSamplePatient(this.addForm).then(response => {
|
|
|
+ // this.$modal.msgSuccess("修改成功")
|
|
|
+ // this.addOpen = false
|
|
|
+ // this.getList()
|
|
|
+ // })
|
|
|
+ // } else {
|
|
|
+ addSamplePatient(this.addForm).then(response => {
|
|
|
+ this.$modal.msgSuccess("新增成功")
|
|
|
+ this.addOpen = false
|
|
|
+ this.$refs.addForm.resetFields()
|
|
|
+ this.getList()
|
|
|
+ })
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
/** 防抖查询患者信息 */
|
|
|
queryPatientInfo(queryString) {
|
|
|
if (this.patientInfoTimer) {
|
|
@@ -393,7 +627,7 @@ export default {
|
|
|
},
|
|
|
gojdzx(row) {
|
|
|
this.$router.push(
|
|
|
- "/read/sampleExperiment?baseid=" + this.patientId + "&id=" + row.id
|
|
|
+ "/sample/sampleExperiment?baseid=" + this.patientId + "&id=" + row.id + "&sampleCode="+row.sampleCode
|
|
|
);
|
|
|
},
|
|
|
/** 查询样本管理列表 */
|
|
@@ -537,13 +771,14 @@ export default {
|
|
|
},
|
|
|
/** 新增患者操作 */
|
|
|
handleAddPatient() {
|
|
|
- this.open = false; // 关闭当前对话框
|
|
|
- this.$router.push( {
|
|
|
- path:"/sample/samplePatient",
|
|
|
- query: {
|
|
|
- openAdd: "1", // 传递一个标识,表示从样本信息页面跳转
|
|
|
- },
|
|
|
- });
|
|
|
+ this.addOpen = true
|
|
|
+ // this.open = false; // 关闭当前对话框
|
|
|
+ // this.$router.push( {
|
|
|
+ // path:"/sample/samplePatient",
|
|
|
+ // query: {
|
|
|
+ // openAdd: "1", // 传递一个标识,表示从样本信息页面跳转
|
|
|
+ // },
|
|
|
+ // });
|
|
|
},
|
|
|
},
|
|
|
};
|