su
su1124
2024-01-03 4471426a152ff0361350e415307e384453351afd
src/views/doctor/check/index.vue
@@ -13,7 +13,7 @@
          style="width: 116px"
          placeholder="请输入姓名"
          clearable
          @keyup.enter.native="handleQuery"
          @keyup.enter.native="submitForm"
        ></el-input>
      </el-form-item>
      <el-form-item label="体检号" prop="tjNumber">
@@ -22,6 +22,8 @@
          v-model="queryParams.tjNumber"
          style="width: 240px"
          placeholder="请输入体检号"
          @blur="submitForm"
          @keyup.enter.native="submitForm"
        ></el-input>
      </el-form-item>
      <el-form-item>
@@ -213,7 +215,11 @@
                <el-radio-button label="1">科室会诊</el-radio-button>
              </el-radio-group>
            </el-form-item>
            <el-form-item label="选择科室" v-if="form.hzType == '1'">
            <el-form-item
              label="选择科室"
              v-if="form.hzType == '1'"
              style="margin-top: 22px"
            >
              <el-select
                v-model="form.hzDeptId"
                multiple
@@ -228,7 +234,11 @@
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="申请人" prop="hzDoctorId">
            <el-form-item
              label="申请人"
              prop="hzDoctorId"
              style="margin-top: 22px"
            >
              <el-select
                v-model="form.hzDoctorId"
                placeholder="请选择"
@@ -469,10 +479,15 @@
            >历史报告</el-button
          >
        </div>
        <div style="margin: 10px 10px">
          <el-button type="primary" size="mini" @click="jianqian"
            >检前问诊</el-button
          >
        </div>
      </div>
      <el-row>
        <el-col :span="18">
        <el-col v-show="baogaoqian">
          <template>
            <div style="margin-left: 10px">
              <el-radio-group
@@ -498,6 +513,7 @@
              prop="project.proName"
              label="检测项目"
              width="150"
              fixed="left"
            >
              <!-- <template slot-scope="scope">
            {{ scope.row.project.proName }}
@@ -685,8 +701,223 @@
            </div>
          </div>
        </el-col>
        <el-col :span="6">
        <el-col :span="18" v-show="baogaohou">
          <template>
            <div style="margin-left: 10px">
              <el-radio-group
                v-model="radio"
                v-for="(item, index) in Parent"
                :key="index"
                @input="radioChange1(item.proId, item)"
              >
                <el-radio-button :label="item.proId">{{
                  item.proName
                }}</el-radio-button>
              </el-radio-group>
            </div>
          </template>
          <el-table
            v-loading="loading"
            :data="proParentList.sons"
            border
            height="460px"
            style="width: 96%; margin: 10px 10px"
          >
            <el-table-column
              prop="project.proName"
              label="检测项目"
              width="150"
              fixed="left"
            >
              <!-- <template slot-scope="scope">
            {{ scope.row.project.proName }}
          </template> -->
            </el-table-column>
            <el-table-column prop="proResult" label="检测结果" width="200">
              <template slot-scope="scope">
                <el-input
                  type="textarea"
                  autosize
                  size="mini"
                  v-model="scope.row.proResult"
                  autocomplete="off"
                  placeholder="请输入检测结果"
                  @blur="handleInputConfirm(scope.row)"
                  @input="vale"
                  @focus="handleInConfirm(scope.row)"
                ></el-input>
              </template>
            </el-table-column>
            <el-table-column label="规则" width="55">
              <template slot-scope="scope">
                <el-button class="blue-button" @click="handleguize(scope.row)"
                  >...</el-button
                >
              </template>
            </el-table-column>
            <el-table-column prop="project.proMetering" label="单位">
              <!-- <template slot-scope="scope">
            {{ scope.row.standard.company }}
          </template> -->
            </el-table-column>
            <el-table-column prop="project.proScope" label="参考范围">
            </el-table-column>
            <el-table-column prop="conclusion" label="结果结论" width="200">
              <template slot-scope="scope">
                <el-input
                  size="mini"
                  type="textarea"
                  autosize
                  v-model="scope.row.conclusion"
                  autocomplete="off"
                  placeholder="请输入检测结果"
                  disabled
                ></el-input>
              </template>
            </el-table-column>
            <el-table-column
              prop="exceptionDesc"
              label="是否异常"
              width="80px"
              align="center"
            >
              <template slot-scope="scope">
                <el-checkbox v-model="scope.row.exceptionDesc"></el-checkbox>
              </template>
            </el-table-column>
            <el-table-column
              prop="isReturn"
              label="是否复诊"
              width="80px"
              align="center"
            >
              <template slot-scope="scope">
                <el-checkbox v-model="scope.row.isReturn"></el-checkbox>
              </template>
            </el-table-column>
            <el-table-column prop="project.resultType" label="结果类型">
              <template slot-scope="scope">
                <dict-tag
                  :options="dict.type.tj_result_type"
                  :value="scope.row.project.resultType"
                />
              </template>
            </el-table-column>
            <el-table-column prop="isPositive" label="重大阳性">
              <template slot-scope="scope">
                <el-switch
                  v-model="scope.row.isPositive"
                  active-value="1"
                  inactive-value="0"
                  @change="checkboxchange(scope.row)"
                ></el-switch>
              </template>
            </el-table-column>
          </el-table>
          <div style="font-size: 14px; overflow-y: auto; height: 286px">
            <table
              style="
                width: 96%;
                margin: 4px 10px;
                border: 1px solid #dfe6ec;
                border-collapse: collapse;
              "
              cellspacing="4"
            >
              <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
                <td
                  style="border: 1px solid #dfe6ec; border-collapse: collapse"
                >
                  病种选择:
                </td>
                <td
                  style="border: 1px solid #dfe6ec; border-collapse: collapse"
                >
                  <el-select
                    v-model="value"
                    multiple
                    placeholder="请选择"
                    style="width: 100%; height: 45px"
                    v-if="deptAdviceList"
                    @change="sel"
                    filterable
                  >
                    <el-option
                      v-for="item in deptAdviceList"
                      :key="item.id"
                      :label="item.title"
                      :value="item.id"
                    >
                    </el-option>
                  </el-select>
                </td>
                <td
                  style="border: 1px solid #dfe6ec; border-collapse: collapse"
                >
                  主检医师:
                </td>
                <td
                  style="border: 1px solid #dfe6ec; border-collapse: collapse"
                >
                  <el-select
                    v-model="doctorName"
                    placeholder="请选择"
                    style="width: 100%"
                    v-if="deptAdviceList"
                    @change="selName"
                    filterable
                  >
                    <el-option
                      v-for="item in userList"
                      :key="item.userId"
                      :label="item.nickName"
                      :value="item.userId"
                    >
                    </el-option>
                  </el-select>
                </td>
              </tr>
              <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
                <td
                  style="border: 1px solid #dfe6ec; border-collapse: collapse"
                >
                  建议:
                </td>
                <td
                  style="border: 1px solid #dfe6ec; border-collapse: collapse"
                  colspan="2"
                >
                  <el-input
                    type="textarea"
                    placeholder="请输入内容"
                    v-model="proParentList.remark"
                    rows="7"
                  >
                  </el-input>
                </td>
              </tr>
            </table>
            <div slot="footer" class="dialog-footers">
              <!-- <el-button type="primary"
          size="mini"
          @click="radioChange"
          v-hasPermi="['system:notice:add']"
          v-show="tjStatus == '1'"
        >会诊申请</el-button> -->
              <el-button
                type="primary"
                @click="determine"
                v-show="tjStatus == '0'"
                >提 交</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="6" style="margin-top: 15px">
          <Historicalreport
            v-show="lishi"
            :reportHistorydata="reportHistorydata"
          ></Historicalreport>
        </el-col>
@@ -734,11 +965,28 @@
      </div> -->
    </el-drawer>
    <Public ref="aaa" :row="row" @add="handleChanges" />
    <el-dialog
      title="提示"
      :visible.sync="jianqians"
      width="1000px"
      :before-close="handleClose1"
    >
      <jianqianwenzhen
        :jianqianwenzhendata="jianqianwenzhendata"
        v-if="flags"
      ></jianqianwenzhen>
      <span slot="footer" class="dialog-footer">
        <el-button @click="jianqians = false">取 消</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import { getInfoById } from "@/api/hosp/history";
import jianqianwenzhen from "@/components/jianqianwenzhen";
import Public from "@/components/public";
import { getPdf } from "@/api/hosp/order";
import { getInfo } from "@/api/login";
@@ -761,9 +1009,15 @@
export default {
  dicts: ["sys_user_sex", "sys_yes_no", "tj_result_type", "lj_positive"],
  name: "check",
  components: { Public, Historicalreport },
  components: { Public, Historicalreport, jianqianwenzhen },
  data() {
    return {
      baogaoqian: true,
      baogaohou: false,
      flags: false,
      lishi: false,
      jianqianwenzhendata: [],
      jianqians: false,
      selected: false,
      checkval: false,
      // 遮罩层
@@ -838,6 +1092,7 @@
      deptId: "",
      userId: "",
      nickName: "",
      doctorNames: "",
      date: new Date(new Date().getTime() + 8 * 3600 * 1000)
        .toJSON()
        .substr(0, 19)
@@ -851,7 +1106,9 @@
        name: null,
      },
      rules: {
        hzType: [{ required: true, message: "", trigger: "change" }],
        hzType: [
          { required: true, message: "会诊科室为必填项", trigger: "change" },
        ],
      },
    };
  },
@@ -886,6 +1143,12 @@
      listUser(this.addDateRange(this.queryParams, this.dateRange)).then(
        (response) => {
          this.userList = response.rows;
          this.userList.forEach((element) => {
            const userName = this.$store.state.user.name;
            if (userName == element.userName) {
              this.doctorName = element.nickName;
            }
          });
        }
      );
      getInfo().then((response) => {
@@ -897,6 +1160,9 @@
    },
    handleClose() {
      this.$tab.refreshPage();
    },
    handleClose1() {
      this.jianqians = false;
    },
    // 获取医生
    selName(val) {
@@ -1170,10 +1436,19 @@
    hadleedit(row) {
      this.form.hzType = row.hzType;
      this.form.id = row.id;
      // this.form.hzDeptId = row.hzDeptNameList;
      // row.hzDeptIdList.forEach(item=>{
      //   console.log(item,222);
      //   this.deptList.forEach(items=>{
      //      console.log(item,333);
      //      if(item == items.deptId){
      //       this.form.hzDeptNameList =
      //      }
      //   })
      // })
    },
    submitFormapply() {
      console.log(this.form);
      let data = {};
      this.userList.forEach((item1) => {
        if (this.form.hzDoctorId == item1.userId) {
@@ -1181,36 +1456,49 @@
        }
      });
      if (this.form.hzType != undefined) {
        if (this.form.hzDeptId && this.form.id) {
          // let hzDeptId = ""
          // this.form.hzDeptId.forEach(item => {
          //   hzDeptId += item + ','
          // })
          data = {
            tjNumber: this.form.tjNumber,
            userId: this.form.cusId,
            userName: this.form.cusName,
            hzDeptIdList: this.form.hzDeptId,
            hzDoctorId: this.form.hzDoctorId,
            hzType: this.form.hzType,
            orderId: this.form.orderId,
            hzDoctorName: this.form.hzDoctorName,
            id: this.form.id,
          };
        } else {
          data = {
            tjNumber: this.form.tjNumber,
            userId: this.form.cusId,
            userName: this.form.cusName,
            hzDoctorId: this.form.hzDoctorId,
            hzType: this.form.hzType,
            orderId: this.form.orderId,
            hzDoctorName: this.form.hzDoctorName,
          };
        }
        // if (this.form.hzDeptId && this.form.id) {
        //   console.log(111);
        //   // let hzDeptId = ""
        //   // this.form.hzDeptId.forEach(item => {
        //   //   hzDeptId += item + ','
        //   // })
        //   data = {
        //     tjNumber: this.form.tjNumber,
        //     userId: this.form.cusId,
        //     userName: this.form.cusName,
        //     hzDeptIdList: this.form.hzDeptId,
        //     hzDoctorId: this.form.hzDoctorId,
        //     hzType: this.form.hzType,
        //     orderId: this.form.orderId,
        //     hzDoctorName: this.form.hzDoctorName,
        //     id: this.form.id,
        //   };
        // } else {
        //   console.log(222);
        //   data = {
        //     tjNumber: this.form.tjNumber,
        //     userId: this.form.cusId,
        //     userName: this.form.cusName,
        //     hzDoctorId: this.form.hzDoctorId,
        //     hzType: this.form.hzType,
        //     orderId: this.form.orderId,
        //     hzDoctorName: this.form.hzDoctorName,
        //   };
        // }
        this.$refs["form"].validate((valid) => {
          if (valid) {
            if (this.form.id != null) {
              data = {
                tjNumber: this.form.tjNumber,
                userId: this.form.cusId,
                userName: this.form.cusName,
                hzDeptIdList: this.form.hzDeptId,
                hzDoctorId: this.form.hzDoctorId,
                hzType: this.form.hzType,
                orderId: this.form.orderId,
                hzDoctorName: this.form.hzDoctorName,
                id: this.form.id,
              };
              updateHzlog(data).then((res) => {
                if (res.code == 200) {
                  this.$modal.msgSuccess("修改成功");
@@ -1220,15 +1508,30 @@
                }
              });
            } else {
              addHzlog(data).then((res) => {
                if (res.code == 200) {
                  this.$modal.msgSuccess("申请成功");
                  this.form = {};
                  this.Hzlog();
                  this.radioChange(1);
                }
              });
              this.open = false;
              data = {
                tjNumber: this.form.tjNumber,
                userId: this.form.cusId,
                userName: this.form.cusName,
                hzDeptIdList: this.form.hzDeptId,
                hzDoctorId: this.form.hzDoctorId,
                hzType: this.form.hzType,
                orderId: this.form.orderId,
                hzDoctorName: this.form.hzDoctorName,
                id: this.form.id,
              };
              if (this.form.hzDeptId.length != 0) {
                addHzlog(data).then((res) => {
                  if (res.code == 200) {
                    this.$modal.msgSuccess("申请成功");
                    this.form = {};
                    this.Hzlog();
                    this.radioChange(1);
                  }
                });
                this.open = false;
              } else {
                this.$modal.msgError("请选择会诊科室");
              }
            }
          }
        });
@@ -1246,6 +1549,8 @@
      this.Hzlog(this.tableAll.tjNumber);
    },
    historicalreport() {
      this.baogaoqian = false;
      this.baogaohou = true;
      this.loading = true;
      let data = {
        cusId: this.tableAll.cusId,
@@ -1255,7 +1560,20 @@
        if (res.data[0] != null) {
          this.reportHistorydata = res.data;
        }
        if (this.reportHistorydata.length >= 1) {
          this.lishi = true;
        } else {
          this.lishi = true;
          this.$modal.msgError("暂无历史报告");
        }
      });
    },
    jianqian() {
      this.flags = true;
      this.jianqians = true;
      let tjNumber = this.tableAll.tjNumber;
      this.jianqianwenzhendata.push(tjNumber);
    },
    handlecan(row) {
@@ -1349,6 +1667,9 @@
      if (this.tableAll.cusSex === 1) {
        this.tableAll.cusSex = "女";
      }
      if (this.tableAll.cusSex === 2) {
        this.tableAll.cusSex = "未知";
      }
      this.tjNumber = row.tjNumber;
      let num = 0;
      getParentList(this.tjNumber).then((response) => {
@@ -1418,6 +1739,14 @@
        this.proParentList.sons.forEach((item) => {
          this.doctorName = item.doctorName;
          if (this.doctorName == null) {
            this.userList.forEach((element) => {
              const userName = this.$store.state.user.name;
              if (userName == element.userName) {
                this.doctorName = element.nickName;
              }
            });
          }
          if (item.isReturn == 1) {
            item.isReturn = true;
@@ -1553,6 +1882,14 @@
            }
            this.proParentList.sons.forEach((item) => {
              this.doctorName = item.doctorName;
              if (this.doctorName == null) {
                this.userList.forEach((element) => {
                  const userName = this.$store.state.user.name;
                  if (userName == element.userName) {
                    this.doctorName = element.nickName;
                  }
                });
              }
              if (item.isReturn == 1) {
                item.isReturn = true;
              }
@@ -1607,6 +1944,14 @@
            }
            this.proParentList.sons.forEach((item) => {
              this.doctorName = item.doctorName;
              if (this.doctorName == null) {
                this.userList.forEach((element) => {
                  const userName = this.$store.state.user.name;
                  if (userName == element.userName) {
                    this.doctorName = element.nickName;
                  }
                });
              }
              if (item.isReturn == 1) {
                item.isReturn = true;
              }