Преглед на файлове

完成个人档案和全流程

hwy преди 2 месеца
родител
ревизия
f5cfa7c746

+ 78 - 41
component/statistics/GxbManage/index.html

@ -59,53 +59,90 @@
    </el-table-column>
    </el-table-column>
  </el-table>
  </el-table>
  <el-dialog title="上转转门诊明细" :visible.sync="mzDialogVisible" width="80%">
    <div class="copd-filter-group ui-col-1 bgc-fff">
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">居民姓名:</label>
        <el-input v-model="mzForm.doctorOne" placeholder="请输入居民姓名查询"></el-input>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">手机号码:</label>
        <el-input v-model="mzForm.doctorOne" placeholder="请输入手机号码查询"></el-input>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">签约医院:</label>
        <el-input v-model="mzForm.doctorOne" placeholder="请输入签约医院查询"></el-input>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">签约医生:</label>
        <el-input v-model="mzForm.doctorOne" placeholder="请输入医生姓名查询"></el-input>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">性别:</label>
        <el-select class="formWidth" v-model="mzForm.sex" placeholder="请选择" @change="getTeam">
  <el-dialog :title="title" :visible.sync="mzDialogVisible" width="80%" @close="closeDialog">
    <el-form inline size="mini">
      <el-form-item label="居民姓名:">
        <el-input v-model="query.name" placeholder="请输入居民姓名查询"></el-input>
      </el-form-item>
      <el-form-item label="手机号码:" v-if="title!='上转预约明细列表'">
        <el-input v-model="query.mobile" placeholder="请输入手机号码查询"></el-input>
      </el-form-item>
      <template v-if="title=='上转预约明细列表'">
        <el-form-item label="预约医院:">
          <el-input v-model="query.orgName" placeholder="请输入预约医院查询"></el-input>
        </el-form-item>
        <el-form-item label="预约科室:">
          <el-input v-model="query.deptName" placeholder="请输入科室名称查询"></el-input>
        </el-form-item>
      </template>
      <template v-if="title=='个案数据列表'||title=='上转预约明细列表'">
        <el-form-item label="签约医院:">
          <el-input v-model="query.signHospitalName" placeholder="请输入签约医院查询"></el-input>
        </el-form-item>
        <el-form-item label="签约医生:">
          <el-input v-model="query.signDoctorName" placeholder="请输入签约医生查询"></el-input>
        </el-form-item>
      </template>
      <template v-else>
        <el-form-item :label="title=='下转管理明细'? '下转医院':'签约医院'">
          <el-input v-model="query.hospitalName" :placeholder="title=='下转管理明细'?'请输入下转医院查询':'请输入签约医院查询'"></el-input>
        </el-form-item>
        <el-form-item :label="title=='下转管理明细'? '下转医生':'签约医生'">
          <el-input v-model="query.doctorName" :placeholder="title=='下转管理明细'? '请输入下转医生查询': '请输入签约医生查询'"></el-input>
        </el-form-item>
      </template>
      <el-form-item label="性别:">
        <el-select v-model="query.sex">
          <el-option label="全部" value=""></el-option>
          <el-option label="全部" value=""></el-option>
          <el-option label="男" value="1"></el-option>
          <el-option label="男" value="1"></el-option>
          <el-option label="女" value="2"></el-option>
          <el-option label="女" value="2"></el-option>
        </el-select>
        </el-select>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">数据范围:区</label>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">地区:思明区</label>
      </div>
      <div class="searchDiv pb20 pr20" v-if="form.range == 'hospital'||form.range == 'team'">
        <label class="c-333 c-f14">社区:</label>
      </div>
      <div class="searchDiv pb20 pr20" v-if="form.range == 'team'">
        <label class="c-333 c-f14">团队:</label>
      </div>
      <div class="searchDiv pb20">
        <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
        <el-button type="ff9526" size="mini" @click="exportTable" :disabled="exportLoading">导出</el-button>
        <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
      </div>
    </div>
      </el-form-item>
      <template v-if="title=='个案数据列表'">
        <el-form-item label="证件号码:">
          <el-input v-model="query.idcard" placeholder="请输入证件号码查询"></el-input>
        </el-form-item>
        <el-form-item label="评估等级:">
          <el-select v-model="query.screenResultCode">
            <el-option label="全部" value=""></el-option>
            <el-option label="低危" value="5"></el-option>
            <el-option label="中危" value="4"></el-option>
            <el-option label="高危" value="3"></el-option>
            <el-option label="极高危" value="2"></el-option>
            <el-option label="超高危" value="1"></el-option>
          </el-select>
        </el-form-item>
      </template>
      <el-form-item label="数据范围:">
        <el-select v-model="query.range" disabled>
          <el-option v-for="item in rangeOptions" :value="item.value" :label="item.label"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="地区:" v-if="query.range == 'town'">
        <el-select v-model="query.area" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="社区:" v-if="query.range == 'hospital'">
        <el-select v-model="query.hospital" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="团队:" v-if="query.range == 'team'">
        <el-select v-model="query.team" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="dialogSearchFn">查询</el-button>
        <el-button type="warning" @click="dialogExportFn" :disabled="dialogExportLoading">导出</el-button>
        <span @click="dialogReset" style="color: #676a6c; cursor: pointer">清除筛选条件</span>
      </el-form-item>
    </el-form>
    <el-table v-loading="loadingTwo" border :data="dataInfo" style="width: 100%" height="500">
    <el-table v-loading="loadingTwo" border :data="dataInfo" style="width: 100%" height="500">
      <el-table-column type="index" width="50" label="序号" align="center"></el-table-column>
      <el-table-column type="index" width="50" label="序号" align="center"></el-table-column>
      <el-table-column :label="item.label" v-for="item in mzTableHeader" align="center" :key="item.prop">
      <el-table-column :label="item.label" v-for="item in dialogTableHeader" align="center" :key="item.prop">
        <template slot-scope="scope"><span @click="gotoDetail(scope.row,item.prop)">{{scope.row[item.prop]}}</span></template>
        <template slot-scope="scope"><span @click="gotoDetail(scope.row,item.prop)">{{scope.row[item.prop]}}</span></template>
      </el-table-column>
      </el-table-column>
    </el-table>
    </el-table>

+ 272 - 18
component/statistics/GxbManage/index.js

@ -20,6 +20,7 @@ Vue.component('gxb-manage', {
      yearType: '1',
      yearType: '1',
      chooseYear: null,
      chooseYear: null,
      chooseTime: null,
      chooseTime: null,
      dialogExportLoading: false,
      rangeOptions: [
      rangeOptions: [
        { label: '区', value: 'town' },
        { label: '区', value: 'town' },
        { label: '社区', value: 'hospital' },
        { label: '社区', value: 'hospital' },
@ -50,32 +51,287 @@ Vue.component('gxb-manage', {
        { label: '评估已登记随访', prop: 'followUpNum', width: '110' }
        { label: '评估已登记随访', prop: 'followUpNum', width: '110' }
        // { label: '随访已达标', prop: 'standardNum', width: '110' }
        // { label: '随访已达标', prop: 'standardNum', width: '110' }
      ],
      ],
      tableHeader: [],
      loadingTwo: false,
      mzTableHeader: [
      mzTableHeader: [
        { label: '姓名', prop: 'totalNum', width: '90' },
        { label: '性别', prop: 'turnUpNum', width: '90' },
        { label: '年龄', prop: 'totalNum', width: '90' },
        { label: '手机号', prop: 'turnUpNum', width: '90' },
        { label: '证件号码', prop: 'totalNum', width: '90' },
        { label: '社区医院', prop: 'turnUpNum', width: '90' },
        { label: '签约医生', prop: 'totalNum', width: '90' },
        { label: '最近一次上传时间', prop: 'turnUpNum', width: '90' },
        { label: '最近一次上转科室', prop: 'totalNum', width: '90' },
        { label: '最近一次门诊下转时间', prop: 'totalNum', width: '90' },
        { label: '最近一次门诊下转诊断', prop: 'totalNum', width: '90' }
        { label: '姓名', prop: 'name', width: '90' },
        { label: '性别', prop: 'sex', width: '90' },
        { label: '年龄', prop: 'age', width: '90' },
        { label: '手机号', prop: 'mobile', width: '90' },
        { label: '证件号码', prop: 'idcard', width: '90' },
        { label: '社区医院', prop: 'signHospitalName', width: '90' },
        { label: '签约医生', prop: 'signDoctorName', width: '90' },
        { label: '最近一次上传时间', prop: 'czrq', width: '90' },
        { label: '最近一次上转科室', prop: 'deptName', width: '90' },
        { label: '最近一次门诊下转时间', prop: 'createTime', width: '90' },
        { label: '最近一次门诊下转诊断', prop: 'diagnosisName', width: '90' }
      ],
      ],
      turnDownTableHeader: [
        { label: '姓名', prop: 'name', width: '90' },
        { label: '性别', prop: 'sex', width: '90' },
        { label: '年龄', prop: 'age', width: '90' },
        { label: '手机号', prop: 'mobile', width: '90' },
        { label: '最近一次下转医院', prop: 'hospitalName', width: '90' },
        { label: '最近一次下转医生', prop: 'hospitalDoctor', width: '90' },
        { label: '最近一次下转时间', prop: 'zyCreateTime', width: '90' },
        { label: '出院下转次数', prop: 'turnDownTimes', width: '90' },
        { label: '康复计划数量', prop: 'rehabilitationTimes', width: '90' }
      ],
      totalNumTableHeader: [
        { label: '姓名', prop: 'name' },
        { label: '性别', prop: 'sex' },
        { label: '年龄', prop: 'age' },
        { label: '评估结果', prop: 'screenResult' },
        { label: '评估医生', prop: 'doctorName' },
        { label: '评估时间', prop: 'czrq' },
        { label: '手机号', prop: 'mobile' },
        { label: '证件号码', prop: 'idcard' },
        { label: '签约社区', prop: 'signHospitalName' },
        { label: '签约医生', prop: 'signDoctorName' }
      ],
      turnUpNumTableHeader: [
        { label: '姓名', prop: 'name' },
        { label: '性别', prop: 'sex' },
        { label: '年龄', prop: 'age' },
        { label: '社区医院', prop: 'signHospitalName' },
        { label: '签约医生', prop: 'signDoctorName' },
        { label: '手机号', prop: 'mobile' },
        { label: '证件号码', prop: 'idcard' },
        { label: '预约医院', prop: 'orgName' },
        { label: '预约医生', prop: 'dName' },
        { label: '预约科室', prop: 'deptName' },
        { label: '预约时间', prop: 'orderTime' },
        { label: '数据来源', prop: 'sourceType' }
      ],
      dialogTableHeader: [],
      page: 1,
      page: 1,
      size: 10,
      size: 10,
      total: 0,
      total: 0,
      level: 0,
      level: 0,
      mzDialogVisible: true,
      mzForm: {
      mzDialogVisible: false,
      query: {
        sex: ''
        sex: ''
      }
      },
      dataInfo: [],
      title: '',
      dataRangeOption: []
    }
    }
  },
  },
  methods: {
  methods: {
    gotoDetail(row, column) {
    gotoDetail(row, column) {
      console.log(row, 'lllllllllllllllllllllllll', column)
      var vm = this
      this.query = { sex: '' }
      switch (column) {
        case 'mzNum':
          vm.dialogTableHeader = vm.mzTableHeader
          this.title = '上转转门诊明细'
          break
        case 'zyNum':
          vm.dialogTableHeader = vm.mzTableHeader
          this.title = '门诊转住院明细'
          break
        case 'turnDownNum':
          vm.dialogTableHeader = vm.turnDownTableHeader
          this.title = '下转管理明细'
          break
        case 'totalNum':
          this.query = { sex: '', screenResultCode: '' }
          vm.dialogTableHeader = vm.totalNumTableHeader
          this.title = '个案数据列表'
          break
        case 'turnUpNum':
          vm.dialogTableHeader = vm.turnUpNumTableHeader
          this.title = '上转预约明细列表'
          break
      }
      var len = row.code.length
      if (len == 6) {
        this.query.range = 'town'
        this.query.area = row.code
      } else if (len == 10) {
        this.query.range = 'hospital'
        this.query.hospital = row.code
      } else {
        this.query.range = 'team'
        this.query.team = row.code
      }
      this.dataRangeOption = [{ label: row.name, value: row.code }]
      if (column == 'mzNum' || column == 'zyNum') {
        this.mzDialogVisible = true
        this.turnUpToMzDetailPage()
      } else if (column == 'turnDownNum') {
        this.mzDialogVisible = true
        this.turnDownManageDetailPage()
      } else if (column == 'totalNum') {
        this.mzDialogVisible = true
        this.gxbCaseDataPage()
      } else if (column == 'turnUpNum') {
        this.mzDialogVisible = true
        this.gxbTurnUpInfoPage()
      }
    },
    gxbTurnUpInfoPage() {
      var vm = this
      this.loadingTwo = true
      var params = JSON.parse(JSON.stringify(this.query))
      params.page = this.page
      params.pageSize = this.size
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/gxbTurnUpInfoPage', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.dataInfo = res.detailModelList
          vm.total = res.totalCount
        }
        vm.loadingTwo = false
      })
    },
    gxbCaseDataPage() {
      var vm = this
      this.loadingTwo = true
      var params = JSON.parse(JSON.stringify(this.query))
      params.page = this.page
      params.pageSize = this.size
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/gxbCaseDataPage', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.dataInfo = res.detailModelList
          vm.total = res.totalCount
        }
        vm.loadingTwo = false
      })
    },
    turnDownManageDetailPage() {
      var vm = this
      this.loadingTwo = true
      var url = ''
      var params = JSON.parse(JSON.stringify(this.query))
      params.page = this.page
      params.pageSize = this.size
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/turnDownManageDetailPage', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.dataInfo = res.detailModelList
          vm.total = res.totalCount
        }
        vm.loadingTwo = false
      })
    },
    turnUpToMzDetailPage() {
      var vm = this
      this.loadingTwo = true
      var params = JSON.parse(JSON.stringify(this.query))
      params.page = this.page
      params.pageSize = this.size
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/turnUpToMzDetailPage', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.dataInfo = res.detailModelList
          vm.total = res.totalCount
        }
        vm.loadingTwo = false
      })
    },
    closeDialog() {
      this.mzDialogVisible = false
    },
    dialogSearchFn() {
      this.page = 1
      if (this.title == '上转转门诊明细' || this.title == '门诊转住院明细') {
        this.turnUpToMzDetailPage()
      }
    },
    dialogExportFn() {
      this.dialogExportLoading = true
      var vm = this
      var params = {
        ...this.query
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      if (this.title == '上转转门诊明细') {
        var fileName = `上转转门诊明细${new Date().getTime()}.xls`
        httpRequest.downLoadFileForAjax('statistics/collaborate/exportTurnUpToMzDetailPage', fileName, params).then(function () {
          vm.dialogExportLoading = false
        })
      } else if (this.title == '门诊转住院明细') {
        var fileName = `门诊转住院明细${new Date().getTime()}.xls`
        httpRequest.downLoadFileForAjax('statistics/collaborate/exportMzToInHopistalDetailPage', fileName, params).then(function () {
          vm.dialogExportLoading = false
        })
      } else if (this.title == '个案数据列表') {
        var fileName = `个案数据列表${new Date().getTime()}.xls`
        httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbCaseDataPage', fileName, params).then(function () {
          vm.dialogExportLoading = false
        })
      } else if (this.title == '上转预约明细列表') {
        var fileName = `上转预约明细列表${new Date().getTime()}.xls`
        httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbTurnUpInfoPage', fileName, params).then(function () {
          vm.dialogExportLoading = false
        })
      }
    },
    dialogReset() {
      var params = {
        ...this.query
      }
      if (this.title == '个案数据列表') {
        this.query = {
          sex: '',
          screenResultCode: '',
          range: params.range,
          area: params.area,
          hospital: params.hospital,
          team: params.team
        }
      } else {
        this.query = {
          sex: '',
          range: params.range,
          area: params.area,
          hospital: params.hospital,
          team: params.team
        }
      }
    },
    },
    init() {
    init() {
      var selectedRole = JSON.parse(sessionStorage.getItem('selectedRole'))
      var selectedRole = JSON.parse(sessionStorage.getItem('selectedRole'))
@ -222,9 +478,7 @@ Vue.component('gxb-manage', {
    exportTable() {
    exportTable() {
      var vm = this
      var vm = this
      var params = {
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size
        ...this.form
      }
      }
      if (this.yearType == '1') {
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.startDate = this.chooseYear + '-01-01'

+ 2 - 2
component/statistics/GxbTurnup/index.html

@ -71,7 +71,7 @@
        <el-input v-model="query.name" placeholder="请输入居民姓名查询"></el-input>
        <el-input v-model="query.name" placeholder="请输入居民姓名查询"></el-input>
      </el-form-item>
      </el-form-item>
      <el-form-item label="预约医院:">
      <el-form-item label="预约医院:">
        <el-input v-model="query.hospital" placeholder="请输入预约医院查询"></el-input>
        <el-input v-model="query.orgName" placeholder="请输入预约医院查询"></el-input>
      </el-form-item>
      </el-form-item>
      <el-form-item label="预约科室:">
      <el-form-item label="预约科室:">
        <el-input v-model="query.deptName" placeholder="请输入科室名称查询"></el-input>
        <el-input v-model="query.deptName" placeholder="请输入科室名称查询"></el-input>
@ -122,7 +122,7 @@
        </template>
        </template>
      </el-table-column>
      </el-table-column>
    </el-table>
    </el-table>
    <div style="display: flex; justify-content: flex-end;margin-top: 10px;">
    <div style="display: flex; justify-content: flex-end; margin-top: 10px">
      <el-pagination
      <el-pagination
        @current-change="handleCurrentChange"
        @current-change="handleCurrentChange"
        @size-change="handleSizeChange"
        @size-change="handleSizeChange"

+ 1 - 1
component/statistics/PersonInfo/index.html

@ -184,7 +184,7 @@
      <el-button @click="back" type="primary">返回康复计划</el-button>
      <el-button @click="back" type="primary">返回康复计划</el-button>
    </div>
    </div>
  </div>
  </div>
  <el-dialog title="消息提醒" :visible.sync="messageVisible" @close="closeMessageDialog" width="540px">
  <el-dialog title="消息提醒" :visible.sync="messageVisible" @close="closeMessageDialog" width="540px" append-to-body>
    <div v-html="messInfo"></div>
    <div v-html="messInfo"></div>
    <span slot="footer" class="dialog-footer">
    <span slot="footer" class="dialog-footer">
      <el-button @click="messageVisible = false">取消</el-button>
      <el-button @click="messageVisible = false">取消</el-button>

+ 2 - 3
component/statistics/PersonInfo/index.js

@ -16,7 +16,7 @@ Vue.component('person-info', {
  props: [],
  props: [],
  data: function () {
  data: function () {
    return {
    return {
      visible: true,
      visible: false,
      code: '0fab4dd67e074e16ac86db6b6c15233e',
      code: '0fab4dd67e074e16ac86db6b6c15233e',
      loading: false,
      loading: false,
      type: '1',
      type: '1',
@ -68,7 +68,7 @@ Vue.component('person-info', {
    },
    },
    previewMess(item) {
    previewMess(item) {
      var vm = this
      var vm = this
      httpRequest.post('doctor/screen/getSurveyMessage', { data: { surveyResultCode: item.hospital_service_item_id } }).then(function (res) {
      httpRequest.get('doctor/screen/findSurveyMessageContent', { data: { surveyResultCode: item.relation_code, type: 2 } }).then(function (res) {
        vm.messageVisible = true
        vm.messageVisible = true
        vm.messInfo = res.data
        vm.messInfo = res.data
      })
      })
@ -148,7 +148,6 @@ Vue.component('person-info', {
      this.$message.success('复制成功')
      this.$message.success('复制成功')
    },
    },
    toDetail(item) {
    toDetail(item) {
      console.log(item, 'kkkkkkkkkkkkkkkkkkkkkkkk')
      var vm = this
      var vm = this
      var params = {
      var params = {
        planDetailId: item.id
        planDetailId: item.id