WXL
2025-04-22 fecb2f5b3a5b4c7994eb76cc730c2bd27b6f8b67
src/views/patient/patient/profile/index.vue
@@ -44,23 +44,17 @@
        >
        <el-tabs v-model="sonactiveName" @tab-click="handleClickson">
          <el-tab-pane name="outpatient"
            ><span class="mulsz" slot="label"
              >门诊({{ mznumber }})</span
            ></el-tab-pane
            ><span class="mulsz" slot="label">门诊</span></el-tab-pane
          >
          <el-tab-pane name="inhospital"
            ><span class="mulsz" slot="label"
              >在院({{ zynumber }})
            </span></el-tab-pane
            ><span class="mulsz" slot="label">在院 </span></el-tab-pane
          >
          <el-tab-pane name="checkout"
            ><span class="mulsz" slot="label"
              >出院({{ jynumber }})
            </span></el-tab-pane
            ><span class="mulsz" slot="label">出院 </span></el-tab-pane
          >
        </el-tabs>
      </el-tab-pane>
      <el-tab-pane name="monitor">
      <!-- <el-tab-pane name="monitor">
        <span class="mulsz" slot="label"
          ><i class="el-icon-s-data"></i> 健康监测</span
        >
@@ -97,7 +91,7 @@
            </span></el-tab-pane
          >
        </el-tabs></el-tab-pane
      >
      > -->
      <el-tab-pane name="serve">
        <span class="mulsz" slot="label"
          ><i class="el-icon-s-custom"></i> 服务记录</span
@@ -117,7 +111,7 @@
            ref="userform"
            :model="userform"
            :rules="rules"
            label-width="100px"
            label-width="150px"
          >
            <el-row :gutter="20">
              <el-col :span="12">
@@ -128,6 +122,8 @@
                    maxlength="30"
                  ></el-input> </el-form-item
              ></el-col>
            </el-row>
            <el-row >
              <el-col :span="12"
                ><el-form-item label="联系方式" prop="telcode">
                  <el-input
@@ -135,6 +131,14 @@
                    placeholder="请输入联系方式"
                    maxlength="30"
                  /> </el-form-item
              ></el-col>
              <el-col :span="12">
                <el-form-item label="亲属联系方式"  prop="name">
                  <el-input
                    v-model="userform.telcodewx"
                    placeholder="请输入姓名"
                    maxlength="30"
                  ></el-input> </el-form-item
              ></el-col>
            </el-row>
            <el-row :gutter="20">
@@ -327,7 +331,7 @@
          >
            <el-table-column prop="id" label="序号" width="180">
            </el-table-column>
            <el-table-column prop="contactname" label="姓名" width="180">
            <el-table-column prop="contactname" label="姓名" width="100">
            </el-table-column>
            <el-table-column prop="contactway" label="联系方式" width="180">
            </el-table-column>
@@ -369,39 +373,29 @@
          <el-table-column
            label="就诊时间"
            align="center"
            key="createTime"
            prop="createTime"
            key="admitdate"
            prop="admitdate"
            width="160"
          >
            <template slot-scope="scope">
              <span>{{ formatTime(scope.row.createTime) }}</span>
              <span>{{ formatTime(scope.row.admitdate) }}</span>
            </template>
          </el-table-column>
          <el-table-column
            label="门诊号"
            align="center"
            key="patid"
            prop="patid"
            key="outhospno"
            prop="outhospno"
          />
          <el-table-column
            label="姓名"
            width="100"
            align="center"
            key="patname"
            prop="patname"
          />
          <el-table-column label="性别" align="center" key="sex" prop="sex">
            <template slot-scope="scope">
              <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span>
            </template>
          </el-table-column>
          <el-table-column
            label="年龄"
            align="center"
            key="age"
            prop="age"
            width="120"
          />
          <el-table-column
            label="联系电话"
            align="center"
@@ -410,10 +404,17 @@
            width="120"
          />
          <el-table-column
            label="诊断"
            label="入院诊断"
            align="center"
            key="diagname"
            prop="diagname"
            width="190"
          />
          <el-table-column
            label="出院诊断"
            align="center"
            key="leavediagname"
            prop="leavediagname"
            width="190"
          />
@@ -425,14 +426,28 @@
            width="120"
          />
          <el-table-column
            label="接诊医生"
            label="所在病区"
            align="center"
            key="leavehospitaldistrictname"
            prop="leavehospitaldistrictname"
            width="120"
          />
          <el-table-column
            label="主治医生"
            align="center"
            key="drname"
            prop="drname"
            width="120"
          />
        </el-table>
          <el-table-column
            label="责任护士"
            align="center"
            key="nurseName"
            prop="nurseName"
            width="120"
          />
        </el-table>
        <pagination
          v-show="total > 0"
          :total="total"
@@ -447,35 +462,24 @@
          <el-table-column
            label="住院号"
            align="center"
            key="patid"
            prop="patid"
            key="inhospno"
            prop="inhospno"
            width="180"
          />
          <el-table-column
            label="姓名"
            width="100"
            align="center"
            key="patname"
            prop="patname"
          />
          <el-table-column label="性别" align="center" key="sex" prop="sex">
            <template slot-scope="scope">
              <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span>
            </template>
          </el-table-column>
          <el-table-column
            label="年龄"
            align="center"
            key="age"
            prop="age"
            width="120"
          />
          <el-table-column
            label="联系电话"
            align="center"
            key="telephone"
            prop="telephone"
            key="telcode"
            prop="telcode"
            width="120"
          />
          <el-table-column
            label="入院诊断"
            align="center"
@@ -483,19 +487,26 @@
            prop="diagname"
            width="190"
          />
          <el-table-column
            label="出院诊断"
            align="center"
            key="leavediagname"
            prop="leavediagname"
            width="190"
          />
          <el-table-column
            label="病区"
            label="就诊科室"
            align="center"
            key="deptname"
            prop="deptname"
            width="120"
          />
          <el-table-column
            label="床位号"
            label="所在病区"
            align="center"
            key="bedNo"
            prop="bedNo"
            key="leavehospitaldistrictname"
            prop="leavehospitaldistrictname"
            width="120"
          />
          <el-table-column
@@ -505,11 +516,19 @@
            prop="drname"
            width="120"
          />
          <el-table-column
            label="责任护士"
            align="center"
            key="Sister"
            prop="Sister"
            key="nurseName"
            prop="nurseName"
            width="120"
          />
          <el-table-column
            label="床位号"
            align="center"
            key="bedNo"
            prop="bedNo"
            width="120"
          />
        </el-table>
@@ -517,17 +536,79 @@
      <!-- 出院 -->
      <div v-if="sonactiveName == 'checkout'">
        <el-table :data="serviceDatacy" style="width: 100%">
          <el-table-column prop="godaya" label="体检类型"> </el-table-column>
          <el-table-column prop="hospitalname" label="体检套餐名称">
          </el-table-column>
          <el-table-column prop="result" label="体检预约日期">
          </el-table-column>
          <el-table-column prop="administrative" label="体检项目">
          </el-table-column>
          <el-table-column prop="administrative" label="体检报告日">
          </el-table-column>
          <el-table-column prop="administrative" label="体检总检报告">
          </el-table-column>
          <el-table-column
            label="住院号"
            align="center"
            key="inhospno"
            prop="inhospno"
            width="120"
          />
          <el-table-column
            label="姓名"
            width="100"
            align="center"
            key="patname"
            prop="patname"
          />
          <el-table-column
            label="联系电话"
            align="center"
            key="telcode"
            prop="telcode"
            width="120"
          />
          <el-table-column
            label="入院诊断"
            align="center"
            key="diagname"
            prop="diagname"
            width="190"
          />
          <el-table-column
            label="出院诊断"
            align="center"
            key="leavediagname"
            prop="leavediagname"
            width="190"
          />
          <el-table-column
            label="就诊科室"
            align="center"
            key="deptname"
            prop="deptname"
            width="120"
          />
          <el-table-column
            label="所在病区"
            align="center"
            key="leavehospitaldistrictname"
            prop="leavehospitaldistrictname"
            width="120"
          />
          <el-table-column
            label="主治医生"
            align="center"
            key="drname"
            prop="drname"
            width="120"
          />
          <el-table-column
            label="责任护士"
            align="center"
            key="nurseName"
            prop="nurseName"
            width="120"
          />
          <el-table-column
            label="床位号"
            align="center"
            key="bedNo"
            prop="bedNo"
            width="120"
          />
        </el-table>
      </div>
    </div>
@@ -548,27 +629,38 @@
              border-left: 4px solid rgb(190, 65, 134);
            "
          >
            {{ item.name }}
            <span v-if="item.serviceType == 2">出院随访</span>
            <span v-if="item.serviceType == 1">心电随访</span>
            <span v-if="item.serviceType == 3">影像随访</span>
            <span v-if="item.serviceType == 4">宣教关怀</span>
          </div>
          <el-divider></el-divider>
          <div style="margin-top: 10px">
            {{ item.name }}状态:已终止<span style="color: #2775b6"
              >(终止原因:患者痊愈回访结束,终止时间:2023-12-18 12:00)</span
            >
            服务名称:<span style="color: #2775b6">{{
              item.templatename
            }}</span>
          </div>
          <div style="margin-top: 10px">
            {{ item.name }}发送时间:<span style="color: #2775b6"
              >2023-11-23 12:00</span
            >
            创建时间:<span style="color: #2775b6">{{ item.createTime }}</span>
          </div>
          <div style="margin-top: 10px">
            {{ item.name }}完成时间:<span style="color: #2775b6"
              >2023-12-18 12:00</span
            >
            完成时间:<span style="color: #2775b6">{{ item.finishtime }}</span>
          </div>
          <div style="margin-top: 10px">
            疼痛程度:<span style="color: #2775b6">中度</span>
            <el-row :gutter="20">
              <el-col :span="12"
                >科室:
                <span style="color: #2775b6">{{ item.deptname }}</span></el-col
              >
              <el-col :span="12"
                >病区:
                <span style="color: #2775b6">{{
                  item.leavehospitaldistrictname
                }}</span></el-col
              >
            </el-row>
          </div>
          <div
            style="
              font-size: 20px;
@@ -577,37 +669,38 @@
              border-left: 4px solid rgb(65, 161, 190);
            "
          >
            人工{{ item.name }}记录
            人工记录
          </div>
          <div style="margin-top: 10px">
            <el-row :gutter="20">
              <el-col :span="6"
                >{{ item.name }}日期:
                <span style="color: #2775b6">2023-11-22 11:22</span></el-col
                >负责人:
                <span style="color: #2775b6">{{ item.createBy }}</span></el-col
              >
              <el-col :span="6"
                >{{ item.name }}人:
                <span style="color: #2775b6">吴小龙</span></el-col
                >主治医生:
                <span style="color: #2775b6">{{ item.drname }}</span></el-col
              >
              <el-col :span="6"
                >患者配合度: <span style="color: #2775b6">高</span></el-col
                >责任护士
                <span style="color: #2775b6">{{ item.nurseName }}</span></el-col
              >
            </el-row>
          </div>
          <div style="margin-top: 10px">
            {{ item.name }}结果:
            <span style="color: #2775b6">患者痊愈,身体倍棒</span>
            结果状态:
            <span style="color: #2775b6" v-if="item.excep == 0">服务正常</span>
            <span style="color: #b55e54" v-if="item.excep == 1">异常</span>
          </div>
          <div style="margin-top: 10px">
            {{ item.name }}备注:
          <!-- <div style="margin-top: 10px">
            备注:
            <span style="color: #2775b6">提醒注意饮食健康</span>
          </div>
          </div> -->
        </el-card>
      </div>
    </div>
    <!-- 健康监测 -->
    <div class="medical-record" v-show="activeName == 'monitor'">
      <!-- 血压图标 -->
    <!-- <div class="medical-record" v-show="activeName == 'monitor'">
      <div v-show="sontwoactiveName == 'blood'" style="display: flex">
        <div
          id="xyeCharts"
@@ -625,7 +718,6 @@
          </el-card>
        </div>
      </div>
      <!-- 血糖 -->
      <div v-show="sontwoactiveName == 'glucose'" style="display: flex">
        <div
          id="xteCharts"
@@ -643,7 +735,6 @@
          </el-card>
        </div>
      </div>
      <!-- 体重 -->
      <div v-show="sontwoactiveName == 'weight'" style="display: flex">
        <div
          id="tzeCharts"
@@ -661,7 +752,6 @@
          </el-card>
        </div>
      </div>
      <!-- 心率 -->
      <div v-show="sontwoactiveName == 'heartrate'" style="display: flex">
        <div
          id="xleCharts"
@@ -679,7 +769,6 @@
          </el-card>
        </div>
      </div>
      <!-- 血氧 -->
      <div v-show="sontwoactiveName == 'bloodoxygen'" style="display: flex">
        <div
          id="xueyangeCharts"
@@ -697,7 +786,6 @@
          </el-card>
        </div>
      </div>
      <!-- 体温 -->
      <div v-show="sontwoactiveName == 'animalheat'" style="display: flex">
        <div
          id="tweCharts"
@@ -715,11 +803,11 @@
          </el-card>
        </div>
      </div>
    </div>
    </div> -->
    <el-dialog :title="titletb" :visible.sync="AddanumberVisible">
      <el-form :model="numberform" label-width="100px">
        <el-form-item label="姓名">
        <el-form-item label="姓名" width="100">
          <el-input v-model="numberform.contactname"></el-input>
        </el-form-item>
        <el-form-item label="联系电话">
@@ -757,6 +845,8 @@
  alterpatient,
  Patientclinic,
} from "@/api/patient/homepage";
import { getsearchrResults, getTaskservelist } from "@/api/AiCentre/index";
import { listPatouthosp } from "@/api/smartor/patouthosp";
import { listpatient } from "@/api/patient/record";
@@ -781,19 +871,39 @@
      id: "",
      loading: false,
      activeName: "health", //一类导航
      sonactiveName: "outpatient", //健康监测导航
      sonactiveName: "inhospital", //健康监测导航
      sontwoactiveName: "blood", //医疗档案导航
      dynamicTags: [],
      record: [
        {
          name: "宣教任务",
          serviceType: "4",
          templatename: "管饲宣教一期",
          createTime: "2024-11-10",
          finishtime: "2024-11-12",
          createBy: "王政",
          drname: "刘明",
          nurseName: "张淑琴",
          excep: "0",
          deptname: "呼吸科",
          leavehospitaldistrictname: "五病区",
        },
        {
          name: "通知任务",
          name: "随访任务",
          serviceType: "2",
          templatename: "心血管随访一期",
          createTime: "2024-11-11",
          finishtime: "2024-11-14",
          createBy: "章程",
          drname: "刘明",
          nurseName: "李丽",
          excep: "0",
          deptname: "呼吸科",
          leavehospitaldistrictname: "五病区",
        },
        {
          name: "问卷调查",
        },
        // {
        //   name: "问卷调查",
        // },
      ],
      inputVisible: false,
      AddanumberVisible: false,
@@ -945,18 +1055,21 @@
        listPatouthosp({ patid: this.id }).then((response) => {
          if (response.code == 200) {
            this.serviceData = response.rows;
            // this.serviceData = [];
          }
        });
      } else if (type == 1) {
        listpatient({ patid: this.id }).then((response) => {
        listpatient({ patid: this.id, cry: 0 }).then((response) => {
          if (response.code == 200) {
            this.serviceDatary = response.rows;
          }
        });
      } else if (type == 2) {
        listpatient({ patid: this.id }).then((response) => {
        listpatient({ patid: this.id, cry: 1 }).then((response) => {
          if (response.code == 200) {
            this.serviceDatacy = response.rows;
            console.log(this.serviceDatacy);
            this.$forceUpdate();
          }
        });
      }
@@ -964,6 +1077,9 @@
    getcontactlist() {
      listcontactinformation({ patid: this.id }).then((response) => {
        this.tableData = response.rows;
        if (this.tableData.length) {
          this.userform.telcodewx = this.tableData[0].contactway;
        }
      });
    },
    processElement(element) {
@@ -981,7 +1097,7 @@
        this.userform = response.rows[0];
        // this.dynamicTags = response.rows[0].tagList;
        this.dynamicTags = response.rows[0].tagList.map(this.processElement);
        console.log(this.dynamicTags);
        this.getcontactlist();
      });
      // 病史信息
      getmedicalhistory({ pid: this.id }).then((res) => {
@@ -990,7 +1106,6 @@
        }
      });
      // 联系信息
      this.getcontactlist();
    },
    // 保存患者档案
    savefile() {
@@ -1117,13 +1232,25 @@
    // tab切换
    handleClick(tab, event) {
      if (tab.index == "1") {
        this.getList(0);
        this.getList(1);
      } else if (tab.index == "2") {
        this.handleClickfw();
      }
    },
    handleClickson(tab, event) {
      console.log(tab.index, "son");
      console.log(tab, "son");
      this.getList(tab.index);
    },
    // 查询服务记录
    handleClickfw() {
      getTaskservelist({
        patid: this.id,
      }).then((res) => {
        if (res.code == 200) {
          this.record = res.rows[0].serviceSubtaskList;
        }
      });
    },
    // 联系方式新增
    Addanumber() {},
    // 标签--------------------------