Browse Source

新增慢阻肺监查稽查统计

chenyubai 1 year ago
parent
commit
46dccd9c0a

+ 44 - 0
api/statistics-api.js

@ -278,6 +278,33 @@
		findCopdPatientFollowList: function(data){
			return httpRequest.get("copd/statistics/findCopdPatientFollowList", {data: data}); 
		},
		// 获取慢阻肺手表数据
		watchStatisticsList: function(data){
			return httpRequest.get("copd/statistics/watchStatisticsList", {data: data}); 
		},
		// 获取慢阻肺手表亚组居民列表
		watchPage: function(data){
			return httpRequest.get("copd/statistics/watchPage", {data: data}); 
		},
		// 获取慢阻肺手表体征数据明细
		copdList: function(data){
			return httpRequest.get("doctor/health_index/copdList", {data: data}); 
		},
		// 慢阻肺监查、稽查情况统计查询
		getCopdCheckExamineData: function(data){
			return httpRequest.get("copd/statistics/getCopdCheckExamineData", {data: data}); 
		},
		
		
		
		
		
		
		
		
		
		
		
		// 综合分析导出
		statisticsExportExport: function(data, filename){
@ -407,6 +434,23 @@
		exportConclusionList: function(data, filename){
			return httpRequest.downLoadFileForAjax("doctor/copd/exportConclusionList", filename, data);
		},
		// 手表亚组数据导出
		exportWatchStatisticsList: function(data, filename){
			return httpRequest.downLoadFileForAjax("copd/statistics/exportWatchStatisticsList", filename, data);
		},
		// 手表亚组居民数据导出
		exportWatchPage: function(data, filename){
			return httpRequest.downLoadFileForAjax("copd/statistics/exportWatchPage", filename, data);
		},
		// 慢阻肺监查、稽查情况统计导出
		exportCopdCheckExamineData: function(data, filename){
			return httpRequest.downLoadFileForAjax("copd/statistics/exportCopdCheckExamineData", filename, data);
		},
		
		
		
		
		
    }
    exports.statisticAPI = statisticAPI;

+ 61 - 4
app/statistics/html/comprehensive-query.html

@ -59,10 +59,27 @@
							<el-tree class="bgc-f2f3f5" ref="tree"  :data="mzftjTree"  node-key="id" :props="defaultProps" default-expand-all>
							</el-tree>
						</template>
						<template v-if="tabsId == 6">
							<div class="particulars" v-for="(item,index) in mzfTabsData" @click="handleNodeClick(item)" :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''">
								{{item.label}}
							</div>
							<!-- <el-tree highlight-current class="bgc-f2f3f5" :data="detailInquire" :props="defaultProps" @node-click="handleNodeClick"></el-tree> -->
						</template>
						<div class="resetSelected" v-if="tabsId != 2"> <div @click="reset">重置已选</div>  </div>
		        	</div>
		        	<div class="ui-col-1 bgc-fff p20" style="min-width: 900px;">
						<template v-if='handleNodeId != 46&& handleNodeId != 47&&handleNodeId!=48&&handleNodeId!=49&&handleNodeId!=50&&handleNodeId!=51&&handleNodeId!=52&&handleNodeId!=53&&handleNodeId!=54' >
						<template v-if='
									handleNodeId != 46&& 
									handleNodeId != 47&&
									handleNodeId!=48&&
									handleNodeId!=49&&
									handleNodeId!=50&&
									handleNodeId!=51&&
									handleNodeId!=52&&
									handleNodeId!=53&&
									handleNodeId!=54&&
									handleNodeId!=55&&
									handleNodeId!=56' >
							<div class="searchDiv" v-if="tabsId!=5">
								<template v-if="handleNodeId!=44&&expertFamilyIdType != 'zhuanke1'&&handleNodeId!=45">
									<el-radio v-model="radio" label="1">按签约年度:</el-radio>
@ -430,7 +447,18 @@
						
		        		<div class="searchDiv mt10" v-if="tabsId!=5">
							<template v-if="handleNodeId!=44&&handleNodeId!=46&&handleNodeId != 47&&handleNodeId!=48&&handleNodeId!=49&&handleNodeId!=50&&handleNodeId!=51&&handleNodeId!=52&&handleNodeId!=53&&handleNodeId!=54">
							<template v-if="handleNodeId!=44&&
											handleNodeId!=46&&
											handleNodeId != 47&&
											handleNodeId!=48&&
											handleNodeId!=49&&
											handleNodeId!=50&&
											handleNodeId!=51&&
											handleNodeId!=52&&
											handleNodeId!=53&&
											handleNodeId!=54&&
											handleNodeId!=55&&
											handleNodeId!=56">
								<label class="c-333 c-f14" for="">数据范围:</label>
								<el-select v-model="rangeCode" style="width:100px;" class="pr10">
									<el-option v-for="(item , index) in rangeList" :key="index" :label="item.name" :value="item.code"></el-option>
@ -453,7 +481,18 @@
									<el-option v-for="(item , index) in specHosList" :key="index" :label="item.name" :value="item.code"></el-option>
								</el-select>
							</template>
							<template v-if="handleNodeId!=46&&handleNodeId != 47&&handleNodeId!=48&&handleNodeId!=49&&handleNodeId!=50&&handleNodeId!=51&&handleNodeId!=52&&handleNodeId!=53&&handleNodeId!=54">
							<template v-if="
										handleNodeId!=46&&
										handleNodeId != 47&&
										handleNodeId!=48&&
										handleNodeId!=49&&
										handleNodeId!=50&&
										handleNodeId!=51&&
										handleNodeId!=52&&
										handleNodeId!=53&&
										handleNodeId!=54&&
										handleNodeId!=55&&
										handleNodeId!=56">
								<el-button type="primary" size="mini" @click="searchHandle(true)">查询</el-button>
								<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
								<span class="eliminate" @click="eliminateClick">清除筛选条件</span>
@ -763,6 +802,8 @@
								<mzf-v1rzreport v-if="handleNodeId==52"></mzf-v1rzreport>
								<zbfz-detail v-if="handleNodeId==53"></zbfz-detail>
								<mzf-hxsj v-if="handleNodeId==54"></mzf-hxsj>
								<mzf-watches v-if="handleNodeId==55"></mzf-watches>
								<mzf-timeout-statistics v-if="handleNodeId==56"></mzf-timeout-statistics>
							</div>
							<div v-if="handleNodeShow == 3">
								<el-table v-if="collectCode == 1" border :data="diseaseReport" style="width: 100%" v-loading="loadingTwo" class="mt20" >
@ -809,7 +850,18 @@
							</div>
							<template v-if="handleNodeId!=46&&handleNodeId!=47&&handleNodeId!=48&&handleNodeId!=49&&handleNodeId!=50&&handleNodeId!=51&&handleNodeId!=52&&handleNodeId!=53&&handleNodeId!=54">
							<template v-if="
										handleNodeId!=46&&
										handleNodeId!=47&&
										handleNodeId!=48&&
										handleNodeId!=49&&
										handleNodeId!=50&&
										handleNodeId!=51&&
										handleNodeId!=52&&
										handleNodeId!=53&&
										handleNodeId!=54&&
										handleNodeId!=55&&
										handleNodeId!=56">
								<div class="c-t-right mt20">
									<el-pagination 
									  @current-change="handleCurrentChange"
@ -859,7 +911,11 @@
	<script type="text/javascript" src="../../../api/sign_api.js"></script>
    <script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/comprehensive-query.js" type="text/javascript" charset="utf-8"></script>
	
	
	
    <script src="../js/mzfWorksheet.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/mzfWatches.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/mzfHzcx.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/mzfRzjd.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/mzfRzmx.js" type="text/javascript" charset="utf-8"></script>
@ -868,6 +924,7 @@
    <script src="../js/mzfV1rzReport.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/zbfzDetail.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/mzfHxsj.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/mzfTimeoutStatistics.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

+ 84 - 0
app/statistics/html/mzfTimeoutStatistics.html

@ -0,0 +1,84 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>慢阻肺监查、稽查情况统计</title>
    <meta name="author" content="yihu.com" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/flex.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
    <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="../css/common.css" />
	<link rel="stylesheet" type="text/css" href="../css/mzfWorksheet.css" />
	 
</head>
<body style="margin: 0;overflow-x: auto;" v-cloak>
    <div id="main" class="">
       <div class="ui-col-1 bgc-fff" style="min-width: 900px;">
		   <div class="flexibleBox">
			   <div class="maxBox">
				   <div class="inquireTime">查询时间 
						<el-date-picker
						v-model="startTime"
						type="date"
						placeholder="选择日期"
						:picker-options="setDisabled"
						@change='startTimeChange'>
						</el-date-picker> ~
						<el-date-picker
						v-model="endTime"
						type="date"
						placeholder="选择日期"
						:picker-options="setDisabled"
						@change='endTimeChange'>
						</el-date-picker>
					</div>
				   <el-form  class="handleNodeId-40 flex mt10">
						<div class="selectedButton ml10 mt10" class="dept-select formLeft" style="width: 300px;line-height: 38px;">
							<el-button type="primary" size="mini" @click="confirm">查询</el-button>
							<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
							<!-- <el-button type="info" size="mini"  @click="cancel">取消</el-button> -->
					</div>
				</el-form>
			   </div>
		   </div>
			<el-table  border :data="tableData"  style="width: 100%" v-loading="loadingTwo" height='550' class="mt20" >
				<template >
					<el-table-column  type="index" width='50' label="序号" align="center"></el-table-column>
					<el-table-column prop="table_name" label="等级医院" align="center"></el-table-column>
					<el-table-column  prop="examineCount" label="超时待监查数" align="center"></el-table-column>
					<el-table-column  prop="checkCount" label="超时待稽查数" align="center"></el-table-column>
				</template>
			</el-table>
			
       </div>
    </div>
	<script src="../../../js/FileSaver/FileSaver.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/toastr/toastr.min.js"></script>
    <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js"></script>
    <script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/header-prompt.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript" src="../../../api/sign_api.js"></script>
    <script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
    <!-- <script src="../js/watches.js" type="text/javascript" charset="utf-8"></script> -->
</body>
</html>

+ 228 - 0
app/statistics/html/mzfWatches.html

@ -0,0 +1,228 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>慢阻肺手表数据</title>
    <meta name="author" content="yihu.com" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/flex.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
    <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="../css/common.css" />
	<link rel="stylesheet" type="text/css" href="../css/mzfWorksheet.css" />
	 
</head>
<body style="margin: 0;overflow-x: auto;" v-cloak>
    <div id="main" class="">
       <div class="ui-col-1 bgc-fff" style="min-width: 900px;">
		   <div class="flexibleBox">
			   <div class="maxBox">
				   <div class="inquireTime">查询时间 
						<el-date-picker
						v-model="startTime"
						type="date"
						placeholder="选择日期"
						:picker-options="setDisabled"
						@change='startTimeChange'>
						</el-date-picker> ~
						<el-date-picker
						v-model="endTime"
						type="date"
						placeholder="选择日期"
						:picker-options="setDisabled"
						@change='endTimeChange'>
						</el-date-picker>
					</div>
					<!-- <div class="mt10">
						<span class="mr10">地区</span>
						<el-select class="mr10" v-model="tertiary" placeholder="请选择" size="mini" multiple @change="tertiaryChange"  @remove-tag="clearTertiary">
							<el-option
							  v-for="item in tertiaryHospitalsData"
							  :key="item.areaCode"
							  :label="item.areaName"
							  :value="item.areaCode">
							</el-option>
						</el-select>
						<span class="mr10">三级医院</span>
						<el-select class="mr10" v-model="communityHospitals" placeholder="请选择" size="mini" multiple @change="comChange" @remove-tag="clearCommunityHospitals">
							<el-option
								v-for="item in communityHospitalsData"
								:key="item.hospitalCode"
								:label="item.hospitalName"
								:value="item.hospitalCode">
							</el-option>
						</el-select>
						<span class="mr10">社区医院</span>
							<el-select v-model="group" placeholder="请选择" size="mini" multiple clearable @change="groChange" @remove-tag="clearGroup" >
								<el-option
								  v-for="item in groupingData"
								  :key="item.hospitalCode"
								  :label="item.hospitalName"
								  :value="item.hospitalCode">
								</el-option>
							  </el-select>
					</div> -->
				   <el-form  class="handleNodeId-40 flex mt10">
						<!-- <el-form-item label="管理状态">
							<el-select v-model="region" placeholder="请选择" size="mini">
								<el-option
								  v-for="item in regionData"
								  :key="item.value"
								  :label="item.label"
								  :value="item.value">
								</el-option>
							  </el-select>
						</el-form-item>
						<el-form-item label="患者姓名" class="ml10">
						<el-input v-model="patientName"  size="mini" width="400" placeholder="请输入患者姓名"></el-input>
						</el-form-item> -->
						<div class="selectedButton ml10 mt10" class="dept-select formLeft" style="width: 300px;line-height: 38px;">
							<el-button type="primary" size="mini" @click="confirm">查询</el-button>
							<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
							<!-- <el-button type="info" size="mini"  @click="cancel">取消</el-button> -->
					</div>
				</el-form>
			   </div>
		   </div>
			<el-table  border :data="tableData"  style="width: 100%" v-loading="loadingTwo" height='550' class="mt20" >
				<template >
					<el-table-column  type="index" width='50' label="序号" align="center"></el-table-column>
					<el-table-column prop="name" label="区域" align="center">
					</el-table-column>
					<!-- <el-table-column  prop="name"  label="三级医院" align="center"></el-table-column> -->
					<!-- <el-table-column prop="entryTime" label="社区医院" align="center"> -->
					</el-table-column>
					<el-table-column   label="手表亚组总人数" align="center">
						<template slot-scope="scope">
							<div class="" style="color: #12B7F5;cursor: pointer;" @click="showInfo(scope.row)">{{scope.row.watchNum}}</div>
						</template>
					</el-table-column>
					<el-table-column  prop="entryNum" label="入手表亚组总天数" align="center"></el-table-column>
					<el-table-column  prop="rate" label="总有效数据天数百分" align="center"></el-table-column>
					<el-table-column  prop="yesterdayNum" label="昨天活跃人数" align="center"></el-table-column>
				</template>
			</el-table>
			
       </div>
	   <el-dialog
	   title="患者详情"
	   :visible.sync="dialogVisible"
	   width="70%">
	   <el-button type="ff9526" size="mini" @click="exportHandleList">导出</el-button>
	   <el-table v-loading="loadingTwo"  border :data="dataInfo" style="width: 100%" height="400"  class="mt20" >
			<el-table-column  type="index" width='50'  label="序号" align="center"></el-table-column>
			 <el-table-column  prop="groupScreeningCode" label="受试者编号" align="center"></el-table-column>
			 <el-table-column  prop="name" label="患者姓名" align="center"></el-table-column>
			 <el-table-column  prop="deviceId" label="设备ID" align="center"></el-table-column>
			 <el-table-column  prop="watchTime" label="入手表亚组时间" align="center"></el-table-column>
			 <el-table-column  prop="doctorName" label="管理医生" align="center"></el-table-column>
			 <el-table-column  prop="entryNum" label="入手表亚组天数" align="center"></el-table-column>
			 <el-table-column  prop="rate" label="有效数据天数百分比(%)" align="center"></el-table-column>
			 <el-table-column  prop="synDate" label="同步数据时间" align="center"></el-table-column>
			 <el-table-column  label="操作" align="center">
				<template slot-scope="scope">
					<el-button @click="btn(scope.row)" type="text" size="small">查看</el-button>
				</template>
			</el-table-column>
	   </el-table>
	   <div class="c-t-right mt20">
	   	<el-pagination 
	   	  @current-change="handleCurrentChange"
	   	  :current-page.sync="currentPage"
	   	  :page-size="currentSize"
	   	  layout="total, prev, pager, next, jumper"
	   	  :total="datatotal">
	   	</el-pagination>
	   </div>
	 </el-dialog>
	 <el-dialog :visible.sync="showPdf" width="70%" height="600px" title="患者个人详情">
		 <div  style="height: 35px;display: flex;line-height: 35px;text-align: center;">
		 	<div  style="height: 100%;width: 100px;border: 1px solid #DDDDDD;cursor: pointer;" :style="(index+1)==copdListIndex?'background: rgb(64, 158, 255);color: #fff;':''" v-for="(item,index) in copdListTbas" :key="index" @click="tabClick(index+1)">{{item.name}}</div>
		 </div>
		 <el-button type="ff9526" size="mini" class="mt10" @click="exportcopdListData">导出</el-button>
		 <el-table v-loading="loadingTwo"  border :data="copdListData" style="width: 100%" height="400"  class="mt20" >
			 <!-- <el-table-column  type="index" width='50'  label="序号" align="center"></el-table-column> -->
			 <el-table-column  prop="name" label="患者姓名" align="center"></el-table-column>
			 <el-table-column  prop="groupScreeningCode" label="受试者编号" align="center"></el-table-column>
			 
			 <template v-if="copdListIndex==1">
				<el-table-column  prop="date" label="数据时间" align="center"></el-table-column>
				 <el-table-column  prop="steps" label="总步数" align="center"></el-table-column>
				 <el-table-column  prop="distance" label="总距离(米)" align="center"></el-table-column>
				 <el-table-column  prop="walkTime" label="步行时长(分)" align="center"></el-table-column>
				 <el-table-column  prop="runDistance" label="跑步距离(米)" align="center"></el-table-column>
				 <el-table-column  prop="runTime" label="跑步时长(分)" align="center"></el-table-column>
				 <el-table-column  prop="calories" label="总燃烧卡路里(千卡)" align="center"></el-table-column>
			 </template>
			 <template v-if="copdListIndex==2">
				 <el-table-column  prop="date" label="数据时间" align="center"></el-table-column>
				 <el-table-column  prop="deep_sleep_time" label="深睡时长(分)" align="center"></el-table-column>
				 <el-table-column  prop="shallow_sleep_time" label="浅睡时长(分)" align="center"></el-table-column>
				 <el-table-column  prop="wake_time" label="清醒时长(分)" align="center"></el-table-column>
				 <el-table-column  prop="startDate" label="睡眠开始时间" align="center"></el-table-column>
				 <el-table-column  prop="stopDate" label="睡眠结束时间" align="center"></el-table-column>
				 <el-table-column  prop="sleep_score" label="睡眠得分" align="center"></el-table-column>
			 </template>
			 <template v-if="copdListIndex==3">
				<el-table-column  prop="heartDate" label="数据时间" align="center"></el-table-column>
				<el-table-column  prop="heart_rate_data" label="心率值" align="center"></el-table-column>
			</template>
			<template v-if="copdListIndex==4">
				<el-table-column  prop="calendar_day" label="数据时间" align="center"></el-table-column>
				<el-table-column  prop="daily_pai" label="每日PAI值" align="center"></el-table-column>
				<el-table-column  prop="total_pai" label="本周PAI值" align="center"></el-table-column>
			</template>
			<template v-if="copdListIndex==5">
				<el-table-column  prop="date" label="数据时间" align="center"></el-table-column>
				<el-table-column  prop="spo2" label="血氧" align="center"></el-table-column>
			</template>
			<template v-if="copdListIndex==6">
				<el-table-column  prop="date" label="数据时间" align="center"></el-table-column>
				<el-table-column  prop="exportKeyName" label="分数类型" align="center"></el-table-column>
				<el-table-column  prop="score" label="健康分" align="center"></el-table-column>
			</template>
			 
		 </el-table>
		 <div class="c-t-right mt20">
		 	<el-pagination 
		 	  @current-change="handleCurrentChangeTwo"
		 	  :current-page.sync="currentPageTwo"
		 	  :page-size="currentSizeTwo"
		 	  layout="total, prev, pager, next, jumper"
		 	  :total="datatotalTwo">
		 	</el-pagination>
		 </div>
	 </el-dialog>
    </div>
	<script src="../../../js/FileSaver/FileSaver.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/toastr/toastr.min.js"></script>
    <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js"></script>
    <script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/header-prompt.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript" src="../../../api/sign_api.js"></script>
    <script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
    <!-- <script src="../js/watches.js" type="text/javascript" charset="utf-8"></script> -->
</body>
</html>

+ 14 - 8
app/statistics/js/comprehensive-query.js

@ -67,16 +67,21 @@ new Vue({
			  {label: '入户访视明细', id:'43'},
			  {label: '康复下转明细', id:'44'},
			  {label: '邀请专科回复明细', id:'45'},
			  {label:'慢阻肺医院工作量表',id:'46'},
			  {label: '慢阻肺患者查询', id:'47'},
			  {label: '慢阻肺入组进度', id:'48'},
			  {label: '慢阻肺入组总明细', id:'49'},
			  {label: '慢阻肺随访进度', id:'50'},
			  {label: '慢阻肺随访总明细', id:'51'},
			  {label: 'v1\入组情况报表', id:'52'},
			  {label: '阻肺呼吸训练数据', id:'54'},
			  
			]
		}],
		mzfTabsData:[
			{label:'慢阻肺医院工作量表',id:'46'},
			{label: '慢阻肺患者查询', id:'47'},
			{label: '慢阻肺入组进度', id:'48'},
			{label: '慢阻肺入组总明细', id:'49'},
			{label: '慢阻肺随访进度', id:'50'},
			{label: '慢阻肺随访总明细', id:'51'},
			{label: 'v1\入组情况报表', id:'52'},
			{label: '慢阻肺呼吸训练数据', id:'54'},
			{label: '慢阻肺手表数据', id:'55'},
			{label: '慢阻肺监查、稽查情况统计', id:'56'},
		],
		handleNodeShow:1,
		handleNodeId:0,
		radio1:'',
@ -162,6 +167,7 @@ new Vue({
			{id:'3',text:'汇总数据',show:false},
			{id:'4',text:'专科综合查询',show:false},
			// {id:'5',text:'慢阻肺综合查询',show:false},
			{id:'6',text:'慢阻肺统计',show:false},
		],
		tabsId:'1',
		facility:'',    //体征数据分析  - 设备类型

+ 56 - 3
app/statistics/js/home.js

@ -117,7 +117,9 @@ new Vue({
			url: 'annual-appraisal-report.html',
			allowArea:"",
		},
		]
		],
		paramValue:'',
		paramType:'',
	},
	methods: {
		open: function() {
@ -188,7 +190,22 @@ new Vue({
	        }	        
	    }
	    console.log(this.selectedRole)
		
		// 获取URL地址
		var url = window.location.href;
		// 获取参数部分
		var params = url.split('?')[1];
		// 将参数部分转换为对象
		var paramsObj = {};
		if (params) {
			var paramsArr = params.split('&');
			for (var i = 0; i < paramsArr.length; i++) {
				var param = paramsArr[i].split('=');
				paramsObj[param[0]] = param[1];
			}
		}
		// 获取指定参数的值
		this.paramValue = paramsObj['name'];
		this.paramType = paramsObj['type'];
	},
	watch: {
		selectedRole: function(val) {
@ -198,7 +215,43 @@ new Vue({
			window.sessionStorage.setItem("selectedRole", JSON.stringify(selected));
		    getSignData(this);
		    console.log(this.selectedRole)
		}
		},
		"paramValue":{
			handler:function(v) {
				if(v == 'ztfx') {
					this.showDetail(this.serviceAnalysis[0].url)
				}else if(v == 'zxfx') {
					this.showDetail(this.serviceAnalysis[1].url)
				}else if(v == 'pjfx') {
					this.showDetail(this.serviceAnalysis[2].url)
				}else if(v == 'ccffx') {
					this.showDetail(this.serviceAnalysis[3].url)
				}else if(v == 'zffx') {
					this.showDetail(this.serviceAnalysis[4].url)
				}else if(v == 'smfw') {
					this.showDetail(this.serviceAnalysis[5].url)
				}else if(v == 'scfx') {
					this.showDetail(this.serviceAnalysis[6].url)
				}else if(v == 'zbfx') {
					if(this.paramType) {
						this.showDetail('special-analysis.html?type='+this.paramType)
					}else{
						this.showDetail(this.serviceAnalysis[7].url)
					}
				}else if(v == 'sjcx') {
					this.showDetail(this.dataQuery[0].url)
				}else if(v == 'ndkhbb') {
					this.showDetail(this.serviceAnalysis[2].url)
				}else if(v == 'jmfx') {
					this.showDetail(this.signAnalysis[2].url)
				}else if(v == 'jkgl') {
					this.showDetail(this.signAnalysis[3].url)
				}else if(v == 'tgq') {
					this.showDetail(this.signAnalysis[4].url)
				}
			},
		},
		
	}
})

+ 90 - 0
app/statistics/js/mzfTimeoutStatistics.js

@ -0,0 +1,90 @@
var template = ''
$.ajax('../html/mzfTimeoutStatistics.html',{
	data: {},
	dataType: 'html',
	cache: false,
	timeout: 60000, 
	async: false,
	error: function(res) {
	},
	success: function(res) {
		template = res
	}
})
Vue.component('mzf-timeout-statistics', {
	props: [],
	template: template,
	data: function() {
		return {
			tableData:[],
			startTime:new Date('2023','05','28'),
			endTime:new Date(),
			setDisabled:{
				disabledDate:function(time) {
					return time.getTime() < new Date('2023','05','26') || time.getTime() > Date.now();
				}
			},
			loadingTwo:false,
		}
	},
	created: function(){
		this.findCopdHealthInfoList()
	},
	watch:{
		
	},
	methods: {
		startTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
			 this.list.unshift({type:'0',id:'time',label:o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
			}
		},
		endTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
				this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')
			}
		},
		findCopdHealthInfoList:function () {
			var vm = this
			vm.loadingTwo = true
			var p  = {
				startTime:this.startTime.format('yyyy-MM-dd'),
				endTime:this.endTime.format('yyyy-MM-dd'),
			}
			statisticAPI.getCopdCheckExamineData({jsonStr:JSON.stringify(p)}).then(function(res){
				if(res.status == 200) {
					vm.loadingTwo = false
					vm.tableData = res.data
				}
			}).catch(function(err){
				vm.loadingTwo = false
			})
		},
		// 查询
		confirm:function() {
			this.findCopdHealthInfoList()
		},
		// 导出
		exportHandle:function() {
			var vm = this
			vm.loadingTwo = true
			var p  = {
				startTime:this.startTime.format('yyyy-MM-dd'),
				endTime:this.endTime.format('yyyy-MM-dd'),
			}
			statisticAPI.exportCopdCheckExamineData({
				jsonStr:JSON.stringify(p)
			},'慢阻肺监查、稽查情况统计.xls').then(function(res){
				vm.loadingTwo = false
			})
		},
		
		
		
	}
})

+ 261 - 0
app/statistics/js/mzfWatches.js

@ -0,0 +1,261 @@
var template = ''
$.ajax('../html/mzfWatches.html',{
	data: {},
	dataType: 'html',
	cache: false,
	timeout: 60000, 
	async: false,
	error: function(res) {
	},
	success: function(res) {
		template = res
	}
})
Vue.component('mzf-watches', {
	props: [],
	template: template,
	data: function() {
		return {
			tableData:[],
			testArr1: [],
			testArr2: [],
			testPosition1: 0,
			testPosition2: 0,
			list:[],
			startTime:new Date('2023','05','26'),
			endTime:new Date(),
			regionData:[
				{label:'全部',value:'8'},
				{label:'未管理',value:'0'},
				{label:'在管',value:'1'},
				{label:'失访',value:'2'},
				{label:'出组',value:'3'},
				{label:'不纳入管理 ',value:'4'},
				{label:'入组 ',value:'5'},
				{label:'死亡 ',value:'6'},
				{label:'已管理 ',value:'7'},
			],
			// region: '8', //管理状态
			tertiaryHospitalsData:[],
			tertiary: [], //地区
			communityHospitalsData:[],
			communityHospitals: [], // 三级医院
			groupingData:[],
			group: [], // 社区
			queryLevel: 1, // :1.全部 2.区  3.等级医院 4.社区医院
			patient: '', // 患者姓名
			administrationStatusList:[],
			administrationStatusData:[
				{label:'全部',id:'1',type:'5'}
			],
			show:false,
			showTwo:false,
			showThree:false,
			currentPage:1,
			currentSize:10, 
			datatotal:0, //总数
			datatotalTwo:0,
			currentPageTwo:1,
			currentSizeTwo:10, 
			loadingTwo:false,
			setDisabled:{
				disabledDate:function(time) {
					return time.getTime() < new Date('2023','05','26') || time.getTime() > Date.now();
				}
			},
			s:'',
			e:'',
			dialogVisible: false,
			dataInfo: [],
			url: '',
			showPdf: false,
			
			watchPageCode:'',
			copdListTbas:[
				{id:'1',name:'运动'},
				{id:'2',name:'睡眠'},
				{id:'3',name:'心率'},
				{id:'4',name:'PAI'},
				{id:'5',name:'血氧'},
				{id:'6',name:'健康分'},
			],
			copdListIndex:'1',
			copdListData:[],
		}
	},
	created: function(){
		
		this.findCopdHealthInfoList()
	},
	watch:{
		
	},
	methods: {
		tabClick:function(index) {
			this.copdListIndex = index
			this.currentPageTwo = 1
			this.copdList()
		},
		findCopdHealthInfoList:function () {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.watchStatisticsList({
				startDate:this.startTime.format('yyyy-MM-dd'),
				endDate:this.endTime.format('yyyy-MM-dd'),
			}).then(function(res){
				if(res.status == 200) {
					// console.log(res,'hxsj');
					vm.loadingTwo = false
					vm.tableData = res.data
					// vm.datatotal = res.data.length
				}
			}).catch(function(err){
				vm.loadingTwo = false
			})
		},
		watchPage:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.watchPage({
				startDate:this.startTime.format('yyyy-MM-dd'),
				endDate:this.endTime.format('yyyy-MM-dd'),
				page:vm.currentPage,
				size:vm.currentSize,
				area:vm.watchPageCode,
			}).then(function(res){
				if(res.status == 200) {
					console.log(res,'hxsj');
					vm.loadingTwo = false
					vm.dataInfo = res.detailModelList
					vm.datatotal = res.totalCount
				}
			}).catch(function(err){
				vm.loadingTwo = false
			})
		},
		copdList:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.copdList({
				patient:vm.patient,
				type:vm.copdListIndex,
				begin:this.startTime.format('yyyy-MM-dd'),
				end:this.endTime.format('yyyy-MM-dd'),
				page:vm.currentPageTwo,
				size:vm.currentSizeTwo,
			}).then(function(res){
				if(res.status == 200) {
					console.log(res,'shahshas');
					vm.loadingTwo = false
					vm.copdListData = res.detailModelList
					vm.datatotalTwo = res.totalCount
				}
			}).catch(function(err){
				vm.loadingTwo = false
			})
		},
		startTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
			 this.list.unshift({type:'0',id:'time',label:o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
			}
		},
		endTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
				this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')
			}
		},
		 
		// 下一页  上一页
		handleCurrentChange:function(val) {
			var vm = this
			vm.currentPage = val
			this.watchPage()
		},
		handleCurrentChangeTwo:function() {
			var vm = this
			vm.currentPageTwo = val
			this.copdList()
		},
		// change:function(val) {
		// 	this.list = this.list.concat(val)
		// },
		// 查询
		confirm:function() {
			this.findCopdHealthInfoList()
		},
		// 恢复默认
		// cancel:function() {
		// 	this.startTime = new Date('2023','05','26')
		// 	this.endTime = new Date()
		// 	this.tertiary = []
		// 	this.communityHospitals = []
		// 	this.group = []
		// 	this.region = '8'
		// 	this.queryLevel = 1
		// },
		// 查看
		showInfo: function(item) {
			this.dialogVisible = true
			this.watchPageCode = item.code=='合计'?'':item.code
			this.watchPage()
			
		},
		// 弹框再次查看
		btn: function(item) {
			this.showPdf = true
			this.patient = item.patient
			this.copdListIndex = '1'
			this.copdList()
		},
		// 导出
		exportHandle:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.exportWatchStatisticsList({
				startDate:this.startTime.format('yyyy-MM-dd'),
				endDate:this.endTime.format('yyyy-MM-dd'),
			},'手表亚组数据.xls').then(function(res){
				vm.loadingTwo = false
			})
		},
		// 居民列表导出
		exportHandleList:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.exportWatchPage({
				startDate:this.startTime.format('yyyy-MM-dd'),
				endDate:this.endTime.format('yyyy-MM-dd'),
				area:vm.watchPageCode,
			},'手表亚组居民数据.xls').then(function(res){
				vm.loadingTwo = false
			})
		},
		// 居民体征导出
		exportcopdListData:function() {
			var vm = this
			vm.loadingTwo = true
			var name = vm.copdListIndex==1?'运动数据':vm.copdListIndex==2?'睡眠数据':vm.copdListIndex==3?'心率数据':vm.copdListIndex==4?'PAI数据':vm.copdListIndex==5?'血氧数据':'健康分数据'
			statisticAPI.exportWatchPage({
				patient:vm.patient,
				type:vm.copdListIndex,
				begin:this.startTime.format('yyyy-MM-dd'),
				end:this.endTime.format('yyyy-MM-dd'),
			},name+'.xls').then(function(res){
				vm.loadingTwo = false
			})
		},
		
		
		
	}
})

+ 7 - 0
app/statistics/js/special-analysis.js

@ -471,6 +471,13 @@ function initData(vm) {
	
	vm.tabnumber=vm.areaLevel==4?1:vm.areaLevel==3?2:3   //表格显示的tab数
	
	var url = location.search; //获取url中"?"符后的字串
   if (url.indexOf("?") != -1) {    //判断是否有参数
	  var str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
	  strs = str.split("=");   //用等号进行分隔 (因为知道只有一个参数 所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)
	  vm.valueName = strs[1]
   }
	
	//初始化时间		
	vm.chooseYear = getSignDate()
	

+ 0 - 4
component/statistics/header-prompt.js

@ -1,10 +1,6 @@
Vue.component('header-prompt', {
	template: '<div class="cb-ebebf5 height-30 lheight-30 pl20 c-f12">\
					<span class="c-666">{{areaName}}</span> (\
					<span class="c-666">{{jieZhiTime}}</span>)\
					<span class="c-12b7f5 ml20 mr20">{{selectDate}}</span>\
					<span class="c-12b7f5 mr20">{{dimensionVal}}</span>\
					<span v-show="dimensionVal2" class="c-12b7f5">{{dimensionVal2}}</span>\
			</div>',
	props: [],
	data: function() {