hwy 3 months ago
parent
commit
186d15ba14

+ 52 - 45
api/statistics-api.js

@ -190,10 +190,16 @@
    getDoorServerOrderReport: function (data) {
      return httpRequest.get('statisticsExport/getDoorServerOrderReport', { data: data })
    },
    redPackageRewardStatistics: function (data) {
      return httpRequest.get('doctor/healthBank/redPackageRewardStatistics', { data: data })
    },
    // 居民积分明细
    patinetIntegralAnalysis: function (data) {
      return httpRequest.get('statisticsExport/patinetIntegralAnalysis', { data: data })
    },
    patientFeeAnalysis: function (data) {
      return httpRequest.get('doctor/healthBank/patientFeeAnalysis', { data: data })
    },
    // 入户访视明细
    findPatientFollowListByCondition: function (data) {
      return httpRequest.get('statisticsExport/findPatientFollowListByCondition', { data: data })
@ -210,11 +216,11 @@
    kangfuGetSignInfo: function (data) {
      return httpRequest.get('doctor/specialist/rehabilitation/getSignInfo', { data: data })
    },
     // 获取社区医院
     hospitalList: function (data) {
    // 获取社区医院
    hospitalList: function (data) {
      return httpRequest.get('/doctor/jkCopd/hospitalList', { data: data })
    },
    
    // 获取社区医院
    hospitalsByType: function (data) {
      return httpRequest.get('hospitals/hospitalsByType', { data: data })
@ -336,19 +342,19 @@
    getNationDict: function (data) {
      return httpRequest.get('/doctor/patient/getNationDict', { data: data })
    },
    //获取省市区  type:省1,市2,区3  
    getDistrict:function(data) {
    return httpRequest.post("/common/district", {data: data})
    },	
    //获取省市区  type:省1,市2,区3
    getDistrict: function (data) {
      return httpRequest.post('/common/district', { data: data })
    },
    //档案同步
    synPatient:function(data) {
      return httpRequest.post("/doctor/jkCopd/synPatient", {data: data})
      },	
    synPatient: function (data) {
      return httpRequest.post('/doctor/jkCopd/synPatient', { data: data })
    },
    dealRecordPage: function (data) {
      return httpRequest.get('/doctor/jkCopd/dealRecordPage', { data: data })
    },
    
    getPatientAccetokenByIdcard: function (data) {
      return httpRequest.post('/doctor/archives/getPatientAccetokenByIdcard', { data: data })
    },
@ -356,28 +362,27 @@
      return httpRequest.get('/doctor/jkCopd/followupDetail', { data: data })
    },
    //批量分配
    distributionHospital:function(data) {
      return httpRequest.post("/doctor/jkCopd/distributionHospital", {data: data})
      },	
      manageInfo: function (data) {
        return httpRequest.get('/doctor/jkCopd/manageInfo', { data: data })
      },
      
     // 档案导出
     exportJkCopdAchives: function (data, filename) {
    distributionHospital: function (data) {
      return httpRequest.post('/doctor/jkCopd/distributionHospital', { data: data })
    },
    manageInfo: function (data) {
      return httpRequest.get('/doctor/jkCopd/manageInfo', { data: data })
    },
    // 档案导出
    exportJkCopdAchives: function (data, filename) {
      return httpRequest.downLoadFileForAjax('doctor/jkCopd/exportJkCopdAchives', filename, data)
    },
    
       // 档案导入
       importExcel:function(data) {
        return httpRequest.post("/doctor/jkCopd/importExcel", {data: data})
        },	
     // 管理情况自助查询导出
     exportManageInfo: function (data, filename) {
    // 档案导入
    importExcel: function (data) {
      return httpRequest.post('/doctor/jkCopd/importExcel', { data: data })
    },
    // 管理情况自助查询导出
    exportManageInfo: function (data, filename) {
      return httpRequest.downLoadFileForAjax('doctor/jkCopd/exportManageInfo', filename, data)
    },
    
    // 综合分析导出
    statisticsExportExport: function (data, filename) {
      return httpRequest.downLoadFileForAjax('statisticsExport/export', filename, data)
@ -438,21 +443,23 @@
    exportDoorServerOrderReport: function (data, filename) {
      return httpRequest.downLoadFileForAjax('statisticsExport/exportDoorServerOrderReport', filename, data)
    },
    exportRedPackageRewardStatistics: function (data, filename) {
      return httpRequest.downLoadFileForAjax('doctor/healthBank/exportRedPackageRewardStatistics', filename, data)
    },
    // 居民积分明细导出
    exPatinetIntegralAnalysis: function (data, filename) {
      return httpRequest.downLoadFileForAjax('statisticsExport/exPatinetIntegralAnalysis', filename, data)
    },
    exPatientFeeAnalysis: function (data, filename) {
      return httpRequest.downLoadFileForAjax('doctor/healthBank/exPatientFeeAnalysis', filename, data)
    },
    // 入户访视明细导出
    exfindPatientFollowListByCondition: function (data, filename) {
      return httpRequest.downLoadFileForAjax('statisticsExport/exfindPatientFollowListByCondition', filename, data)
    },
    // 康复下转明细导出
    exportRehabilitationPatientInfo: function (data, filename) {
      return httpRequest.downLoadFileForAjax(
        'doctor/specialist/rehabilitation/exportRehabilitationPatientInfo',
        filename,
        data
      )
      return httpRequest.downLoadFileForAjax('doctor/specialist/rehabilitation/exportRehabilitationPatientInfo', filename, data)
    },
    // 邀请专科医生回复明细导出
    exportConsultHelpDetailPage: function (data, filename) {
@ -547,28 +554,28 @@
      return httpRequest.downLoadFileForAjax('/copd/statistics/exportFollowAndOutData', filename, data)
    },
    // 获取社区签约医生列表
    findDoctorList(data){
      return httpRequest.get('/doctor/jkCopd/findDoctorList', { data:data })
    findDoctorList(data) {
      return httpRequest.get('/doctor/jkCopd/findDoctorList', { data: data })
    },
    // 慢病骨干分配患者
    distributionPatient(data){
    distributionPatient(data) {
      return httpRequest.post('/doctor/jkCopd/distributionPatient', { data })
    },
    // 导出国家标准
    exportCountryStandard(data, filename){
    exportCountryStandard(data, filename) {
      return httpRequest.downLoadFileForAjax('/doctor/jkCopd/exportNationalStandard', filename, data)
    },
    jkCopdPatientDetail(data){
    jkCopdPatientDetail(data) {
      return httpRequest.get('/doctor/jkCopd/jkCopdPatientDetail', { data })
    },
    distributionPage(data){
      return httpRequest.get('doctor/jkCopd/distributionPage', {data})
    distributionPage(data) {
      return httpRequest.get('doctor/jkCopd/distributionPage', { data })
    },
    distributionBatch(data){
      return httpRequest.post('doctor/jkCopd/distributionBatch', {data})
    distributionBatch(data) {
      return httpRequest.post('doctor/jkCopd/distributionBatch', { data })
    },
    findDistributionBatch(data){
      return httpRequest.get('doctor/jkCopd/findDistributionBatch', {data})
    findDistributionBatch(data) {
      return httpRequest.get('doctor/jkCopd/findDistributionBatch', { data })
    }
  }

+ 30 - 13
app/statistics/html/comprehensive-query.html

@ -139,7 +139,7 @@
            <div class="ui-col-1 bgc-fff p20" style="min-width: 900px">
              <template v-if="componentId.indexOf(handleNodeId)==-1">
                <div class="searchDiv" v-if="tabsId!=5">
                  <template v-if="handleNodeId!=44&&expertFamilyIdType != 'zhuanke1'&&handleNodeId!=45">
                  <template v-if="handleNodeId!=44&&expertFamilyIdType != 'zhuanke1'&&handleNodeId!=45&&collectCode!=4">
                    <el-radio v-model="radio" label="1">按签约年度:</el-radio>
                    <el-select v-model="chooseYear" class="pr20 formWidth">
                      <el-option v-for="(item , index) in years" :key="index" :label="item" :value="item"></el-option>
@ -461,10 +461,15 @@
                  <div style="height: 35px" class="mt5">
                    <el-form :model="form7" class="flex">
                      <el-form-item label="居民姓名:" class="flex">
                        <el-input v-model="form9.resident" placeholder="请输入患者姓名查询"></el-input>
                        <el-input v-model="form13.patientName" placeholder="请输入患者姓名查询"></el-input>
                      </el-form-item>
                      <el-form-item label="签约医生:" class="flex formLeft">
                        <el-input v-model="form9.doctorTwo" placeholder="请输入签约医生姓名查询"></el-input>
                        <el-input v-model="form13.doctorName" placeholder="请输入签约医生姓名查询"></el-input>
                      </el-form-item>
                      <el-form-item label="服务类型:" class="flex formLeft">
                        <el-select v-model="serviceType" class="" placeholder="请选择" filterable>
                          <el-option v-for="(item,index) in health_bank_service_type" :key="item.value" :value="item.code" :label="item.value"></el-option>
                        </el-select>
                      </el-form-item>
                    </el-form>
                  </div>
@ -495,6 +500,14 @@
                    </el-radio-group>
                  </div>
                </div>
                <div v-if="collectCode==4">
                  <div class="searchDiv mt10" style="display: flex">
                    <div>服务类型:</div>
                    <el-select v-model="serviceType" style="width: 150px" class="pr10" placeholder="请选择" filterable>
                      <el-option v-for="(item,index) in health_bank_service_type" :key="item.value" :value="item.code" :label="item.value"></el-option>
                    </el-select>
                  </div>
                </div>
              </template>
              <div class="searchDiv mt10" v-if="tabsId!=5">
@ -801,15 +814,15 @@
                  <el-table v-if="handleNodeId==90" border :data="redPacketData" style="width: 100%" v-loading="loadingTwo" class="mt20">
                    <template>
                      <el-table-column type="index" label="序号" align="center"></el-table-column>
                      <el-table-column prop="patient_name" label="社区姓名" align="center"></el-table-column>
                      <el-table-column prop="mobile" label="居民" align="center"></el-table-column>
                      <el-table-column prop="idcard" label="医保卡" align="center"></el-table-column>
                      <el-table-column prop="doctor_name" label="身份证" align="center"></el-table-column>
                      <el-table-column prop="org_name" label="手机号" align="center"></el-table-column>
                      <el-table-column prop="create_time" label="地址" align="center"></el-table-column>
                      <el-table-column prop="doctor_name" label="签约医生" align="center"></el-table-column>
                      <el-table-column prop="org_name" label="累计红包金额" align="center"></el-table-column>
                      <el-table-column prop="create_time" label="累计领取次数" align="center"></el-table-column>
                      <el-table-column prop="hospitalName" label="社区名称" align="center"></el-table-column>
                      <el-table-column prop="name" label="居民" align="center"></el-table-column>
                      <el-table-column prop="ssc" label="医保卡" align="center"></el-table-column>
                      <el-table-column prop="idcard" label="身份证" align="center"></el-table-column>
                      <el-table-column prop="mobile" label="手机号" align="center"></el-table-column>
                      <el-table-column prop="address" label="地址" align="center"></el-table-column>
                      <el-table-column prop="doctorName" label="签约医生" align="center"></el-table-column>
                      <el-table-column prop="feeTotal" label="累计红包金额" align="center"></el-table-column>
                      <el-table-column prop="rewardTimes" label="累计领取次数" align="center"></el-table-column>
                    </template>
                  </el-table>
                  <mzf-worksheet v-if="handleNodeId==46"></mzf-worksheet>
@ -871,6 +884,10 @@
                    <el-table-column v-if="getDoorReport.length!=0" type="index" label="序号" align="center"></el-table-column>
                    <el-table-column v-for="(item,index) in getDoorColumn" :prop="item" :label="getDoorHeader[index]" align="center"></el-table-column>
                  </el-table>
                  <el-table v-if="collectCode == 4" border :data="getDoorReport" style="width: 100%" v-loading="loadingTwo" class="mt20">
                    <el-table-column v-if="getDoorReport.length!=0" type="index" label="序号" align="center"></el-table-column>
                    <el-table-column v-for="(item,index) in getDoorColumn" :prop="item" :label="getDoorHeader[index]" align="center"></el-table-column>
                  </el-table>
                </div>
                <div v-if="handleNodeShow == 4">
                  <el-table v-if="expertFamilyIdType == 'zhuanke1'" border :data="expertReplyData" style="width: 100%" v-loading="loadingTwo" class="mt20">
@ -902,7 +919,7 @@
                  </el-table>
                </div>
                <template v-if="componentId.indexOf(handleNodeId)==-1">
                <template v-if="componentId.indexOf(handleNodeId)==-1&&tabsId!='3'">
                  <div class="c-t-right mt20">
                    <el-pagination
                      @current-change="handleCurrentChange"

+ 152 - 1
app/statistics/js/comprehensive-query.js

@ -5,6 +5,8 @@ new Vue({
    height: '',
    isloading: false, //加载中
    start: '',
    health_bank_service_type: [],
    serviceType: '',
    searchStr: 1,
    end: '',
    tabledata: [], //表格数据
@ -327,6 +329,10 @@ new Vue({
      hospital: '',
      archiveStatus: ''
    },
    form13: {
      patientName: '',
      doctorName: ''
    },
    getHealthData: [],
    form8: {
      renew: ''
@ -366,6 +372,18 @@ new Vue({
        label: '上门服务汇总',
        code: '3',
        children: [{ id: 'fwgd', label: '服务工单', code: '3' }]
      },
      {
        id: 'activityTimes,targetNum,joinNum,rewardNum,feeNum',
        label: '红包奖励汇总',
        code: '4',
        children: [
          { id: 'activityTimes', label: '举办活动次数', code: '4' },
          { id: 'targetNum', label: '目标参与人数', code: '4' },
          { id: 'joinNum', label: '实际参与人数', code: '4' },
          { id: 'rewardNum', label: '领取奖励人数', code: '4' },
          { id: 'feeNum', label: '领取奖励金额', code: '4' }
        ]
      }
    ],
    specHosName: '',
@ -607,6 +625,7 @@ new Vue({
    }
    initData(vm)
    vm.getQuotaStr()
    vm.getfwDictName()
    vm.getDiseaseTypeList()
    vm.height = document.body.offsetHeight - 85
    window.onresize = function () {
@ -620,6 +639,12 @@ new Vue({
    }
  },
  methods: {
    getfwDictName() {
      var vm = this
      statisticAPI.getDictByDictName({ name: 'health_bank_service_type' }).then(function (res) {
        vm.health_bank_service_type = res.list
      })
    },
    //获取综合查询指标
    getQuotaStr() {
      var vm = this
@ -902,13 +927,25 @@ new Vue({
            label: '上门服务汇总',
            code: '3',
            children: [{ id: 'fwgd', label: '服务工单', code: '3' }]
          },
          {
            id: 'activityTimes,targetNum,joinNum,rewardNum,feeNum',
            label: '红包奖励汇总',
            code: '4',
            children: [
              { id: 'activityTimes', label: '举办活动次数', code: '4' },
              { id: 'targetNum', label: '目标参与人数', code: '4' },
              { id: 'joinNum', label: '实际参与人数', code: '4' },
              { id: 'rewardNum', label: '领取奖励人数', code: '4' },
              { id: 'feeNum', label: '领取奖励金额', code: '4' }
            ]
          }
        ]
      }
    },
    // 清除
    eliminateClick: function () {
      this.radio = this.handleNodeId == 44 || this.expertFamilyIdType == 'zhuanke1' || this.handleNodeId == 45 ? '2' : '1'
      this.radio = this.handleNodeId == 44 || this.expertFamilyIdType == 'zhuanke1' || this.handleNodeId == 45 || this.collectCode == 4 ? '2' : '1'
      this.radio1 = ''
      this.radio2 = ''
      this.radio3 = ''
@ -919,6 +956,7 @@ new Vue({
      this.radio8 = ''
      this.radio9 = ''
      this.radio10 = ''
      this.serviceType = ''
      this.form = {
        endorseTheTicket: '',
        renew: '',
@ -942,6 +980,10 @@ new Vue({
        family: '',
        resident: ''
      }
      this.form13 = {
        patientName: '',
        doctorName: ''
      }
      this.facility = '' //体征数据分析  - 设备类型
      this.illness = '' //体征数据分析  - 疾病类型
      this.form6 = {
@ -1055,6 +1097,7 @@ new Vue({
    // 汇总树形图
    collectClick: function (data, isCheck) {
      var vm = this
      vm.derive = data.label
      vm.handleNodeShow = 3
      vm.currentPage = 1
@ -1093,6 +1136,12 @@ new Vue({
          { name: '按专科医院', code: 'specHos' }
        ]
        vm.specHosData()
      } else if (data.code == 4) {
        vm.rangeList = [
          { name: '按区', code: 'town' },
          { name: '按社区', code: 'hospital' }
        ]
        vm.radio = '2' //签约年度  --创建时间
      } else {
        vm.rangeList = [
          { name: '按区', code: 'town' },
@ -1678,6 +1727,38 @@ new Vue({
        }
      })
    },
    patientFeeAnalysisParams: function () {
      var vm = this
      var parameter = {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        team: vm.teamCode, //团队
        hospital: vm.specHosName ? vm.specHosName : vm.communityCode, //专病医院
        area: vm.areaCode == '350200' ? '' : vm.areaCode, //地区
        startDate: vm.radio == '2' ? vm.searchJsonTime.start : '', //开始时间
        endDate: vm.radio == '2' ? vm.searchJsonTime.end : '', //结束时间
        serviceType: vm.serviceType,
        pageSize: vm.currentSize,
        page: vm.currentPage,
        patientName: vm.form13.patientName || '',
        doctorName: vm.form13.doctorName || ''
      }
      return parameter
    },
    residentRedList() {
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'doctor/healthBank/patientFeeAnalysis'
      statisticAPI.patientFeeAnalysis(vm.patientFeeAnalysisParams()).then(function (res) {
        if (res.status == 200) {
          vm.loadingTwo = false
          vm.redPacketData = res.data.list
          vm.datatotal = res.data.total
        } else {
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      })
    },
    // 入户访视明细传参
    interviewParameter: function () {
      var vm = this
@ -1924,6 +2005,40 @@ new Vue({
      })
    },
    getredPackageParameter: function () {
      var vm = this
      var parameter = {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        area: vm.areaCode == '350200' ? '' : vm.areaCode, //地区
        hospital: vm.communityCode, //医院
        range: vm.rangeCode, //数据范围(town区传值area,hospital医院传值hospital,team团队传值team)
        startDate: vm.radio == '2' ? vm.searchJsonTime.start : '', //开始时间
        endDate: vm.radio == '2' ? vm.searchJsonTime.end : '', //结束时间
        menu: vm.beforeReq().checked,
        serviceType: vm.serviceType
        // pageSize:vm.currentSize,
        // page:vm.currentPage,
      }
      return parameter
    },
    redPackageRewardStatistics: function () {
      var vm = this
      vm.loadingTwo = true
      statisticAPI.redPackageRewardStatistics(vm.getredPackageParameter()).then(function (res) {
        if (res.status == 200) {
          vm.loadingTwo = false
          vm.getDoorReport = res.data.list
          vm.getDoorColumn = res.data.column
          vm.getDoorHeader = res.data.header
          vm.datatotal = res.data.list.length
        } else {
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      })
    },
    getTreeList: function () {
      var vm = this
      statisticAPI.exportTreeList({ rang: vm.rangeCode }).then(function (res) {
@ -2055,6 +2170,9 @@ new Vue({
      } else if (vm.collectCode == 3) {
        // 上门服务汇总
        vm.getDoorServerOrderReport()
      } else if (vm.collectCode == 4) {
        // 上门服务汇总
        vm.redPackageRewardStatistics()
      } else {
        vm.detailFunction(vm.handleNodeId, status)
      }
@ -2399,6 +2517,21 @@ new Vue({
        } else {
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 90) {
        if (vm.redPacketData.length != 0) {
          statisticAPI
            .exPatientFeeAnalysis(_.assign({}, vm.patientFeeAnalysisParams(), { pageSize: 99999 }), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 43) {
        // 入户访视导出
        if (vm.ruhuData.length != 0) {
@ -2501,6 +2634,22 @@ new Vue({
        } else {
          vm.fullscreenLoading = false
        }
      } else if (vm.collectCode == 4) {
        // 上门汇总
        if (vm.getDoorReport.length != 0) {
          statisticAPI
            .exportRedPackageRewardStatistics(vm.getredPackageParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false
        }
      } else if (vm.expertFamilyIdType == 'zhuanke1') {
        // 邀请专科回复统计导出
        if (vm.expertReplyData.length != 0) {
@ -2569,6 +2718,8 @@ new Vue({
      } else if (id == 42) {
        // 居民积分明细
        vm.residentIntegral()
      } else if (id == 90) {
        vm.residentRedList()
      } else if (id == 43) {
        // 入户访视
        vm.interview()